754348062632e444eb8e512ff6a648293b4e7800
[platform/upstream/gcc.git] / libstdc++-v3 / ChangeLog
1 2021-08-26  Jonathan Wakely  <jwakely@redhat.com>
2
3         * include/bits/std_function.h (function): Adjust doxygen
4         comments.
5         * include/bits/unique_ptr.h (make_unique_for_overwrite):
6         Change parameter name to match doxygen comment.
7
8 2021-08-26  Jonathan Wakely  <jwakely@redhat.com>
9
10         * include/bits/std_function.h (_function_base::_Base_manager):
11         Replace _M_init_functor with a function template using a
12         forwarding reference, and a pair of _M_create function
13         templates. Reuse _M_create for the clone operation.
14         (function::_Decay_t): New alias template.
15         (function::_Callable): Simplify by using _Decay.
16         (function::function(F)): Change parameter to forwarding
17         reference, as per LWG 2447. Add noexcept-specifier. Simplify
18         constraints.
19         (function::operator=(F&&)): Add noexcept-specifier.
20         * testsuite/20_util/function/cons/lwg2774.cc: New test.
21         * testsuite/20_util/function/cons/noexcept.cc: New test.
22
23 2021-08-26  Jonathan Wakely  <jwakely@redhat.com>
24
25         * include/bits/std_function.h (function::function(F)): Add
26         static assertions to check constructibility requirements.
27
28 2021-08-26  Jonathan Wakely  <jwakely@redhat.com>
29
30         PR libstdc++/100285
31         * configure.ac: Check for O_NONBLOCK.
32         * configure: Regenerate.
33         * include/experimental/internet: Include <ws2tcpip.h> for
34         Windows.  Use preprocessor conditions around more constants.
35         * include/experimental/socket: Use preprocessor conditions
36         around more constants.
37         * testsuite/experimental/net/internet/resolver/base.cc: Only use
38         constants when the corresponding C macro is defined.
39         * testsuite/experimental/net/socket/basic_socket.cc: Likewise.
40         * testsuite/experimental/net/socket/socket_base.cc: Likewise.
41         Make preprocessor checks more fine-grained.
42
43 2021-08-25  Jonathan Wakely  <jwakely@redhat.com>
44
45         * testsuite/17_intro/names.cc: Check 'sz'.
46
47 2021-08-25  Jonathan Wakely  <jwakely@redhat.com>
48
49         * testsuite/17_intro/names.cc: Adjust for Windows.
50
51 2021-08-25  Jonathan Wakely  <jwakely@redhat.com>
52
53         * include/std/valarray: Uglify 'func' parameters.
54         * testsuite/17_intro/names.cc: Add 'func' to checks.
55
56 2021-08-25  Jonathan Wakely  <jwakely@redhat.com>
57
58         PR libstdc++/102064
59         * include/bits/stl_uninitialized.h (_GLIBCXX_USE_ASSIGN_FOR_INIT):
60         Define macro to check conditions for optimizing trivial cases.
61         (__check_constructible): New function to do static assert.
62         (uninitialized_copy, uninitialized_fill, uninitialized_fill_n):
63         Use new macro.
64         * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
65         Adjust dg-error pattern.
66         * testsuite/23_containers/vector/cons/89164.cc: Likewise. Add
67         C++17-specific checks from 89164_c++17.cc.
68         * testsuite/23_containers/vector/cons/89164_c++17.cc: Removed.
69         * testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc:
70         New test.
71         * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc:
72         New test.
73         * testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc:
74         New test.
75         * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc:
76         New test.
77
78 2021-08-25  Jonathan Wakely  <jwakely@redhat.com>
79
80         PR libstdc++/102048
81         * include/ext/rope (rope::erase(size_type)): Remove broken
82         function.
83
84 2021-08-24  Jonathan Wakely  <jwakely@redhat.com>
85
86         * doc/xml/manual/status_cxx2020.xml: Update table.
87         * doc/html/manual/status.html: Regenerate.
88
89 2021-08-24  Jonathan Wakely  <jwakely@redhat.com>
90
91         * include/std/type_traits (is_layout_compatible): Define.
92         (is_corresponding_member): Define.
93         * include/std/version (__cpp_lib_is_layout_compatible): Define.
94         * testsuite/20_util/is_layout_compatible/is_corresponding_member.cc:
95         New test.
96         * testsuite/20_util/is_layout_compatible/value.cc: New test.
97         * testsuite/20_util/is_layout_compatible/version.cc: New test.
98         * testsuite/20_util/is_pointer_interconvertible/with_class.cc:
99         New test.
100         * testsuite/23_containers/span/layout_compat.cc: Do not use real
101         std::is_layout_compatible trait if available.
102
103 2021-08-24  Jonathan Wakely  <jwakely@redhat.com>
104
105         * src/c++11/cxx11-shim_facets.cc: Fix mismatched class-key in
106         explicit instantiation definitions.
107
108 2021-08-23  Jonathan Wakely  <jwakely@redhat.com>
109
110         * include/std/ranges (basic_istream_view): Add default template
111         argument.
112         * testsuite/std/ranges/istream_view.cc: Check it.
113
114 2021-08-23  Jonathan Wakely  <jwakely@redhat.com>
115
116         * libsupc++/dyncast.cc (__dynamic_cast): Add __builtin_expect to
117         precondition check.
118
119 2021-08-23  Jonathan Wakely  <jwakely@redhat.com>
120
121         PR libstdc++/90787
122         * testsuite/util/testsuite_fs.h (permissions_are_testable):
123         Define as inline.
124
125 2021-08-20  Jonathan Wakely  <jwakely@redhat.com>
126
127         PR libstdc++/90787
128         * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
129         Use new __gnu_test::permissions_are_testable() function.
130         * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
131         Likewise.
132         * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
133         * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
134         * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
135         * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
136         * testsuite/27_io/filesystem/operations/status.cc: Likewise.
137         * testsuite/27_io/filesystem/operations/symlink_status.cc:
138         Likewise.
139         * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
140         Likewise.
141         * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
142         Likewise.
143         * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
144         Likewise.
145         * testsuite/experimental/filesystem/operations/exists.cc:
146         Likewise.
147         * testsuite/experimental/filesystem/operations/is_empty.cc:
148         Likewise.
149         * testsuite/experimental/filesystem/operations/remove.cc:
150         Likewise.
151         * testsuite/experimental/filesystem/operations/remove_all.cc:
152         Likewise.
153         * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
154         Likewise.
155         * testsuite/util/testsuite_fs.h (__gnu_test::permissions_are_testable):
156         New function to guess whether testing permissions will work.
157
158 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
159
160         * doc/xml/manual/status_cxx2020.xml: Move row  earlier in table.
161         * doc/html/manual/status.html: Regenerate.
162
163 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
164
165         * doc/doxygen/user.cfg.in: Update to Doxygen 1.9.2
166
167 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
168
169         PR libstdc++/101965
170         * include/std/charconv (__to_chars_i): Remove redundant check.
171
172 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
173
174         PR libstdc++/101960
175         * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Use base
176         class' move constructor. Define as defaulted for versioned
177         namespace.
178         * testsuite/20_util/tuple/cons/101960.cc: New test.
179
180 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
181
182         PR libstdc++/100139
183         * doc/xml/manual/status_cxx2020.xml: Add P1739R4 to status table.
184         * doc/html/manual/status.html: Regenerate.
185
186 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
187
188         * include/bits/shared_ptr.h: Add @since and @headerfile tags.
189         * include/bits/unique_ptr.h: Add @headerfile tags.
190
191 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
192
193         * src/filesystem/ops-common.h (filesystem::file_time): Improve
194         overflow check by using system_clock::duration::max().
195
196 2021-08-19  Jonathan Wakely  <jwakely@redhat.com>
197
198         * include/bits/stl_tree.h: Tweak whitespace.
199
200 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
201
202         * include/bits/unique_ptr.h (default_delete): Add @since tag.
203         (unique_ptr, unique_ptr<T[]>): Likewise. Improve @brief.
204         (make_unique, make_unique_for_overwrite): Likewise. Add @tparam,
205         @param, and @returns.
206         (_MakeUniq): Move to __detail namespace. Add alias template
207         helpers.
208
209 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
210
211         * include/bits/stl_function.h: Improve doxygen comments.
212
213 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
214
215         * doc/doxygen/user.cfg.in (PREDEFINED): Enable doxygen
216         processing for C++20 components and components that depend on
217         compiler features.
218         * include/bits/stl_algo.h (random_shuffle): Use @deprecated.
219         * include/std/type_traits: Improve doxygen comments for C++20
220         traits.
221
222 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
223
224         * include/ext/type_traits.h (__promote_2, __promote_3)
225         (__promote_4): Redfine as alias templates using __promoted_t.
226         * include/std/complex (__promote_2): Remove partial
227         specializations for std::complex.
228
229 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
230
231         * include/bits/stl_algo.h (min(initializer_list<T>))
232         (min(initializer_list<T>, Compare)): Call __min_element directly to
233         avoid redundant debug checks for valid ranges.
234         (max(initializer_list<T>), max(initializer_list<T>, Compare)):
235         Likewise, for __max_element.
236         (minmax(initializer_list<T>), minmax(initializer_list<T>, Compare)):
237         Likewise, for __minmax_element.
238
239 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
240
241         * include/debug/deque (deque(size_type, const T&, const A&)):
242         Prevent class template argument deduction and replace with a
243         deduction guide.
244         * include/debug/forward_list (forward_list(size_type, const T&, const A&)):
245         Likewise.
246         * include/debug/list (list(size_type, const T&, const A&)):
247         Likewise.
248         * include/debug/vector (vector(size_type, const T&, const A&)):
249         Likewise.
250
251 2021-08-18  Jonathan Wakely  <jwakely@redhat.com>
252
253         * python/libstdcxx/v6/printers.py (StdBitReferencePrinter): Use
254         'std::vector<bool>::reference' as type name, not _Bit_reference.
255         (build_libstdcxx_dictionary): Register printers for vector<bool>
256         types in debug mode too.
257         * testsuite/libstdc++-prettyprinters/simple.cc: Adjust expected
258         output for invalid _Bit_reference. Use vector<bool>::reference
259         instead of _Bit_reference.
260         * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
261
262 2021-08-17  Thomas Schwinge  <thomas@codesourcery.com>
263
264         * testsuite/lib/libstdc++.exp: Avoid illegal argument to verbose,
265         continued.
266
267 2021-08-17  Luc Michel  <lmichel@kalray.eu>
268             Marc Poulhies  <mpoulhies@kalrayinc.com>
269
270         * testsuite/lib/gdb-test.exp (gdb_version_check)
271         (gdb_version_check_xmethods): Only check the GDB version for
272         local native targets.
273
274 2021-08-17  Antony Polukhin  <antoshkka@gmail.com>
275             Jonathan Wakely  <jwakely@redhat.com>
276
277         * include/bits/random.tcc (seed_seq::seed_seq): Reserve capacity
278         if distance is O(1).
279         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
280         line number.
281
282 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
283
284         * testsuite/26_numerics/random/seed_seq/cons/range.cc: Check
285         construction from input iterators.
286
287 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
288
289         * python/libstdcxx/v6/printers.py (StdErrorCatPrinter): Remove.
290
291 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
292
293         PR libstdc++/101923
294         * include/bits/std_function.h (function(function&&)): Check for
295         non-empty parameter before doing any work.
296
297 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
298
299         * include/bits/cow_string.h (basic_string::contains): Do not
300         define for -std=gnu++20.
301
302 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
303
304         * include/bits/ranges_util.h (__not_same_as): Rename to
305         __different_from.
306         * include/std/ranges (__not_same_as): Likewise.
307
308 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
309
310         * include/std/utility (exchange): Add noexcept-specifier.
311         * testsuite/20_util/exchange/noexcept.cc: New test.
312
313 2021-08-17  Jonathan Wakely  <jwakely@redhat.com>
314
315         * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Define.
316         (build_libstdcxx_dictionary): Register printer for
317         std::error_code and std::error_condition.
318         * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
319
320 2021-08-16  Jonathan Wakely  <jwakely@redhat.com>
321
322         PR libstdc++/101937
323         * src/c++11/debug.cc (PrintContext::_M_indent): Replace with a
324         static data member.
325         (print_word): Use qualified-id to access it.
326
327 2021-08-16  Jonathan Wakely  <jwakely@redhat.com>
328
329         * python/Makefile.am [GLIBCXX_BUILD_DEBUG] (install-data-local):
330         Install another copy of the GDB hook.
331         * python/Makefile.in: Regenerate.
332
333 2021-08-12  Jonathan Wakely  <jwakely@redhat.com>
334
335         PR libstdc++/101870
336         * include/c_global/cmath (hypot): Use __promoted_t.
337         (lerp): Add new overload accepting any arithmetic types.
338         * include/ext/type_traits.h (__promoted_t): New alias template.
339         * testsuite/26_numerics/lerp.cc: Moved to...
340         * testsuite/26_numerics/lerp/1.cc: ...here.
341         * testsuite/26_numerics/lerp/constexpr.cc: New test.
342         * testsuite/26_numerics/lerp/version.cc: New test.
343
344 2021-08-12  Jonathan Wakely  <jwakely@redhat.com>
345
346         * testsuite/26_numerics/lerp.cc: Add header name to #error.
347         * testsuite/26_numerics/midpoint/integral.cc: Likewise.
348         * testsuite/26_numerics/midpoint/version.cc: New test.
349
350 2021-08-12  Jonathan Wakely  <jwakely@redhat.com>
351
352         * include/experimental/random (experimental::randint): Add
353         nodiscard attribute.
354
355 2021-08-12  Jonathan Wakely  <jwakely@redhat.com>
356
357         * src/c++98/locale_init.cc: Require C++11.
358         * src/c++98/localename.cc: Likewise.
359         * src/c++98/misc-inst.cc: Require C++98.
360
361 2021-08-11  Jonathan Wakely  <jwakely@redhat.com>
362
363         PR libstdc++/101866
364         * testsuite/experimental/random/randint.cc: Loop and retry if
365         reseed() produces the same sequence.
366
367 2021-08-11  Jonathan Wakely  <jwakely@redhat.com>
368
369         * include/std/type_traits (__cpp_lib_is_pointer_interconvertible)
370         (is_pointer_interconvertible_base_of_v)
371         (is_pointer_interconvertible_base_of): Define for C++20.
372         * include/std/version (__cpp_lib_is_pointer_interconvertible):
373         Define.
374         * testsuite/23_containers/span/layout_compat.cc: Use correct
375         feature test macro for std::is_layout_compatible_v.
376         * testsuite/20_util/is_pointer_interconvertible/value.cc: New test.
377         * testsuite/20_util/is_pointer_interconvertible/version.cc: New test.
378
379 2021-08-09  Jonathan Wakely  <jwakely@redhat.com>
380
381         * include/bits/regex.h (basic_regex::transform_primary): Use
382         _GLIBCXX_STD_C::vector for local variable.
383         * include/bits/regex.tcc (__regex_algo_impl): Use reference to
384         _GLIBCXX_STD_C::vector base class of match_results.
385         * include/bits/regex_automaton.tcc (_StateSeq:_M_clone): Use
386         _GLIBCXX_STD_C::map and _GLIBCXX_STD_C::deque for local
387         variables.
388         * include/bits/regex_compiler.h (_BracketMatcher): Use
389         _GLIBCXX_STD_C::vector for data members.
390         * include/bits/regex_executor.h (_Executor): Likewise.
391         * include/std/regex [_GLIBCXX_DEBUG]: Include <debug/vector>.
392
393 2021-08-09  François Dumont  <fdumont@gcc.gnu.org>
394
395         * include/debug/safe_container.h
396         (_Safe_container(_Safe_container&&, const _Alloc&, std::true_type)): New.
397         (_Safe_container(_Safe_container&&, const _Alloc&, std::false_type)): New.
398         (_Safe_container(_Safe_container&&, const _Alloc&)): Use latters.
399
400 2021-08-09  Jonathan Wakely  <jwakely@redhat.com>
401
402         * testsuite/23_containers/unordered_map/cons/default.cc: Add
403         equality comparison operators to allocator.
404         * testsuite/23_containers/unordered_set/cons/default.cc:
405         Likewise.
406
407 2021-08-08  François Dumont  <fdumont@gcc.gnu.org>
408
409         * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Replace 'failed_assertion'
410         dg-prune-output reason with 'builtin_unreachable'.
411         * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc: Likewise.
412         * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: Likewise.
413         * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc: Likewise.
414         * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
415         * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc: Likewise.
416         * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc: Likewise.
417         * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
418         * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc: Likewise.
419
420 2021-08-08  Hans-Peter Nilsson  <hp@bitrange.com>
421
422         * testsuite/std/ranges/iota/max_size_type.cc: Set
423         dg-timeout-factor to 4.
424
425 2021-08-06  Jonathan Wakely  <jwakely@redhat.com>
426
427         * libsupc++/compare (compare_three_way, strong_order)
428         (weak_order, partial_order, compare_strong_order_fallback)
429         (compare_weak_order_fallback, compare_partial_order_fallback):
430         Move nodiscard attributes to correct location.
431
432 2021-08-05  Jonathan Wakely  <jwakely@redhat.com>
433
434         PR libstdc++/101782
435         * include/bits/ranges_base.h (ranges::begin, ranges::end)
436         (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
437         (ranges::empty, ranges::data): Move attribute after the
438         declarator-id instead of at the end of the declarator.
439         * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator):
440         Move attributes back to the start of the function declarator,
441         but move the requires-clause to the end.
442         (common_iterator): Move attribute after the declarator-id.
443         * include/bits/stl_queue.h (queue): Remove ill-formed attributes
444         from friend declaration that are not definitions.
445         * include/std/ranges (views::all, views::filter)
446         (views::transform, views::take, views::take_while,
447         views::drop) (views::drop_while, views::join,
448         views::lazy_split) (views::split, views::counted,
449         views::common, views::reverse) (views::elements): Move
450         attributes after the declarator-id.
451
452 2021-08-05  Jonathan Wakely  <jwakely@redhat.com>
453
454         * libsupc++/compare (partial_ordering, weak_ordering)
455         (strong_ordering, is_eq, is_neq, is_lt, is_lteq, is_gt, is_gteq)
456         (compare_three_way, strong_order, weak_order, partial_order)
457         (compare_strong_order_fallback, compare_weak_order_fallback)
458         (compare_partial_order_fallback, __detail::__synth3way): Add
459         nodiscard attribute.
460         * testsuite/18_support/comparisons/categories/zero_neg.cc: Add
461         -Wno-unused-result to options.
462
463 2021-08-05  Jonathan Wakely  <jwakely@redhat.com>
464
465         PR libstdc++/101782
466         * include/bits/ranges_base.h (ranges::begin, ranges::end)
467         (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
468         (ranges::empty, ranges::data): Move attribute to the end of
469         the declarator.
470         * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator)
471         (common_iterator): Likewise for non-member operator functions.
472         * include/std/ranges (views::all, views::filter)
473         (views::transform, views::take, views::take_while, views::drop)
474         (views::drop_while, views::join, views::lazy_split)
475         (views::split, views::counted, views::common, views::reverse)
476         (views::elements): Likewise.
477         * testsuite/std/ranges/access/101782.cc: New test.
478
479 2021-08-04  Jonathan Wakely  <jwakely@redhat.com>
480
481         * include/bits/forward_list.h: Add [[nodiscard]] to functions
482         with no side-effects.
483         * include/bits/stl_bvector.h: Likewise.
484         * include/bits/stl_deque.h: Likewise.
485         * include/bits/stl_list.h: Likewise.
486         * include/bits/stl_queue.h: Likewise.
487         * include/bits/stl_stack.h: Likewise.
488         * include/bits/stl_vector.h: Likewise.
489         * include/debug/deque: Likewise.
490         * include/debug/forward_list: Likewise.
491         * include/debug/list: Likewise.
492         * include/debug/safe_iterator.h: Likewise.
493         * include/debug/vector: Likewise.
494         * include/std/array: Likewise.
495         * testsuite/23_containers/array/creation/3_neg.cc: Use
496         -Wno-unused-result.
497         * testsuite/23_containers/array/debug/back1_neg.cc: Cast result
498         to void.
499         * testsuite/23_containers/array/debug/back2_neg.cc: Likewise.
500         * testsuite/23_containers/array/debug/front1_neg.cc: Likewise.
501         * testsuite/23_containers/array/debug/front2_neg.cc: Likewise.
502         * testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc:
503         Likewise.
504         * testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc:
505         Likewise.
506         * testsuite/23_containers/array/tuple_interface/get_neg.cc:
507         Adjust dg-error line numbers.
508         * testsuite/23_containers/deque/cons/clear_allocator.cc: Cast
509         result to void.
510         * testsuite/23_containers/deque/debug/invalidation/4.cc:
511         Likewise.
512         * testsuite/23_containers/deque/types/1.cc: Use
513         -Wno-unused-result.
514         * testsuite/23_containers/list/types/1.cc: Cast result to void.
515         * testsuite/23_containers/priority_queue/members/7161.cc:
516         Likewise.
517         * testsuite/23_containers/queue/members/7157.cc: Likewise.
518         * testsuite/23_containers/vector/59829.cc: Likewise.
519         * testsuite/23_containers/vector/ext_pointer/types/1.cc:
520         Likewise.
521         * testsuite/23_containers/vector/ext_pointer/types/2.cc:
522         Likewise.
523         * testsuite/23_containers/vector/types/1.cc: Use
524         -Wno-unused-result.
525
526 2021-08-04  Jonathan Wakely  <jwakely@redhat.com>
527
528         * include/bits/iterator_concepts.h (iter_move): Add
529         [[nodiscard]].
530         * include/bits/range_access.h (begin, end, cbegin, cend)
531         (rbegin, rend, crbegin, crend, size, data, ssize): Likewise.
532         * include/bits/ranges_base.h (ranges::begin, ranges::end)
533         (ranges::cbegin, ranges::cend, ranges::rbegin, ranges::rend)
534         (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
535         (ranges::empty, ranges::data, ranges::cdata): Likewise.
536         * include/bits/stl_iterator.h (reverse_iterator, __normal_iterator)
537         (back_insert_iterator, front_insert_iterator, insert_iterator)
538         (move_iterator, move_sentinel, common_iterator)
539         (counted_iterator): Likewise.
540         * include/bits/stl_iterator_base_funcs.h (distance, next, prev):
541         Likewise.
542         * include/bits/stream_iterator.h (istream_iterator)
543         (ostream_iterartor): Likewise.
544         * include/bits/streambuf_iterator.h (istreambuf_iterator)
545         (ostreambuf_iterator): Likewise.
546         * include/std/ranges (views::single, views::iota, views::all)
547         (views::filter, views::transform, views::take, views::take_while)
548         (views::drop, views::drop_while, views::join, views::lazy_split)
549         (views::split, views::counted, views::common, views::reverse)
550         (views::elements): Likewise.
551         * testsuite/20_util/rel_ops.cc: Use -Wno-unused-result.
552         * testsuite/24_iterators/move_iterator/greedy_ops.cc: Likewise.
553         * testsuite/24_iterators/normal_iterator/greedy_ops.cc:
554         Likewise.
555         * testsuite/24_iterators/reverse_iterator/2.cc: Likewise.
556         * testsuite/24_iterators/reverse_iterator/greedy_ops.cc:
557         Likewise.
558         * testsuite/21_strings/basic_string/range_access/char/1.cc:
559         Cast result to void.
560         * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
561         Likewise.
562         * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
563         Likewise.
564         * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
565         Likewise.
566         * testsuite/23_containers/array/range_access.cc: Likewise.
567         * testsuite/23_containers/deque/range_access.cc: Likewise.
568         * testsuite/23_containers/forward_list/range_access.cc:
569         Likewise.
570         * testsuite/23_containers/list/range_access.cc: Likewise.
571         * testsuite/23_containers/map/range_access.cc: Likewise.
572         * testsuite/23_containers/multimap/range_access.cc: Likewise.
573         * testsuite/23_containers/multiset/range_access.cc: Likewise.
574         * testsuite/23_containers/set/range_access.cc: Likewise.
575         * testsuite/23_containers/unordered_map/range_access.cc:
576         Likewise.
577         * testsuite/23_containers/unordered_multimap/range_access.cc:
578         Likewise.
579         * testsuite/23_containers/unordered_multiset/range_access.cc:
580         Likewise.
581         * testsuite/23_containers/unordered_set/range_access.cc:
582         Likewise.
583         * testsuite/23_containers/vector/range_access.cc: Likewise.
584         * testsuite/24_iterators/customization_points/iter_move.cc:
585         Likewise.
586         * testsuite/24_iterators/istream_iterator/sentinel.cc:
587         Likewise.
588         * testsuite/24_iterators/istreambuf_iterator/sentinel.cc:
589         Likewise.
590         * testsuite/24_iterators/move_iterator/dr2061.cc: Likewise.
591         * testsuite/24_iterators/operations/prev_neg.cc: Likewise.
592         * testsuite/24_iterators/ostreambuf_iterator/2.cc: Likewise.
593         * testsuite/24_iterators/range_access/range_access.cc:
594         Likewise.
595         * testsuite/24_iterators/range_operations/100768.cc: Likewise.
596         * testsuite/26_numerics/valarray/range_access2.cc: Likewise.
597         * testsuite/28_regex/range_access.cc: Likewise.
598         * testsuite/experimental/string_view/range_access/char/1.cc:
599         Likewise.
600         * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
601         Likewise.
602         * testsuite/ext/vstring/range_access.cc: Likewise.
603         * testsuite/std/ranges/adaptors/take.cc: Likewise.
604         * testsuite/std/ranges/p2259.cc: Likewise.
605
606 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
607
608         * include/bits/random.tcc (linear_congruential_engine): Do not
609         define static constexpr members when they are implicitly inline.
610         * include/std/ratio (ratio, __ratio_multiply, __ratio_divide)
611         (__ratio_add, __ratio_subtract): Likewise.
612         * include/std/type_traits (integral_constant): Likewise.
613         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
614         line number.
615
616 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
617
618         * testsuite/util/testsuite_common_types.h: Replace uses of
619         tr1::unordered_map and tr1::unordered_set with their C++11
620         equivalents.
621         * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust
622         dg-error line number.
623         * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
624         * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc:
625         Likewise.
626         * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc:
627         Likewise.
628         * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc:
629         Likewise.
630         * testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc:
631         Likewise.
632         * testsuite/29_atomics/atomic_integral/operators/increment_neg.cc:
633         Likewise.
634
635 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
636
637         * include/std/memory_resource (polymorphic_allocator::delete_object):
638         Call destructor directly instead of using destroy.
639         (allocator_traits<polymorphic_allocator<T>>): Define partial
640         specialization.
641
642 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
643
644         * testsuite/20_util/function_objects/binders/3113.cc: Remove
645         trailing whitespace.
646         * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
647         * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
648         * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
649         Likewise.
650         * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
651         * testsuite/25_algorithms/headers/algorithm/synopsis.cc:
652         Likewise.
653         * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
654         Likewise.
655         * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
656         Likewise.
657
658 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
659
660         * doc/xml/manual/evolution.xml: Document deprecation.
661         * doc/html/*: Regenerate.
662         * include/bits/c++config (_GLIBCXX14_DEPRECATED): Define.
663         (_GLIBCXX14_DEPRECATED_SUGGEST): Define.
664         * include/bits/stl_algo.h (random_shuffle): Deprecate for C++14
665         and later.
666         * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Adjust
667         for C++11 and C++14 changes to std::random_shuffle and
668         std::shuffle.
669         * testsuite/25_algorithms/random_shuffle/1.cc: Add options to
670         use deprecated algorithms.
671         * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
672         * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
673         * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
674         Likewise.
675         * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
676         Likewise.
677
678 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
679
680         * testsuite/23_containers/forward_list/operations/3.cc:
681         Use lambda instead of std::bind2nd.
682         * testsuite/20_util/function_objects/binders/3113.cc: Add
683         options for testing deprecated features.
684         * testsuite/20_util/pair/cons/99957.cc: Likewise.
685         * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
686         * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
687         * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
688         Likewise.
689         * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
690         * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
691         * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
692         * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
693         * testsuite/20_util/unique_ptr/cons/auto_ptr.cc: Likewise.
694         * testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc: Likewise.
695         * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
696         Likewise.
697         * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
698         Likewise.
699         * testsuite/lib/dg-options.exp (dg_add_options_using-deprecated):
700         New proc.
701
702 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
703
704         * include/bits/regex_executor.h (_State_info): Replace
705         unique_ptr<bool[]> with array of bool.
706         * include/bits/regex_executor.tcc: Likewise.
707         * include/bits/regex_scanner.tcc: Replace std::strchr with
708         __builtin_strchr.
709         * include/std/regex: Replace standard headers with smaller
710         internal ones.
711         * testsuite/28_regex/traits/char/lookup_classname.cc: Include
712         <string.h> for strlen.
713         * testsuite/28_regex/traits/char/lookup_collatename.cc:
714         Likewise.
715
716 2021-08-03  Jonathan Wakely  <jwakely@redhat.com>
717
718         * include/bits/locale_conv.h (__detail::_Scoped_ptr): Define new
719         RAII class template.
720         (wstring_convert, wbuffer_convert): Use __detail::_Scoped_ptr
721         instead of unique_ptr.
722
723 2021-08-02  Patrick Palka  <ppalka@redhat.com>
724
725         PR libstdc++/101599
726         * include/bits/ranges_algo.h (__reverse_copy_fn::operator()):
727         Add missing std::move in return statement.
728         (__partition_copy_fn::operator()): Rename templtae parameter
729         _O2 to _Out2.  Uglify function parameters out_true and out_false.
730         * include/bits/ranges_algobase.h (__copy_or_move): Add missing
731         std::move to recursive call that unwraps a __normal_iterator
732         output iterator.
733         * testsuite/25_algorithms/copy/constrained.cc (test06): New test.
734         * testsuite/25_algorithms/move/constrained.cc (test05): New test.
735
736 2021-08-02  Patrick Palka  <ppalka@redhat.com>
737
738         PR libstdc++/101589
739         * include/std/ranges (lazy_split_view::_InnerIter::base): Make
740         the const& overload unconstrained and return a const reference
741         as per LWG 3533.  Make unconditionally noexcept.
742         (elements_view::base): Revert accidental r12-569 change.
743         (elements_view::_Iterator::base): Make the const& overload
744         unconstrained and return a const reference as per LWG 3533.
745         Make unconditionally noexcept.
746
747 2021-08-02  Patrick Palka  <ppalka@redhat.com>
748
749         PR libstdc++/101483
750         * include/std/ranges (join_view::_Iterator::_Iterator): Add
751         missing std::move.
752
753 2021-08-02  Jonathan Wakely  <jwakely@redhat.com>
754
755         PR libstdc++/101709
756         * src/filesystem/ops-common.h (get_temp_directory_from_env):
757         Add error_code parameter.
758         * src/c++17/fs_ops.cc (fs::temp_directory_path): Pass error_code
759         argument to get_temp_directory_from_env and check it.
760         * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
761
762 2021-08-02  Jonathan Wakely  <jwakely@redhat.com>
763
764         * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
765         Add dg-error for c++11_only target.
766
767 2021-07-30  Jonathan Wakely  <jwakely@redhat.com>
768
769         PR libstdc++/65018
770         * configure.ac: Check for secure_getenv.
771         * config.h.in: Regenerate.
772         * configure: Regenerate.
773         * src/filesystem/ops-common.h (get_temp_directory_from_env): New
774         helper function to obtain path from the environment.
775         * src/c++17/fs_ops.cc (fs::temp_directory_path): Use new helper.
776         * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
777         * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
778         Print messages if test cannot be run.
779         * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
780         Likewise. Fix incorrect condition. Use "TMP" to work with
781         Windows as well as POSIX.
782
783 2021-07-29  Hans-Peter Nilsson  <hp@bitrange.com>
784
785         * src/c++17/memory_resource.cc: Use __exchange instead
786         of std::exchange.
787
788 2021-07-27  Jonathan Wakely  <jwakely@redhat.com>
789
790         * include/experimental/optional (__throw_bad_optional_access):
791         Replace GNU attribute with C++11 attribute.
792         (optional::value, optional::value_or): Use if statements
793         instead of conditional expressions.
794         * include/std/optional (__throw_bad_optional_access)
795         (optional::value, optional::value_or): Likewise.
796
797 2021-07-27  Marek Polacek  <polacek@redhat.com>
798
799         DR 1512
800         PR c++/99701
801         * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
802         Move a line...
803         * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
804         ...here.  New test.
805
806 2021-07-27  Jonathan Wakely  <jwakely@redhat.com>
807
808         * include/bits/cow_string.h: Consistently use tab for
809         indentation.
810
811 2021-07-27  Jonathan Wakely  <jwakely@redhat.com>
812
813         * include/Makefile.am: Add new header.
814         * include/Makefile.in: Regenerate.
815         * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
816         (basic_string): Move definition of Copy-on-Write string to
817         new file.
818         * include/bits/basic_string.tcc: Likewise.
819         * include/bits/cow_string.h: New file.
820
821 2021-07-27  Jonathan Wakely  <jwakely@redhat.com>
822
823         * include/std/algorithm: Do not include <utility>.
824         * include/std/functional: Likewise.
825         * include/std/regex: Include <bits/stl_pair.h> instead of
826         <utility>.
827         * include/debug/map.h: Likewise.
828         * include/debug/multimap.h: Likewise.
829         * include/debug/multiset.h: Likewise.
830         * include/debug/set.h: Likewise.
831         * include/debug/vector: Likewise.
832         * include/bits/fs_path.h: Likewise.
833         * include/bits/unique_ptr.h: Do not include <utility>.
834         * include/experimental/any: Likewise.
835         * include/experimental/executor: Likewise.
836         * include/experimental/memory: Likewise.
837         * include/experimental/optional: Likewise.
838         * include/experimental/socket: Use __exchange instead
839         of std::exchange.
840         * src/filesystem/ops-common.h: Likewise.
841         * testsuite/20_util/default_delete/48631_neg.cc: Adjust expected
842         errors to not use a hardcoded line number.
843         * testsuite/20_util/default_delete/void_neg.cc: Likewise.
844         * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
845         Include <utility> for std::as_const.
846         * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc:
847         Likewise.
848         * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
849         Likewise.
850         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc:
851         Likewise.
852         * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
853         Adjust dg-error line number.
854
855 2021-07-27  Jonathan Wakely  <jwakely@redhat.com>
856
857         * include/Makefile.am: Add bits/utility.h header.
858         * include/Makefile.in: Regenerate.
859         * include/bits/utility.h: New file.
860         * include/std/utility (tuple_size, tuple_element): Move
861         to new header.
862         * include/std/type_traits (__is_tuple_like_impl<tuple<T...>>):
863         Move to <tuple>.
864         (_Index_tuple, _Build_index_tuple, integer_sequence): Likewise.
865         (in_place_t, in_place_index_t, in_place_type_t): Likewise.
866         * include/bits/ranges_util.h: Include new header instead of
867         <utility>.
868         * include/bits/stl_pair.h (tuple_size, tuple_element): Move
869         partial specializations for std::pair here.
870         (get): Move overloads for std::pair here.
871         * include/std/any: Include new header instead of <utility>.
872         * include/std/array: Likewise.
873         * include/std/memory_resource: Likewise.
874         * include/std/optional: Likewise.
875         * include/std/variant: Likewise.
876         * include/std/tuple: Likewise.
877         (__is_tuple_like_impl<tuple<T...>>): Move here.
878         (get) Declare overloads for std::array.
879         * include/std/version (__cpp_lib_tuples_by_type): Change type
880         to long.
881         * testsuite/20_util/optional/84601.cc: Include <utility>.
882         * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc:
883         Likewise.
884         * testsuite/23_containers/array/tuple_interface/get_neg.cc:
885         Adjust dg-error line numbers.
886         * testsuite/std/ranges/access/cbegin.cc: Include <utility>.
887         * testsuite/std/ranges/access/cend.cc: Likewise.
888         * testsuite/std/ranges/access/end.cc: Likewise.
889         * testsuite/std/ranges/single_view.cc: Likewise.
890
891 2021-07-23  Jonathan Wakely  <jwakely@redhat.com>
892
893         * include/std/future: Include <bits/atomic_base.h> instead of
894         <atomic>.
895
896 2021-07-23  Jonathan Wakely  <jwakely@redhat.com>
897
898         * include/bits/stl_relops.h: Update documentation comments.
899
900 2021-07-22  Jonathan Wakely  <jwakely@redhat.com>
901
902         PR libstdc++/101583
903         * include/bits/hashtable.h (_Hashtable): Replace mixin with
904         _Enable_default_ctor. Construct it explicitly in all
905         non-forwarding, non-defaulted constructors.
906         * testsuite/23_containers/unordered_map/cons/default.cc: Check
907         non-default constructors can be used.
908         * testsuite/23_containers/unordered_set/cons/default.cc:
909         Likewise.
910
911 2021-07-22  David Edelsohn  <dje.gcc@gmail.com>
912
913         * config/os/aix/os_defines.h (__LIBC_NO_CPP_MATH_OVERLOADS__): Define.
914
915 2021-07-22  Jonathan Wakely  <jwakely@redhat.com>
916
917         PR libstdc++/94295
918         * include/ext/new_allocator.h (_GLIBCXX_OPERATOR_NEW)
919         (_GLIBCXX_OPERATOR_DELETE, _GLIBCXX_SIZED_DEALLOC): Define.
920         (allocator::allocate, allocator::deallocate): Use new macros.
921
922 2021-07-22  Jonathan Wakely  <jwakely@redhat.com>
923
924         PR libstdc++/101571
925         * include/bits/ranges_uninitialized.h (_DestroyGuard): Change
926         constructor parameter to reference and use addressof.
927         * testsuite/util/testsuite_iterators.h: Define deleted operator&
928         overloads for test iterators.
929
930 2021-07-22  Jonathan Wakely  <jwakely@redhat.com>
931
932         * include/bits/std_function.h (_Function_base): Add
933         default member initializers and define constructor as defaulted.
934         (function::_M_invoker): Add default member initializer.
935
936 2021-07-22  Jonathan Wakely  <jwakely@redhat.com>
937
938         PR libstdc++/100682
939         * doc/xml/manual/debug_mode.xml: Update documentation about
940         debug capability of std::array.
941         * doc/html/*: Regenerate.
942         * include/debug/array: New file.
943
944 2021-07-21  Jonathan Wakely  <jwakely@redhat.com>
945
946         PR libstdc++/101542
947         * include/ext/rope (sequence_buffer): Add move constructor and
948         move assignment operator.
949         * testsuite/ext/rope/101542.cc: New test.
950
951 2021-07-20  Jonathan Wakely  <jwakely@redhat.com>
952
953         PR libstdc++/101510
954         * src/c++17/fs_ops.cc (fs::create_directories): Use status
955         instead of symlink_status.
956         * src/filesystem/ops.cc (fs::create_directories): Likewise.
957         * testsuite/27_io/filesystem/operations/create_directories.cc:
958         Check symlink to existing directory.
959         * testsuite/27_io/filesystem/operations/create_directory.cc: Do
960         not test with symlinks on Windows.
961         * testsuite/experimental/filesystem/operations/create_directories.cc:
962         Check symlink to existing directory.
963         * testsuite/experimental/filesystem/operations/create_directory.cc:
964         Do not test with symlinks on Windows.
965
966 2021-07-20  Jonathan Wakely  <jwakely@redhat.com>
967
968         PR libstdc++/100863
969         * include/bits/hashtable.h (_Hashtable): Conditionally delete
970         default constructor by deriving from _Enable_special_members.
971         * testsuite/23_containers/unordered_map/cons/default.cc: New test.
972         * testsuite/23_containers/unordered_set/cons/default.cc: New test.
973
974 2021-07-20  Jonathan Wakely  <jwakely@redhat.com>
975
976         PR libstdc++/101510
977         * src/c++17/fs_ops.cc (create_dir): Adjust whitespace.
978         * testsuite/27_io/filesystem/operations/create_directory.cc:
979         Test creating directory with name of existing symlink to
980         directory.
981         * testsuite/experimental/filesystem/operations/create_directory.cc:
982         Likewise.
983
984 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
985
986         * include/std/tuple (get<I>): Add deleted overload for bad
987         index.
988         * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
989         expected errors.
990
991 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
992
993         * include/bits/max_size_type.h (numeric_limits<__max_size_type>):
994         Use __int_traits unconditionally.
995
996 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
997
998         * include/bits/random.h (_Shift::__value): Use constexpr.
999         (_Select_uint_least_t::type): Use using-declaration.
1000         (_Mod): Likewise.
1001         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1002         line number.
1003
1004 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
1005
1006         * include/bits/cpp_type_traits.h (__INT_N): Use __extension__
1007         instead of diagnostic pragmas.
1008         * include/bits/functional_hash.h: Likewise.
1009         * include/bits/iterator_concepts.h (__is_signed_int128)
1010         (__is_unsigned_int128): Likewise.
1011         * include/bits/max_size_type.h (__max_size_type): Likewise.
1012         (numeric_limits<__max_size_type>): Likewise.
1013         * include/bits/std_abs.h (abs): Likewise.
1014         * include/bits/stl_algobase.h (__size_to_integer): Likewise.
1015         * include/bits/uniform_int_dist.h (uniform_int_distribution):
1016         Likewise.
1017         * include/ext/numeric_traits.h (_GLIBCXX_INT_N_TRAITS):
1018         Likewise.
1019         * include/std/type_traits (__is_integral_helper<INT_N>)
1020         (__is_signed_integer, __is_unsigned_integer)
1021         (__make_unsigned<INT_N>, __make_signed<INT_N>): Likewise.
1022         * include/std/limits (__INT_N): Add __extension__ keyword.
1023         * include/bits/random.h (_Select_uint_least_t)
1024         (random_device): Likewise.
1025
1026 2021-07-16  Patrick Palka  <ppalka@redhat.com>
1027
1028         PR libstdc++/101231
1029         * include/std/ranges (_CachedPosition::_M_get): For non-forward
1030         ranges, just call __builtin_unreachable.
1031         * testsuite/std/ranges/istream_view.cc (test05): New test.
1032
1033 2021-07-16  Patrick Palka  <ppalka@redhat.com>
1034
1035         PR libstdc++/101214
1036         * include/std/ranges (split_view::split_view): Use std::move.
1037         (split_view::_Iterator::_Iterator): Remove redundant
1038         default_initializable constraint.
1039         (split_view::_Sentinel::_Sentinel): Declare.
1040         * testsuite/std/ranges/adaptors/split.cc (test02): New test.
1041
1042 2021-07-16  Marek Polacek  <polacek@redhat.com>
1043
1044         * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Add
1045         dg-error.
1046
1047 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
1048
1049         * include/bits/unique_ptr.h: Adjust doxygen markup.
1050
1051 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
1052
1053         PR libstdc++/101307
1054         * include/std/type_traits: Adjust doxygen markup.
1055
1056 2021-07-16  Jonathan Wakely  <jwakely@redhat.com>
1057
1058         * include/bits/cpp_type_traits.h: Add diagnostic pragmas around
1059         uses of non-standard integer types.
1060         * include/bits/functional_hash.h: Likewise.
1061         * include/bits/iterator_concepts.h: Likewise.
1062         * include/bits/max_size_type.h: Likewise.
1063         * include/bits/std_abs.h: Likewise.
1064         * include/bits/stl_algobase.h: Likewise.
1065         * include/bits/uniform_int_dist.h: Likewise.
1066         * include/ext/numeric_traits.h: Likewise.
1067         * include/std/type_traits: Likewise.
1068
1069 2021-07-15  Jonathan Wakely  <jwakely@redhat.com>
1070
1071         PR libstdc++/101427
1072         * include/std/tuple (tuple_element): Improve static_assert text.
1073         (__get_helper): Add deleted overload.
1074         (get<i>(tuple<T...>&&), get<i>(const tuple<T...>&&)): Use
1075         __get_helper directly.
1076         (__get_helper2): Remove.
1077         (__find_uniq_type_in_pack): New constexpr helper function.
1078         (get<T>): Use __find_uniq_type_in_pack and __get_helper instead
1079         of __get_helper2.
1080         * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
1081         expected errors.
1082         * testsuite/20_util/tuple/element_access/101427.cc: New test.
1083
1084 2021-07-15  Jonathan Wakely  <jwakely@redhat.com>
1085
1086         PR libstdc++/101429
1087         * include/bits/c++config (__replacement_assert): Add noexcept.
1088         [!_GLIBCXX_VERBOSE] (__glibcxx_assert_impl): Use __builtin_abort
1089         instead of __replacement_assert.
1090
1091 2021-07-14  Jonathan Wakely  <jwakely@redhat.com>
1092
1093         * include/std/string_view (basic_string_view(It, End)): Add
1094         noexcept-specifier.
1095         * testsuite/21_strings/basic_string_view/cons/char/range.cc:
1096         Check noexcept-specifier. Also check construction without CTAD.
1097
1098 2021-07-13  Jonathan Wakely  <jwakely@redhat.com>
1099
1100         PR c++/101361
1101         * include/std/string_view (ends_with): Use traits_type::compare
1102         directly.
1103
1104 2021-07-13  Jonathan Wakely  <jwakely@redhat.com>
1105
1106         * include/std/string_view: Only include <bits/ranges_base.h>
1107         once, and only for C++20 and later.
1108
1109 2021-07-12  Jonathan Wakely  <jwakely@redhat.com>
1110
1111         PR libstdc++/101411
1112         * include/std/span (as_writable_bytes): Add requires-clause.
1113         * testsuite/23_containers/span/101411.cc: New test.
1114
1115 2021-07-09  Matheus Castanho  <msc@linux.ibm.com>
1116
1117         * include/std/mutex (__lock_impl): Check
1118         _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
1119
1120 2021-07-02  Jonathan Wakely  <jwakely@redhat.com>
1121
1122         PR libstdc++/101271
1123         * include/bits/unique_ptr.h (unique_ptr<T[],D>::operator[]):
1124         Remove noexcept-specifier.
1125         (unique_ptr<T[],D>::_S_nothrow_deref): Remove.
1126         * testsuite/20_util/unique_ptr/lwg2762.cc: Remove checks for
1127         operator[].
1128
1129 2021-07-01  Jonathan Wakely  <jwakely@redhat.com>
1130
1131         * doc/doxygen/doxygroups.cc: Fix docs for std::literals.
1132         * doc/doxygen/user.cfg.in: Exclude the Networking TS header.
1133         Add some more predefined macros.
1134         * include/bits/fs_fwd.h: Move @addtogroup commands inside
1135         namespaces. Add better documentation.
1136         * include/bits/fs_path.h: Likewise.
1137         * include/experimental/bits/fs_fwd.h: Likewise.
1138         * include/experimental/bits/fs_path.h: Likewise.
1139         * include/ext/throw_allocator.h: Fix typo and improve docs.
1140         * include/std/chrono: Move @addtogroup commands.
1141         * include/std/system_error: Move @addtogroup commands.
1142         * libsupc++/exception: Improve documentation.
1143         * libsupc++/exception.h: Add @since documentation.
1144
1145 2021-06-30  Jonathan Wakely  <jwakely@redhat.com>
1146
1147         PR libstdc++/101258
1148         * doc/doxygen/user.cfg.in (INPUT): Add <experimental/simd>.
1149         (COLS_IN_ALPHA_INDEX): Remove obsolete tag.
1150         (PREDEFINED): Add/fix some more macros that need to be expanded.
1151         * include/bits/random.h: Stop Doxygen from documenting internal
1152         implementation details.
1153         * include/bits/random.tcc: Likewise.
1154         * include/bits/this_thread_sleep.h: Fix @file name.
1155         * include/experimental/bits/simd.h: Add to Doxygen group. Do not
1156         document internal implementation details.
1157         * include/experimental/bits/simd_detail.h: Do not document
1158         internal implementation details.
1159         * include/experimental/simd: Define Doxygen groups.
1160         * include/experimental/type_traits: Improve documentation for
1161         the header file. Define groups. Use @since commands.
1162         * include/std/scoped_allocator (scoped_allocator_adaptor): Move
1163         declaration before undocumented region.
1164         * include/std/type_traits (true_type, false_type): Use using
1165         declaration instead of typedef.
1166         (is_invocable_v, is_nothrow_invocable_v, is_invocable_r_v)
1167         (is_nothrow_invocable_r_v): Move definitions next to other C++17
1168         variable templates.
1169         Do not document internal implementation details. Move misplaced
1170         group-end command. Define group for variable templates.
1171         * include/std/variant: Do not document internal implementation
1172         details.
1173         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1174         line number.
1175
1176 2021-06-30  Jonathan Wakely  <jwakely@redhat.com>
1177
1178         * include/experimental/simd: Do not define anything pre-C++17.
1179
1180 2021-06-30  Jonathan Wakely  <jwakely@redhat.com>
1181
1182         * include/bits/random.tcc [__cpp_inline_variables]: Remove
1183         redundant definitions of static constexpr member variables.
1184         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1185         line number.
1186
1187 2021-06-28  Jonathan Wakely  <jwakely@redhat.com>
1188
1189         * include/bits/streambuf.tcc (__copy_streambufs_eof): Remove
1190         explicit instantiation declarations.
1191         * src/c++11/streambuf-inst.cc (__copy_streambufs_eof): Remove
1192         explicit instantiation definitions.
1193
1194 2021-06-28  Jonathan Wakely  <jwakely@redhat.com>
1195
1196         PR libstdc++/97088
1197         * testsuite/17_intro/names.cc: Fix #if condition for names used
1198         by newlib headers.
1199
1200 2021-06-28  Jonathan Wakely  <jwakely@redhat.com>
1201
1202         PR libstdc++/101236
1203         * include/bits/unique_ptr.h (unique_ptr<T[], D>::operator[]):
1204         Fail gracefully if element_type is incomplete.
1205         * testsuite/20_util/unique_ptr/cons/incomplete.cc: Clarify that
1206         the standard doesn't require this test to work for array types.
1207         * testsuite/20_util/unique_ptr/lwg2762.cc: Check that incomplete
1208         types can be used with array specialization.
1209         * testsuite/20_util/unique_ptr/101236.cc: New test.
1210
1211 2021-06-28  Jonathan Wakely  <jwakely@redhat.com>
1212
1213         * doc/xml/manual/intro.xml: Document LWG 415 change.
1214         * doc/html/manual/bugs.html: Regenerate.
1215         * include/bits/istream.tcc (ws): Create sentry and catch
1216         exceptions.
1217         * testsuite/27_io/basic_istream/ws/char/lwg415.cc: New test.
1218         * testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc: New test.
1219
1220 2021-06-25  Jonathan Wakely  <jwakely@redhat.com>
1221
1222         * include/bits/ostream.tcc (basic_ostream::write): Call sputn
1223         directly instead of using _M_write. Do setstate(__err) all
1224         outside the try-catch block.
1225         * include/std/ostream (basic_ostream::_M_write): Declare
1226         private. Use __ostream_insert. Do not define for the versioned
1227         namespace.
1228
1229 2021-06-25  Jonathan Wakely  <jwakely@redhat.com>
1230
1231         * doc/xml/manual/intro.xml: Document LWG 581 change.
1232         * doc/html/manual/bugs.html: Regenerate.
1233         * include/bits/basic_ios.tcc: Whitespace.
1234         * include/bits/ostream.tcc (basic_ostream::flush()): Construct
1235         sentry.
1236         * testsuite/27_io/basic_ostream/flush/char/2.cc: Check
1237         additional cases.
1238         * testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc:
1239         Likewise.
1240         * testsuite/27_io/basic_ostream/flush/wchar_t/2.cc: Likewise.
1241         * testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc:
1242         Likewise.
1243
1244 2021-06-25  Jonathan Wakely  <jwakely@redhat.com>
1245
1246         * include/bits/ostream.tcc (sentry): Only set failbit if badbit
1247         is set, not if eofbit is set.
1248         (tellp, seekp, seekp): Create sentry object. Do not set badbit
1249         on exceptions.
1250         * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc:
1251         Adjust expected behaviour.
1252         * testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc:
1253         Likewise.
1254         * testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc:
1255         Likewise.
1256         * testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc:
1257         Likewise.
1258         * testsuite/27_io/basic_ostream/seekp/char/n3168.cc: New test.
1259         * testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc: New test.
1260         * testsuite/27_io/basic_ostream/tellp/char/n3168.cc: New test.
1261         * testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc: New test.
1262
1263 2021-06-25  Jonathan Wakely  <jwakely@redhat.com>
1264
1265         * include/std/syncstream (basic_syncbuf::swap()): Remove
1266         noexcept, as per LWG 3498.
1267
1268 2021-06-25  Jonathan Wakely  <jwakely@redhat.com>
1269
1270         PR libstdc++/97088
1271         * testsuite/17_intro/names.cc: Undef more names for newlib and
1272         also for arm-none-linux-gnueabi.
1273         * testsuite/experimental/names.cc: Disable PCH.
1274
1275 2021-06-25  Matthias Kretz  <m.kretz@gsi.de>
1276
1277         * include/experimental/bits/simd.h (__bit_cast): Implement via
1278         __builtin_bit_cast #if available.
1279         (__proposed::simd_bit_cast): Add overloads for simd and
1280         simd_mask, which use __builtin_bit_cast (or __bit_cast #if not
1281         available), which return an object of the requested type with
1282         the same bits as the argument.
1283         * include/experimental/bits/simd_math.h: Use simd_bit_cast
1284         instead of __bit_cast to allow casts to fixed_size_simd.
1285         (copysign): Remove branch that was only required if __bit_cast
1286         cannot be constexpr.
1287         * testsuite/experimental/simd/tests/bits/test_values.h: Switch
1288         from __bit_cast to __proposed::simd_bit_cast since the former
1289         will not cast fixed_size objects anymore.
1290
1291 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
1292
1293         * include/experimental/bits/simd_math.h
1294         (_GLIBCXX_SIMD_MATH_CALL2_): Rename arg2_ to __arg2.
1295         (_GLIBCXX_SIMD_MATH_CALL3_): Rename arg2_ to __arg2 and arg3_ to
1296         __arg3.
1297
1298 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
1299
1300         * include/experimental/bits/simd.h (__execute_on_index_sequence)
1301         (__execute_on_index_sequence_with_return)
1302         (__call_with_n_evaluations, __call_with_subscripts): Add flatten
1303         attribute.
1304
1305 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
1306
1307         * include/experimental/bits/simd_x86.h (_S_trunc, _S_floor)
1308         (_S_ceil): Set bit 8 (_MM_FROUND_NO_EXC) on AVX and SSE4.1
1309         roundp[sd] calls.
1310
1311 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
1312
1313         * include/experimental/bits/simd_x86.h (_S_ldexp): The AVX512F
1314         implementation doesn't require a _VecBltnBtmsk ABI tag, it
1315         requires either a 64-Byte input (in which case AVX512F must be
1316         available) or AVX512VL.
1317
1318 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
1319
1320         * include/experimental/bits/simd_math.h: Undefine internal
1321         macros after use.
1322         (frexp): Move #if to a more sensible position and reformat
1323         preceding code.
1324         (logb): Call _SimdImpl::_S_logb for fixed_size instead of
1325         duplicating the code here.
1326         (modf): Simplify condition.
1327
1328 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
1329
1330         * include/experimental/bits/simd_math.h (fabs): Remove
1331         fabs(simd<integral>) overload.
1332
1333 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
1334
1335         * include/experimental/bits/simd_converter.h
1336         (_SimdConverter::operator()): Pass _SimdTuple by const-ref.
1337         * include/experimental/bits/simd_fixed_size.h
1338         (_GLIBCXX_SIMD_FIXED_OP): Pass binary operator _SimdTuple
1339         arguments by const-ref.
1340         (_S_masked_unary): Pass _SimdTuple by const-ref.
1341
1342 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
1343
1344         * include/experimental/bits/simd_fixed_size.h
1345         (_AbisInSimdTuple): Removed.
1346
1347 2021-06-24  Matthias Kretz  <m.kretz@gsi.de>
1348
1349         * include/experimental/bits/simd.h: Add missing operator~
1350         overload for simd<floating-point> to __float_bitwise_operators.
1351         * include/experimental/bits/simd_builtin.h
1352         (_SimdImplBuiltin::_S_complement): Bitcast to int (and back) to
1353         implement complement for floating-point vectors.
1354         * include/experimental/bits/simd_fixed_size.h
1355         (_SimdImplFixedSize::_S_copysign): New function, forwarding to
1356         copysign implementation of _SimdTuple members.
1357         * include/experimental/bits/simd_math.h (copysign): Call
1358         _SimdImpl::_S_copysign for fixed_size arguments. Simplify
1359         generic copysign implementation using the new ~ operator.
1360
1361 2021-06-24  Jonathan Wakely  <jwakely@redhat.com>
1362
1363         * testsuite/experimental/simd/README.md: Fix typos.
1364
1365 2021-06-24  Jonathan Wakely  <jwakely@redhat.com>
1366
1367         * include/bits/shared_ptr_base.h (__shared_ptr_access::operator[]):
1368         Add noexcept.
1369         * include/bits/unique_ptr.h (unique_ptr::operator*): Add
1370         conditional noexcept as per LWG 2762.
1371         * testsuite/20_util/shared_ptr/observers/array.cc: Check that
1372         dereferencing cannot throw.
1373         * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
1374         * testsuite/20_util/optional/observers/lwg2762.cc: New test.
1375         * testsuite/20_util/unique_ptr/lwg2762.cc: New test.
1376
1377 2021-06-23  Patrick Palka  <ppalka@redhat.com>
1378
1379         PR c++/101174
1380         * testsuite/23_containers/multiset/cons/deduction.cc:
1381         Uncomment CTAD example that was rejected by this bug.
1382         * testsuite/23_containers/set/cons/deduction.cc: Likewise.
1383
1384 2021-06-23  Jonathan Wakely  <jwakely@redhat.com>
1385
1386         * include/std/chrono (chrono::year::is_leap()): Fix incorrect
1387         logic in comment.
1388
1389 2021-06-23  Matthias Kretz  <m.kretz@gsi.de>
1390
1391         * testsuite/experimental/simd/README.md: New file.
1392
1393 2021-06-23  Matthias Kretz  <m.kretz@gsi.de>
1394
1395         * testsuite/experimental/simd/driver.sh: Rewrite output
1396         verbosity logic. Add -p/--percentage option. Allow -v/--verbose
1397         to be used twice. Add -x and -o short options. Parse long
1398         options with = instead of separating space generically. Parce
1399         contracted short options. Make unrecognized options an error.
1400         If same-line output is active, trap on EXIT to increment the
1401         progress (only with --percentage), erase the line and print the
1402         current status.
1403         * testsuite/experimental/simd/generate_makefile.sh: Initialize
1404         helper files for progress account keeping. Update help target
1405         for changes to DRIVEROPTS.
1406
1407 2021-06-23  Matthias Kretz  <m.kretz@gsi.de>
1408
1409         * testsuite/Makefile.am (check-simd): Remove -fno-tree-vrp flag
1410         and associated warning.
1411         * testsuite/Makefile.in: Regenerate.
1412
1413 2021-06-23  Cassio Neri  <cassio.neri@gmail.com>
1414             Jonathan Wakely  <jwakely@redhat.com>
1415             Ulrich Drepper  <drepper@redhat.com>
1416
1417         * include/std/chrono (chrono::year::is_leap()): Optimize.
1418
1419 2021-06-23  Patrick Palka  <ppalka@redhat.com>
1420
1421         PR c++/86439
1422         * testsuite/23_containers/map/cons/deduction.cc: Replace ambiguous
1423         CTAD examples.
1424         * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
1425         * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
1426         Mention one of the replaced examples is broken due to PR101174.
1427         * testsuite/23_containers/set/cons/deduction.cc: Likewise.
1428         * testsuite/23_containers/unordered_map/cons/deduction.cc: Replace
1429         ambiguous CTAD examples.
1430         * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
1431         Likewise.
1432         * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
1433         Likewise.
1434         * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
1435
1436 2021-06-23  Jonathan Wakely  <jwakely@redhat.com>
1437
1438         * include/std/mutex (__detail::__try_lock_impl): Rename
1439         parameter to avoid clashing with newlib's __lockable macro.
1440         (try_lock): Add 'inline' specifier.
1441         * testsuite/17_intro/names.cc: Add check for __lockable.
1442         * testsuite/30_threads/try_lock/5.cc: Add options for pthreads.
1443
1444 2021-06-22  Jonathan Wakely  <jwakely@redhat.com>
1445             Matthias Kretz  <m.kretz@gsi.de>
1446
1447         * include/std/mutex (lock): Replace recursion with iteration
1448         when lockables all have the same type.
1449         (__detail::__try_lock_impl): Likewise. Pass lockables as
1450         parameters, instead of a tuple. Always lock the first one, and
1451         recurse for the rest.
1452         (__detail::__lock_impl): Adjust call to __try_lock_impl.
1453         (__detail::__try_to_lock): Remove.
1454         * testsuite/30_threads/lock/3.cc: Check that mutexes are locked.
1455         * testsuite/30_threads/lock/4.cc: Also test non-heterogeneous
1456         arguments.
1457         * testsuite/30_threads/unique_lock/cons/60497.cc: Also check
1458         std::try_lock.
1459         * testsuite/30_threads/try_lock/5.cc: New test.
1460
1461 2021-06-22  Jonathan Wakely  <jwakely@redhat.com>
1462
1463         * include/std/memory (declare_reachable, undeclare_reachable)
1464         (declare_no_pointers, undeclare_no_pointers, get_pointer_safety)
1465         (pointer_safety): Only define for C++11 to C++20 inclusive.
1466         * testsuite/20_util/pointer_safety/1.cc: Do not run for C++23.
1467
1468 2021-06-22  Jonathan Wakely  <jwakely@redhat.com>
1469
1470         * include/bits/random.h (seed_seq): Constrain initializer-list
1471         constructor.
1472         * include/bits/random.tcc (seed_seq): Add template parameter.
1473         * testsuite/26_numerics/random/seed_seq/cons/default.cc: Check
1474         for noexcept.
1475         * testsuite/26_numerics/random/seed_seq/cons/initlist.cc: Check
1476         constraints.
1477
1478 2021-06-22  Thomas Rodgers  <rodgert@appliantology.com>
1479
1480         PR libstdc++/100806
1481         * include/bits/semaphore_base.h (__atomic_semaphore::_M_release):
1482         Force _M_release() to wake all waiting threads.
1483         * testsuite/30_threads/semaphore/100806.cc: New test.
1484
1485 2021-06-21  Jonathan Wakely  <jwakely@redhat.com>
1486
1487         * include/std/mutex (__try_to_lock): Move to __detail namespace.
1488         (struct __try_lock_impl): Replace with ...
1489         (__detail::__try_lock_impl<Idx>(tuple<Lockables...>&)): New
1490         function templates to implement std::try_lock.
1491         (try_lock): Use new __try_lock_impl.
1492         (__detail::__lock_impl(int, int&, L0&, L1&...)): New function
1493         template to implement std::lock.
1494         (lock): Use __lock_impl.
1495
1496 2021-06-21  Patrick Palka  <ppalka@redhat.com>
1497
1498         * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
1499
1500 2021-06-20  Patrick Palka  <ppalka@redhat.com>
1501
1502         * include/std/ranges (__non_propagating_cache::operator bool):
1503         Define for split_view::begin().
1504         (split_view): Define as per P2210.
1505         (views::__detail::__can_split_view): Define.
1506         (views::_Split, views::split): Define.
1507         * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
1508         Test views::split.
1509         * testsuite/std/ranges/adaptors/split.cc: New test.
1510         * testsuite/std/ranges/p2325.cc (test08a): New test.
1511         * testsuite/std/ranges/p2367.cc (test01): Test views::split.
1512
1513 2021-06-20  Patrick Palka  <ppalka@redhat.com>
1514
1515         * include/std/ranges: Rename views::split to views::lazy_split,
1516         split_view to lazy_split_view, etc. throughout.
1517         * testsuite/std/ranges/*: Likewise.
1518         * testsuite/std/ranges/adaptors/lazy_split.cc: New file.
1519         * testsuite/std/ranges/adaptors/lazy_split_neg.cc: New file.
1520
1521 2021-06-20  Patrick Palka  <ppalka@redhat.com>
1522
1523         * include/std/ranges (split_view::_OuterIter::__at_end):
1524         Check _M_trailing_empty.
1525         (split_view::_OuterIter::_M_trailing_empty): Define this
1526         data member.
1527         (split_view::_OuterIter::operator++): Set _M_trailing_empty
1528         appropriately.
1529         (split_view::_OuterIter::operator==): Compare
1530         _M_trailing_empty.
1531         * testsuite/std/ranges/adaptors/100479.cc (test03): Expect two
1532         split parts instead of one.
1533         * testsuite/std/ranges/adaptors/split.cc (test11): New test.
1534
1535 2021-06-20  Patrick Palka  <ppalka@redhat.com>
1536
1537         * include/std/ranges (split_view::_InnerIter::base): Define as
1538         per P2210.
1539
1540 2021-06-19  Patrick Palka  <ppalka@redhat.com>
1541
1542         * include/std/ranges (transform_view::_Iterator::_S_iter_concept):
1543         Consider _Base instead of _Vp as per LWG 3555.
1544         (elements_view::_Iterator::_S_iter_concept): Likewise.
1545
1546 2021-06-19  Patrick Palka  <ppalka@redhat.com>
1547
1548         * include/std/ranges (split_view::_OuterIter::value_type::begin):
1549         Remove the non-const overload, and remove the copyable constraint
1550         on the const overload as per LWG 3553.
1551
1552 2021-06-19  Patrick Palka  <ppalka@redhat.com>
1553
1554         * include/bits/stl_iterator.h
1555         (__detail::__common_iter_use_postfix_proxy): Add
1556         move_constructible constraint as per LWG 3546.
1557         (common_iterator::__postfix_proxy): Adjust initializer of
1558         _M_keep as per LWG 3546.
1559
1560 2021-06-18  Patrick Palka  <ppalka@redhat.com>
1561
1562         PR libstdc++/100387
1563         * include/bits/ranges_algo.h (__minmax_fn::operator()): Rewrite
1564         to limit comparison complexity to 3*N/2.
1565         (__minmax_element_fn::operator()): Likewise.
1566         (shift_right): Avoid premature std::move of __result.
1567         * testsuite/25_algorithms/minmax/constrained.cc (test04, test05):
1568         New tests.
1569         * testsuite/25_algorithms/minmax_element/constrained.cc (test02):
1570         Likewise.
1571
1572 2021-06-18  Patrick Palka  <ppalka@redhat.com>
1573
1574         * include/std/concepts (convertible_to): Just use declval as per
1575         LWG 3557.
1576
1577 2021-06-18  Jonathan Wakely  <jwakely@redhat.com>
1578
1579         PR libstdc++/95833
1580         * include/std/numeric (reduce(Iter, Iter, T, BinaryOp)): Replace
1581         incorrect static_assert with ones matching the 'Mandates'
1582         conditions in the standard.
1583         * testsuite/26_numerics/reduce/95833.cc: New test.
1584
1585 2021-06-18  Jonathan Wakely  <jwakely@redhat.com>
1586
1587         * testsuite/21_strings/basic_string/cons/char/1.cc: Use
1588         diagnostic pragma to suppress -Wstringop-overread error.
1589
1590 2021-06-18  Patrick Palka  <ppalka@redhat.com>
1591
1592         * include/bits/ranges_algo.h (__find_fn, find, __find_if_fn)
1593         (find_if, __find_if_not_fn, find_if_not, _in_in_result)
1594         (__mismatch_fn, mismatch, __search_fn, search): Move to ...
1595         * include/bits/ranges_util.h: ... here.
1596         * include/std/ranges (__detail::find, __detail::find_if)
1597         (__detail::find_if_not, __detail::mismatch): Remove.
1598         (filter_view): Use ranges::find_if instead.
1599         (drop_while_view): Use ranges::find_if_not instead.
1600         (split_view): Use ranges::find and ranges::mismatch instead.
1601
1602 2021-06-18  Patrick Palka  <ppalka@redhat.com>
1603
1604         * include/bits/iterator_concepts.h (weakly_incrementable): Remove
1605         default_initializable requirement.
1606         * include/bits/ranges_base.h (ranges::view): Likewise.
1607         * include/bits/ranges_util.h (subrange): Constrain the default
1608         ctor.
1609         * include/bits/stl_iterator.h (back_insert_iterator): Remove the
1610         default ctor.
1611         (front_insert_iterator): Likewise.
1612         (insert_iterator): Likewise.  Remove NSDMIs.
1613         (common_iterator): Constrain the default ctor.
1614         (counted_iterator): Likewise.
1615         * include/bits/stream_iterator.h (ostream_iterator): Remove the
1616         default ctor.
1617         * include/std/ranges (__detail::__box::operator=): Handle
1618         self-assignment in the primary template.
1619         (__detail::__box): In the partial specialization: adjust
1620         constraints as per P2325.  Add specialized operator= for the
1621         case when the wrapped type is not copyable.  Constrain the
1622         default ctor.  Avoid list-initialization.
1623         (single_view): Constraint the default ctor.
1624         (iota_view): Relax semiregular constraint to copyable.
1625         Constrain the default ctor.
1626         (iota_view::_Iterator): Constraint the default ctor.
1627         (basic_istream_view): Remove the default ctor.  Remove NSDMIs.
1628         Remove redundant checks for empty _M_stream.
1629         (basic_istream_view::_Iterator): Likewise.
1630         (ref_view): Remove the default ctor.  Remove NSDMIs.
1631         (ref_view::_Iterator): Constrain the default ctor.
1632         (__detail::__non_propagating_cache::operator=): Define overload
1633         for assigning from a value of the underlying type.
1634         (filter_view): Likewise.
1635         (filter_view::_Iterator): Likewise.
1636         (transform_view): Likewise.
1637         (transform_view::_Iterator): Likewise.
1638         (take_view): Likewise.
1639         (take_view::_Iterator): Likewise.
1640         (take_while_view): Likewise.
1641         (take_while_view::_Iterator): Likewise.
1642         (drop_while_view): Likewise.
1643         (drop_while_view::_Iterator): Likewise.
1644         (join_view): Likewise.
1645         (split_view::_OuterIter::__current): Adjust after changing the
1646         type of _M_current.
1647         (split_view::_M_current): Wrap it in a __non_propagating_cache.
1648         (split_view::split_view): Constrain the default ctor.
1649         (common_view): Constrain the default ctor.
1650         (reverse_view): Likewise.
1651         (elements_view): Likewise.
1652         * include/std/span (enable_view<span<_ElementType, _Extent>>):
1653         Define this partial specialization to true unconditionally.
1654         * include/std/version (__cpp_lib_ranges): Adjust value.
1655         * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
1656         Don't attempt to default construct a back_insert_iterator.
1657         * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
1658         Don't attempt to default construct a front_insert_iterator.
1659         * testsuite/24_iterators/insert_iterator/constexpr.cc:
1660         Don't attempt to default construct an insert_iterator.
1661         * testsuite/24_iterators/ostream_iterator/requirements/constexpr.cc:
1662         Remove this test for default constructibility of ostream_iterator.
1663         * testsuite/std/ranges/97600.cc: Don't attempt to default
1664         construct a basic_istream_view.
1665         * testsuite/std/ranges/adaptors/detail/semiregular_box.cc:
1666         Rename to ...
1667         * testsuite/std/ranges/adaptors/detail/copyable_box.cc: ... this.
1668         (test02): Adjust now that __box is copyable-box not
1669         semiregular-box.
1670         (test03): New test.
1671         * testsuite/std/ranges/p2325.cc: New test.
1672         * testsuite/std/ranges/single_view.cc (test06): New test.
1673         * testsuite/std/ranges/view.cc: Adjust now that view doesn't
1674         require default_initializable.
1675
1676 2021-06-17  Jonathan Wakely  <jwakely@redhat.com>
1677
1678         PR libstdc++/91488
1679         * include/bits/basic_string.h (__cpp_lib_constexpr_string): Only
1680         define when is_constant_evaluated is available.
1681         * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits):
1682         Likewise.
1683         (__constant_string_p, __constant_array_p): Remove.
1684         (char_traits): Use is_constant_evaluated directly.
1685         * include/std/version (__cpp_lib_constexpr_char_traits)
1686         (__cpp_lib_constexpr_string): Only define when
1687         is_constant_evaluated is available.
1688
1689 2021-06-17  Patrick Palka  <ppalka@redhat.com>
1690
1691         PR libstdc++/100940
1692         * include/std/ranges (__adaptor::_Partial): For the "simple"
1693         forwarding partial specializations, also require that
1694         the extra arguments are trivially copyable.
1695         * testsuite/std/ranges/adaptors/100577.cc (test04): New test.
1696
1697 2021-06-17  Patrick Palka  <ppalka@redhat.com>
1698
1699         PR libstdc++/100940
1700         * include/std/ranges (__adaptor::_RangeAdaptor): Document the
1701         template form of _S_has_simple_extra_args.
1702         (__adaptor::__adaptor_has_simple_extra_args): Add _Args template
1703         parameter pack.  Try to treat _S_has_simple_extra_args as a
1704         variable template parameterized by _Args.
1705         (__adaptor::_Partial): Pass _Arg/_Args to the constraint
1706         __adaptor_has_simple_extra_args.
1707         (views::_Take::_S_has_simple_extra_args): Templatize according
1708         to the type of the extra argument.
1709         (views::_Drop::_S_has_simple_extra_args): Likewise.
1710         (views::_Split::_S_has_simple_extra_args): Define.
1711         * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
1712         Adjust after changes to _S_has_simple_extra_args mechanism.
1713         (test03): Define.
1714
1715 2021-06-16  Jonathan Wakely  <jwakely@redhat.com>
1716
1717         * include/bits/iterator_concepts.h (__decay_copy): Name type.
1718
1719 2021-06-16  Jonathan Wakely  <jwakely@redhat.com>
1720
1721         * include/bits/ranges_base.h (ranges::begin, ranges::end)
1722         (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
1723         (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
1724         (ranges::empty, ranges::data, ranges::cdata): Remove final
1725         keywords and deleted operator& overloads.
1726         * testsuite/24_iterators/customization_points/iter_move.cc: Use
1727         new is_customization_point_object function.
1728         * testsuite/24_iterators/customization_points/iter_swap.cc:
1729         Likewise.
1730         * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc:
1731         Likewise.
1732         * testsuite/std/ranges/access/begin.cc: Likewise.
1733         * testsuite/std/ranges/access/cbegin.cc: Likewise.
1734         * testsuite/std/ranges/access/cdata.cc: Likewise.
1735         * testsuite/std/ranges/access/cend.cc: Likewise.
1736         * testsuite/std/ranges/access/crbegin.cc: Likewise.
1737         * testsuite/std/ranges/access/crend.cc: Likewise.
1738         * testsuite/std/ranges/access/data.cc: Likewise.
1739         * testsuite/std/ranges/access/empty.cc: Likewise.
1740         * testsuite/std/ranges/access/end.cc: Likewise.
1741         * testsuite/std/ranges/access/rbegin.cc: Likewise.
1742         * testsuite/std/ranges/access/rend.cc: Likewise.
1743         * testsuite/std/ranges/access/size.cc: Likewise.
1744         * testsuite/std/ranges/access/ssize.cc: Likewise.
1745         * testsuite/util/testsuite_iterators.h
1746         (is_customization_point_object): New function.
1747
1748 2021-06-15  Jonathan Wakely  <jwakely@redhat.com>
1749
1750         * include/bits/ranges_base.h (ranges::begin, ranges::end)
1751         (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
1752         (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
1753         (ranges::empty, ranges::data, ranges::cdata): Make types final.
1754         Add deleted operator& overloads.
1755         (ranges::advance, ranges::distance, ranges::next, ranges::prev):
1756         Likewise.
1757         * testsuite/std/ranges/headers/ranges/synopsis.cc: Replace
1758         ill-formed & expressions with using-declarations. Add checks for
1759         other function objects.
1760
1761 2021-06-15  Jonathan Wakely  <jwakely@redhat.com>
1762
1763         * include/bits/ranges_util.h (view_interface): Add noexcept to
1764         empty, operator bool, data and size members.
1765         (subrange): Add noexcept to constructors.
1766         * include/std/ranges (single_view, ref_view): Add noexcept to
1767         constructors.
1768         (views::single, views::all): Add noexcept.
1769         * testsuite/std/ranges/adaptors/all.cc: Check noexcept.
1770         * testsuite/std/ranges/single_view.cc: Likewise.
1771
1772 2021-06-15  Jonathan Wakely  <jwakely@redhat.com>
1773
1774         * include/bits/ranges_util.h (subrange): Add __size_type typedef
1775         and use it to simplify declarations.
1776         (subrange(i, s, n)): Remove assertion.
1777         * testsuite/std/ranges/subrange/constexpr.cc: New test.
1778
1779 2021-06-15  Jonathan Wakely  <jwakely@redhat.com>
1780
1781         * include/bits/iterator_concepts.h (__cust_access::__decay_copy):
1782         Replace with function object.
1783         (__cust_access::__member_begin, ___cust_access::_adl_begin): Use
1784         __decay_copy unqualified.
1785         * include/bits/ranges_base.h (__member_end, __adl_end):
1786         Likewise. Use __range_iter_t for type of ranges::begin.
1787         (__member_rend): Use correct value category for rbegin argument.
1788         (__member_data): Use __decay_copy unqualified.
1789         (__begin_data): Use __range_iter_t for type of ranges::begin.
1790
1791 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
1792
1793         * include/bits/ranges_base.h (ranges::empty): Check whether
1794         conversion to bool can throw.
1795         * testsuite/std/ranges/access/empty.cc: Check for correct
1796         noexcept-specifier.
1797
1798 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
1799
1800         PR libstdc++/100894
1801         * include/std/type_traits (__common_ref_impl<X&, Y&>): Only
1802         use the type if it's a reference.
1803         * testsuite/20_util/common_reference/100894.cc: New test.
1804
1805 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
1806
1807         * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
1808         Add dg-require-filesystem-ts directive.
1809
1810 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
1811
1812         PR libstdc++/101034
1813         * include/std/any (any(in_place_t<T>, initializer_list<U>, A&&...))
1814         (any::emplace<T>(initializer_list<U>, A&&...)): Fix constraint
1815         to use lvalue.
1816         * testsuite/20_util/any/cons/101034.cc: New test.
1817
1818 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
1819
1820         * testsuite/17_intro/headers/c++2017/all_attributes.cc: Add
1821         -std=gnu++17 option.
1822
1823 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
1824
1825         PR libstdc++/101056
1826         * libsupc++/compare (compare_partial_order_fallback): Add
1827         constraint using reversed parameter order, as per LWG 3465.
1828         * testsuite/18_support/comparisons/algorithms/fallback.cc:
1829         Adjust expected result.
1830
1831 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
1832
1833         * libsupc++/compare (__decayed_same_as): New helper concept.
1834         (strong_order, weak_order, partial_order): Constrain with new
1835         concept instead of using static_assert.
1836         (compare_strong_order_fallback, compare_weak_order_fallback)
1837         (compare_partial_order_fallback): Likewise. Do not deduce return
1838         types. Remove redundant if-constexpr checks.
1839         * testsuite/18_support/comparisons/algorithms/fallback.cc: New test.
1840
1841 2021-06-14  Jonathan Wakely  <jwakely@redhat.com>
1842
1843         PR libstdc++/101055
1844         * include/std/tuple: Use reserved form of attribute name.
1845         * testsuite/17_intro/headers/c++2011/all_attributes.cc: Add
1846         check for no_unique_address.
1847         * testsuite/17_intro/headers/c++2014/all_attributes.cc:
1848         Likewise.
1849         * testsuite/17_intro/headers/c++2017/all_attributes.cc:
1850         Likewise.
1851
1852 2021-06-11  Jonathan Wakely  <jwakely@redhat.com>
1853
1854         * include/bits/fs_path.h (operator==, operator<=>): Use new
1855         _S_compare function.
1856         (path::_S_compare): New function to call path::compare in a
1857         context where path::iterator is complete.
1858         * include/experimental/bits/fs_path.h (operator<, operator==):
1859         Define after path::iterator is complete.
1860         * testsuite/27_io/filesystem/path/native/conv_c++23.cc: New
1861         test.
1862         * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
1863         New test.
1864
1865 2021-06-09  Thomas Rodgers  <rodgert@appliantology.com>
1866
1867         * testsuite/29_atomics/atomic_ref/wait_notify.cc: Guard
1868         test logic with constexpr check for is_always_lock_free.
1869
1870 2021-06-09  Jonathan Wakely  <jwakely@redhat.com>
1871
1872         PR libstdc++/100982
1873         * include/std/optional (optional::operator=(const optional<U>&)):
1874         Fix value category used in is_assignable check.
1875         * testsuite/20_util/optional/assignment/100982.cc: New test.
1876
1877 2021-06-09  Jonathan Wakely  <jwakely@redhat.com>
1878
1879         * include/bits/allocator.h (allocator::is_always_equal): Deprecate.
1880         * include/bits/iterator_concepts.h (indirectly_readable_traits):
1881         Add LWG issue number to comment.
1882         * include/std/memory_resource (polymorphic_allocator::release):
1883         Deprecate.
1884         * testsuite/20_util/allocator/requirements/typedefs.cc: Add
1885         dg-warning for deprecation. Also check std::allocator<void>.
1886
1887 2021-06-08  Thomas Rodgers  <rodgert@appliantology.com>
1888
1889         PR libstdc++/100889
1890         * include/bits/atomic_base.h (atomic_ref<_Tp*>::wait):
1891         Change parameter type from _Tp to _Tp*.
1892         * testsuite/29_atomics/atomic_ref/wait_notify.cc: Extend
1893         coverage of types tested.
1894
1895 2021-06-08  Thomas Rodgers  <rodgert@appliantology.com>
1896
1897         * include/std/barrier (__tree_barrier::_M_arrive): Remove
1898         unnecessary hasher instantiation.
1899
1900 2021-06-08  Jonathan Wakely  <jwakely@redhat.com>
1901
1902         * include/experimental/propagate_const (swap): Constrain.
1903         * testsuite/experimental/propagate_const/swap/lwg3413.cc: New test.
1904
1905 2021-06-07  Avi Kivity  <avi@scylladb.com>
1906
1907         PR libstdc++/100900
1908         * include/std/ranges (elements_view::__iter_cat::_S_iter_cat):
1909         Add missing typename.
1910
1911 2021-06-07  Jonathan Wakely  <jwakely@redhat.com>
1912
1913         PR libstdc++/98842
1914         * include/std/optional (operator<=>(const optional<T>& const U&)):
1915         Add missing constraint and add workaround for template
1916         recursion.
1917         * testsuite/20_util/optional/relops/three_way.cc: Check that
1918         type without equality comparison cannot be compared when wrapped
1919         in std::optional.
1920
1921 2021-06-05  Jonathan Wakely  <jwakely@redhat.com>
1922
1923         PR libstdc++/100824
1924         * include/bits/ranges_base.h (_SSize): Return signed type.
1925         * testsuite/std/ranges/access/ssize.cc: Check with __int128.
1926
1927 2021-06-04  Jonathan Wakely  <jwakely@redhat.com>
1928
1929         * include/bits/ranges_base.h (_SSize): Return the result of
1930         ranges::size converted to the wider of make-signed-like-t<S> and
1931         ptrdiff_t, rather than the ranges different type.
1932         * testsuite/std/ranges/access/ssize.cc: Adjust expected result
1933         for an iota_view that uses an integer class type for its
1934         difference_type.
1935
1936 2021-06-04  Jonathan Wakely  <jwakely@redhat.com>
1937
1938         PR libstdc++/100824
1939         * include/bits/ranges_base.h (__member_data): Use __decay_copy.
1940         * testsuite/std/ranges/access/data.cc: Add testcase from PR.
1941
1942 2021-06-04  Jonathan Wakely  <jwakely@redhat.com>
1943
1944         PR libstdc++/100824
1945         * include/bits/iterator_concepts.h (__detail::__decay_copy)
1946         (__detail::__member_begin, __detail::__adl_begin): Move to
1947         namespace ranges::__cust_access.
1948         (__detail::__ranges_begin): Likewise, and rename to __begin.
1949         Remove redundant static assertion.
1950         * include/bits/ranges_base.h (_Begin, _End, _RBegin, _REnd):
1951         Use lvalue in noexcept specifier.
1952         (__as_const): Add non-deduced parameter for value category.
1953         (_CBegin, _CEnd, _CRBegin, _CREnd, _CData): Adjust uses of
1954         __as_const.
1955         (__member_size, __adl_size, __member_empty, __size0_empty):
1956         (__eq_iter_empty, __adl_data): Use lvalue objects in
1957         requirements.
1958         (__sentinel_size): Likewise. Add check for conversion to
1959         unsigned-like.
1960         (__member_data): Allow non-lvalue types to satisfy the concept,
1961         but use lvalue object in requirements.
1962         (_Size, _SSize): Remove forwarding to always use an lvalue.
1963         (_Data): Likewise. Add static assertion for arrays.
1964         * testsuite/std/ranges/access/cdata.cc: Adjust expected
1965         behaviour for rvalues. Add negative tests for ill-formed
1966         expressions.
1967         * testsuite/std/ranges/access/data.cc: Likewise.
1968         * testsuite/std/ranges/access/empty.cc: Adjust expected
1969         behaviour for rvalues.
1970         * testsuite/std/ranges/access/size.cc: Likewise.
1971
1972 2021-06-04  Tim Adye  <Tim.Adye@cern.ch>
1973
1974         * include/std/any (any::_Manager::_S_access): New static
1975         function to access the contained value.
1976         (any::emplace, __any_caster): Use _S_access member of the
1977         manager type.
1978
1979 2021-06-04  Jonathan Wakely  <jwakely@redhat.com>
1980
1981         * doc/xml/manual/status_cxx2020.xml:
1982         * doc/html/*: Regenerate.
1983         * include/bits/hashtable.h (__cpp_lib_generic_unordered_lookup):
1984         Define.
1985         * include/std/version (__cpp_lib_generic_unordered_lookup):
1986         Define.
1987         * testsuite/23_containers/unordered_map/operations/1.cc: Check
1988         feature test macro.
1989         * testsuite/23_containers/unordered_set/operations/1.cc:
1990         Likewise.
1991
1992 2021-06-03  Patrick Palka  <ppalka@redhat.com>
1993
1994         * include/bits/ranges_algo.h (__detail::__can_reread_output):
1995         Factor out this concept from ...
1996         (__unique_copy_fn::operator()): ... here.  Use the concept
1997         throughout.
1998         * testsuite/std/ranges/range.cc: Remove now ill-formed use
1999         of range_value_t on an output_range.
2000         * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
2001         Define value_type, pointer and reference member types to void.
2002
2003 2021-06-03  Patrick Palka  <ppalka@redhat.com>
2004
2005         PR libstdc++/100577
2006         * include/std/ranges (_RangeAdaptorClosure): Document
2007         _S_has_simple_call_op mechanism.
2008         (_RangeAdaptor): Document _S_has_simple_extra_args mechanism.
2009         (__closure_has_simple_call_op): New concept.
2010         (__adaptor_has_simple_extra_args): Likewise.
2011         (_Partial<_Adaptor, _Args...>): New partial specialization.
2012         (_Partial<_Adaptor, _Arg>): Likewise.
2013         (_Pipe<_Lhs, _Rhs>): Likewise.
2014         (views::_All::_S_has_simple_call_op): Define to true.
2015         (views::_Filter::_S_has_simple_extra_args): Likewise.
2016         (views::_Transform::_S_has_simple_extra_args): Likewise.
2017         (views::_Take::_S_has_simple_extra_args): Likewise.
2018         (views::_TakeWhile::_S_has_simple_extra_args): Likewise.
2019         (views::_Drop::_S_has_simple_extra_args): Likewise.
2020         (views::_DropWhile::_S_has_simple_extra_args): Likewise.
2021         (views::_Join::_S_has_simple_call_op): Likewise.
2022         (views::_Split): Document why we don't define
2023         _S_has_simple_extra_args to true for this adaptor.
2024         (views::_Common::_S_has_simple_call_op): Define to true.
2025         (views::_Reverse::_S_has_simple_call_op): Likewise.
2026         (views::_Elements::_S_has_simple_call_op): Likewise.
2027         * testsuite/std/ranges/adaptors/100577.cc: New test.
2028
2029 2021-06-02  Jonathan Wakely  <jwakely@redhat.com>
2030
2031         PR libstdc++/100863
2032         PR libstdc++/65816
2033         * include/bits/hashtable_policy.h (_Hashtable_ebo_helper):
2034         Value-initialize subobject.
2035         * testsuite/23_containers/unordered_map/allocator/default_init.cc:
2036         Remove XFAIL.
2037         * testsuite/23_containers/unordered_set/allocator/default_init.cc:
2038         Remove XFAIL.
2039
2040 2021-06-02  Jonathan Wakely  <jwakely@redhat.com>
2041
2042         PR libstdc++/96088
2043         * testsuite/23_containers/unordered_map/96088.cc: Adjust
2044         expected number of allocations.
2045         * testsuite/23_containers/unordered_set/96088.cc: Likewise.
2046
2047 2021-06-02  Jonathan Wakely  <jwakely@redhat.com>
2048
2049         * doc/xml/manual/status_cxxis29124.xml: Improve punctuation.
2050         * doc/xml/manual/status_cxxtr1.xml: Likewise.
2051         * doc/xml/manual/status_cxxtr24733.xml: Likewise.
2052         * doc/html/*: Regenerate.
2053
2054 2021-06-01  Patrick Palka  <ppalka@redhat.com>
2055
2056         PR c++/65816
2057         * testsuite/23_containers/deque/allocator/default_init.cc,
2058         testsuite/23_containers/forward_list/allocator/default_init.cc,
2059         testsuite/23_containers/list/allocator/default_init.cc,
2060         testsuite/23_containers/map/allocator/default_init.cc,
2061         testsuite/23_containers/set/allocator/default_init.cc,
2062         testsuite/23_containers/vector/allocator/default_init.cc,
2063         testsuite/23_containers/vector/bool/allocator/default_init.cc:
2064         Remove xfail.
2065
2066 2021-06-01  Jonathan Wakely  <jwakely@redhat.com>
2067
2068         * testsuite/23_containers/unordered_map/96088.cc: Change
2069         effective target to c++17.
2070         * testsuite/23_containers/unordered_set/96088.cc: Likewise.
2071
2072 2021-06-01  Jonathan Wakely  <jwakely@redhat.com>
2073
2074         * testsuite/22_locale/ctype/is/string/89728_neg.cc: Only test
2075         isblank for C++11 and later.
2076
2077 2021-06-01  Jonathan Wakely  <jwakely@redhat.com>
2078
2079         PR libstdc++/100833
2080         * include/bits/ranges_base.h (ranges::advance(iter, n, sentinel)):
2081         Fix return value for no-op case.
2082         * testsuite/24_iterators/range_operations/advance.cc: Test
2083         return values of three-argument overload.
2084
2085 2021-06-01  Jonathan Wakely  <jwakely@redhat.com>
2086
2087         PR libstdc++/99453
2088         * python/Makefile.am: Use archive name for printer hook if no
2089         dynamic library name is available.
2090         * python/Makefile.in: Regenerate.
2091
2092 2021-05-30  Gerald Pfeifer  <gerald@pfeifer.com>
2093
2094         * doc/xml/manual/abi.xml: Remove dead reference to "Intel
2095         Compilers for Linux: Compatibility with GNU Compilers" article.
2096         * doc/html/manual/abi.html: Regenerate.
2097
2098 2021-05-26  François Dumont  <fdumont@gcc.gnu.org>
2099
2100         * include/debug/formatter.h
2101         (_Error_formatter::_Parameter::_Named): New.
2102         (_Error_formatter::_Parameter::_Type): Inherit latter.
2103         (_Error_formatter::_Parameter::_M_integer): Likewise.
2104         (_Error_formatter::_Parameter::_M_string): Likewise.
2105         * src/c++11/debug.cc: Include <cstring>.
2106         (_Print_func_t): New.
2107         (print_raw(PrintContext&, const char*, ptrdiff_t)): New.
2108         (print_word): Use '%.*s' format in fprintf to render only expected number of chars.
2109         (pretty_print(PrintContext&, const char*, _Print_func_t)): New.
2110         (print_type): Rename in...
2111         (print_type_info): ...this. Use pretty_print.
2112         (print_address, print_integer): New.
2113         (print_named_name, print_iterator_constness, print_iterator_state): New.
2114         (print_iterator_seq_type): New.
2115         (print_named_field, print_type_field, print_instance_field, print_iterator_field): New.
2116         (print_field): Use latters.
2117         (print_quoted_named_name, print_type_type, print_type, print_instance): New.
2118         (print_string(PrintContext&, const char*, const _Parameter*, size_t)):
2119         Change signature to...
2120         (print_string(PrintContext&, const char*, ptrdiff_t, const _Parameter*, size_t)):
2121         ...this and adapt. Remove intermediate buffer to render input string.
2122         (print_string(PrintContext&, const char*, ptrdiff_t)): New.
2123
2124 2021-05-26  Jonathan Wakely  <jwakely@redhat.com>
2125
2126         PR libstdc++/100768
2127         * include/bits/ranges_base.h (advance, distance, next, prev):
2128         Replace function templates with function objects.
2129         * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
2130         Adjust for changes to function objects.
2131         * testsuite/std/ranges/adaptors/elements.cc: Add using
2132         declarations for names from namespace ranges.
2133         * testsuite/std/ranges/adaptors/transform.cc: Likewise.
2134         * testsuite/24_iterators/range_operations/100768.cc: New test.
2135
2136 2021-05-24  François Dumont  <fdumont@gcc.gnu.org>
2137
2138         PR libstdc++/96088
2139         * include/bits/hashtable_policy.h (_Select2nd): New.
2140         (_NodeBuilder<>): New.
2141         (_ReuseOrAllocNode<>::operator()): Use variadic template args.
2142         (_AllocNode<>::operator()): Likewise.
2143         * include/bits/hashtable.h
2144         (_Hashtable<>::__node_builder_t): New.
2145         (_Hashtable<>::_M_insert_unique<>(_Kt&&, _Arg&&, const _NodeGenerator&)):
2146          New.
2147         (_Hashtable<>::_S_forward_key): New.
2148         (_Hashtable<>::_M_insert): Use latter.
2149         (_Hashtable<>::_M_insert(const_iterator, _Arg&&, const _NodeGenerator&, false_type)):
2150         Instantiate node first, compute hash code second.
2151         * testsuite/23_containers/unordered_map/96088.cc: New test.
2152         * testsuite/23_containers/unordered_multimap/96088.cc: New test.
2153         * testsuite/23_containers/unordered_multiset/96088.cc: New test.
2154         * testsuite/23_containers/unordered_set/96088.cc: New test.
2155         * testsuite/util/replacement_memory_operators.h
2156         (counter::_M_increment): New.
2157         (counter::_M_decrement): New.
2158         (counter::reset()): New.
2159
2160 2021-05-24  Patrick Palka  <ppalka@redhat.com>
2161
2162         PR libstdc++/100479
2163         * include/std/ranges (__detail::__non_propagating_cache): Move
2164         definition up to before that of _CachedPosition.  Make base
2165         class _Optional_base protected instead of private.  Add const
2166         overload for operator*.
2167         (__detail::_CachedPosition): Rewrite the partial specialization
2168         for forward ranges as a derived class of __non_propagating_cache.
2169         Remove the size constraint on the partial specialization for
2170         random access ranges.  Add copy/move/copy-assignment/move-assignment
2171         members to the offset partial specialization for random
2172         access ranges that propagate the cached value but additionally
2173         invalidate it in the source object on move.
2174         * testsuite/std/ranges/adaptors/100479.cc: New test.
2175
2176 2021-05-24  Jonathan Wakely  <jwakely@redhat.com>
2177
2178         * testsuite/25_algorithms/inplace_merge/constrained.cc: Qualify
2179         call to ranges::next.
2180         * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
2181         * testsuite/25_algorithms/is_sorted_until/constrained.cc:
2182         Likewise.
2183         * testsuite/25_algorithms/swap_ranges/1.cc: Qualify call to
2184         swap_ranges.
2185
2186 2021-05-21  Patrick Palka  <ppalka@redhat.com>
2187
2188         PR libstdc++/100606
2189         * include/std/ranges (drop_while_view::begin): Assert the
2190         precondition added by LWG 3490.
2191
2192 2021-05-21  Patrick Palka  <ppalka@redhat.com>
2193
2194         PR libstdc++/100690
2195         * include/std/ranges (iota_view::_Sentinel::_M_distance_from):
2196         Split out this member function from ...
2197         (iota_view::_Sentinel::operator-): ... here, for sake of access
2198         control.
2199         * testsuite/std/ranges/iota/iota_view.cc (test05): New test.
2200
2201 2021-05-20  Jonathan Wakely  <jwakely@redhat.com>
2202
2203         * include/bits/random.tcc (__representable_as_double)
2204         (__p1_representable_as_double): Add "" to static asserts.
2205
2206 2021-05-20  Jonathan Wakely  <jwakely@redhat.com>
2207
2208         PR libstdc++/100676
2209         * include/bits/c++config (__glibcxx_assert_1): Rename to ...
2210         (__glibcxx_constexpr_assert): ... this.
2211         (__glibcxx_assert_impl): Use __glibcxx_constexpr_assert.
2212         (__glibcxx_assert): Define as either __glibcxx_constexpr_assert
2213         or __glibcxx_assert_impl.
2214         (__glibcxx_assert_2): Remove
2215         * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): Use
2216         __glibcxx_constexpr_assert instead of __glibcxx_assert_1.
2217         * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
2218         Adjust expected error.
2219         * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
2220         Likewise.
2221         * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
2222         Likewise.
2223         Likewise.
2224         * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
2225         Likewise.
2226         * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
2227         Likewise.
2228         * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
2229         Likewise.
2230         * testsuite/23_containers/span/back_neg.cc: Likewise.
2231         * testsuite/23_containers/span/front_neg.cc: Likewise.
2232         * testsuite/23_containers/span/index_op_neg.cc: Likewise.
2233
2234 2021-05-20  Patrick Palka  <ppalka@redhat.com>
2235
2236         PR libstdc++/100639
2237         * include/bits/stl_iterator.h (reverse_iterator::difference_type):
2238         In C++20 mode, define in terms of iter_difference_t as per P0896R4.
2239         (reverse_iterator::reference): Likewise, but with iter_reference_t.
2240         (reverse_iterator::value_type): Likewise, but with iter_value_t.
2241         * testsuite/std/ranges/adaptors/reverse.cc (test08): New test.
2242         * testsuite/24_iterators/reverse_iterator/100639.cc: New test.
2243
2244 2021-05-20  Joern Rennecke  <joern.rennecke@riscy-ip.com>
2245
2246         PR libstdc++/100361
2247         * include/std/charconv (to_chars): Hide the overloads for
2248         floating-point types for 16 bit targets.
2249         * src/c++17/floating_to_chars.cc: Don't compile for 16 bit targets.
2250         * testsuite/20_util/to_chars/double.cc: Run this test only on
2251         size32plus targets.
2252         * testsuite/20_util/to_chars/float.cc: Likewise.
2253         * testsuite/20_util/to_chars/long_double.cc: Likewise.
2254
2255 2021-05-18  Patrick Palka  <ppalka@redhat.com>
2256
2257         PR libstdc++/100631
2258         * include/std/ranges (elements_view::_Sentinel::operator-): Use
2259         _M_distance_from in the other operator- overload too.
2260         * testsuite/std/ranges/adaptors/elements.cc (test06): Augment test.
2261
2262 2021-05-18  Thomas Schwinge  <thomas@codesourcery.com>
2263
2264         * testsuite/lib/prune.exp: Add note about 'dg-note'.
2265
2266 2021-05-18  Patrick Palka  <ppalka@redhat.com>
2267
2268         PR libstdc++/100475
2269         * include/std/ranges (__box::__box): Use non-list-initialization
2270         in member initializer list of in-place constructor of the
2271         partial specialization for semiregular types.
2272         (__box::operator->): Use std::__addressof.
2273         * testsuite/std/ranges/adaptors/detail/semiregular_box.cc
2274         (test02): New test.
2275         * testsuite/std/ranges/single_view.cc (test04): New test.
2276
2277 2021-05-18  Patrick Palka  <ppalka@redhat.com>
2278
2279         PR libstdc++/100621
2280         * include/std/ranges (reverse_view::_S_needs_cached_begin):
2281         Set to true if the underlying non-common random-access range
2282         doesn't have a sized sentinel.
2283
2284 2021-05-18  Patrick Palka  <ppalka@redhat.com>
2285
2286         PR libstdc++/100631
2287         * include/std/ranges (elements_view::_Iterator): Also befriend
2288         _Sentinel<!_Const>.
2289         (elements_view::_Sentinel::_M_equal): Templatize.
2290         (elements_view::_Sentinel::_M_distance_from): Split out from ...
2291         (elements_view::_Sentinel::operator-): ... here.  Depend on
2292         _Base2 instead of _Base in the return type.
2293         * testsuite/std/ranges/adaptors/elements.cc (test06, test07):
2294         New tests.
2295
2296 2021-05-17  Thomas Rodgers  <rodgert@twrodgers.com>
2297
2298         * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop
2299         until value change observed.
2300         (__waiter_base::_M_laundered): New member.
2301         (__waiter_base::_M_notify): Check _M_laundered to determine
2302         whether to wake one or all.
2303         (__detail::__atomic_compare): Return true if call to
2304         __builtin_memcmp() == 0.
2305         (__waiter_base::_S_do_spin_v): Adjust predicate.
2306         * testsuite/29_atomics/atomic/wait_notify/100334.cc: New
2307         test.
2308
2309 2021-05-17  Jonathan Wakely  <jwakely@redhat.com>
2310
2311         PR libstdc++/100630
2312         * include/experimental/bits/fs_path.h (__is_constructible_from):
2313         Test construction from a const lvalue, not an rvalue.
2314         * testsuite/27_io/filesystem/path/construct/100630.cc: New test.
2315         * testsuite/experimental/filesystem/path/construct/100630.cc:
2316         New test.
2317
2318 2021-05-17  Antony Polukhin  <antoshkka@gmail.com>
2319
2320         PR libstdc++/89728
2321         * include/bits/locale_facets.h (ctype<basic_string<C,T,A>>):
2322         Declare (but do not define) partial specialization.
2323         * testsuite/22_locale/ctype/is/string/89728_neg.cc: New test.
2324
2325 2021-05-17  Jonathan Wakely  <jwakely@redhat.com>
2326
2327         * include/std/thread (jthread::_S_create): Fix static assert
2328         message.
2329         * testsuite/30_threads/jthread/95989.cc: Re-enable test.
2330         * testsuite/30_threads/jthread/jthread.cc: Do not require
2331         pthread effective target.
2332         * testsuite/30_threads/jthread/2.cc: Moved to...
2333         * testsuite/30_threads/jthread/version.cc: ...here.
2334
2335 2021-05-17  Jonathan Wakely  <jwakely@redhat.com>
2336
2337         * doc/Makefile.am: Simplify doxygen recipes and use --latex_cmd.
2338         * doc/Makefile.in: Regenerate.
2339         * doc/doxygen/user.cfg.in (LATEX_CMD_NAME): Add placeholder
2340         value.
2341         * scripts/run_doxygen (print_usage): Always print to stdout and
2342         do not exit.
2343         (fail): New function for exiting on error.
2344         (parse_options): Handle --latex_cmd. Do not treat --help the
2345         same as errors. Simplify handling of required arguments.
2346
2347 2021-05-12  Jonathan Wakely  <jwakely@redhat.com>
2348
2349         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
2350         Increase dg-timeout-factor to 4. Fix -Wunused-parameter
2351         warnings. Replace bitwise AND with logical AND in loop
2352         condition.
2353         * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
2354         Replace bitwise AND with logical AND in loop condition.
2355         * testsuite/util/pstl/test_utils.h: Remove unused parameter
2356         names.
2357
2358 2021-05-11  Patrick Palka  <ppalka@redhat.com>
2359
2360         * src/c++17/ryu/LOCAL_PATCHES: Update.
2361         * src/c++17/ryu/ryu_generic_128.h: Remove extern "C".
2362         Remove declarations for never-defined functions.
2363         * testsuite/20_util/to_chars/4.cc: New test.
2364
2365 2021-05-11  Jonathan Wakely  <jwakely@redhat.com>
2366
2367         * testsuite/20_util/headers/memory/synopsis.cc: Define C++98
2368         alternative for macro.
2369         * testsuite/20_util/shared_ptr/creation/99006.cc: Add effective
2370         target keyword.
2371         * testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11
2372         syntax.
2373
2374 2021-05-11  Jonathan Wakely  <jwakely@redhat.com>
2375
2376         * include/bits/allocator.h (allocator<void>) [C++20]: Add
2377         missing noexcept to constructor. Restore missing POCMA and
2378         is_always_equal_traits.
2379         [C++17]: Make construct and destroy members private and
2380         declare allocator_traits as a friend.
2381         * include/bits/memoryfwd.h (allocator_traits): Declare.
2382         * include/ext/malloc_allocator.h (malloc_allocator::allocate):
2383         Add nodiscard attribute. Add static assertion for LWG 3307.
2384         * include/ext/new_allocator.h (new_allocator::allocate): Add
2385         static assertion for LWG 3307.
2386         * testsuite/20_util/allocator/void.cc: Check that converting
2387         constructor is noexcept. Check for propagation traits and
2388         size_type and difference_type. Check that pointer and
2389         const_pointer are gone in C++20.
2390
2391 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
2392
2393         * include/std/stop_token: Remove TODO comment.
2394
2395 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
2396
2397         * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)):
2398         Initialize a non-reference deleter from an rvalue, as per LWG
2399         3548.
2400         (__shared_ptr::_UniqCompatible): Add missing constraint.
2401         * testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test.
2402         * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check
2403         constraints.
2404
2405 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
2406
2407         * testsuite/17_intro/headers/c++2017/all_attributes.cc: Remove
2408         -std=gnu++17 from dg-options directive.
2409         * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc:
2410         Likewise.
2411         * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc:
2412         Likewise.
2413         * testsuite/17_intro/headers/c++2017/operator_names.cc:
2414         Likewise.
2415         * testsuite/17_intro/headers/c++2017/parallel_mode.cc: Likewise.
2416         * testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise.
2417         * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
2418         Likewise.
2419         * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
2420         * testsuite/18_support/byte/81076.cc: Likewise.
2421         * testsuite/18_support/byte/global_neg.cc: Likewise.
2422         * testsuite/18_support/byte/ops.cc: Likewise.
2423         * testsuite/18_support/byte/requirements.cc: Likewise.
2424         * testsuite/18_support/headers/cfloat/values_c++17.cc: Likewise.
2425         * testsuite/18_support/launder/1.cc: Likewise.
2426         * testsuite/18_support/launder/nodiscard.cc: Likewise.
2427         * testsuite/18_support/launder/requirements.cc: Likewise.
2428         * testsuite/18_support/launder/requirements_neg.cc: Likewise.
2429         * testsuite/18_support/new_aligned.cc: Likewise.
2430         * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
2431         Likewise.
2432         * testsuite/19_diagnostics/error_code/is_error_code_v.cc:
2433         Likewise.
2434         * testsuite/19_diagnostics/error_condition/hash.cc: Likewise.
2435         * testsuite/20_util/addressof/requirements/constexpr.cc:
2436         Likewise.
2437         * testsuite/20_util/as_const/1.cc: Likewise.
2438         * testsuite/20_util/as_const/rvalue_neg.cc: Likewise.
2439         * testsuite/20_util/bind/83427.cc: Likewise.
2440         * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
2441         * testsuite/20_util/bool_constant/requirements.cc: Likewise.
2442         * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
2443         Likewise.
2444         * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
2445         Likewise.
2446         * testsuite/20_util/duration_cast/rounding.cc: Likewise.
2447         * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
2448         Likewise.
2449         * testsuite/20_util/from_chars/1_neg.cc: Likewise.
2450         * testsuite/20_util/from_chars/requirements.cc: Likewise.
2451         * testsuite/20_util/function/91456.cc: Likewise.
2452         * testsuite/20_util/function/cons/deduction.cc: Likewise.
2453         * testsuite/20_util/function_objects/83607.cc: Likewise.
2454         * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
2455         * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
2456         * testsuite/20_util/function_objects/not_fn/1.cc: Likewise.
2457         * testsuite/20_util/function_objects/not_fn/87538.cc: Likewise.
2458         * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
2459         Likewise.
2460         * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
2461         Likewise.
2462         * testsuite/20_util/has_unique_object_representations/value.cc:
2463         Likewise.
2464         * testsuite/20_util/hash/nullptr.cc: Likewise.
2465         * testsuite/20_util/in_place/requirements.cc: Likewise.
2466         * testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise.
2467         * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
2468         Likewise.
2469         * testsuite/20_util/is_aggregate/requirements/typedefs.cc:
2470         Likewise.
2471         * testsuite/20_util/is_aggregate/value.cc: Likewise.
2472         * testsuite/20_util/is_invocable/83395.cc: Likewise.
2473         * testsuite/20_util/is_invocable/91456.cc: Likewise.
2474         * testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc:
2475         Likewise.
2476         * testsuite/20_util/is_invocable/requirements/typedefs.cc:
2477         Likewise.
2478         * testsuite/20_util/is_invocable/value.cc: Likewise.
2479         * testsuite/20_util/is_literal_type/deprecated-1z.cc: Likewise.
2480         * testsuite/20_util/is_nothrow_constructible/94003.cc: Likewise.
2481         * testsuite/20_util/is_nothrow_invocable/83395.cc: Likewise.
2482         * testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc:
2483         Likewise.
2484         * testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: Likewise.
2485         * testsuite/20_util/is_nothrow_invocable/value.cc: Likewise.
2486         * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
2487         Likewise.
2488         * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
2489         Likewise.
2490         * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
2491         * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
2492         Likewise.
2493         * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
2494         Likewise.
2495         * testsuite/20_util/is_nothrow_swappable_with/value.cc:
2496         Likewise.
2497         * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
2498         Likewise.
2499         * testsuite/20_util/is_swappable/requirements/typedefs.cc:
2500         Likewise.
2501         * testsuite/20_util/is_swappable/value.cc: Likewise.
2502         * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
2503         Likewise.
2504         * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
2505         Likewise.
2506         * testsuite/20_util/is_swappable_with/value.cc: Likewise.
2507         * testsuite/20_util/logical_traits/83134.cc: Likewise.
2508         * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc:
2509         Likewise.
2510         * testsuite/20_util/logical_traits/requirements/typedefs.cc:
2511         Likewise.
2512         * testsuite/20_util/logical_traits/value.cc: Likewise.
2513         * testsuite/20_util/pair/cons/deduction.cc: Likewise.
2514         * testsuite/20_util/pair/swap_cxx17.cc: Likewise.
2515         * testsuite/20_util/ratio/requirements/ratio_equal_v.cc:
2516         Likewise.
2517         * testsuite/20_util/reference_wrapper/83427.cc: Likewise.
2518         * testsuite/20_util/reference_wrapper/deduction.cc: Likewise.
2519         * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
2520         * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
2521         * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
2522         Likewise.
2523         * testsuite/20_util/time_point/arithmetic/constexpr.cc:
2524         Likewise.
2525         * testsuite/20_util/time_point_cast/rounding.cc: Likewise.
2526         * testsuite/20_util/to_chars/3.cc: Likewise.
2527         * testsuite/20_util/to_chars/chars_format.cc: Likewise.
2528         * testsuite/20_util/to_chars/lwg3266.cc: Likewise.
2529         * testsuite/20_util/to_chars/requirements.cc: Likewise.
2530         * testsuite/20_util/tuple/78939.cc: Likewise.
2531         * testsuite/20_util/tuple/apply/1.cc: Likewise.
2532         * testsuite/20_util/tuple/apply/2.cc: Likewise.
2533         * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
2534         * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
2535         * testsuite/20_util/tuple/make_from_tuple/2.cc: Likewise.
2536         * testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
2537         * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
2538         * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
2539         * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
2540         Likewise.
2541         * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
2542         * testsuite/20_util/void_t/1.cc: Likewise.
2543         * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
2544         * testsuite/24_iterators/container_access.cc: Likewise.
2545         * testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
2546         Likewise.
2547         * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc:
2548         Likewise.
2549         * testsuite/24_iterators/range_access/range_access_cpp17.cc:
2550         Likewise.
2551         * testsuite/24_iterators/range_access/range_access_cpp17_neg.cc:
2552         Likewise.
2553         * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
2554         * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
2555         Likewise.
2556         * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
2557         * testsuite/26_numerics/headers/cmath/special_functions_global.cc:
2558         Likewise.
2559         * testsuite/26_numerics/lcm/1.cc: Likewise.
2560         * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
2561         * testsuite/26_numerics/valarray/deduction.cc: Likewise.
2562         * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc:
2563         Likewise.
2564         * testsuite/27_io/manipulators/standard/char/quoted_sv.cc:
2565         Likewise.
2566         * testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc:
2567         Likewise.
2568         * testsuite/27_io/types/4.cc: Likewise.
2569         * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
2570         * testsuite/libstdc++-prettyprinters/91997.cc: Likewise.
2571         * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
2572
2573 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
2574
2575         * testsuite/20_util/function_objects/searchers.cc: Remove
2576         -std=gnu++17 from dg-options directive.
2577         * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
2578         Likewise.
2579         * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
2580         Likewise.
2581         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
2582         Likewise.
2583         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc:
2584         Likewise.
2585         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
2586         Likewise.
2587         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
2588         Likewise.
2589         * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
2590         Likewise.
2591         * testsuite/25_algorithms/clamp/1.cc: Likewise.
2592         * testsuite/25_algorithms/clamp/2.cc: Likewise.
2593         * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
2594         * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
2595         Likewise.
2596         * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc:
2597         Likewise.
2598         * testsuite/25_algorithms/for_each/for_each_n.cc: Likewise.
2599         * testsuite/25_algorithms/for_each/for_each_n_debug.cc:
2600         Likewise.
2601         * testsuite/25_algorithms/sample/1.cc: Likewise.
2602         * testsuite/25_algorithms/sample/2.cc: Likewise.
2603         * testsuite/25_algorithms/sample/3.cc: Likewise.
2604         * testsuite/25_algorithms/sample/81221.cc: Likewise.
2605         * testsuite/25_algorithms/search/searcher.cc: Likewise.
2606         * testsuite/26_numerics/exclusive_scan/1.cc: Likewise.
2607         * testsuite/26_numerics/inclusive_scan/1.cc: Likewise.
2608         * testsuite/26_numerics/reduce/1.cc: Likewise.
2609         * testsuite/26_numerics/reduce/2.cc: Likewise.
2610         * testsuite/26_numerics/transform_exclusive_scan/1.cc: Likewise.
2611         * testsuite/26_numerics/transform_inclusive_scan/1.cc: Likewise.
2612         * testsuite/26_numerics/transform_reduce/1.cc: Likewise.
2613
2614 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
2615
2616         * testsuite/23_containers/array/cons/deduction.cc: Remove
2617         -std=gnu++17 from dg-options directive.
2618         * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
2619         * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
2620         Likewise.
2621         * testsuite/23_containers/array/requirements/constexpr_iter.cc:
2622         Likewise.
2623         * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
2624         Likewise.
2625         * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
2626         * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
2627         Likewise.
2628         * testsuite/23_containers/forward_list/cons/deduction.cc:
2629         Likewise.
2630         * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
2631         Likewise.
2632         * testsuite/23_containers/list/cons/deduction.cc: Likewise.
2633         * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
2634         Likewise.
2635         * testsuite/23_containers/map/cons/deduction.cc: Likewise.
2636         * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
2637         * testsuite/23_containers/map/modifiers/insert/83226.cc:
2638         Likewise.
2639         * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
2640         Likewise.
2641         * testsuite/23_containers/map/modifiers/merge.cc: Likewise.
2642         * testsuite/23_containers/map/modifiers/try_emplace/1.cc:
2643         Likewise.
2644         * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
2645         * testsuite/23_containers/multimap/modifiers/extract.cc:
2646         Likewise.
2647         * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise.
2648         * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
2649         * testsuite/23_containers/multiset/modifiers/extract.cc:
2650         Likewise.
2651         * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise.
2652         * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
2653         * testsuite/23_containers/queue/deduction.cc: Likewise.
2654         * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
2655         Likewise.
2656         * testsuite/23_containers/set/cons/deduction.cc: Likewise.
2657         * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
2658         * testsuite/23_containers/set/modifiers/merge.cc: Likewise.
2659         * testsuite/23_containers/set/modifiers/node_swap.cc: Likewise.
2660         * testsuite/23_containers/stack/deduction.cc: Likewise.
2661         * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
2662         Likewise.
2663         * testsuite/23_containers/unordered_map/cons/deduction.cc:
2664         Likewise.
2665         * testsuite/23_containers/unordered_map/modifiers/extract.cc:
2666         Likewise.
2667         * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
2668         Likewise.
2669         * testsuite/23_containers/unordered_map/modifiers/merge.cc:
2670         Likewise.
2671         * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
2672         Likewise.
2673         * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
2674         Likewise.
2675         * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
2676         Likewise.
2677         * testsuite/23_containers/unordered_multimap/modifiers/merge.cc:
2678         Likewise.
2679         * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
2680         Likewise.
2681         * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
2682         Likewise.
2683         * testsuite/23_containers/unordered_multiset/modifiers/merge.cc:
2684         Likewise.
2685         * testsuite/23_containers/unordered_set/cons/deduction.cc:
2686         Likewise.
2687         * testsuite/23_containers/unordered_set/modifiers/extract.cc:
2688         Likewise.
2689         * testsuite/23_containers/unordered_set/modifiers/merge.cc:
2690         Likewise.
2691         * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
2692         Likewise.
2693         * testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise.
2694         * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
2695         * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
2696         Likewise.
2697
2698 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
2699
2700         * testsuite/21_strings/basic_string/79162.cc: Remove
2701         -std=gnu++17 from dg-options directive.
2702         * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
2703         * testsuite/21_strings/basic_string/cons/char/79162.cc:
2704         Likewise.
2705         * testsuite/21_strings/basic_string/cons/char/86138.cc:
2706         Likewise.
2707         * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
2708         * testsuite/21_strings/basic_string/cons/char/deduction.cc:
2709         Likewise.
2710         * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
2711         Likewise.
2712         * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
2713         * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc:
2714         Likewise.
2715         * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc:
2716         Likewise.
2717         * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
2718         * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
2719         Likewise.
2720         * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
2721         Likewise.
2722         * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
2723         * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
2724         * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
2725         * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
2726         Likewise.
2727         * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
2728         Likewise.
2729         * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
2730         Likewise.
2731         * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
2732         Likewise.
2733         * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
2734         Likewise.
2735         * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
2736         Likewise.
2737         * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
2738         Likewise.
2739         * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
2740         Likewise.
2741         * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
2742         Likewise.
2743         * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
2744         Likewise.
2745         * testsuite/21_strings/basic_string/operations/data/char/2.cc:
2746         Likewise.
2747         * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
2748         Likewise.
2749         * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc:
2750         Likewise.
2751         * testsuite/21_strings/basic_string/operations/find/char/5.cc:
2752         Likewise.
2753         * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
2754         Likewise.
2755         * testsuite/21_strings/basic_string/operators/char/5.cc:
2756         Likewise.
2757         * testsuite/21_strings/basic_string/operators/wchar_t/5.cc:
2758         Likewise.
2759         * testsuite/21_strings/basic_string_view/capacity/1.cc:
2760         Likewise.
2761         * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc:
2762         Likewise.
2763         * testsuite/21_strings/basic_string_view/cons/char/1.cc:
2764         Likewise.
2765         * testsuite/21_strings/basic_string_view/cons/char/2.cc:
2766         Likewise.
2767         * testsuite/21_strings/basic_string_view/cons/char/3.cc:
2768         Likewise.
2769         * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
2770         Likewise.
2771         * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
2772         Likewise.
2773         * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc:
2774         Likewise.
2775         * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc:
2776         Likewise.
2777         * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
2778         Likewise.
2779         * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
2780         Likewise.
2781         * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
2782         Likewise.
2783         * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
2784         Likewise.
2785         * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc:
2786         Likewise.
2787         * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
2788         Likewise.
2789         * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
2790         Likewise.
2791         * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
2792         Likewise.
2793         * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc:
2794         Likewise.
2795         * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
2796         Likewise.
2797         * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
2798         Likewise.
2799         * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
2800         Likewise.
2801         * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
2802         Likewise.
2803         * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc:
2804         Likewise.
2805         * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
2806         Likewise.
2807         * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
2808         Likewise.
2809         * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
2810         Likewise.
2811         * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
2812         Likewise.
2813         * testsuite/21_strings/basic_string_view/include.cc: Likewise.
2814         * testsuite/21_strings/basic_string_view/inserters/94051.cc:
2815         Likewise.
2816         * testsuite/21_strings/basic_string_view/inserters/char/1.cc:
2817         Likewise.
2818         * testsuite/21_strings/basic_string_view/inserters/char/2.cc:
2819         Likewise.
2820         * testsuite/21_strings/basic_string_view/inserters/char/3.cc:
2821         Likewise.
2822         * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
2823         Likewise.
2824         * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
2825         Likewise.
2826         * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
2827         Likewise.
2828         * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
2829         Likewise.
2830         * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
2831         Likewise.
2832         * testsuite/21_strings/basic_string_view/literals/types.cc:
2833         Likewise.
2834         * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
2835         Likewise.
2836         * testsuite/21_strings/basic_string_view/literals/values.cc:
2837         Likewise.
2838         * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
2839         Likewise.
2840         * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
2841         Likewise.
2842         * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
2843         Likewise.
2844         * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
2845         Likewise.
2846         * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
2847         Likewise.
2848         * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
2849         Likewise.
2850         * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
2851         Likewise.
2852         * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
2853         Likewise.
2854         * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
2855         Likewise.
2856         * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
2857         Likewise.
2858         * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc:
2859         Likewise.
2860         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
2861         Likewise.
2862         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
2863         Likewise.
2864         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
2865         Likewise.
2866         * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
2867         Likewise.
2868         * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
2869         Likewise.
2870         * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
2871         Likewise.
2872         * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
2873         Likewise.
2874         * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
2875         Likewise.
2876         * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
2877         Likewise.
2878         * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
2879         Likewise.
2880         * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
2881         Likewise.
2882         * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
2883         Likewise.
2884         * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
2885         Likewise.
2886         * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc:
2887         Likewise.
2888         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
2889         Likewise.
2890         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
2891         Likewise.
2892         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
2893         Likewise.
2894         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
2895         Likewise.
2896         * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
2897         Likewise.
2898         * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
2899         Likewise.
2900         * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
2901         Likewise.
2902         * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc:
2903         Likewise.
2904         * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
2905         Likewise.
2906         * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
2907         Likewise.
2908         * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
2909         Likewise.
2910         * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
2911         Likewise.
2912         * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
2913         Likewise.
2914         * testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc:
2915         Likewise.
2916         * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
2917         Likewise.
2918         * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc:
2919         Likewise.
2920         * testsuite/21_strings/basic_string_view/operators/char/2.cc:
2921         Likewise.
2922         * testsuite/21_strings/basic_string_view/operators/char/89446.cc:
2923         Likewise.
2924         * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
2925         Likewise.
2926         * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
2927         Likewise.
2928         * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
2929         Likewise.
2930         * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
2931         Likewise.
2932         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
2933         Likewise.
2934         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
2935         Likewise.
2936         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
2937         Likewise.
2938         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
2939         Likewise.
2940         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
2941         Likewise.
2942         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
2943         Likewise.
2944         * testsuite/21_strings/basic_string_view/requirements/traits_neg.cc:
2945         Likewise.
2946         * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
2947         Likewise.
2948         * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
2949         * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
2950         * testsuite/21_strings/char_traits/requirements/char/99181.cc:
2951         Likewise.
2952         * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
2953
2954 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
2955
2956         * testsuite/20_util/memory_resource/1.cc: Remove -std=gnu++17
2957         from dg-options directive.
2958         * testsuite/20_util/memory_resource/2.cc: Likewise.
2959         * testsuite/20_util/monotonic_buffer_resource/1.cc: Likewise.
2960         * testsuite/20_util/monotonic_buffer_resource/93208.cc:
2961         Likewise.
2962         * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
2963         Likewise.
2964         * testsuite/20_util/monotonic_buffer_resource/deallocate.cc:
2965         Likewise.
2966         * testsuite/20_util/monotonic_buffer_resource/release.cc:
2967         Likewise.
2968         * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
2969         Likewise.
2970         * testsuite/20_util/polymorphic_allocator/1.cc: Likewise.
2971         * testsuite/20_util/polymorphic_allocator/construct_pair.cc:
2972         Likewise.
2973         * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
2974         * testsuite/20_util/polymorphic_allocator/select.cc: Likewise.
2975         * testsuite/20_util/synchronized_pool_resource/allocate.cc:
2976         Likewise.
2977         * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
2978         Likewise.
2979         * testsuite/20_util/synchronized_pool_resource/cons.cc:
2980         Likewise.
2981         * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
2982         Likewise.
2983         * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
2984         Likewise.
2985         * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
2986         Likewise.
2987         * testsuite/20_util/synchronized_pool_resource/options.cc:
2988         Likewise.
2989         * testsuite/20_util/synchronized_pool_resource/release.cc:
2990         Likewise.
2991         * testsuite/20_util/synchronized_pool_resource/release_single.cc:
2992         Likewise.
2993         * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc:
2994         Likewise.
2995         * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
2996         Likewise.
2997         * testsuite/20_util/unsynchronized_pool_resource/cons.cc:
2998         Likewise.
2999         * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc:
3000         Likewise.
3001         * testsuite/20_util/unsynchronized_pool_resource/options.cc:
3002         Likewise.
3003         * testsuite/20_util/unsynchronized_pool_resource/release.cc:
3004         Likewise.
3005         * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
3006         Likewise.
3007         * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
3008         * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc:
3009         Likewise.
3010         * testsuite/23_containers/forward_list/pmr_typedefs.cc:
3011         Likewise.
3012         * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc:
3013         Likewise.
3014         * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
3015         * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise.
3016         * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
3017         * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise.
3018         * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
3019         * testsuite/23_containers/multimap/pmr_typedefs_debug.cc:
3020         Likewise.
3021         * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
3022         * testsuite/23_containers/multiset/pmr_typedefs_debug.cc:
3023         Likewise.
3024         * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
3025         * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise.
3026         * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
3027         Likewise.
3028         * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc:
3029         Likewise.
3030         * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
3031         Likewise.
3032         * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
3033         Likewise.
3034         * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
3035         Likewise.
3036         * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
3037         Likewise.
3038         * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
3039         Likewise.
3040         * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc:
3041         Likewise.
3042         * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
3043         * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc:
3044         Likewise.
3045         * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
3046
3047 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
3048
3049         * testsuite/29_atomics/atomic/69769.cc: Remove -std=gnu++17 from
3050         dg-options.
3051         * testsuite/29_atomics/atomic/is_always_lock_free.cc:
3052         * testsuite/29_atomics/atomic/requirements/typedefs.cc:
3053         * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
3054         * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc:
3055         * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
3056         * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
3057         * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
3058         * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
3059         Likewise.
3060         * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
3061         Likewise.
3062         * testsuite/30_threads/shared_lock/70766.cc: Likewise.
3063         * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
3064         * testsuite/30_threads/shared_mutex/cons/assign_neg.cc:
3065         Likewise.
3066         * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
3067         * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
3068         Likewise.
3069         * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
3070         * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
3071         * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
3072         * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
3073
3074 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
3075
3076         * testsuite/20_util/any/assign/1.cc: Remove -std=gnu++17 from
3077         dg-options directive.
3078         * testsuite/20_util/any/assign/2.cc: Likewise.
3079         * testsuite/20_util/any/assign/emplace.cc: Likewise.
3080         * testsuite/20_util/any/assign/exception.cc: Likewise.
3081         * testsuite/20_util/any/assign/self.cc: Likewise.
3082         * testsuite/20_util/any/cons/1.cc: Likewise.
3083         * testsuite/20_util/any/cons/2.cc: Likewise.
3084         * testsuite/20_util/any/cons/90415.cc: Likewise.
3085         * testsuite/20_util/any/cons/92156.cc: Likewise.
3086         * testsuite/20_util/any/cons/aligned.cc: Likewise.
3087         * testsuite/20_util/any/cons/explicit.cc: Likewise.
3088         * testsuite/20_util/any/cons/in_place.cc: Likewise.
3089         * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
3090         * testsuite/20_util/any/make_any.cc: Likewise.
3091         * testsuite/20_util/any/misc/any_cast.cc: Likewise.
3092         * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
3093         * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
3094         * testsuite/20_util/any/misc/swap.cc: Likewise.
3095         * testsuite/20_util/any/modifiers/1.cc: Likewise.
3096         * testsuite/20_util/any/modifiers/83658.cc: Likewise.
3097         * testsuite/20_util/any/modifiers/92156.cc: Likewise.
3098         * testsuite/20_util/any/observers/type.cc: Likewise.
3099         * testsuite/20_util/any/requirements.cc: Likewise.
3100         * testsuite/20_util/any/typedefs.cc: Likewise.
3101         * testsuite/20_util/optional/77288.cc: Likewise.
3102         * testsuite/20_util/optional/84601.cc: Likewise.
3103         * testsuite/20_util/optional/assignment/1.cc: Likewise.
3104         * testsuite/20_util/optional/assignment/2.cc: Likewise.
3105         * testsuite/20_util/optional/assignment/3.cc: Likewise.
3106         * testsuite/20_util/optional/assignment/4.cc: Likewise.
3107         * testsuite/20_util/optional/assignment/5.cc: Likewise.
3108         * testsuite/20_util/optional/assignment/6.cc: Likewise.
3109         * testsuite/20_util/optional/assignment/7.cc: Likewise.
3110         * testsuite/20_util/optional/assignment/8.cc: Likewise.
3111         * testsuite/20_util/optional/assignment/9.cc: Likewise.
3112         * testsuite/20_util/optional/bad_access.cc: Likewise.
3113         * testsuite/20_util/optional/cons/77727.cc: Likewise.
3114         * testsuite/20_util/optional/cons/85642.cc: Likewise.
3115         * testsuite/20_util/optional/cons/copy.cc: Likewise.
3116         * testsuite/20_util/optional/cons/deduction.cc: Likewise.
3117         * testsuite/20_util/optional/cons/default.cc: Likewise.
3118         * testsuite/20_util/optional/cons/move.cc: Likewise.
3119         * testsuite/20_util/optional/cons/trivial.cc: Likewise.
3120         * testsuite/20_util/optional/cons/value.cc: Likewise.
3121         * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
3122         * testsuite/20_util/optional/constexpr/cons/default.cc:
3123         Likewise.
3124         * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
3125         * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
3126         * testsuite/20_util/optional/constexpr/make_optional.cc:
3127         Likewise.
3128         * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
3129         * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
3130         * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
3131         * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
3132         * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
3133         * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
3134         * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
3135         * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
3136         * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
3137         * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
3138         * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
3139         * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
3140         * testsuite/20_util/optional/hash.cc: Likewise.
3141         * testsuite/20_util/optional/in_place.cc: Likewise.
3142         * testsuite/20_util/optional/make_optional.cc: Likewise.
3143         * testsuite/20_util/optional/nullopt.cc: Likewise.
3144         * testsuite/20_util/optional/observers/1.cc: Likewise.
3145         * testsuite/20_util/optional/observers/2.cc: Likewise.
3146         * testsuite/20_util/optional/observers/3.cc: Likewise.
3147         * testsuite/20_util/optional/observers/4.cc: Likewise.
3148         * testsuite/20_util/optional/observers/5.cc: Likewise.
3149         * testsuite/20_util/optional/observers/6.cc: Likewise.
3150         * testsuite/20_util/optional/relops/1.cc: Likewise.
3151         * testsuite/20_util/optional/relops/2.cc: Likewise.
3152         * testsuite/20_util/optional/relops/3.cc: Likewise.
3153         * testsuite/20_util/optional/relops/4.cc: Likewise.
3154         * testsuite/20_util/optional/relops/5.cc: Likewise.
3155         * testsuite/20_util/optional/relops/6.cc: Likewise.
3156         * testsuite/20_util/optional/relops/7.cc: Likewise.
3157         * testsuite/20_util/optional/requirements.cc: Likewise.
3158         * testsuite/20_util/optional/swap/1.cc: Likewise.
3159         * testsuite/20_util/optional/swap/2.cc: Likewise.
3160         * testsuite/20_util/optional/typedefs.cc: Likewise.
3161         * testsuite/20_util/variant/80165.cc: Likewise.
3162         * testsuite/20_util/variant/85183.cc: Likewise.
3163         * testsuite/20_util/variant/86874.cc: Likewise.
3164         * testsuite/20_util/variant/87431.cc: Likewise.
3165         * testsuite/20_util/variant/87619.cc: Likewise.
3166         * testsuite/20_util/variant/91807.cc: Likewise.
3167         * testsuite/20_util/variant/any.cc: Likewise.
3168         * testsuite/20_util/variant/compile.cc: Likewise.
3169         * testsuite/20_util/variant/deduction.cc: Likewise.
3170         * testsuite/20_util/variant/exception_safety.cc: Likewise.
3171         * testsuite/20_util/variant/hash.cc: Likewise.
3172         * testsuite/20_util/variant/index_type.cc: Likewise.
3173         * testsuite/20_util/variant/relops/89851.cc: Likewise.
3174         * testsuite/20_util/variant/relops/90008.cc: Likewise.
3175         * testsuite/20_util/variant/run.cc: Likewise.
3176         * testsuite/20_util/variant/visit.cc: Likewise.
3177
3178 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
3179
3180         * testsuite/27_io/basic_filebuf/open/char/path.cc: Remove
3181         -std=gnu++17 from dg-options directive.
3182         * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
3183         * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
3184         * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
3185         * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
3186         * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
3187         * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
3188         * testsuite/27_io/filesystem/directory_entry/86597.cc: Likewise.
3189         * testsuite/27_io/filesystem/directory_entry/lwg3171.cc:
3190         Likewise.
3191         * testsuite/27_io/filesystem/file_status/1.cc: Likewise.
3192         * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
3193         * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
3194         * testsuite/27_io/filesystem/iterators/91067.cc: Likewise.
3195         * testsuite/27_io/filesystem/iterators/caching.cc: Likewise.
3196         * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
3197         Likewise.
3198         * testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
3199         * testsuite/27_io/filesystem/iterators/recursion_pending.cc:
3200         Likewise.
3201         * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
3202         Likewise.
3203         * testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
3204         * testsuite/27_io/filesystem/operations/all.cc: Likewise.
3205         * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
3206         * testsuite/27_io/filesystem/operations/copy.cc: Likewise.
3207         * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
3208         * testsuite/27_io/filesystem/operations/create_directories.cc:
3209         Likewise.
3210         * testsuite/27_io/filesystem/operations/create_directory.cc:
3211         Likewise.
3212         * testsuite/27_io/filesystem/operations/create_symlink.cc:
3213         Likewise.
3214         * testsuite/27_io/filesystem/operations/current_path.cc:
3215         Likewise.
3216         * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
3217         * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
3218         * testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
3219         * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
3220         * testsuite/27_io/filesystem/operations/last_write_time.cc:
3221         Likewise.
3222         * testsuite/27_io/filesystem/operations/permissions.cc:
3223         Likewise.
3224         * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
3225         * testsuite/27_io/filesystem/operations/read_symlink.cc:
3226         Likewise.
3227         * testsuite/27_io/filesystem/operations/relative.cc: Likewise.
3228         * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
3229         * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
3230         * testsuite/27_io/filesystem/operations/rename.cc: Likewise.
3231         * testsuite/27_io/filesystem/operations/resize_file.cc:
3232         Likewise.
3233         * testsuite/27_io/filesystem/operations/space.cc: Likewise.
3234         * testsuite/27_io/filesystem/operations/status.cc: Likewise.
3235         * testsuite/27_io/filesystem/operations/symlink_status.cc:
3236         Likewise.
3237         * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
3238         Likewise.
3239         * testsuite/27_io/filesystem/operations/weakly_canonical.cc:
3240         Likewise.
3241         * testsuite/27_io/filesystem/path/append/path.cc: Likewise.
3242         * testsuite/27_io/filesystem/path/append/source.cc: Likewise.
3243         * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
3244         * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
3245         * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
3246         * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
3247         * testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
3248         * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
3249         * testsuite/27_io/filesystem/path/concat/92853.cc: Likewise.
3250         * testsuite/27_io/filesystem/path/concat/94063.cc: Likewise.
3251         * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
3252         * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
3253         * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
3254         * testsuite/27_io/filesystem/path/construct/90281.cc: Likewise.
3255         * testsuite/27_io/filesystem/path/construct/90634.cc: Likewise.
3256         * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
3257         * testsuite/27_io/filesystem/path/construct/default.cc:
3258         Likewise.
3259         * testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
3260         * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
3261         * testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
3262         * testsuite/27_io/filesystem/path/construct/string_view.cc:
3263         Likewise.
3264         * testsuite/27_io/filesystem/path/decompose/extension.cc:
3265         Likewise.
3266         * testsuite/27_io/filesystem/path/decompose/filename.cc:
3267         Likewise.
3268         * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
3269         Likewise.
3270         * testsuite/27_io/filesystem/path/decompose/relative_path.cc:
3271         Likewise.
3272         * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
3273         Likewise.
3274         * testsuite/27_io/filesystem/path/decompose/root_name.cc:
3275         Likewise.
3276         * testsuite/27_io/filesystem/path/decompose/root_path.cc:
3277         Likewise.
3278         * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
3279         * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
3280         Likewise.
3281         * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
3282         * testsuite/27_io/filesystem/path/generation/normal.cc:
3283         Likewise.
3284         * testsuite/27_io/filesystem/path/generation/normal2.cc:
3285         Likewise.
3286         * testsuite/27_io/filesystem/path/generation/proximate.cc:
3287         Likewise.
3288         * testsuite/27_io/filesystem/path/generation/relative.cc:
3289         Likewise.
3290         * testsuite/27_io/filesystem/path/generic/94242.cc: Likewise.
3291         * testsuite/27_io/filesystem/path/generic/generic_string.cc:
3292         Likewise.
3293         * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise.
3294         * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise.
3295         * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
3296         * testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
3297         * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
3298         * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
3299         * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
3300         Likewise.
3301         * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
3302         Likewise.
3303         * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
3304         Likewise.
3305         * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
3306         Likewise.
3307         * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
3308         * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
3309         * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
3310         Likewise.
3311         * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
3312         * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
3313         * testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise.
3314         * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
3315         Likewise.
3316         * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
3317         * testsuite/27_io/filesystem/path/query/empty_neg.cc:
3318         * testsuite/27_io/filesystem/path/query/has_extension.cc:
3319         Likewise.
3320         * testsuite/27_io/filesystem/path/query/has_filename.cc:
3321         Likewise.
3322         * testsuite/27_io/filesystem/path/query/has_parent_path.cc:
3323         Likewise.
3324         * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
3325         Likewise.
3326         * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
3327         Likewise.
3328         * testsuite/27_io/filesystem/path/query/has_root_name.cc:
3329         Likewise.
3330         * testsuite/27_io/filesystem/path/query/has_root_path.cc:
3331         Likewise.
3332         * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
3333         * testsuite/27_io/filesystem/path/query/is_absolute.cc:
3334         Likewise.
3335         * testsuite/27_io/filesystem/path/query/is_relative.cc:
3336         Likewise.
3337         * testsuite/experimental/filesystem/path/construct/string_view.cc:
3338         Likewise.
3339
3340 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
3341
3342         * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
3343         Remove -std=gnu++17 from dg-options.
3344         * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
3345         Likewise.
3346         * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
3347         Likewise.
3348         * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
3349         Likewise.
3350         * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
3351         * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
3352         Likewise.
3353         * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
3354         Likewise.
3355         * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
3356         Likewise.
3357         * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
3358         Likewise.
3359         * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
3360         Likewise.
3361         * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
3362         Likewise.
3363         * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
3364         Likewise.
3365         * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
3366         Likewise.
3367         * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
3368         Likewise.
3369         * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
3370         Likewise.
3371         * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
3372         Likewise.
3373         * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
3374         Likewise.
3375         * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
3376         Likewise.
3377         * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
3378         Likewise.
3379         * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
3380         Likewise.
3381         * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
3382         Likewise.
3383         * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
3384         Likewise.
3385         * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
3386         Likewise.
3387         * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
3388         Likewise.
3389         * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
3390         Likewise.
3391         * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
3392         Likewise.
3393         * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
3394         Likewise.
3395         * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
3396         Likewise.
3397         * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
3398         Likewise.
3399         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
3400         Likewise.
3401         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
3402         Likewise.
3403         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
3404         Likewise.
3405         * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
3406         Likewise.
3407         * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
3408         Likewise.
3409         * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
3410         Likewise.
3411         * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
3412         Likewise.
3413         * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
3414         Likewise.
3415         * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
3416         Likewise.
3417         * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
3418         Likewise.
3419         * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
3420         Likewise.
3421         * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise.
3422         * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
3423         Likewise.
3424         * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
3425         Likewise.
3426         * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
3427         Likewise.
3428         * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
3429         Likewise.
3430         * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
3431         Likewise.
3432         * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Likewise.
3433         * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: Likewise.
3434         * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
3435         * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
3436         * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
3437         * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
3438         * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
3439         * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
3440         Likewise.
3441         * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise.
3442         * testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise.
3443         * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
3444         Likewise.
3445         * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
3446         Likewise.
3447
3448 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
3449
3450         * testsuite/20_util/scoped_allocator/69293_neg.cc: Add dg-error
3451         for additional errors in C++20.
3452         * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
3453         Likewise.
3454         * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
3455         * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
3456
3457 2021-05-10  Jonathan Wakely  <jwakely@redhat.com>
3458
3459         * testsuite/20_util/variant/compile.cc: Rename 'any' to avoid
3460         clash with std::any.
3461
3462 2021-05-07  Jonathan Wakely  <jwakely@redhat.com>
3463
3464         * include/std/istream (__rvalue_stream_extraction_t): Replace
3465         use of __rval_streamable.
3466         * include/std/ostream (__rvalue_stream_insertion_t): Likewise.
3467         (__rval_streamable): Remove.
3468         (_Require_derived_from_ios_base, __derived_from_ios_base): New
3469         helper for checking constraints.
3470         * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Fix
3471         reference to the wrong subclause of the standard.
3472         * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
3473         Likewise.
3474         * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
3475         Likewise.
3476         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
3477         Likewise.
3478         * testsuite/27_io/basic_ostream/inserters_other/char/99692.cc:
3479         New test.
3480         * testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned
3481         errors.
3482
3483 2021-05-06  Jonathan Wakely  <jwakely@redhat.com>
3484
3485         * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
3486         Improve static_assert messages.
3487         * testsuite/25_algorithms/copy/58982.cc: Adjust expected output.
3488         * testsuite/25_algorithms/copy_n/58982.cc: Likewise.
3489
3490 2021-05-06  Patrick Palka  <ppalka@redhat.com>
3491
3492         * include/std/ranges (filter_view::_Iterator::base): Make the
3493         const& overload unconstrained and return a const reference as
3494         per LWG 3533.  Make unconditionally noexcept.
3495         (transform_view::_Iterator::base): Likewise.
3496         (elements_view::_Iterator::base): Likewise.
3497
3498 2021-05-06  Patrick Palka  <ppalka@redhat.com>
3499
3500         * include/bits/stl_iterator.h (move_iterator::base): Make the
3501         const& overload unconstrained and return a const reference as
3502         per LWG 3391.  Make unconditionally noexcept.
3503         (counted_iterator::base): Likewise.
3504         * testsuite/24_iterators/move_iterator/lwg3391.cc: New test.
3505         * testsuite/24_iterators/move_iterator/move_only.cc: Adjust
3506         has_member_base concept to decay-copy the result of base().
3507
3508 2021-05-06  Jonathan Wakely  <jwakely@redhat.com>
3509
3510         * include/std/type_traits (remove_cvref_t): Define in terms of
3511         remove_cvref.
3512         * testsuite/20_util/remove_cvref/value.cc: Check alias.
3513
3514 2021-05-06  Jonathan Wakely  <jwakely@redhat.com>
3515
3516         Revert:
3517         2021-05-05  Jonathan Wakely  <jwakely@redhat.com>
3518
3519         * include/std/charconv (__from_chars_alnum): Pass unsigned
3520         char to std::isdigit.
3521
3522 2021-05-05  Patrick Palka  <ppalka@redhat.com>
3523
3524         * include/bits/ranges_util.h (enable_borrowed_range<subrange>):
3525         Remove constraints on this partial specialization.
3526         * include/std/ranges (enable_borrowed_range<iota_view>):
3527         Likewise.
3528
3529 2021-05-05  Patrick Palka  <ppalka@redhat.com>
3530
3531         * include/std/ranges (transform_view::_Iterator::iter_swap):
3532         Remove as per LWG 3520.
3533         (join_view::_Iterator::iter_swap): Add indirectly_swappable
3534         constraint as per LWG 3517.
3535
3536 2021-05-05  Jonathan Wakely  <jwakely@redhat.com>
3537
3538         * testsuite/20_util/function_objects/invoke/3.cc: Check feature
3539         test macro.
3540         * testsuite/20_util/function_objects/invoke/version.cc: New test.
3541
3542 2021-05-05  Jonathan Wakely  <jwakely@redhat.com>
3543
3544         * include/std/charconv (__from_chars_alnum): Pass unsigned
3545         char to std::isdigit.
3546
3547 2021-05-05  Corentin Gay  <gay@adacore.com>
3548
3549         * acinclude.m4: Add VxWorks-specific case for the
3550         configuration of ctypes.
3551         * configure: Regenerate.
3552         * config/locale/vxworks/ctype_members.cc: Add VxWorks-specific
3553         version.
3554         * config/os/vxworks/ctype_base.h: Adjust for VxWorks7+.
3555         * config/os/vxworks/ctype_configure_char.cc: Likewise.
3556         * config/os/vxworks/ctype_inline.h: Likewise.
3557         * testsuite/28_regex/traits/char/isctype.cc: Defines
3558         NEWLINE_IN_CLASS_BLANK if the target is VxWorks.
3559         * testsuite/28_regex/traits/wchar_t/isctype.cc: Likewise.
3560
3561 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
3562
3563         * include/std/future (promise::set_value): Check for existence
3564         of shared state before dereferncing it.
3565         (promise::set_exception, promise::set_value_at_thread_exit)
3566         (promise::set_exception_at_thread_exit): Likewise.
3567         (promise<R&>::set_value, promise<R&>::set_exception)
3568         (promise<R&>::set_value_at_thread_exit)
3569         (promise<R&>::set_exception_at_thread_exit): Likewise.
3570         (promise<void>::set_value, promise<void>::set_exception)
3571         (promise<void>::set_value_at_thread_exit)
3572         (promise<void>::set_exception_at_thread_exit): Likewise.
3573         * testsuite/30_threads/promise/members/at_thread_exit2.cc:
3574         Remove unused variable.
3575
3576 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
3577
3578         * include/bits/basic_string.h (basic_string(const CharT*, const A&)):
3579         Do not do arithmetic on null pointer.
3580
3581 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
3582
3583         * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
3584         (find_key_pointer(key_const_reference, false_type))
3585         (find_key_pointer(key_const_reference, true_type)): Do not
3586         dereference null pointer.
3587
3588 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
3589
3590         * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
3591         overflow.
3592         * testsuite/24_iterators/reverse_iterator/2.cc: Do not add
3593         non-zero value to null pointer.
3594         * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
3595         Use past-the-end iterator for result.
3596         * testsuite/25_algorithms/move_backward/69478.cc: Likewise.
3597         * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
3598
3599 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
3600
3601         PR libstdc++/100384
3602         * include/std/variant (__get_t): New alias template yielding the
3603         return type of std::get<N> on a variant.
3604         (__visit_result_t): New alias template yielding the result of
3605         std::visit.
3606         (__same_types): Move into namespace __detail::__variant.
3607         (__check_visitor_results): Likewise. Use __invoke_result_t and
3608         __get_t.
3609         (__check_visitor_result): Remove.
3610         (visit): Use __visit_result_t for return type.
3611         * testsuite/20_util/variant/100384.cc: New test.
3612
3613 2021-05-04  Jonathan Wakely  <jwakely@redhat.com>
3614
3615         * acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove
3616         checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128.
3617         * config.h.in: Regenerate.
3618         * configure: Regenerate.
3619         * configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128.
3620         * include/bits/random.h (_Select_uint_least_t<s, 1>):
3621         Use __SIZEOF_INT128__ to decide whether to use __int128.
3622         * include/std/charconv (__to_chars_unsigned_type): Likewise.
3623
3624 2021-05-03  Gerald Pfeifer  <gerald@pfeifer.com>
3625
3626         * doc/xml/manual/ctype.xml: Move unix.org reference to https.
3627         * doc/html/manual/facets.html: Regenerate.
3628
3629 2021-04-30  Patrick Palka  <ppalka@redhat.com>
3630
3631         * include/std/ranges (__detail::__non_propating_cache): Define
3632         as per P2328.
3633         (join_view): Remove constraints on the value and reference types
3634         of the wrapped iterator type as per P2328.
3635         (join_view::_Iterator::_M_satisfy): Adjust as per P2328.
3636         (join_view::_Iterator::operator++): Likewise.
3637         (join_view::_M_inner): Use __non_propating_cache as per P2328.
3638         Remove now-redundant use of __maybe_present_t.
3639         * testsuite/std/ranges/adaptors/join.cc: Include <array>.
3640         (test10): New test.
3641
3642 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
3643
3644         * include/bits/basic_string.h (__cpp_lib_constexpr_string):
3645         Only define for C++17 and later.
3646         * include/std/version (__cpp_lib_semaphore): Fix condition
3647         to match the one in <semaphore>.
3648
3649 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
3650
3651         * acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete.
3652         * config.h.in: Regenerate.
3653         * configure: Regenerate.
3654         * configure.ac: Do not use GLIBCXX_CHECK_INT64_T.
3655         * include/bits/postypes.h: Remove include of <stdint.h> and
3656         definition/undefinition of the __STDC_LIMIT_MACROS and
3657         __STDC_CONSTANT_MACROS macros.
3658         (streamoff): Use __INT64_TYPE__ if defined.
3659
3660 2021-04-30  Patrick Palka  <ppalka@redhat.com>
3661
3662         * include/std/ranges (split_view::_InnerIter::operator++):
3663         Depend on _Base instead of _Vp directly, as per LWG 3532.
3664
3665 2021-04-30  Patrick Palka  <ppalka@redhat.com>
3666
3667         * include/bits/ranges_util.h (subrange::subrange): Avoid
3668         list-initialization in delegating constructor.
3669         * include/std/ranges (single_view): Replace implicit guide
3670         with explicit deduction guide that decays its argument.
3671         (_Single::operator()): Avoid CTAD when constructing the
3672         single_view object.
3673         (_Iota::operator()): Avoid list-initialization.
3674         (__detail::__can_filter_view, _Filter::operator()): Likewise.
3675         (__detail::__can_transform_view, _Transform::operator()): Likewise.
3676         (take_view::begin): Likewise.
3677         (__detail::__can_take_view, _Take::operator()): Likewise.
3678         (__detail::__can_take_while_view, _TakeWhile::operator()): Likewise.
3679         (__detail::__can_drop_view, _Drop::operator()): Likewise.
3680         (__detail::__can_drop_while_view, _DropWhile::operator()): Likewise.
3681         (split_view::split_view): Use views::single when initializing
3682         _M_pattern.
3683         (__detail::__can_split_view, _Split::operator()): Avoid
3684         list-initialization.
3685         (_Counted::operator()): Likewise.
3686         * testsuite/std/ranges/p2367.cc: New test.
3687
3688 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
3689
3690         PR libstdc++/60497
3691         * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
3692         std::addressof.
3693         * include/bits/basic_string.tcc (basic_string::swap)
3694         (basic_string::assign): Likewise.
3695         * include/bits/deque.tcc (deque::operator=(const deque&)):
3696         Likewise.
3697         * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
3698         Likewise.
3699         * include/bits/vector.tcc (vector::operator=(const vector&)):
3700         Likewise.
3701
3702 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
3703
3704         * include/std/istream (operator>>(Istream&&, x&)): Simplify, as
3705         per LWG 1203.
3706         * include/std/ostream (operator<<(Ostream&&, const x&)):
3707         Likewise.
3708         * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
3709         Adjust dg-error pattern.
3710         * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
3711         Likewise.
3712         * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define
3713         is_extractable trait to replace std::__is_extractable. Make it
3714         work with rvalue streams as well as lvalues, to replace f() and
3715         g() helper functions.
3716         * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
3717         Likewise.
3718         * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
3719         Define is_insertable trait to replace std::__is_insertable. Make
3720         it work with rvalue streams as well as lvalues, to replace f()
3721         and g() helper functions.
3722         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
3723         Likewise.
3724         * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional
3725         errors from new constraints.
3726         * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks,
3727         which are no longer expected to compile.
3728         * testsuite/27_io/rvalue_streams.cc: Adjust existing test.
3729         Verify LWG 1203 changes.
3730
3731 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
3732
3733         PR libstdc++/100285
3734         * include/experimental/socket (__basic_socket_impl::set_option)
3735         (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
3736         Just set error code.
3737         * testsuite/experimental/net/socket/socket_base.cc: CHeck
3738         for <sys/socket.h> not <socket.h>.
3739
3740 2021-04-30  Jonathan Wakely  <jwakely@redhat.com>
3741
3742         PR libstdc++/100180
3743         PR libstdc++/100286
3744         PR libstdc++/100351
3745         * testsuite/experimental/net/internet/address/v4/comparisons.cc:
3746         Use new effective-target keyword.
3747         * testsuite/experimental/net/internet/address/v4/cons.cc:
3748         Likewise.
3749         * testsuite/experimental/net/internet/address/v4/creation.cc:
3750         Likewise.
3751         * testsuite/experimental/net/internet/address/v4/members.cc:
3752         Likewise.
3753         * testsuite/experimental/net/internet/address/v6/members.cc:
3754         Likewise.
3755         * testsuite/experimental/net/internet/resolver/base.cc:
3756         Likewise.
3757         * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
3758         Likewise.
3759         * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
3760         Likewise.
3761         * testsuite/experimental/net/internet/socket/opt.cc:
3762         Likewise.
3763         * testsuite/experimental/net/internet/tcp.cc:
3764         Likewise.
3765         * testsuite/experimental/net/internet/udp.cc:
3766         Likewise.
3767         * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
3768         New proc to check net_ts_ip et.
3769
3770 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
3771
3772         PR libstdc++/97930
3773         * testsuite/20_util/pair/requirements/structural.cc: New test.
3774
3775 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
3776
3777         * include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add
3778         new definitions for constructors and assignment operators using
3779         concepts for constraints.
3780         * testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and
3781         later.
3782         * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
3783         expected error messages to also match C++20 errors.
3784
3785 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
3786
3787         PR libstdc++/99957
3788         * include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair):
3789         Combine and replace with ...
3790         (_PCC::_DeprConsPair): New SFINAE helper function.
3791         (pair): Merge preprocessor blocks so that all C++03 members
3792         are defined together at the end.
3793         (pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)):
3794         Replace _T1 and _T2 parameters with __null_ptr_constant and
3795         adjust constraints.
3796         * testsuite/20_util/pair/40925.cc: Use nullptr instead of 0.
3797         * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
3798         * testsuite/20_util/pair/cons/99957.cc: New test.
3799
3800 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
3801
3802         * include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
3803         * include/std/version (__cpp_lib_constexpr_string): Define.
3804         * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
3805         Check for __cpp_lib_constexpr_string.
3806         * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
3807         Likewise.
3808         * testsuite/21_strings/char_traits/requirements/version.cc: New test.
3809
3810 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
3811
3812         * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
3813         dealing with errors. Use '@' to prevent shell command being
3814         echoed.
3815         * doc/Makefile.in: Regenerate.
3816
3817 2021-04-28  Jonathan Wakely  <jwakely@redhat.com>
3818
3819         PR libstdc++/100298
3820         * include/bits/std_thread.h (thread::hardware_concurrency): Add
3821         missing noexcept to inline definition for non-gthreads targets.
3822
3823 2021-04-28  Patrick Palka  <ppalka@redhat.com>
3824
3825         PR libstdc++/100187
3826         PR libstdc++/100237
3827         PR libstdc++/100249
3828         PR libstdc++/100287
3829         * include/bits/ranges_algo.h (__search_n_fn::operator()): Give
3830         the __value_comp lambda an explicit bool return type.
3831         (__is_permutation_fn::operator()): Give the __proj_scan local
3832         variable auto&& return type.  Give the __comp_scan lambda an
3833         explicit bool return type.
3834         (__remove_fn::operator()): Give the __pred lambda an explicit
3835         bool return type.
3836         (__partition_fn::operator()): Don't std::move __first twice
3837         when returning an empty subrange.
3838         (__min_fn::operator()): Don't std::move __comp.
3839         (__max_fn::operator()): Likewise.
3840         (__minmax_fn::operator()): Likewise.
3841
3842 2021-04-27  Patrick Palka  <ppalka@redhat.com>
3843
3844         PR libstdc++/100290
3845         * include/std/ranges (join_view::_Iterator::operator++): Correct
3846         the return type of the lambda to avoid returning a copy of
3847         _M_parent->_M_inner.
3848         * testsuite/std/ranges/adaptors/join.cc (test10): New test.
3849
3850 2021-04-27  Jakub Jelinek  <jakub@redhat.com>
3851
3852         Revert:
3853         2021-04-22  Jakub Jelinek  <jakub@redhat.com>
3854
3855         PR target/100182
3856         * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
3857         ia32.
3858         * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
3859         ia32.
3860
3861 2021-04-27  Jonathan Wakely  <jwakely@redhat.com>
3862
3863         * include/experimental/internet (address_v6::bytes_type): Adjust
3864         formatting.
3865         (basic_endpoint): Define _M_is_v6() to put all checks for
3866         AF_INET6 in one place.
3867         (basic_endpoint::resize): Simplify.
3868         (operator==(const tcp&, const tcp&)): Add constexpr and noexcept.
3869         (operator!=(const tcp&, const tcp&)): Likewise.
3870         (operator==(const udp&, const udp&)): Likewise.
3871         (operator!=(const udp&, const udp&)): Likewise.
3872         * testsuite/experimental/net/internet/tcp.cc: New test.
3873         * testsuite/experimental/net/internet/udp.cc: New test.
3874
3875 2021-04-27  Jonathan Wakely  <jwakely@redhat.com>
3876
3877         PR libstdc++/100286
3878         * include/experimental/internet (resolver_errc, resolver_category())
3879         (make_error_code, make_error_condition): Define unconditionally,
3880         only make enumerators and use of gai_strerror depend on the
3881         availability of <netdb.h>.
3882         (address_v4::to_string): Use correct constant for string length.
3883         (address_v4::to_string, address_v6::to_string): Define
3884         unconditionally, throw if unsupported.
3885         (make_address_v4, make_address_v6): Define unconditionally.
3886         Return an error if unsupported.
3887         (tcp, udp, v6_only, unicast::hops, multicast::*): Define
3888         conditionally,
3889         * testsuite/experimental/net/internet/socket/opt.cc: Check for
3890         <netinet/in.h> and <netinet/tcp.h> before using types from
3891         namespace net::ip.
3892
3893 2021-04-27  Jonathan Wakely  <jwakely@redhat.com>
3894
3895         PR libstdc++/100285
3896         * include/experimental/internet (resolver_base::flags):
3897         Define overloaded operators as hidden friends.
3898         * include/experimental/socket (socket_base::message_flags):
3899         Likewise.
3900
3901 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
3902
3903         * include/experimental/internet (tcp::no_delay, v6_only)
3904         (unicast::hops, multicast::hops, multicast::enable_loopback):
3905         Change access of base class and static data members. Add
3906         using-declaration for __socket_crtp::operator=(_Tp).
3907         (multicast::__mcastopt): New type.
3908         (multicast::join_group, multicast::leave_group): Derive from
3909         __mcastopt for common implementation.
3910         * include/experimental/socket: Add comment.
3911         * testsuite/experimental/net/internet/socket/opt.cc: New test.
3912         * testsuite/experimental/net/socket/socket_base.cc: Check for
3913         protected constructor/destructor of socket_base. Check for
3914         explicit constructors of socket option classes.
3915
3916 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
3917
3918         * include/experimental/bits/net.h (__socket_base): Add
3919         bool template parameter to allow BooleanSocketOption and
3920         IntegerSocketOption to have different __socket_base<int>
3921         base classes.
3922         (__socket_base<bool>): Adjust base class.
3923         (__socket_base<int>): Add partial specialization.
3924         (__socket_crtp::operator=(_Tp)): Add noexcept-specifier.
3925         * include/experimental/socket (socket_base::broadcast)
3926         (socket_base::debug, socket_base::do_not_route)
3927         (socket_base::keep_alive, socket_base::linger)
3928         (socket_base::out_of_band_inline)
3929         (socket_base::receive_buffer_size)
3930         (socket_base::receive_low_watermark)
3931         (socket_base::reuse_address, socket_base::send_buffer_size)
3932         (socket_base::send_low_watermark): Add using-declaration for
3933         __socket_crtp::operator=(_Tp).
3934         * testsuite/experimental/net/socket/socket_base.cc: Check
3935         properties of socket option types.
3936
3937 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
3938
3939         * include/experimental/internet (resolver_base::flags): Remove
3940         enumerators. Initialize constants directly with desired values.
3941         Make all operators constexpr and noexcept.
3942         * testsuite/experimental/net/internet/resolver/base.cc: Use
3943         __gnu_test::test_bitmask_values for bitmask type. Check
3944         construction and destruction is protected.
3945
3946 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
3947
3948         * include/bits/semaphore_base.h: Include <exception> and <errno.h>.
3949
3950 2021-04-26  Jonathan Wakely  <jwakely@redhat.com>
3951
3952         PR libstdc++/100259
3953         * include/experimental/internet (net::ip::make_error_code)
3954         (net::ip::make_error_condition, net::ip::make_network_v4)
3955         (net::ip::operator==(const udp&, const udp&)): Add 'inline'.
3956
3957 2021-04-24  David Edelsohn  <dje.gcc@gmail.com>
3958
3959         * testsuite/lib/dg-options.exp (atomic_link_flags): New.
3960         (add_options_for_libatomic): Use atomic_link_flags.
3961
3962 2021-04-23  Jonathan Wakely  <jwakely@redhat.com>
3963
3964         PR libstdc++/100180
3965         * include/experimental/io_context (io_context): Define
3966         dummy_pollfd type so that most member functions still compile
3967         without <poll.h> and struct pollfd.
3968
3969 2021-04-23  Jonathan Wakely  <jwakely@redhat.com>
3970
3971         * include/experimental/io_context (io_context::async_wait): Add
3972         comment.
3973         * include/experimental/socket (basic_socket::async_connect):
3974         Cast wait_type constant to int.
3975         (basic_datagram_socket::async_receive): Likewise.
3976         (basic_datagram_socket::async_receive_from): Likewise.
3977         (basic_datagram_socket::async_send): Likewise.
3978         (basic_datagram_socket::async_send_to): Likewise.
3979         (basic_stream_socket::async_receive): Likewise.
3980         (basic_stream_socket::async_send): Likewise. Use io_context
3981         parameter directly, instead of via an executor.
3982         (basic_socket_acceptor::async_accept): Likewise.
3983
3984 2021-04-23  Jonathan Wakely  <jwakely@redhat.com>
3985
3986         * include/experimental/socket (socket_base::shutdown_type):
3987         (socket_base::wait_type, socket_base::message_flags):
3988         Remove enumerators. Initialize constants directly with desired
3989         values.
3990         (socket_base::message_flags): Make all operators constexpr and
3991         noexcept.
3992         * testsuite/util/testsuite_common_types.h (test_bitmask_values):
3993         New test utility.
3994         * testsuite/experimental/net/socket/socket_base.cc: New test.
3995
3996 2021-04-22  David Edelsohn  <dje.gcc@gmail.com>
3997
3998         * config/os/aix/atomicity.h: Delete.
3999
4000 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
4001
4002         * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
4003         Handle system_clock as well as steady_clock.
4004         * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
4005         * testsuite/30_threads/semaphore/try_acquire_until.cc:
4006         Re-enable.
4007
4008 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
4009
4010         * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
4011         options for libatomic.
4012
4013 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
4014
4015         * config/os/gnu-linux/os_defines.h: Fix type in comment.
4016
4017 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
4018
4019         PR libstdc++/99006
4020         * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
4021         is not an array type.
4022         * include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
4023         * testsuite/20_util/shared_ptr/creation/99006.cc: New test.
4024
4025 2021-04-22  Thomas Rodgers  <rodgert@twrodgers.com>
4026
4027         * include/bits/atomic_wait.h: Always notify waiters in the
4028         case of 'bare' address notification.
4029
4030 2021-04-22  Jakub Jelinek  <jakub@redhat.com>
4031
4032         PR target/100182
4033         * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
4034         ia32.
4035         * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
4036         ia32.
4037
4038 2021-04-22  Jonathan Wakely  <jwakely@redhat.com>
4039
4040         PR libstdc++/100179
4041         * include/bits/semaphore_base.h: Remove #error.
4042         * include/std/semaphore: Do not define anything unless one of
4043         the implementations is available.
4044
4045 2021-04-21  Thomas Rodgers  <rodgert@twrodgers.com>
4046
4047         * include/bits/semaphore_base.h: Always reload __old in
4048         __atomic_semaphore::_S_do_try_acquire().
4049         * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
4050         re-enable testcase.
4051
4052 2021-04-21  Philippe Blain  <levraiphilippeblain@gmail.com>
4053             Jonathan Wakely  <jwakely@redhat.com>
4054
4055         PR libstdc++/99453
4056         * python/Makefile.am: Install libstdc++*-gdb.py more robustly.
4057         * python/Makefile.in: Regenerate.
4058
4059 2021-04-21  Thomas Rodgers  <rodgert@twrodgers.com>
4060
4061         * include/bits/semaphore_base.h: Add missing _M_try_acquire()
4062         member to __platform_wait.
4063
4064 2021-04-21  Jonathan Wakely  <jwakely@redhat.com>
4065
4066         * include/std/latch: Replace tab characters in license text.
4067         * include/std/semaphore: Likewise.
4068
4069 2021-04-21  Jakub Jelinek  <jakub@redhat.com>
4070
4071         PR libstdc++/100164
4072         * acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE
4073         rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE.
4074         * configure: Regenerated.
4075         * config.h.in: Regenerated.
4076
4077 2021-04-20  Jonathan Wakely  <jwakely@redhat.com>
4078
4079         * testsuite/30_threads/semaphore/try_acquire_for.cc: Disable
4080         test for targets not using futexes for semaphores.
4081         * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
4082         * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
4083         Disable for all targets.
4084
4085 2021-04-20  Thomas Rodgers  <trodgers@redhat.com>
4086
4087         * include/Makefile.am: Add new <bits/this_thread_sleep.h> header.
4088         * include/Makefile.in: Regenerate.
4089         * include/bits/this_thread_sleep.h: New file.
4090         * include/bits/atomic_base.h: Adjust all calls
4091         to __atomic_wait/__atomic_notify for new call signatures.
4092         * include/bits/atomic_timed_wait.h: Extensive rewrite.
4093         * include/bits/atomic_wait.h: Likewise.
4094         * include/bits/semaphore_base.h: Adjust all calls
4095         to __atomic_wait/__atomic_notify for new call signatures.
4096         * include/std/atomic: Likewise.
4097         * include/std/barrier: Likewise.
4098         * include/std/latch: Likewise.
4099         * include/std/semaphore: Likewise.
4100         * include/std/thread (this_thread::sleep_for)
4101         (this_thread::sleep_until): Move to new header.
4102         * testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify
4103         test.
4104         * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
4105         * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
4106         * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
4107         * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
4108         * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
4109         * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
4110
4111 2021-04-20  Patrick Palka  <ppalka@redhat.com>
4112
4113         PR libstdc++/95983
4114         * include/bits/stl_iterator.h (__detail::__move_iter_cat):
4115         Define.
4116         (move_iterator): Derive from the above in C++20 in order to
4117         conditionally define iterator_category as per P2259.
4118         (move_iterator::__base_cat): No longer used, so remove.
4119         (move_iterator::iterator_category): Remove in C++20.
4120         (__detail::__common_iter_use_postfix_proxy): Define.
4121         (common_iterator::_Proxy): Rename to ...
4122         (common_iterator:__arrow_proxy): ... this.
4123         (common_iterator::__postfix_proxy): Define as per P2259.
4124         (common_iterator::operator->): Adjust.
4125         (common_iterator::operator++): Adjust as per P2259.
4126         (iterator_traits<common_iterator>::_S_iter_cat): Define.
4127         (iterator_traits<common_iterator>::iterator_category): Change as
4128         per P2259.
4129         (__detail::__counted_iter_value_type): Define.
4130         (__detail::__counted_iter_concept): Define.
4131         (__detail::__counted_iter_cat): Define.
4132         (counted_iterator): Derive from the above three classes in order
4133         to conditionally define value_type, iterator_concept and
4134         iterator category respectively as per P2259.
4135         (counted_iterator::operator->): Define as per P2259.
4136         (incrementable_traits<counted_iterator>): Remove as per P2259.
4137         (iterator_traits<counted_iterator>): Adjust as per P2259.
4138         * include/std/ranges (__detail::__iota_view_iter_cat): Define.
4139         (iota_view::_Iterator): Derive from the above in order to
4140         conditionally define iterator_category as per P2259.
4141         (iota_view::_S_iter_cat): Rename to ...
4142         (iota_view::_S_iter_concept): ... this.
4143         (iota_view::iterator_concept): Use it to apply LWG 3291 changes.
4144         (iota_view::iterator_category): Remove.
4145         (__detail::__filter_view_iter_cat): Define.
4146         (filter_view::_Iterator): Derive from the above in order to
4147         conditionally define iterator_category as per P2259.
4148         (filter_view::_Iterator): Move to struct __filter_view_iter_cat.
4149         (filter_view::_Iterator::iterator_category): Remove.
4150         (transform_view::_Base): Define.
4151         (transform_view::__iter_cat): Define.
4152         (transform_view::_Iterator): Derive from the above in order to
4153         conditionally define iterator_category as per P2259.
4154         (transform_view::_Iterator::_Base): Just alias
4155         transform_view::_Base.
4156         (transform_view::_Iterator::_S_iter_cat): Move to struct
4157         transform_view::__iter_cat.
4158         (transform_view::_Iterator::iterator_category): Remove.
4159         (transform_view::_Sentinel::_Base): Just alias
4160         transform_view::_Base.
4161         (join_view::_Base): Define.
4162         (join_view::_Outer_iter): Define.
4163         (join_view::_Inner_iter): Define.
4164         (join_view::_S_ref_is_glvalue): Define.
4165         (join_view::__iter_cat): Define.
4166         (join_view::_Iterator): Derive from it in order to conditionally
4167         define iterator_category as per P2259.
4168         (join_view::_Iterator::_Base): Just alias join_view::_Base.
4169         (join_view::_Iterator::_S_ref_is_glvalue): Just alias
4170         join_view::_S_ref_is_glvalue.
4171         (join_view::_Iterator::_S_iter_cat): Move to struct
4172         transform_view::__iter_cat.
4173         (join_view::_Iterator::_Outer_iter): Just alias
4174         join_view::_Outer_iter.
4175         (join_view::_Iterator::_Inner_iter): Just alias
4176         join_view::_Inner_iter.
4177         (join_view::_Iterator::iterator_category): Remove.
4178         (join_view::_Sentinel::_Base): Just alias join_view::_Base.
4179         (__detail::__split_view_outer_iter_cat): Define.
4180         (__detail::__split_view_inner_iter_cat): Define.
4181         (split_view::_Base): Define.
4182         (split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
4183         in order to conditionally define iterator_category as per P2259.
4184         (split_view::_Outer_iter::iterator_category): Remove.
4185         (split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
4186         in order to conditionally define iterator_category as per P2259.
4187         (split_view::_Inner_iter::_S_iter_cat): Move to
4188         __split_view_inner_iter_cat.
4189         (split_view::_Inner_iter::iterator_category): Remove.
4190         (elements_view::_Base): Define.
4191         (elements_view::__iter_cat): Define.
4192         (elements_view::_Iterator): Derive from the above in order to
4193         conditionall define iterator_category as per P2259.
4194         (elements_view::_Iterator::_Base): Just alias
4195         elements_view::_Base.
4196         (elements_view::_Iterator::_S_iter_concept)
4197         (elements_view::_Iterator::iterator_concept): Define as per
4198         P2259.
4199         (elements_view::_Iterator::iterator_category): Remove.
4200         (elements_view::_Sentinel::_Base): Just alias
4201         elements_view::_Base.
4202         * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
4203         Adjust constraints on iterator_traits<counted_iterator>.
4204         * testsuite/std/ranges/p2259.cc: New test.
4205
4206 2021-04-20  Jonathan Wakely  <jwakely@redhat.com>
4207
4208         PR libstdc++/100146
4209         * include/std/charconv (__cpp_lib_to_chars): Define
4210         conditionally.
4211         * include/std/version (__cpp_lib_to_chars): Likewise..
4212         * testsuite/20_util/from_chars/4.cc: Only check feature test
4213         macro, not _GLIBCXX_HAVE_USELOCALE.
4214         * testsuite/20_util/from_chars/5.cc: Likewise.
4215         * testsuite/20_util/from_chars/6.cc: Likewise.
4216         * testsuite/20_util/to_chars/long_double.cc: Likewise.
4217
4218 2021-04-20  Jakub Jelinek  <jakub@redhat.com>
4219
4220         * testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol
4221         versions with _IEEE128_ substring are found, set ieee_version_found
4222         to true.  Ignore missing symbols with _IEEE128_ in version name if
4223         !ieee_version_found.  Use i->first as version_name instead of
4224         i->second.version_name if the latter is empty.
4225         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
4226
4227 2021-04-19  H.J. Lu  <hjl.tools@gmail.com>
4228
4229         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
4230         Updated.
4231
4232 2021-04-17  Jakub Jelinek  <jakub@redhat.com>
4233
4234         * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
4235         * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
4236
4237 2021-04-17  Jakub Jelinek  <jakub@redhat.com>
4238
4239         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
4240         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
4241         * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
4242         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
4243         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
4244         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
4245
4246 2021-04-15  Jonathan Wakely  <jwakely@redhat.com>
4247
4248         * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
4249         add libatomic options for 32-bit sparc*-*-linux-gnu.
4250
4251 2021-04-15  Jonathan Wakely  <jwakely@redhat.com>
4252
4253         PR libstdc++/96657
4254         * libsupc++/Makefile.am: Add atomicity.cc here.
4255         * src/c++98/Makefile.am: Remove it from here.
4256         * libsupc++/Makefile.in: Regenerate.
4257         * src/c++98/Makefile.in: Regenerate.
4258         * testsuite/18_support/exception_ptr/96657.cc: New test.
4259
4260 2021-04-13  Jonathan Wakely  <jwakely@redhat.com>
4261
4262         PR libstdc++/100060
4263         * include/std/bit: Only include <ext/numeric_traits.h> for
4264         hosted build, use <limits> otherwise.
4265
4266 2021-04-13  Jonathan Wakely  <jwakely@redhat.com>
4267
4268         * doc/xml/manual/backwards_compatibility.xml: Remove porting
4269         notes for libg++ and libstdc++-v2, and bibliography.
4270         * doc/html/*: Regenerated.
4271
4272 2021-04-12  Jonathan Wakely  <jwakely@redhat.com>
4273
4274         PR libstdc++/100044
4275         * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
4276         Remove helper concept.
4277         (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
4278         deduction guides, as per LWG 3404.
4279         * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
4280         template argument deduction fails.
4281
4282 2021-04-12  Jonathan Wakely  <jwakely@redhat.com>
4283
4284         * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
4285         Adjust expected error for C++20 mode.
4286         * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
4287         Likewise.
4288
4289 2021-04-12  Jonathan Wakely  <jwakely@redhat.com>
4290
4291         PR libstdc++/99995
4292         * testsuite/17_intro/headers/c++1998/49745.cc: Include all
4293         standard headers and XFAIL for effective-target c++20.
4294
4295 2021-04-09  François Dumont  <fdumont@gcc.gnu.org>
4296
4297         PR libstdc++/99402
4298         * include/debug/helper_functions.h (__can_advance(_InputIterator,
4299         const std::pair<_Diff, _Distance_precision>&, int)): New.
4300         (__can_advance(const _Safe_iterator<>&,
4301         const std::pair<_Diff, _Distance_precision>&, int)): New.
4302         * include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
4303         use latter.
4304         (__glibcxx_check_can_increment_range): Adapt to use latter.
4305         (__glibcxx_check_can_decrement_range): Likewise.
4306         * include/debug/safe_iterator.h
4307         (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
4308         int)): New.
4309         (__can_advance(const _Safe_iterator<>&,
4310         const std::pair<_Diff, _Distance_precision>&, int)): New.
4311         * include/debug/safe_iterator.tcc
4312         (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
4313         int)): New.
4314         (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
4315         std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
4316         __dp_sign_max_size.
4317         (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
4318         (__copy_move_backward_a): Likewise.
4319         (__equal_aux): Likewise.
4320         * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
4321         const std::pair<_Diff, _Distance_precision>&, int)): New.
4322         (__can_advance(const std::move_iterator<>&,
4323         const std::pair<_Diff, _Distance_precision>&, int)): New.
4324         * testsuite/25_algorithms/copy/debug/99402.cc: New test.
4325
4326 2021-04-09  Jonathan Wakely  <jwakely@redhat.com>
4327
4328         PR libstdc++/99985
4329         * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
4330         to be a valid constexpr function in C++11.
4331         * testsuite/23_containers/unordered_set/cons/99985.cc: New test.
4332
4333 2021-04-09  Jonathan Wakely  <jwakely@redhat.com>
4334
4335         * include/bits/fs_fwd.h: Fix doxygen group command.
4336         * include/bits/streambuf_iterator.h: Likewise.
4337         * include/bits/uses_allocator_args.h: Likewise.
4338         * include/std/memory: Likewise.
4339         * include/tr1/complex: Likewise.
4340
4341 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
4342
4343         * include/bits/basic_string.h: Tweak doxygen comment.
4344
4345 2021-04-08  Patrick Palka  <ppalka@redhat.com>
4346
4347         * include/std/ranges (__detail::find): Define.
4348         (split_view::_OuterIter::operator++): Apply proposed resolution
4349         of LWG 3505.
4350         * testsuite/std/ranges/adaptors/split.cc (test10): New test.
4351
4352 2021-04-08  Patrick Palka  <ppalka@redhat.com>
4353
4354         * include/std/ranges (__detail::find_if): Simplify.
4355         (__detail::find_if_not): Likewise.
4356         (__detail::min): Remove.
4357         (__detail::mismatch): Simplify.
4358         (take_view::size): Use std::min instead of __detail::min.
4359
4360 2021-04-08  Patrick Palka  <ppalka@redhat.com>
4361
4362         * include/std/ranges (__detail::__returnable_element): New
4363         concept.
4364         (elements_view): Use this concept in its constraints.  Add
4365         missing private access specifier.
4366         (elements_view::_S_get_element): Define as per LWG 3502.
4367         (elements_view::operator*, elements_view::operator[]): Use
4368         _S_get_element.
4369         (elements_view::operator++): Remove unnecessary constraint
4370         as per LWG 3492.
4371         * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
4372
4373 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
4374
4375         * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
4376         out-of-memory error in log file.
4377         * doc/Makefile.in: Regenerate.
4378
4379 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
4380
4381         * configure: Regenerate.
4382
4383 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
4384
4385         * include/bits/random.h: Fix doxygen group commands.
4386         * include/bits/regex_constants.h: Likewise.
4387         * include/tr1/random.h: Likewise.
4388
4389 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
4390
4391         * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
4392         New function to determine noexcept-specifier for move
4393         constructors.
4394         (_Hashtable): Use _S_nothrow_move() on move constructors.
4395         * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
4396         Correct static assertion message.
4397         * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
4398         Likewise.
4399         * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
4400         Likewise.
4401         * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
4402         Likewise.
4403
4404 2021-04-08  Patrick Palka  <ppalka@redhat.com>
4405
4406         PR libstdc++/98384
4407         * testsuite/20_util/to_chars/long_double.cc: Don't run the test
4408         on targets without a large long double.  XFAIL the execution on
4409         targets with a non-conforming printf.
4410
4411 2021-04-08  Patrick Palka  <ppalka@redhat.com>
4412
4413         PR libstdc++/99433
4414         * include/std/ranges (__adaptor::__maybe_refwrap): Remove.
4415         (__adaptor::__adaptor_invocable): New concept.
4416         (__adaptor::__adaptor_partial_app_viable): New concept.
4417         (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
4418         non-template base class.
4419         (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
4420         class template.
4421         (__adaptor::_Partial): New class template that represents
4422         partial application of a range adaptor non-closure.
4423         (__adaptor::__pipe_invocable): New concept.
4424         (__adaptor::_Pipe): New class template.
4425         (__detail::__can_ref_view): New concept.
4426         (__detail::__can_subrange): New concept.
4427         (all): Replace the lambda here with ...
4428         (_All): ... this functor.  Add appropriate constraints.
4429         (__detail::__can_filter_view): New concept.
4430         (filter, _Filter): As in all/_All.
4431         (__detail::__can_transform): New concept.
4432         (transform, _Transform): As in all/_All.
4433         (__detail::__can_take_view): New concept.
4434         (take, _Take): As in all/_All.
4435         (__detail::__can_take_while_view): New concept.
4436         (take_while, _TakeWhile): As in all/_All.
4437         (__detail::__can_drop_view): New concept.
4438         (drop, _Drop): As in all/_All.
4439         (__detail::__can_drop_while_view): New concept.
4440         (drop_while, _DropWhile): As in all/_All.
4441         (__detail::__can_join_view): New concept.
4442         (join, _Join): As in all/_All.
4443         (__detail::__can_split_view): New concept.
4444         (split, _Split): As in all/_All.  Rename template parameter
4445         _Fp to _Pattern.
4446         (__detail::__already_common): New concept.
4447         (__detail::__can_common_view): New concept.
4448         (common, _Common): As in all/_All.
4449         (__detail::__can_reverse_view): New concept.
4450         (reverse, _Reverse): As in all/_All.
4451         (__detail::__can_elements_view): New concept.
4452         (elements, _Elements): As in all/_All.
4453         (keys, values): Adjust.
4454         * testsuite/std/ranges/adaptors/99433.cc: New test.
4455         * testsuite/std/ranges/adaptors/all.cc: No longer expect that
4456         adding empty range adaptor closure objects to a pipeline doesn't
4457         increase the size of the pipeline.
4458         (test05): New test.
4459         * testsuite/std/ranges/adaptors/common.cc (test03): New test.
4460         * testsuite/std/ranges/adaptors/drop.cc (test09): New test.
4461         * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
4462         * testsuite/std/ranges/adaptors/elements.cc (test04): New test.
4463         * testsuite/std/ranges/adaptors/filter.cc (test06): New test.
4464         * testsuite/std/ranges/adaptors/join.cc (test09): New test.
4465         * testsuite/std/ranges/adaptors/p2281.cc: New test.
4466         * testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
4467         * testsuite/std/ranges/adaptors/split.cc (test01, test04):
4468         Adjust.
4469         (test09): New test.
4470         * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
4471         expected error message.
4472         (test02): Likewise.  Extend test.
4473         * testsuite/std/ranges/adaptors/take.cc (test06): New test.
4474         * testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
4475         * testsuite/std/ranges/adaptors/transform.cc (test07, test08):
4476         New test.
4477
4478 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
4479
4480         * include/std/string_view: Adjust Doxygen @file comment.
4481
4482 2021-04-08  Jonathan Wakely  <jwakely@redhat.com>
4483
4484         * include/std/type_traits (is_scoped_enum<T>): Constrain partial
4485         specialization to not match incomplete enum types. Use a
4486         requires-expression instead of instantiating is_convertible.
4487         (is_scoped_enum<const T>): Add as workaround for PR c++/99968.
4488         * testsuite/20_util/is_scoped_enum/value.cc: Check with
4489         incomplete types and opaque-enum-declarations.
4490
4491 2021-04-07  Jonathan Wakely  <jwakely@redhat.com>
4492
4493         PR libstdc++/99805
4494         * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
4495         non-const member on _M_pathname, to avoid copy-on-write.
4496         * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
4497         Check construction from strings that might be shared.
4498
4499 2021-04-06  Jonathan Wakely  <jwakely@redhat.com>
4500
4501         * include/bits/move.h (forward, move, move_if_noexcept)
4502         (addressof): Add _GLIBCXX_NODISCARD.
4503         * include/bits/ranges_cmp.h (identity::operator()): Add
4504         nodiscard attribute.
4505         * include/c_global/cstddef (to_integer): Likewise.
4506         * include/std/bit (bit_cast): Likewise.
4507         * include/std/utility (as_const, to_underlying): Likewise.
4508
4509 2021-04-06  Jonathan Wakely  <jwakely@redhat.com>
4510
4511         * include/bits/move.h (forward): Change static_assert message
4512         to be unambiguous about what must be true.
4513         * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
4514         * testsuite/20_util/forward/f_neg.cc: Likewise.
4515
4516 2021-04-06  Jonathan Wakely  <jwakely@redhat.com>
4517
4518         * include/bits/alloc_traits.h: Use markdown for code font.
4519         * include/bits/basic_string.h: Fix @param names.
4520         * include/bits/max_size_type.h: Remove period after @file.
4521         * include/bits/regex.h: Fix duplicate @retval names, and rename.
4522         * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
4523         group open to match existing group close.
4524         * include/ext/pb_ds/priority_queue.hpp: Add blank line before group
4525         open.
4526
4527 2021-04-06  Jonathan Wakely  <jwakely@redhat.com>
4528
4529         * include/bits/atomic_base.h: Fix doxygen group close.
4530         * include/bits/basic_ios.h: Likewise.
4531         * include/bits/forward_list.h: Likewise.
4532         * include/bits/fs_dir.h: Likewise.
4533         * include/bits/fs_ops.h: Likewise.
4534         * include/bits/fs_path.h: Likewise.
4535         * include/bits/functional_hash.h: Likewise.
4536         * include/bits/gslice.h: Likewise.
4537         * include/bits/gslice_array.h: Likewise.
4538         * include/bits/hashtable_policy.h: Likewise.
4539         * include/bits/indirect_array.h: Likewise.
4540         * include/bits/locale_classes.h: Likewise.
4541         * include/bits/locale_facets.h: Likewise.
4542         * include/bits/locale_facets_nonio.h: Likewise.
4543         * include/bits/mask_array.h: Likewise.
4544         * include/bits/refwrap.h: Likewise.
4545         * include/bits/regex.h: Likewise.
4546         * include/bits/regex_automaton.h: Likewise.
4547         * include/bits/regex_compiler.h: Likewise.
4548         * include/bits/regex_constants.h: Likewise.
4549         * include/bits/regex_error.h: Likewise.
4550         * include/bits/regex_executor.h: Likewise.
4551         * include/bits/regex_scanner.h: Likewise.
4552         * include/bits/shared_ptr.h: Likewise.
4553         * include/bits/shared_ptr_atomic.h: Likewise.
4554         * include/bits/shared_ptr_base.h: Likewise.
4555         * include/bits/slice_array.h: Likewise.
4556         * include/bits/specfun.h: Likewise.
4557         * include/bits/std_function.h: Likewise.
4558         * include/bits/std_mutex.h: Likewise.
4559         * include/bits/stl_deque.h: Likewise.
4560         * include/bits/stl_iterator.h: Likewise.
4561         * include/bits/stl_iterator_base_types.h: Likewise.
4562         * include/bits/stl_map.h: Likewise.
4563         * include/bits/stl_multimap.h: Likewise.
4564         * include/bits/stl_multiset.h: Likewise.
4565         * include/bits/stl_numeric.h: Likewise.
4566         * include/bits/stl_pair.h: Likewise.
4567         * include/bits/stl_set.h: Likewise.
4568         * include/bits/stl_uninitialized.h: Likewise.
4569         * include/bits/stream_iterator.h: Likewise.
4570         * include/bits/streambuf_iterator.h: Likewise.
4571         * include/bits/unique_ptr.h: Likewise.
4572         * include/bits/unordered_map.h: Likewise.
4573         * include/bits/unordered_set.h: Likewise.
4574         * include/decimal/decimal: Likewise.
4575         * include/experimental/any: Likewise.
4576         * include/experimental/array: Likewise.
4577         * include/experimental/bits/fs_dir.h: Likewise.
4578         * include/experimental/bits/fs_fwd.h: Likewise.
4579         * include/experimental/bits/fs_ops.h: Likewise.
4580         * include/experimental/bits/fs_path.h: Likewise.
4581         * include/experimental/buffer: Likewise.
4582         * include/experimental/internet: Likewise.
4583         * include/experimental/optional: Likewise.
4584         * include/experimental/propagate_const: Likewise.
4585         * include/experimental/socket: Likewise.
4586         * include/ext/pb_ds/assoc_container.hpp: Likewise.
4587         * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
4588         Likewise.
4589         * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
4590         * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
4591         * include/ext/pb_ds/detail/types_traits.hpp: Likewise.
4592         * include/ext/pb_ds/exception.hpp: Likewise.
4593         * include/ext/pb_ds/priority_queue.hpp: Likewise.
4594         * include/ext/pb_ds/tag_and_trait.hpp: Likewise.
4595         * include/ext/random: Likewise.
4596         * include/std/any: Likewise.
4597         * include/std/atomic: Likewise.
4598         * include/std/bitset: Likewise.
4599         * include/std/chrono: Likewise.
4600         * include/std/complex: Likewise.
4601         * include/std/condition_variable: Likewise.
4602         * include/std/fstream: Likewise.
4603         * include/std/future: Likewise.
4604         * include/std/iostream: Likewise.
4605         * include/std/istream: Likewise.
4606         * include/std/mutex: Likewise.
4607         * include/std/numeric: Likewise.
4608         * include/std/ostream: Likewise.
4609         * include/std/ratio: Likewise.
4610         * include/std/shared_mutex: Likewise.
4611         * include/std/stdexcept: Likewise.
4612         * include/std/streambuf: Likewise.
4613         * include/std/system_error: Likewise.
4614         * include/std/thread: Likewise.
4615         * include/std/valarray: Likewise.
4616         * include/std/variant: Likewise.
4617         * include/tr1/cmath: Likewise.
4618         * include/tr1/regex: Likewise.
4619         * include/tr2/dynamic_bitset: Likewise.
4620         * libsupc++/atomic_lockfree_defines.h: Likewise.
4621         * libsupc++/exception: Likewise.
4622         * libsupc++/exception.h: Likewise.
4623         * libsupc++/exception_ptr.h: Likewise.
4624         * libsupc++/nested_exception.h: Likewise.
4625
4626 2021-03-31  Alexandre Oliva  <oliva@adacore.com>
4627
4628         * testsuite/30_threads/future/members/poll.cc: Use faster
4629         after-ready call in the calibration loop.
4630
4631 2021-03-29  Jonathan Wakely  <jwakely@redhat.com>
4632
4633         * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
4634         * doc/html/manual/status.html: Regenerate.
4635
4636 2021-03-28  François Dumont  <fdumont@gcc.gnu.org>
4637
4638         * include/debug/forward_list
4639         (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
4640         * include/debug/list (list(list&&, const allocator_type&)): Likewise and add
4641         call to safe container allocator aware move constructor.
4642         * include/debug/vector (vector(vector&&, const allocator_type&)):
4643         Fix noexcept qualification.
4644         * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
4645         Add allocator-extended move constructor noexceot qualification check.
4646         * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
4647
4648 2021-03-26  Jonathan Wakely  <jwakely@redhat.com>
4649
4650         * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
4651         fallback is needed.
4652         [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
4653         New helper functions and callback.
4654         (random_device::_M_init): Add 'prng' and 'all' enumerators.
4655         Replace switch with fallthrough with a series of 'if' statements.
4656         [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
4657         checks fail.
4658         (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
4659         token.
4660         (random_device::_M_getval): Check for callback unconditionally
4661         and always pass _M_file pointer.
4662         * testsuite/26_numerics/random/random_device/85494.cc: Remove
4663         effective-target check. Use new random_device_available helper.
4664         * testsuite/26_numerics/random/random_device/94087.cc: Likewise.
4665         * testsuite/26_numerics/random/random_device/cons/default-cow.cc:
4666         Remove effective-target check.
4667         * testsuite/26_numerics/random/random_device/cons/default.cc:
4668         Likewise.
4669         * testsuite/26_numerics/random/random_device/cons/token.cc: Use
4670         new random_device_available helper. Test "prng" token.
4671         * testsuite/util/testsuite_random.h (random_device_available):
4672         New helper function.
4673
4674 2021-03-25  François Dumont  <fdumont@gcc.gnu.org>
4675
4676         * include/debug/string
4677         (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
4678         (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
4679         (basic_string<>::erase): Adapt to take __const_iterator.
4680         (basic_string(const _CharT*, const _Allocator&)): Remove assign call.
4681         (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
4682         remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
4683         [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
4684         (__gnu_debug::u16string, __gnu_debug::u32string): New.
4685         (std::hash<__gnu_debug::basic_string<>>): New partial specialization.
4686         (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
4687         * testsuite/util/exception/safety.h
4688         (erase_base<__gnu_debug::basic_string<>>): New partial specialization.
4689         (insert_base<__gnu_debug::basic_string<>>): Likewise.
4690         * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
4691         New partial specialization.
4692         * testsuite/21_strings/basic_string/hash/debug.cc: New test.
4693         * testsuite/21_strings/basic_string/requirements/citerators.cc:
4694         Add test on __gnu_debug::string.
4695         * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
4696         * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
4697         * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
4698         Likewise.
4699         * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
4700         Likewise.
4701         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
4702         Likewise.
4703         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
4704         Likewise.
4705         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
4706         Likewise.
4707         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
4708         Likewise.
4709         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
4710         Likewise.
4711         * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
4712
4713 2021-03-25  Jakub Jelinek  <jakub@redhat.com>
4714
4715         PR c++/99672
4716         * testsuite/18_support/source_location/consteval.cc (main): Adjust
4717         expected column numbers.
4718         * testsuite/18_support/source_location/1.cc (main): Likewise.
4719
4720 2021-03-25  Jonathan Wakely  <jwakely@redhat.com>
4721
4722         * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
4723
4724 2021-03-25  Jonathan Wakely  <jwakely@redhat.com>
4725
4726         * testsuite/util/exception/safety.h (setup_base::generate):
4727         Support seeding random engine.
4728         (erase_point, erase_range): Adjust range of random numbers to
4729         ensure dereferenceable iterators are used where required.
4730         (generation_prohibited::run): Do not try to erase from empty
4731         containers.
4732         * testsuite/util/testsuite_containergen.h (test_containers):
4733         Support seeding random engine.
4734
4735 2021-03-23  Jonathan Wakely  <jwakely@redhat.com>
4736
4737         * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
4738         line with a check that uses the const being/end overloads.
4739
4740 2021-03-23  Moritz Sichert  <sichert@in.tum.de>
4741
4742         * include/std/ranges (reverse_view::begin, reverse_view::end):
4743         Qualify make_reverse_iterator calls to avoid ADL.
4744         * testsuite/std/ranges/adaptors/reverse.cc: Test that
4745         views::reverse works when make_reverse_iterator is defined
4746         in an associated namespace.
4747
4748 2021-03-23  Jonathan Wakely  <jwakely@redhat.com>
4749
4750         * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
4751         Do not define when compiling with Clang.
4752
4753 2021-03-22  Jonathan Wakely  <jwakely@redhat.com>
4754
4755         * include/std/string_view (basic_string_view(Range&&)): Define new
4756         constructor and deduction guide.
4757         * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
4758         * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
4759
4760 2021-03-22  Jonathan Wakely  <jwakely@redhat.com>
4761
4762         * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
4763         Add missing 'noexcept' as per LWG 2280.
4764         (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
4765         (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
4766         * testsuite/24_iterators/range_access/range_access.cc: Check for
4767         expected noexcept specifiers. Check result types of generic
4768         std::begin and std::end overloads.
4769         * testsuite/24_iterators/range_access/range_access_cpp14.cc:
4770         Check for expected noexcept specifiers.
4771         * testsuite/24_iterators/range_access/range_access_cpp17.cc:
4772         Likewise.
4773
4774 2021-03-19  Jonathan Wakely  <jwakely@redhat.com>
4775
4776         * include/std/type_traits (is_scoped_enum): Define.
4777         * include/std/version (__cpp_lib_is_scoped_enum): Define.
4778         * testsuite/20_util/is_scoped_enum/value.cc: New test.
4779         * testsuite/20_util/is_scoped_enum/version.cc: New test.
4780
4781 2021-03-16  Jonathan Wakely  <jwakely@redhat.com>
4782
4783         PR libstdc++/99341
4784         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
4785         std::once_flag symbols.
4786         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
4787         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
4788         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
4789         Likewise.
4790         * config/abi/pre/gnu.ver: Likewise.
4791         * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
4792         (struct __once_flag_compat): Remove.
4793         (_ZNSt9once_flag11_M_activateEv): Remove.
4794         (_ZNSt9once_flag9_M_finishEb): Remove.
4795
4796 2021-03-16  Jonathan Wakely  <jwakely@redhat.com>
4797
4798         PR libstdc++/99341
4799         * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
4800         Revert to pthread_once_t implementation.
4801         [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
4802         * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
4803         (struct __once_flag_compat): New type matching the reverted
4804         implementation of once_flag using futexes.
4805         (once_flag::_M_activate): Remove, replace with ...
4806         (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
4807         (once_flag::_M_finish): Remove, replace with ...
4808         (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
4809         * testsuite/30_threads/call_once/66146.cc: Removed.
4810
4811 2021-03-15  Iain Sandoe  <iain@sandoe.co.uk>
4812
4813         * testsuite/17_intro/names.cc: Exclude j from the list
4814         of test symbols for Darwin.
4815
4816 2021-03-15  Iain Sandoe  <iain@sandoe.co.uk>
4817
4818         * config/os/bsd/darwin/ppc-extra.ver: Add matching for
4819         to_chars and from_chars for long double.
4820
4821 2021-03-15  Patrick Palka  <ppalka@redhat.com>
4822
4823         * include/bits/max_size_type.h (__max_size_type::operator _Tp):
4824         Fix formatting.
4825         (__max_size_type::operator++): Define.
4826         (__max_size_type::operator--): Likewise.
4827         (__max_size_type::operator<=>): Conditionally define (in place
4828         of the other comparison operators).
4829         (__max_diff_type::operator _Tp): Fix formatting.
4830         (__max_diff_type::operator++): Define.
4831         (__max_diff_type::operator--): Likewise.
4832         (__max_diff_type::operator<=>): Conditionally define (in place
4833         of the other comparison operators).
4834         * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
4835         these operator overloads.
4836
4837 2021-03-15  Caroline Tice  <cmtice@google.com>
4838
4839         PR libstdc++/99172
4840         * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
4841         AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
4842         AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
4843         filtered out.
4844         * src/Makefile.in: Regenerate.
4845
4846 2021-03-11  Patrick Palka  <ppalka@redhat.com>
4847
4848         * src/c++17/floating_to_chars.cc: Simplify the file as if
4849         __SIZEOF_INT128__ is always defined.
4850         [!defined __SIZEOF_INT128__]: Include "uint128_t.h".  Define
4851         a base-10 to_chars overload for the uint128_t class type.
4852         * src/c++17/uint128_t.h: New file.
4853         * testsuite/20_util/to_chars/long_double.cc: No longer expect an
4854         execution FAIL on targets that have a large long double type
4855         but lack __int128.
4856
4857 2021-03-11  Patrick Palka  <ppalka@redhat.com>
4858
4859         * src/c++17/ryu/LOCAL_PATCHES: Update.
4860         * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
4861         * src/c++17/ryu/generic_128.h: Likewise.
4862         * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
4863         Use uint128_t instead of __uint128_t.
4864         (generic_binary_to_decimal): Likewise.
4865
4866 2021-03-11  Patrick Palka  <ppalka@redhat.com>
4867
4868         * src/c++17/ryu/LOCAL_PATCHES: New file.
4869
4870 2021-03-11  Patrick Palka  <ppalka@redhat.com>
4871
4872         * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
4873         defined alias of unsigned __int128.
4874         (floating_type_traits_binary128::mantissa_t): Use uint128_t
4875         instead of unsigned __int128.
4876         (floating_type_traits<long double>::mantissa_t)
4877         [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
4878         (get_ieee_repr): Likewise.  Make casts from uint_t to mantissa_t
4879         and uint32_t explicit.  Simplify the extraction of mantissa,
4880         exponent and sign bit.
4881
4882 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
4883
4884         * include/std/barrier (barrier::arrival_token): New move-only
4885         class that encapsulates the underlying token value.
4886
4887 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
4888
4889         * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
4890         instead of unqualified() method.
4891
4892 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
4893
4894         PR libstdc++/99537
4895         * include/std/stop_token (_Stop_state_t::_M_release_ownership):
4896         Use acq_rel memory ordering.
4897
4898 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
4899
4900         PR libstdc++/99533
4901         * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
4902         helper function to check for permission denied errors.
4903         * src/filesystem/dir.cc (recursive_directory_iterator):
4904         Likewise.
4905         * src/filesystem/dir-common.h (is_permission_denied_error): New
4906         helper function.
4907
4908 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
4909
4910         PR libstdc++/99536
4911         * include/bits/random.h (normal_distribution): Use
4912         default-initializer for _M_saved and _M_saved_available.
4913
4914 2021-03-10  John David Anglin  <danglin@gcc.gnu.org>
4915
4916         * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
4917         link with libatomic.
4918         * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
4919         * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
4920         * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
4921         * testsuite/30_threads/barrier/arrive.cc: Likewise.
4922         * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
4923         * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
4924         * testsuite/30_threads/barrier/completion.cc: Likewise.
4925         * testsuite/30_threads/latch/3.cc: Likewise.
4926         * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
4927         * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
4928         * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
4929
4930 2021-03-10  Jonathan Wakely  <jwakely@redhat.com>
4931
4932         PR libstdc++/99413
4933         * include/bits/align.h: Include debug/assertions.h.
4934         * include/bits/codecvt.h: Include bits/c++config.h.
4935         * include/bits/enable_special_members.h: Likewise.
4936         * include/bits/erase_if.h: Likewise.
4937         * include/bits/functional_hash.h: Include <type_traits>.
4938         * include/bits/invoke.h: Include bits/move.h.
4939         * include/bits/ostream_insert.h: Include bits/exception_defines.h.
4940         * include/bits/parse_numbers.h: Include <type_traits>.
4941         * include/bits/predefined_ops.h: Include bits/c++config.h.
4942         * include/bits/range_access.h: Include bits/stl_iterator.h.
4943         * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
4944         * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
4945         * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
4946         * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
4947         * include/bits/unique_lock.h: Include bits/std_mutex.h.
4948         * include/debug/assertions.h: Include bits/c++config.h.
4949
4950 2021-03-10  Jonathan Wakely  <jwakely@redhat.com>
4951
4952         * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
4953         (ranges::equal_to, ranges::not_equal_to): Do not constrain
4954         with __eq_builtin_ptr_cmp.
4955         (ranges::less, ranges::greater, ranges::less_equal)
4956         (ranges::greater_equal): Do not constrain with
4957         __less_builtin_ptr_cmp.
4958         * libsupc++/compare (compare_three_way): Do not constrain with
4959         __3way_builtin_ptr_cmp.
4960         * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
4961         * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
4962         * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
4963
4964 2021-03-10  Jonathan Wakely  <jwakely@redhat.com>
4965
4966         * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
4967         C++20 calendar types.
4968
4969 2021-03-06  Jakub Jelinek  <jakub@redhat.com>
4970
4971         PR libstdc++/99396
4972         * include/std/bit (__rotl, __rotr): Add optimized variants for power of
4973         two _Nd which the compiler can pattern match the rotates.
4974
4975 2021-03-04  Jonathan Wakely  <jwakely@redhat.com>
4976
4977         PR libstdc++/99382
4978         * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
4979         Make storage larger than required. Verify no write to the last
4980         element.
4981         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
4982         Likewise.
4983
4984 2021-03-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4985
4986         * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
4987         * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
4988         Likewise.
4989         * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
4990         * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
4991         Likewise.
4992
4993 2021-03-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4994
4995         * include/experimental/bits/simd.h: Replace reserved _X, _B by
4996         _Xp, _Bp.
4997         * include/experimental/bits/simd_builtin.h: Likewise.
4998         * include/experimental/bits/simd_x86.h: Likewise.
4999
5000 2021-02-27  Jonathan Wakely  <jwakely@redhat.com>
5001
5002         PR libstdc++/99301
5003         * include/std/chrono (year_month_day::_M_days_since_epoch()):
5004         Convert chrono::month and chrono::day to unsigned before
5005         converting to uint32_t.
5006
5007 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
5008
5009         * include/std/chrono (year_month_day::_S_from_days): Perform
5010         all calculations with type uint32_t.
5011
5012 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
5013
5014         * doc/xml/manual/abi.xml: Document versioning for GCC 11.
5015         * doc/html/manual/abi.html: Regenerate.
5016
5017 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
5018
5019         PR libstdc++/99270
5020         * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
5021         FILE instead of FILE.
5022
5023 2021-02-25  Andreas Schwab  <schwab@suse.de>
5024
5025         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
5026         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
5027         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
5028         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
5029
5030 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
5031
5032         PR libstdc++/99265
5033         * include/std/chrono (year_month_day::_S_from_days): Cast long
5034         to int explicitly.
5035
5036 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
5037
5038         * include/std/utility (to_underlying): Define.
5039         * include/std/version (__cpp_lib_to_underlying): Define.
5040         * testsuite/20_util/to_underlying/1.cc: New test.
5041         * testsuite/20_util/to_underlying/version.cc: New test.
5042
5043 2021-02-24  Jonathan Wakely  <jwakely@redhat.com>
5044
5045         PR libstdc++/99261
5046         * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
5047         before value to be printed.
5048
5049 2021-02-24  Patrick Palka  <ppalka@redhat.com>
5050
5051         * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
5052         Relax the condition that guards the printf code path to accept
5053         F128_type as well as long double.
5054
5055 2021-02-24  Cassio Neri  <cassio.neri@gmail.com>
5056
5057         * include/std/chrono (year_month_day_last:day): New
5058         implementation.
5059
5060 2021-02-24  Cassio Neri  <cassio.neri@gmail.com>
5061
5062         * include/std/chrono (year::is_leap): New implementation.
5063         * testsuite/std/time/year/2.cc: New test.
5064
5065 2021-02-24  Cassio Neri  <cassio.neri@gmail.com>
5066
5067         * include/std/chrono (year_month_day::_M_days_since_epoch):
5068         New implementation.
5069         * testsuite/std/time/year_month_day/4.cc: New test.
5070
5071 2021-02-24  Cassio Neri  <cassio.neri@gmail.com>
5072
5073         * include/std/chrono (year_month_day::_S_from_days): New
5074         implementation.
5075         * testsuite/std/time/year_month_day/3.cc: New test.
5076
5077 2021-02-24  Patrick Palka  <ppalka@redhat.com>
5078
5079         PR libstdc++/98384
5080         * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
5081         (test01): Simplify verifying the nearby values by using a
5082         2-iteration loop and a dedicated output buffer to check that the
5083         nearby values are different.  Factor out the printf-based
5084         verification into a local function, and check that the leading
5085         hex digits agree before comparing to the output of printf.  Also
5086         verify the output by round-tripping it through from_chars.
5087
5088 2021-02-24  Jonathan Wakely  <jwakely@redhat.com>
5089
5090         PR libstdc++/98389
5091         * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
5092         symbols for long double arguments mangled as 'g'.
5093         * config/os/gnu-linux/ldbl-extra.ver: Likewise.
5094         * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
5095         * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
5096         Use -mabi=ibmlongdouble for floating_to_chars.cc.
5097         * src/c++17/Makefile.in: Regenerate.
5098         * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
5099         New type defining type traits of IEEE binary128 format.
5100         (floating_type_traits<__float128>): Define specialization.
5101         (floating_type_traits<long double>): Define in terms of
5102         floating_type_traits_binary128 when appropriate.
5103         (floating_to_shortest_scientific): Handle __float128.
5104         (sprintf_ld): New function template for printing a long double
5105         or __ieee128 value using sprintf.
5106         (__floating_to_chars_shortest, __floating_to_chars_precision):
5107         Use sprintf_ld.
5108         (to_chars): Define overloads for __float128.
5109
5110 2021-02-24  Jonathan Wakely  <jwakely@redhat.com>
5111
5112         * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
5113
5114 2021-02-23  Martin Sebor  <msebor@redhat.com>
5115
5116         PR c++/99074
5117         * libsupc++/dyncast.cc (__dynamic_cast): Return null when
5118         first argument is null.
5119
5120 2021-02-23  Jakub Jelinek  <jakub@redhat.com>
5121
5122         PR libstdc++/99181
5123         * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
5124         test.
5125
5126 2021-02-23  Jakub Jelinek  <jakub@redhat.com>
5127
5128         PR libstdc++/99181
5129         * include/bits/char_traits.h (char_traits<char>::compare): For
5130         constexpr evaluation don't call
5131         __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
5132         directly.
5133
5134 2021-02-23  Jakub Jelinek  <jakub@redhat.com>
5135
5136         PR libstdc++/97549
5137         * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
5138
5139 2021-02-23  Patrick Palka  <ppalka@redhat.com>
5140
5141         PR libstdc++/98384
5142         * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
5143         the high- and low-order parts from an IBM long double value
5144         in an endian-agnostic way.
5145
5146 2021-02-19  Jonathan Wakely  <jwakely@redhat.com>
5147
5148         * include/bits/atomic_wait.h (__thread_relax()): Call
5149         __thread_yield() not __gthread_yield().
5150
5151 2021-02-15  Jonathan Wakely  <jwakely@redhat.com>
5152
5153         * include/bits/atomic_wait.h (__thread_yield()): Check
5154         _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
5155         (__thread_relax()): Use __thread_yield() instead of repeating
5156         the preprocessor checks for __gthread_yield.
5157
5158 2021-02-15  Jonathan Wakely  <jwakely@redhat.com>
5159
5160         * include/std/mutex (once_flag::_M_activate()): Add explicit
5161         return statement for passive case.
5162         (once_flag::_M_finish(bool)): Use reserved name for parameter.
5163
5164 2021-02-14  Jonathan Wakely  <jwakely@redhat.com>
5165
5166         PR libstdc++/99096
5167         * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
5168
5169 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
5170
5171         PR libstdc++/88881
5172         * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
5173
5174 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
5175
5176         * doc/xml/manual/status_cxx2014.xml: Document implementation
5177         specific properties of std::experimental::filesystem::rename.
5178         * doc/xml/manual/status_cxx2017.xml: Document implementation
5179         specific properties of std::filesystem::rename.
5180         * doc/html/*: Regenerate.
5181         * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
5182         for directories on Windows.
5183         * src/filesystem/ops-common.h (__gnu_posix::rename): Use
5184         MoveFileExW on Windows.
5185         * testsuite/27_io/filesystem/operations/rename.cc: New test.
5186         * testsuite/experimental/filesystem/operations/rename.cc: New test.
5187
5188 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
5189
5190         * testsuite/util/testsuite_fs.h (nonexistent_path): Add
5191         random number to the path.
5192
5193 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
5194
5195         * include/experimental/internet (address_v6::to_string): Include
5196         scope ID in string.
5197         * testsuite/experimental/net/internet/address/v6/members.cc:
5198         Test to_string() results.
5199
5200 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
5201
5202         * include/experimental/internet (address_v6::any): Avoid using
5203         memcpy in constexpr function.
5204         (address_v6::loopback): Likewise.
5205         (make_address_v6): Fix missing return statements on error paths.
5206         * include/experimental/io_context: Avoid -Wdangling-else
5207         warning.
5208         * testsuite/experimental/net/internet/address/v4/members.cc:
5209         Remove unused variables.
5210         * testsuite/experimental/net/internet/address/v6/members.cc:
5211         New test.
5212
5213 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
5214
5215         * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
5216         Add unused attribute to parameter.
5217         * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
5218         Likewise.
5219
5220 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
5221
5222         * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
5223         if -fno-rtti is used.
5224         * testsuite/30_threads/async/forced_unwind.cc: Expect test
5225         to abort if -fno-rtti is used.
5226
5227 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
5228
5229         * testsuite/util/testsuite_allocator.h (memory_resource):
5230         Remove requirement for RTTI and exceptions to be enabled.
5231
5232 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
5233
5234         * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
5235         static_cast when RTTI is disabled.
5236         * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
5237         Likewise.
5238         * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
5239         Likewise.
5240         * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
5241         Likewise.
5242         * testsuite/27_io/basic_stringstream/str/char/2.cc:
5243         Likewise.
5244         * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
5245         Likewise.
5246
5247 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
5248
5249         * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
5250         as unused and only use dynamic_cast when RTTI is enabled.
5251
5252 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
5253
5254         PR libstdc++/99077
5255         * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
5256         Change int parameter to error_code, to match std::ios_failure.
5257         (__throw_ios_failure(const char*, int)): Construct error_code
5258         from int parameter.
5259
5260 2021-02-11  Jonathan Wakely  <jwakely@redhat.com>
5261
5262         * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
5263         new macro.
5264         * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
5265         macro instead of _GLIBCXX_EH_PTR_COMPAT.
5266         (operator==): Likewise.
5267
5268 2021-02-11  Jonathan Wakely  <jwakely@redhat.com>
5269
5270         PR libstdc++/99058
5271         * doc/xml/manual/status_cxx2011.xml: Document when support
5272         became stable.
5273         * doc/xml/manual/status_cxx2014.xml: Likewise.
5274         * doc/xml/manual/status_cxx2017.xml: Likewise.
5275         * doc/html/manual/status.html: Regenerate.
5276
5277 2021-02-10  Jonathan Wakely  <jwakely@redhat.com>
5278
5279         PR libstdc++/88881
5280         * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
5281
5282 2021-02-10  Jonathan Wakely  <jwakely@redhat.com>
5283
5284         * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
5285         (fs::remove): Use std::system_category() for error codes from
5286         GetLastError().
5287         * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
5288         Likewise.
5289
5290 2021-02-10  Jonathan Wakely  <jwakely@redhat.com>
5291
5292         * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
5293         in __MINGW32__ macro name.
5294         * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
5295         * testsuite/27_io/filesystem/path/generation/proximate.cc:
5296         Likewise.
5297         * testsuite/27_io/filesystem/path/generation/relative.cc:
5298         Likewise.
5299         * testsuite/util/testsuite_fs.h: Likewise.
5300
5301 2021-02-09  François Dumont  <fdumont@gcc.gnu.org>
5302
5303         * include/bits/stl_tree.h
5304         (__has_is_transparent, __has_is_transparent_t): Move...
5305         * include/bits/stl_function.h: ...here.
5306         * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
5307         (_Hashtable_base<>::_M_equals_tr): New.
5308         * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
5309         _Hashtable<>::_M_equal_range_tr): New member function templates to perform
5310         heterogeneous lookup.
5311         (_Hashtable<>::_M_find_before_node_tr): New.
5312         (_Hashtable<>::_M_find_node_tr): New.
5313         * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
5314         unordered_map::contains<>, unordered_map::equal_range<>): New member function
5315         templates to perform heterogeneous lookup.
5316         (unordered_multimap::find<>, unordered_multimap::count<>,
5317         unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
5318         * include/bits/unordered_set.h  (unordered_set::find<>, unordered_set::count<>,
5319         unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
5320         (unordered_multiset::find<>, unordered_multiset::count<>,
5321         unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
5322         * include/debug/unordered_map
5323         (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
5324         (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
5325         * include/debug/unordered_set
5326         (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
5327         (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
5328         * testsuite/23_containers/unordered_map/operations/1.cc: New test.
5329         * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
5330         * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
5331         * testsuite/23_containers/unordered_set/operations/1.cc: New test.
5332
5333 2021-02-09  François Dumont  <fdumont@gcc.gnu.org>
5334
5335         * include/bits/stl_deque.h
5336         (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
5337         a null pointer test.
5338
5339 2021-02-09  Jonathan Wakely  <jwakely@redhat.com>
5340
5341         * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
5342         test directory after making it writable again.
5343         * testsuite/experimental/filesystem/operations/remove_all.cc:
5344         Likewise.
5345
5346 2021-02-09  Jonathan Wakely  <jwakely@redhat.com>
5347
5348         PR libstdc++/99021
5349         * include/std/coroutine (coroutine_handle<P>::from_address): Add
5350         noexcept.
5351
5352 2021-02-09  Vladimir Vishnevsky  <vv.os.swe@gmail.com>
5353
5354         * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
5355         * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
5356
5357 2021-02-09  Jakub Jelinek  <jakub@redhat.com>
5358
5359         PR middle-end/98465
5360         * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
5361         points to the characters moved by earlier _S_move, compute the source
5362         address using expression based on the __p pointer rather than __s
5363         pointer.
5364
5365 2021-02-03  Jonathan Wakely  <jwakely@redhat.com>
5366
5367         * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
5368         Add comparison with same category and different values.
5369         * testsuite/19_diagnostics/error_code/operators/less.cc:
5370         Likewise. Fix comparison involving different categories.
5371         * testsuite/19_diagnostics/error_code/operators/three_way.cc:
5372         Likewise.
5373         * testsuite/19_diagnostics/error_condition/operators/less.cc:
5374         Add comment.
5375         * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
5376         Likewise.
5377
5378 2021-02-03  yaozhongxiao  <yaozhongxiao@linux.alibaba.com>
5379
5380         * include/experimental/bits/simd_neon.h: Replace repeated vpadd
5381         calls with a single vaddv for aarch64.
5382
5383 2021-02-03  Matthias Kretz  <kretz@kde.org>
5384
5385         * testsuite/Makefile.am: Warn about the workaround. Add
5386         -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
5387         Improve initial user feedback from make check-simd.
5388         * testsuite/Makefile.in: Regenerated.
5389
5390 2021-02-03  Matthias Kretz  <kretz@kde.org>
5391
5392         * include/experimental/bits/simd.h: Add __detail::_Minimum and
5393         __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
5394         Add hmin and hmax overloads for simd and const_where_expression.
5395         * include/experimental/bits/simd_scalar.h
5396         (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
5397         parameter const-ref to allow calling _S_reduce with an rvalue.
5398         * testsuite/experimental/simd/tests/reductions.cc: Add tests for
5399         hmin and hmax. Since the compiler statically determined that all
5400         tests pass, repeat the test after a call to make_value_unknown.
5401
5402 2021-02-03  Matthias Kretz  <kretz@kde.org>
5403
5404         * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
5405         instruction pointer data member. Ensure that the `if (m_failed)`
5406         branch is always inlined into the calling code. The body of the
5407         conditional can still be a function call. Move the get_ip call
5408         into the verify ctor to simplify the ctor calls.
5409         (COMPARE): Don't mention the use of all_of for reduction of a
5410         simd_mask. It only distracts from the real issue.
5411
5412 2021-02-03  Matthias Kretz  <kretz@kde.org>
5413
5414         * testsuite/experimental/simd/driver.sh: Abstract reading test
5415         options into read_src_option function. Read skip, only,
5416         expensive, and xfail via read_src_option. Add timeout and
5417         timeout-factor options and adjust timeout variable accordingly.
5418         * testsuite/experimental/simd/tests/loadstore.cc: Set
5419         timeout-factor 2.
5420
5421 2021-02-03  Matthias Kretz  <kretz@kde.org>
5422
5423         * testsuite/experimental/simd/driver.sh: When handling the pipe
5424         to log (and on verbose to stdout) count the lines. If it exceeds
5425         1000 log the issue and exit 125, which is then handled as a
5426         failure.
5427
5428 2021-02-03  Matthias Kretz  <kretz@kde.org>
5429
5430         * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
5431         markup for long double on powerpc64*.
5432
5433 2021-02-03  Matthias Kretz  <kretz@kde.org>
5434
5435         * include/experimental/bits/simd.h: Add __have_power10vec
5436         conditional on _ARCH_PWR10.
5437         * include/experimental/bits/simd_builtin.h: Forward declare
5438         _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
5439         defined.
5440         (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
5441         _SuperImpl for optimizations and correctness.
5442         * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
5443         (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
5444         Otherwise, for >=int use -vec_sums divided by a sizeof factor.
5445         For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
5446
5447 2021-02-03  Matthias Kretz  <kretz@kde.org>
5448
5449         * testsuite/experimental/simd/driver.sh: Remove executable on
5450         SIGINT. Process compiler and test executable output: In verbose
5451         mode print messages immediately, limited to 1000 lines and
5452         breaking long lines to below $COLUMNS (or 1024 if not set).
5453         Communicating the exit status of the compiler / test with the
5454         necessary pipe is done via a message through stdout/-in.
5455
5456 2021-02-03  Matthias Kretz  <kretz@kde.org>
5457
5458         * testsuite/Makefile.am: Ensure .simd.summary is empty before
5459         collecting a new summary.
5460         * testsuite/Makefile.in: Regenerate.
5461
5462 2021-02-03  Matthias Kretz  <kretz@kde.org>
5463
5464         * testsuite/experimental/simd/generate_makefile.sh: Use
5465         different variables internally than documented for user
5466         overrides. This makes internal append/prepend work as intended.
5467
5468 2021-02-03  Matthias Kretz  <kretz@kde.org>
5469
5470         * testsuite/experimental/simd/driver.sh (verify_test): Print
5471         test output on run xfail. Do not repeat lines from the log that
5472         were already printed on stdout.
5473         (test_selector): Make the compiler flags pattern usable as a
5474         substring selector.
5475         (toplevel): Trap on SIGINT and remove the log and sum files.
5476         Call timout with --foreground to quickly terminate on SIGINT.
5477         * testsuite/experimental/simd/generate_makefile.sh: Simplify run
5478         targets via target patterns. Default DRIVEROPTS to -v for run
5479         targets. Remove log and sum files after completion of the run
5480         target (so that it's always recompiled).
5481         Place help text into text file for reasonable 'make help'
5482         performance.
5483
5484 2021-02-03  Matthias Kretz  <kretz@kde.org>
5485
5486         * include/experimental/bits/simd.h: Remove unnecessary static
5487         assertion. Allow sizeof(8) integer __intrinsic_type to enable
5488         the necessary mask type.
5489
5490 2021-02-03  Matthias Kretz  <kretz@kde.org>
5491
5492         * include/experimental/bits/simd.h: Let __intrinsic_type<long
5493         double, N> be valid if sizeof(long double) == sizeof(double) and
5494         use a __vector double as member type.
5495
5496 2021-02-03  Matthias Kretz  <kretz@kde.org>
5497
5498         * include/experimental/bits/simd.h (__is_intrinsic_type): New
5499         internal type trait. Alias for __is_vector_type on x86.
5500         (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
5501         __vector_type.
5502         (__intrin_bitcast): Allow casting to & from vector & intrinsic
5503         types.
5504         (__intrinsic_type): Explicitly specialize for NEON intrinsic
5505         vector types.
5506
5507 2021-02-03  Matthias Kretz  <kretz@kde.org>
5508
5509         * testsuite/experimental/simd/driver.sh: Implement skip, only,
5510         expensive, and xfail markers. They can select on type, ABI tag
5511         subset number, target-triplet, and compiler flags.
5512         * testsuite/experimental/simd/generate_makefile.sh: The summary
5513         now includes lines for unexpected passes and expected failures.
5514         If the skip or only markers are only conditional on the type, do
5515         not generate rules for those types.
5516         * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
5517         for ABI tag subsets 1-9.
5518         * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
5519         * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
5520         * testsuite/experimental/simd/tests/casts.cc: Ditto.
5521         * testsuite/experimental/simd/tests/generator.cc: Ditto.
5522         * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
5523         * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
5524         * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
5525         * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
5526         * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
5527         * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
5528         * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
5529         * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
5530         * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
5531         * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
5532         * testsuite/experimental/simd/tests/operators.cc: Ditto.
5533         * testsuite/experimental/simd/tests/reductions.cc: Ditto.
5534         * testsuite/experimental/simd/tests/simd.cc: Ditto.
5535         * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
5536         * testsuite/experimental/simd/tests/splits.cc: Ditto.
5537         * testsuite/experimental/simd/tests/where.cc: Ditto.
5538         * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
5539         addition replace "test only floattypes" marker by unconditional
5540         "float|double|ldouble" only marker.
5541         * testsuite/experimental/simd/tests/frexp.cc: Ditto.
5542         * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
5543         * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
5544         Ditto.
5545         * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
5546         * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
5547         * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
5548         * testsuite/experimental/simd/tests/remqo.cc: Ditto.
5549         * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
5550         * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
5551         * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
5552         addition, xfail on run because the reference data is missing.
5553
5554 2021-02-02  Jonathan Wakely  <jwakely@redhat.com>
5555
5556         * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
5557         * doc/xml/manual/status_cxx2014.xml: Likewise.
5558         * doc/xml/manual/status_cxx2017.xml: Likewise.
5559         * doc/html/manual/status.html: Regenerate.
5560
5561 2021-02-01  François Dumont  <fdumont@gcc.gnu.org>
5562
5563         PR libstdc++/70303
5564         * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
5565         Return 0 if both iterators are value-initialized.
5566         * testsuite/23_containers/deque/70303.cc: New test.
5567         * testsuite/23_containers/vector/70303.cc: New test.
5568
5569 2021-02-01  Jonathan Wakely  <jwakely@redhat.com>
5570
5571         * doc/xml/manual/status_cxx2011.xml: Update std::call_once
5572         status.
5573         * doc/xml/manual/status_cxx2014.xml: Likewise.
5574         * doc/xml/manual/status_cxx2017.xml: Likewise. Update
5575         std::from_chars and std::to_chars status. Fix formatting.
5576         * doc/html/manual/status.html: Regenerate.
5577
5578 2021-01-28  Jonathan Wakely  <jwakely@redhat.com>
5579
5580         * include/experimental/bits/numeric_traits.h: Update copyright
5581         dates.
5582         * include/experimental/bits/simd.h: Likewise.
5583         * include/experimental/bits/simd_builtin.h: Likewise.
5584         * include/experimental/bits/simd_converter.h: Likewise.
5585         * include/experimental/bits/simd_detail.h: Likewise.
5586         * include/experimental/bits/simd_fixed_size.h: Likewise.
5587         * include/experimental/bits/simd_math.h: Likewise.
5588         * include/experimental/bits/simd_neon.h: Likewise.
5589         * include/experimental/bits/simd_ppc.h: Likewise.
5590         * include/experimental/bits/simd_scalar.h: Likewise.
5591         * include/experimental/bits/simd_x86.h: Likewise.
5592         * include/experimental/bits/simd_x86_conversions.h: Likewise.
5593         * include/experimental/simd: Likewise.
5594         * testsuite/experimental/simd/*: Likewise.
5595
5596 2021-01-27  Jonathan Wakely  <jwakely@redhat.com>
5597
5598         * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
5599         * doc/html/*: Regenerate.
5600
5601 2021-01-27  Jonathan Wakely  <jwakely@redhat.com>
5602
5603         * testsuite/experimental/simd/generate_makefile.sh: Use printf
5604         instead of echo when printing escape characters.
5605
5606 2021-01-27  Matthias Kretz  <kretz@kde.org>
5607
5608         * scripts/check_simd: New file. This script is called from the
5609         the check-simd target. It determines a set of compiler flags and
5610         simulator setups for calling generate_makefile.sh and passes the
5611         information back to the check-simd target, which recurses to the
5612         generated Makefiles.
5613         * scripts/create_testsuite_files: Remove files below simd/tests/
5614         from testsuite_files and place them in testsuite_files_simd.
5615         * testsuite/Makefile.am: Add testsuite_files_simd. Add
5616         check-simd target.
5617         * testsuite/Makefile.in: Regenerate.
5618         * testsuite/experimental/simd/driver.sh: New file. This script
5619         compiles and runs a given simd test, logging its output and
5620         status. It uses the timeout command to implement compile and
5621         test timeouts.
5622         * testsuite/experimental/simd/generate_makefile.sh: New file.
5623         This script generates a Makefile which uses driver.sh to compile
5624         and run the tests and collect the logs into a single log file.
5625         * testsuite/experimental/simd/tests/abs.cc: New file. Tests
5626         abs(simd).
5627         * testsuite/experimental/simd/tests/algorithms.cc: New file.
5628         Tests min/max(simd, simd).
5629         * testsuite/experimental/simd/tests/bits/conversions.h: New
5630         file. Contains functions to support tests involving conversions.
5631         * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
5632         Support functions make_mask and make_vec.
5633         * testsuite/experimental/simd/tests/bits/mathreference.h: New
5634         file. Support functions to supply precomputed math function
5635         reference data.
5636         * testsuite/experimental/simd/tests/bits/metahelpers.h: New
5637         file. Support code for SFINAE testing.
5638         * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
5639         * testsuite/experimental/simd/tests/bits/test_values.h: New
5640         file. Test functions to easily drive a test with simd objects
5641         initialized from a given list of values and a range of random
5642         values.
5643         * testsuite/experimental/simd/tests/bits/ulp.h: New file.
5644         Support code to determine the ULP distance of simd objects.
5645         * testsuite/experimental/simd/tests/bits/verify.h: New file.
5646         Test framework for COMPARE'ing simd objects and instantiating
5647         the test templates with value_type and ABI tag.
5648         * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
5649         simd broadcasts.
5650         * testsuite/experimental/simd/tests/casts.cc: New file. Test
5651         simd casts.
5652         * testsuite/experimental/simd/tests/fpclassify.cc: New file.
5653         Test floating-point classification functions.
5654         * testsuite/experimental/simd/tests/frexp.cc: New file. Test
5655         frexp(simd).
5656         * testsuite/experimental/simd/tests/generator.cc: New file. Test
5657         simd generator constructor.
5658         * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
5659         Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
5660         * testsuite/experimental/simd/tests/integer_operators.cc: New
5661         file. Test integer operators.
5662         * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
5663         New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
5664         modf(simd).
5665         * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
5666         (converting) simd loads and stores.
5667         * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
5668         log*(simd).
5669         * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
5670         Test simd_mask broadcasts.
5671         * testsuite/experimental/simd/tests/mask_conversions.cc: New
5672         file. Test simd_mask conversions.
5673         * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
5674         file. Test simd_mask implicit conversions.
5675         * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
5676         Test simd_mask loads and stores.
5677         * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
5678         file. Test simd_mask operators convert as specified.
5679         * testsuite/experimental/simd/tests/mask_operators.cc: New file.
5680         Test simd_mask compares, subscripts, and negation.
5681         * testsuite/experimental/simd/tests/mask_reductions.cc: New
5682         file. Test simd_mask reductions.
5683         * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
5684         1-arg math functions on simd.
5685         * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
5686         2-arg math functions on simd.
5687         * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
5688         Test implicit conversions on simd binary operators behave as
5689         specified.
5690         * testsuite/experimental/simd/tests/operators.cc: New file. Test
5691         simd compares, subscripts, not, unary minus, plus, minus,
5692         multiplies, divides, increment, and decrement.
5693         * testsuite/experimental/simd/tests/reductions.cc: New file.
5694         Test reduce(simd).
5695         * testsuite/experimental/simd/tests/remqo.cc: New file. Test
5696         remqo(simd).
5697         * testsuite/experimental/simd/tests/simd.cc: New file. Basic
5698         sanity checks of simd types.
5699         * testsuite/experimental/simd/tests/sincos.cc: New file. Test
5700         sin(simd) and cos(simd).
5701         * testsuite/experimental/simd/tests/split_concat.cc: New file.
5702         Test split(simd) and concat(simd, simd).
5703         * testsuite/experimental/simd/tests/splits.cc: New file. Test
5704         split(simd_mask).
5705         * testsuite/experimental/simd/tests/trigonometric.cc: New file.
5706         Test remaining trigonometric functions on simd.
5707         * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
5708         file. Test trunc(simd), ceil(simd), and floor(simd).
5709         * testsuite/experimental/simd/tests/where.cc: New file. Test
5710         masked operations using where.
5711
5712 2021-01-27  Matthias Kretz  <kretz@kde.org>
5713
5714         * doc/xml/manual/status_cxx2017.xml: Add implementation status
5715         of the Parallelism TS 2. Document implementation-defined types
5716         and behavior.
5717         * include/Makefile.am: Add new headers.
5718         * include/Makefile.in: Regenerate.
5719         * include/experimental/simd: New file. New header for
5720         Parallelism TS 2.
5721         * include/experimental/bits/numeric_traits.h: New file.
5722         Implementation of P1841R1 using internal naming. Addition of
5723         missing IEC559 functionality query.
5724         * include/experimental/bits/simd.h: New file. Definition of the
5725         public simd interfaces and general implementation helpers.
5726         * include/experimental/bits/simd_builtin.h: New file.
5727         Implementation of the _VecBuiltin simd_abi.
5728         * include/experimental/bits/simd_converter.h: New file. Generic
5729         simd conversions.
5730         * include/experimental/bits/simd_detail.h: New file. Internal
5731         macros for the simd implementation.
5732         * include/experimental/bits/simd_fixed_size.h: New file. Simd
5733         fixed_size ABI specific implementations.
5734         * include/experimental/bits/simd_math.h: New file. Math
5735         overloads for simd.
5736         * include/experimental/bits/simd_neon.h: New file. Simd NEON
5737         specific implementations.
5738         * include/experimental/bits/simd_ppc.h: New file. Implement bit
5739         shifts to avoid invalid results for integral types smaller than
5740         int.
5741         * include/experimental/bits/simd_scalar.h: New file. Simd scalar
5742         ABI specific implementations.
5743         * include/experimental/bits/simd_x86.h: New file. Simd x86
5744         specific implementations.
5745         * include/experimental/bits/simd_x86_conversions.h: New file.
5746         x86 specific conversion optimizations. The conversion patterns
5747         work around missing conversion patterns in the compiler and
5748         should be removed as soon as PR85048 is resolved.
5749         * testsuite/experimental/simd/standard_abi_usable.cc: New file.
5750         Test that all (not all fixed_size<N>, though) standard simd and
5751         simd_mask types are usable.
5752         * testsuite/experimental/simd/standard_abi_usable_2.cc: New
5753         file. As above but with -ffast-math.
5754         * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
5755         from the standard test loop. Instead use
5756         check_vect_support_and_set_flags to build simd tests with the
5757         relevant machine flags.
5758
5759 2021-01-27  Jonathan Wakely  <jwakely@redhat.com>
5760
5761         PR libstdc++/66414
5762         * include/bits/string_view.tcc
5763         (basic_string_view::find(const CharT*, size_type, size_type)):
5764         Optimize.
5765
5766 2021-01-27  Paul Fee  <paul.f.fee@gmail.com>
5767
5768         * include/bits/basic_string.h (basic_string::contains): New
5769         member functions.
5770         * include/std/string_view (basic_string_view::contains):
5771         Likewise.
5772         * include/std/version (__cpp_lib_string_contains): Define.
5773         * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
5774         Remove trailing whitespace.
5775         * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
5776         Likewise.
5777         * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
5778         * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
5779         * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
5780         * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
5781         * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
5782
5783 2021-01-21  Jonathan Wakely  <jwakely@redhat.com>
5784
5785         * src/c++17/Makefile.in: Regenerate.
5786
5787 2021-01-20  David Edelsohn  <dje.gcc@gmail.com>
5788
5789         * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
5790         _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
5791         __lc_type.
5792         (const char* ctype<char>:: is): Same.
5793
5794 2021-01-18  Jonathan Wakely  <jwakely@redhat.com>
5795
5796         PR libstdc++/98725
5797         * testsuite/20_util/unique_ptr/io/lwg2948.cc:  Do not try to
5798         write to a wide character stream if wide character support is
5799         disabled in the library.
5800
5801 2021-01-18  Jonathan Wakely  <jwakely@redhat.com>
5802
5803         * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
5804         stringbuf not wstringbuf.
5805
5806 2021-01-18  Jakub Jelinek  <jakub@redhat.com>
5807
5808         PR debug/98708
5809         * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
5810         Compile with -gno-as-loc-support.
5811         * src/c++11/Makefile.in: Regenerated.
5812
5813 2021-01-16  H.J. Lu  <hjl.tools@gmail.com>
5814
5815         * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
5816         Add -fcf-protection=none to -march=i486.
5817
5818 2021-01-14  François Dumont  <fdumont@gcc.gnu.org>
5819
5820         * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
5821         compliant.
5822
5823 2021-01-14  Alexandre Oliva  <oliva@adacore.com>
5824
5825         * testsuite/30_threads/future/members/poll.cc: Calibrate
5826         iteration count.
5827
5828 2021-01-14  François Dumont  <fdumont@gcc.gnu.org>
5829
5830         PR libstdc++/98466
5831         * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
5832         (_Node_iterator()): Make default.
5833         (_Node_const_iterator()): Make default.
5834         * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
5835         iterator checks.
5836         * include/debug/safe_iterator.h
5837         (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
5838         * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
5839         Likewise.
5840         * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
5841         _M_singular checks on input iterators.
5842         * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
5843         checks.
5844         * testsuite/23_containers/deque/debug/98466.cc: New test.
5845         * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
5846
5847 2021-01-14  Jonathan Wakely  <jwakely@redhat.com>
5848
5849         PR libstdc++/98471
5850         * include/bits/fs_path.h (__throw_conversion_error): New
5851         function to throw or abort on character conversion errors.
5852         (__wstr_from_utf8): Move definition after filesystem_error has
5853         been defined. Use __throw_conversion_error.
5854         (path::_S_convert<_EcharT>): Use __throw_conversion_error.
5855         (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
5856         (path::u8string): Likewise.
5857
5858 2021-01-14  Jonathan Wakely  <jwakely@redhat.com>
5859
5860         * include/std/barrier: Update copyright years. Fix whitespace.
5861         * include/std/version: Fix whitespace.
5862         * testsuite/30_threads/barrier/1.cc: Update copyright years.
5863         * testsuite/30_threads/barrier/2.cc: Likewise.
5864         * testsuite/30_threads/barrier/arrive.cc: Likewise.
5865         * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
5866         * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
5867         * testsuite/30_threads/barrier/completion.cc: Likewise.
5868
5869 2021-01-13  Jonathan Wakely  <jwakely@redhat.com>
5870
5871         * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
5872
5873 2021-01-10  David Edelsohn  <dje.gcc@gmail.com>
5874
5875         PR libstdc++/98613
5876         * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
5877         warning.
5878         * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
5879
5880 2021-01-08  Olivier Hainque  <hainque@adacore.com>
5881
5882         * testsuite/20_util/bind/ref_neg.cc: Tweak the
5883         dg-prune-output regex for out-of-build-tree contexts.
5884
5885 2021-01-07  Thomas Rodgers  <trodgers@redhat.com>
5886
5887         * doc/doxygen/user.cfg.in: Add new header.
5888         * include/Makefile.am (std_headers): likewise.
5889         * include/Makefile.in: Regenerate.
5890         * include/precompiled/stdc++.h: Add new header.
5891         * include/std/barrier: New file.
5892         * include/std/version: Add __cpp_lib_barrier feature test macro.
5893         * testsuite/30_threads/barrier/1.cc: New test.
5894         * testsuite/30_threads/barrier/2.cc: Likewise.
5895         * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
5896         * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
5897         * testsuite/30_threads/barrier/arrive.cc: Likewise.
5898         * testsuite/30_threads/barrier/completion.cc: Likewise.
5899
5900 2021-01-07  Patrick Palka  <ppalka@redhat.com>
5901
5902         PR libstdc++/98384
5903         * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
5904         instead of the non-standard nextupl and nextdownl.
5905
5906 2021-01-05  Samuel Thibault  <samuel.thibault@ens-lyon.org>
5907
5908         * configure: Re-generate.
5909
5910 2021-01-05  Ed Smith-Rowland  <3dw4rd@verizon.net>
5911
5912         * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
5913
5914 2021-01-01  Jakub Jelinek  <jakub@redhat.com>
5915
5916         * ChangeLog-2020: Rotate ChangeLog.  New file.
5917
5918 \f
5919 Copyright (C) 2021 Free Software Foundation, Inc.
5920
5921 Copying and distribution of this file, with or without modification,
5922 are permitted in any medium without royalty provided the copyright
5923 notice and this notice are preserved.