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