]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/ChangeLog
[fortran] ICE assign character pointer to non target PR93714
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
CommitLineData
98cf2c26
JW
12020-02-17 Jonathan Wakely <jwakely@redhat.com>
2
c5e1c1d3
JW
3 P1964R2 Wording for boolean-testable
4 * include/bits/ranges_algo.h (__find_fn, __find_first_of_fn)
5 (__adjacent_find_fn): Cast result of predicate to bool.
6 * include/std/concepts (__boolean): Remove.
7 (__detail::__boolean_testable_impl, __detail::__boolean_testable): Add
8 new helper concepts.
9 (__detail::__weakly_eq_cmp_with, totally_ordered, totally_ordered_with)
10 (predicate): Use __boolean_testable instead of boolean.
11 * libsupc++/compare (__detail::__partially_ordered, _Synth3way):
12 Likewise.
13
7ab36231
JW
14 P1970R2 Consistency for size() functions: Add ranges::ssize
15 * include/bits/range_access.h (_SSize, ssize): Define for C++20.
16 * testsuite/std/ranges/access/ssize.cc: New test.
17
9866abe3
JW
18 P1956R1 On the names of low-level bit manipulation functions
19 * include/bits/hashtable_policy.h: Update comment.
20 * include/std/bit (__ispow2, __ceil2, __floor2, __log2p1): Rename.
21 (ispow2, ceil2, floor2, log2p1): Likewise.
22 (__cpp_lib_int_pow2): Add feature test macro.
23 * include/std/charconv (__to_chars_len_2): Adjust use of __log2p1.
24 * include/std/memory (assume_aligned): Adjust use of ispow2.
25 * include/std/version (__cpp_lib_int_pow2): Add.
26 * libsupc++/new_opa.cc: Adjust use of __ispow2.
27 * src/c++17/memory_resource.cc: Likewise, and for __ceil2 and __log2p1.
28 * testsuite/17_intro/freestanding.cc: Adjust use of ispow2.
29 * testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: Rename to ...
30 * testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc: ... here.
31 * testsuite/26_numerics/bit/bit.pow.two/ceil2_neg.cc: Rename to ...
32 * testsuite/26_numerics/bit/bit.pow.two/bit_ceil_neg.cc: ... here.
33 * testsuite/26_numerics/bit/bit.pow.two/floor2.cc: Rename to ...
34 * testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc: ... here.
35 * testsuite/26_numerics/bit/bit.pow.two/log2p1.cc: Rename to ...
36 * testsuite/26_numerics/bit/bit.pow.two/bit_width.cc: ... here.
37 * testsuite/26_numerics/bit/bit.pow.two/ispow2.cc: Rename to ...
38 * testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc: ... here.
39
cfbc8fbb
JW
40 * include/std/charconv: Add comment.
41
9cd4eeef
JW
42 PR libstdc++/92546 (partial)
43 * include/bits/random.h (uniform_random_bit_generator): Move definition
44 to <bits/uniform_int_dist.h>.
45 * include/bits/ranges_algo.h: Include <bits/uniform_int_dist.h> instead
46 of <bits/random.h>.
47 * include/bits/ranges_algobase.h: Do not include <cmath>.
48 * include/bits/uniform_int_dist.h (uniform_random_bit_generator):
49 Move here.
50 * include/std/ranges: Do not include <limits>.
51 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lineno.
52
c03b53da
JW
53 PR libstdc++/92546 (partial)
54 * include/Makefile.am: Add new header.
55 * include/Makefile.in: Regenerate.
56 * include/bits/int_limits.h: New header.
57 * include/bits/parse_numbers.h (__select_int::_Select_int): Replace
58 numeric_limits with __detail::__int_limits.
59 * include/std/bit (__rotl, __rotr, __countl_zero, __countl_one)
60 (__countr_zero, __countr_one, __popcount, __ceil2, __floor2, __log2p1):
61 Likewise.
62 * include/std/charconv (__to_chars_8, __from_chars_binary)
63 (__from_chars_alpha_to_num, from_chars): Likewise.
64 * include/std/memory_resource (polymorphic_allocator::allocate)
65 (polymorphic_allocator::allocate_object): Likewise.
66 * include/std/string_view (basic_string_view::_S_compare): Likewise.
67 * include/std/utility (in_range): Likewise.
68 * testsuite/20_util/integer_comparisons/in_range_neg.cc: Adjust for
69 extra error about incomplete type __int_limits<bool>.
70 * testsuite/26_numerics/bit/bit.count/countl_one.cc: Include <limits>.
71 * testsuite/26_numerics/bit/bit.count/countl_zero.cc: Likewise.
72 * testsuite/26_numerics/bit/bit.count/countr_one.cc: Likewise.
73 * testsuite/26_numerics/bit/bit.count/countr_zero.cc: Likewise.
74 * testsuite/26_numerics/bit/bit.count/popcount.cc: Likewise.
75 * testsuite/26_numerics/bit/bit.pow.two/ceil2_neg.cc: Likewise.
76 * testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: Likewise.
77 * testsuite/26_numerics/bit/bit.pow.two/floor2.cc: Likewise.
78 * testsuite/26_numerics/bit/bit.pow.two/ispow2.cc: Likewise.
79 * testsuite/26_numerics/bit/bit.pow.two/log2p1.cc: Likewise.
80 * testsuite/26_numerics/bit/bit.rotate/rotl.cc: Likewise.
81 * testsuite/26_numerics/bit/bit.rotate/rotr.cc: Likewise.
82
4540ef78
JW
83 * python/libstdcxx/v6/printers.py (StdCmpCatPrinter.to_string): Update
84 value for partial_ordering::unordered.
85
d6dfa3da
JW
86 * include/bits/iterator_concepts.h (indirectly_copyable_storable): Add
87 const-qualified expression variations.
88 * include/std/concepts (copyable): Likewise.
89
98cf2c26
JW
90 * include/std/type_traits (__is_standard_integer): New helper trait.
91 * include/std/utility (cmp_equal, cmp_not_equal, cmp_less, cmp_greater)
92 (cmp_less_equal, cmp_greater_equal, in_range): Define for C++20.
93 * include/std/version (__cpp_lib_integer_comparison_functions): Define.
94 * testsuite/20_util/integer_comparisons/1.cc: New test.
95 * testsuite/20_util/integer_comparisons/2.cc: New test.
96 * testsuite/20_util/integer_comparisons/equal.cc: New test.
97 * testsuite/20_util/integer_comparisons/equal_neg.cc: New test.
98 * testsuite/20_util/integer_comparisons/greater_equal.cc: New test.
99 * testsuite/20_util/integer_comparisons/greater_equal_neg.cc: New test.
100 * testsuite/20_util/integer_comparisons/greater_neg.cc: New test.
101 * testsuite/20_util/integer_comparisons/in_range.cc: New test.
102 * testsuite/20_util/integer_comparisons/in_range_neg.cc: New test.
103 * testsuite/20_util/integer_comparisons/less.cc: New test.
104 * testsuite/20_util/integer_comparisons/less_equal.cc: New test.
105 * testsuite/20_util/integer_comparisons/less_equal_neg.cc: New test.
106 * testsuite/20_util/integer_comparisons/less_neg.cc: New test.
107 * testsuite/20_util/integer_comparisons/not_equal.cc: New test.
108 * testsuite/20_util/integer_comparisons/not_equal_neg.cc: New test.
109
93b8cfce
PP
1102020-02-16 Patrick Palka <ppalka@redhat.com>
111
112 * include/bits/ranges_algo.h (__lexicographical_compare_fn::operator()):
113 Move code after an early exit constexpr if to under an else branch.
114 * include/bits/ranges_algobase.h (__equal_fn::operator()): Likewise.
115
90b7eb65
PP
1162020-02-15 Patrick Palka <ppalka@redhat.com>
117
55992626
PP
118 * include/bits/ranges_algo.h: Adjust whitespace and formatting.
119 * include/bits/ranges_algobase.h: Likewise.
120 * include/bits/ranges_uninitialized.h: Likewise.
121
b40c57bd
PP
122 * include/bits/ranges_algo.h: (adjacent_find, all_of, any_of,
123 binary_search, copy_if, count, count_if, equal_range, find, find_end,
124 find_first_of, find_if, find_if_not, for_each, generate, generate_n,
125 includes, inplace_merge, is_heap, is_heap_until, is_partitioned,
126 is_permutation, is_sorted, is_sorted_until, lexicographical_compare,
127 lower_bound, make_heap, max, max_element, merge, min, min_element,
128 minmax, minmax_element, mismatch, next_permutation, none_of,
129 nth_element, partial_sort, partial_sort_copy, partition, partition_copy,
130 partition_point, pop_heap, prev_permutation, push_heap, remove,
131 remove_copy, remove_copy_if, remove_if, replace, replace_copy,
132 replace_copy_if, replace_if, reverse, reverse_copy, rotate, rotate_copy,
133 search, search_n, set_difference, set_intersection,
134 set_symmetric_difference, set_union, shuffle, sort, sort_heap,
135 stable_partition, stable_sort, swap_ranges, transform, unique,
136 unique_copy, upper_bound): Convert into function objects.
137 * include/bits/ranges_algobase.h: (equal, copy, move, copy_n, fill_n,
138 fill, move_backward, copy_backward): Likewise.
139 * include/bits/ranges_uninitialized.h (uninitialized_default_construct,
140 uninitialized_default_construct_n, uninitialized_value_construct,
141 uninitialized_value_construct_n, uninitialized_copy,
142 uninitialized_copy_n, uninitialized_move, uninitialized_move_n,
143 uninitialized_fill, uninitialized_fill_n, construct_at, destroy_at,
144 destroy, destroy_n): Likewise.
145
90b7eb65
PP
146 * include/bits/ranges_algo.h (ranges::__find_end): Fold into ...
147 (ranges::find_end): ... here.
148 (ranges::__lexicographical_compare): Fold into ...
149 (ranges::lexicographical_compare): ... here.
150 * include/bits/ranges_algobase.h (ranges::__equal): Fold into ...
151 (ranges::equal): ... here.
152
55b00d14
JW
1532020-02-15 Jonathan Wakely <jwakely@redhat.com>
154
155 * include/bits/erase_if.h (__cpp_lib_erase_if): Define to 202002L.
156 * include/std/deque: Likewise.
157 * include/std/forward_list: Likewise.
158 * include/std/list: Likewise.
159 * include/std/string: Likewise.
160 * include/std/vector: Likewise.
161 * include/std/version: Likewise.
162 * testsuite/23_containers/deque/erasure.cc: Test for new value.
163 * testsuite/23_containers/forward_list/erasure.cc: Likewise.
164 * testsuite/23_containers/list/erasure.cc: Likewise.
165 * testsuite/23_containers/map/erasure.cc: Likewise.
166 * testsuite/23_containers/set/erasure.cc: Likewise.
167 * testsuite/23_containers/unordered_map/erasure.cc: Likewise.
168 * testsuite/23_containers/unordered_set/erasure.cc: Likewise.
169 * testsuite/23_containers/vector/erasure.cc: Likewise.
170
5b1d5885
JW
1712020-02-15 Jonathan Wakely <jwakely@redhat.com>
172
173 * include/bits/random.h (uniform_random_bit_generator): Require min()
174 and max() to be constant expressions and min() to be less than max().
175 * testsuite/26_numerics/random/concept.cc: Check additional cases.
176 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lineno.
177
90fc7b3c
PP
1782020-02-13 Patrick Palka <ppalka@redhat.com>
179
613c932f
PP
180 * include/Makefile.am: Add <bits/ranges_uninitialized.h>.
181 * include/Makefile.in: Regenerate.
182 * include/bits/ranges_uninitialized.h: New header.
183 * include/std/memory: Include it.
184 * testsuite/20_util/specialized_algorithms/destroy/constrained.cc: New
185 test.
186 * .../uninitialized_copy/constrained.cc: New test.
187 * .../uninitialized_default_construct/constrained.cc: New test.
188 * .../uninitialized_fill/constrained.cc: New test.
189 * .../uninitialized_move/constrained.cc: New test.
190 * .../uninitialized_value_construct/constrained.cc: New test.
191
90fc7b3c
PP
192 * include/Makefile.am: Add bits/ranges_algobase.h
193 * include/Makefile.in: Regenerate.
194 * bits/ranges_algo.h: Include <bits/ranges_algobase.h> and refactor
195 existing #includes.
196 (__detail::__is_normal_iterator, __detail::is_reverse_iterator,
197 __detail::__is_move_iterator, copy_result, move_result,
198 __equal, equal, copy_result, move_result, move_backward_result,
199 copy_backward_result, __copy_or_move_backward, __copy_or_move, copy,
200 move, copy_backward, move_backward, copy_n_result, copy_n, fill_n,
201 fill): Split out into ...
202 * bits/range_algobase.h: ... this new header.
203
99bbab9f
PP
2042020-02-12 Patrick Palka <ppalka@redhat.com>
205
206 LWG 3389 and LWG 3390
207 * include/bits/stl_iterator.h (move_move_iterator): Use std::move when
208 constructing the move_iterator with __i.
209 (counted_iterator::counted_iterator): Use std::move when initializing
210 M_current with __i.
211 * testsuite/24_iterators/counted_iterator/lwg3389.cc: New test.
212 * testsuite/24_iterators/move_iterator/lwg3390.cc: New test.
213
02ce382c
SL
2142020-02-12 Sandra Loosemore <sandra@codesourcery.com>
215
216 PR libstdc++/79193
217 PR libstdc++/88999
218
219 * configure: Regenerated.
220
b32a3f32
FD
2212020-02-12 François Dumont <fdumont@gcc.gnu.org>
222
223 * include/bits/hashtable.h
224 (_Hashtable<>(_Hashtable&&, std::allocator_type&)): Add
225 missing std namespace qualification to forward call.
226
dcda050e
JW
2272020-02-09 Jonathan Wakely <jwakely@redhat.com>
228
38660e87
JW
229 * testsuite/20_util/function_objects/range.cmp/equal_to.cc: Fix
230 comment.
231 * testsuite/20_util/function_objects/range.cmp/less.ccL Likewise.
232
97a7c229
JW
233 * include/std/ranges: Fix non-ASCII characters in comment.
234
dcda050e
JW
235 * include/bits/range_cmp.h (__detail::__eq_builtin_ptr_cmp): Require
236 equality comparison to be valid and return bool.
237 (__detail::__less_builtin_ptr_cmp): Likewise for less-than comparison.
238 * testsuite/20_util/function_objects/range.cmp/equal_to.cc: Check
239 type with ambiguous conversion to fundamental types.
240 * testsuite/20_util/function_objects/range.cmp/less.cc: Likewise.
241
d222d8ec
JW
2422020-02-07 Jonathan Wakely <jwakely@redhat.com>
243
c8dd2446
JW
244 * include/bits/iterator_concepts.h (iter_difference_t, iter_value_t):
245 Use remove_cvref_t.
246 (readable_traits): Rename to indirectly_readable_traits.
247 (readable): Rename to indirectly_readable.
248 (writable): Rename to indirectly_writable.
249 (__detail::__iter_exchange_move): Do not use remove_reference_t.
250 (indirectly_swappable): Adjust requires expression parameter types.
251 expression.
252 * include/bits/ranges_algo.h (ranges::transform, ranges::replace)
253 (ranges::replace_if, ranges::generate_n, ranges::generate)
254 (ranges::remove): Use new name for writable.
255 * include/bits/stl_iterator.h (__detail::__common_iter_has_arrow):
256 Use new name for readable.
257 * include/ext/pointer.h (readable_traits<_Pointer_adapter<P>>): Use
258 new name for readable_traits.
259 * testsuite/24_iterators/associated_types/readable.traits.cc: Likewise.
260 * testsuite/24_iterators/indirect_callable/projected.cc: Adjust for
261 new definition of indirectly_readable.
262
d222d8ec
JW
263 * include/bits/stl_iterator.h (__detail::__common_iter_ptr): Change
264 to take parameters of common_iterator, instead of the common_iterator
265 type itself. Fix argument for __common_iter_has_arrow constraint.
266 (iterator_traits<common_iterator<I, S>>::pointer): Adjust.
267
572992c8
JW
2682020-02-07 Jonathan Wakely <jwakely@redhat.com>
269
270 * include/std/ranges (iota_view): Add braces to prevent -Wempty-body
271 warning.
272 (basic_istream_view::_Iterator::operator++()): Add missing return.
273
cba9ef06
PP
2742020-02-07 Patrick Palka <ppalka@redhat.com>
275
a04f635d
PP
276 * include/bits/ranges_algo.h: Remove extraneous &&.
277
b7903d9f
PP
278 * include/std/ranges (ranges::__detail::__stream_extractable,
279 ranges::basic_istream_view, ranges::istream_view): Define.
280 * testsuite/std/ranges/istream_view: New test.
281
cba9ef06
PP
282 Implement C++20 range adaptors
283 * include/std/ranges: Include <bits/refwrap.h> and <tuple>.
284 (subrange::_S_store_size): Mark as const instead of constexpr to
285 avoid what seems to be a bug in GCC.
286 (__detail::__box): Give it defaulted copy and move constructors.
55d4cbcb
PP
287 (ranges::views::_Single::operator()): Mark constexpr.
288 (ranges::views::_Iota::operator()): Mark constexpr.
cba9ef06 289 (__detail::Empty): Define.
55d4cbcb
PP
290 (ranges::views::__closure::_RangeAdaptor,
291 ranges::views::__closure::_RangeAdaptorClosure, ref_view, all_view,
292 ranges::views::all, ranges::__detail::find_if,
293 ranges::__detail::find_if_not, ranges::__detail::mismatch,
294 ranges::detail::min, filter_view, ranges::views::filter, transform_view,
295 ranges::views::transform, take_view, ranges::views::take,
296 take_while_view, ranges::views::take_while, drop_view,
297 ranges::views::drop, join_view, ranges::views::join,
cba9ef06 298 __detail::require_constant, __detail::tiny_range, split_view,
55d4cbcb
PP
299 ranges::views::split, ranges::views::_Counted, ranges::views::counted,
300 common_view, ranges::views::common, reverse_view,
301 ranges::views::reverse,
302 ranges::views::__detail::__is_reversible_subrange,
303 ranges::views::__detail::__is_reverse_view, reverse_view,
304 ranges::views::reverse, __detail::__has_tuple_element, elements_view,
305 ranges::views::elements, ranges::views::keys, ranges::views::values):
306 Define.
307 (views): Alias for ranges::views.
308 (tuple_size<ranges::subrange<>>, tuple_element<0, ranges::subrange>,
309 tuple_element<1, ranges::subrange>): New partial specializations.
cba9ef06
PP
310 * testsuite/std/ranges/adaptors/all.cc: New test.
311 * testsuite/std/ranges/adaptors/common.cc: Likewise.
312 * testsuite/std/ranges/adaptors/counted.cc: Likewise.
313 * testsuite/std/ranges/adaptors/drop.cc: Likewise.
314 * testsuite/std/ranges/adaptors/drop_while.cc: Likewise.
315 * testsuite/std/ranges/adaptors/elements.cc: Likewise.
316 * testsuite/std/ranges/adaptors/filter.cc: Likewise.
317 * testsuite/std/ranges/adaptors/join.cc: Likewise.
318 * testsuite/std/ranges/adaptors/reverse.cc: Likewise.
319 * testsuite/std/ranges/adaptors/split.cc: Likewise.
320 * testsuite/std/ranges/adaptors/take.cc: Likewise.
321 * testsuite/std/ranges/adaptors/take_while.cc: Likewise.
322 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
323
5713834e
JW
3242020-02-07 Jonathan Wakely <jwakely@redhat.com>
325
0d57370c
JW
326 * libsupc++/compare (__cmp_cat::type): Define typedef for underlying
327 type of enumerations and comparison category types.
328 (__cmp_cat::_Ord, __cmp_cat::_Ncmp): Add underlying type.
329 (__cmp_cat::_Ncmp::unordered): Change value to 2.
330 (partial_ordering::_M_value, weak_ordering::_M_value)
331 (strong_ordering::_M_value): Change type to __cmp_cat::type.
332 (partial_ordering::_M_is_ordered): Remove data member.
333 (partial_ordering): Use second bit of _M_value for unordered. Adjust
334 comparison operators.
335 (weak_ordering::operator partial_ordering): Simplify to remove
336 branches.
337 (operator<=>(unspecified, weak_ordering)): Likewise.
338 (strong_ordering::operator partial_ordering): Likewise.
339 (strong_ordering::operator weak_ordering): Likewise.
340 (operator<=>(unspecified, strong_ordering)): Likewise.
341 * testsuite/18_support/comparisons/categories/partialord.cc: New test.
342 * testsuite/18_support/comparisons/categories/strongord.cc: New test.
343 * testsuite/18_support/comparisons/categories/weakord.cc: New test.
344
5713834e
JW
345 * include/std/ranges (iota_view::_Iterator): Fix typo in name of
346 __cpp_lib_three_way_comparison macro and use deduced return type for
347 operator<=>.
348 * testsuite/std/ranges/iota/iterator.cc: New test.
349
bc464641
PP
3502020-02-07 Patrick Palka <ppalka@redhat.com>
351 Jonathan Wakely <jwakely@redhat.com>
352
353 Implement C++20 constrained algorithms
354 * include/Makefile.am: Add new header.
355 * include/Makefile.in: Regenerate.
356 * include/std/algorithm: Include <bits/ranges_algo.h>.
357 * include/bits/ranges_algo.h: New file.
358 * testsuite/25_algorithms/adjacent_find/constrained.cc: New test.
359 * testsuite/25_algorithms/all_of/constrained.cc: New test.
360 * testsuite/25_algorithms/any_of/constrained.cc: New test.
361 * testsuite/25_algorithms/binary_search/constrained.cc: New test.
362 * testsuite/25_algorithms/copy/constrained.cc: New test.
363 * testsuite/25_algorithms/copy_backward/constrained.cc: New test.
364 * testsuite/25_algorithms/copy_if/constrained.cc: New test.
365 * testsuite/25_algorithms/copy_n/constrained.cc: New test.
366 * testsuite/25_algorithms/count/constrained.cc: New test.
367 * testsuite/25_algorithms/count_if/constrained.cc: New test.
368 * testsuite/25_algorithms/equal/constrained.cc: New test.
369 * testsuite/25_algorithms/equal_range/constrained.cc: New test.
370 * testsuite/25_algorithms/fill/constrained.cc: New test.
371 * testsuite/25_algorithms/fill_n/constrained.cc: New test.
372 * testsuite/25_algorithms/find/constrained.cc: New test.
373 * testsuite/25_algorithms/find_end/constrained.cc: New test.
374 * testsuite/25_algorithms/find_first_of/constrained.cc: New test.
375 * testsuite/25_algorithms/find_if/constrained.cc: New test.
376 * testsuite/25_algorithms/find_if_not/constrained.cc: New test.
377 * testsuite/25_algorithms/for_each/constrained.cc: New test.
378 * testsuite/25_algorithms/generate/constrained.cc: New test.
379 * testsuite/25_algorithms/generate_n/constrained.cc: New test.
380 * testsuite/25_algorithms/heap/constrained.cc: New test.
381 * testsuite/25_algorithms/includes/constrained.cc: New test.
382 * testsuite/25_algorithms/inplace_merge/constrained.cc: New test.
383 * testsuite/25_algorithms/is_partitioned/constrained.cc: New test.
384 * testsuite/25_algorithms/is_permutation/constrained.cc: New test.
385 * testsuite/25_algorithms/is_sorted/constrained.cc: New test.
386 * testsuite/25_algorithms/is_sorted_until/constrained.cc: New test.
387 * testsuite/25_algorithms/lexicographical_compare/constrained.cc: New
388 test.
389 * testsuite/25_algorithms/lower_bound/constrained.cc: New test.
390 * testsuite/25_algorithms/max/constrained.cc: New test.
391 * testsuite/25_algorithms/max_element/constrained.cc: New test.
392 * testsuite/25_algorithms/merge/constrained.cc: New test.
393 * testsuite/25_algorithms/min/constrained.cc: New test.
394 * testsuite/25_algorithms/min_element/constrained.cc: New test.
395 * testsuite/25_algorithms/minmax/constrained.cc: New test.
396 * testsuite/25_algorithms/minmax_element/constrained.cc: New test.
397 * testsuite/25_algorithms/mismatch/constrained.cc: New test.
398 * testsuite/25_algorithms/move/constrained.cc: New test.
399 * testsuite/25_algorithms/move_backward/constrained.cc: New test.
400 * testsuite/25_algorithms/next_permutation/constrained.cc: New test.
401 * testsuite/25_algorithms/none_of/constrained.cc: New test.
402 * testsuite/25_algorithms/nth_element/constrained.cc: New test.
403 * testsuite/25_algorithms/partial_sort/constrained.cc: New test.
404 * testsuite/25_algorithms/partial_sort_copy/constrained.cc: New test.
405 * testsuite/25_algorithms/partition/constrained.cc: New test.
406 * testsuite/25_algorithms/partition_copy/constrained.cc: New test.
407 * testsuite/25_algorithms/partition_point/constrained.cc: New test.
408 * testsuite/25_algorithms/prev_permutation/constrained.cc: New test.
409 * testsuite/25_algorithms/remove/constrained.cc: New test.
410 * testsuite/25_algorithms/remove_copy/constrained.cc: New test.
411 * testsuite/25_algorithms/remove_copy_if/constrained.cc: New test.
412 * testsuite/25_algorithms/remove_if/constrained.cc: New test.
413 * testsuite/25_algorithms/replace/constrained.cc: New test.
414 * testsuite/25_algorithms/replace_copy/constrained.cc: New test.
415 * testsuite/25_algorithms/replace_copy_if/constrained.cc: New test.
416 * testsuite/25_algorithms/replace_if/constrained.cc: New test.
417 * testsuite/25_algorithms/reverse/constrained.cc: New test.
418 * testsuite/25_algorithms/reverse_copy/constrained.cc: New test.
419 * testsuite/25_algorithms/rotate/constrained.cc: New test.
420 * testsuite/25_algorithms/rotate_copy/constrained.cc: New test.
421 * testsuite/25_algorithms/search/constrained.cc: New test.
422 * testsuite/25_algorithms/search_n/constrained.cc: New test.
423 * testsuite/25_algorithms/set_difference/constrained.cc: New test.
424 * testsuite/25_algorithms/set_intersection/constrained.cc: New test.
425 * testsuite/25_algorithms/set_symmetric_difference/constrained.cc: New
426 test.
427 * testsuite/25_algorithms/set_union/constrained.cc: New test.
428 * testsuite/25_algorithms/shuffle/constrained.cc: New test.
429 * testsuite/25_algorithms/sort/constrained.cc: New test.
430 * testsuite/25_algorithms/stable_partition/constrained.cc: New test.
431 * testsuite/25_algorithms/stable_sort/constrained.cc: New test.
432 * testsuite/25_algorithms/swap_ranges/constrained.cc: New test.
433 * testsuite/25_algorithms/transform/constrained.cc: New test.
434 * testsuite/25_algorithms/unique/constrained.cc: New test.
435 * testsuite/25_algorithms/unique_copy/constrained.cc: New test.
436 * testsuite/25_algorithms/upper_bound/constrained.cc: New test.
437
d1aa7705
JW
4382020-02-06 Jonathan Wakely <jwakely@redhat.com>
439
bd630df0
JW
440 * include/bits/stl_iterator.h (__detail::__common_iter_ptr): Fix PR
441 number in comment. Fix indentation.
442
d1aa7705
JW
443 * include/bits/stl_algobase.h (__iter_swap, __iter_swap<true>): Remove
444 redundant _GLIBCXX20_CONSTEXPR.
445
26eae9ac
JW
446 * include/std/ranges (viewable_range): Replace decay_t with
447 remove_cvref_t (LWG 3375).
448
269e8130
JW
4492020-02-05 Jonathan Wakely <jwakely@redhat.com>
450
451 * include/bits/iterator_concepts.h (iter_reference_t)
452 (iter_rvalue_reference_t, iter_common_reference_t, indirect_result_t):
453 Remove workarounds for PR c++/67704.
454 * testsuite/24_iterators/aliases.cc: New test.
455
7db12d15
PP
4562020-02-05 Patrick Palka <ppalka@redhat.com>
457
458 * include/bits/stl_iterator.h (move_iterator::move_iterator): Move __i
459 when initializing _M_current.
460 (move_iterator::base): Split into two overloads differing in
461 ref-qualifiers as in P1207R4 for C++20.
462
9962493c
JW
4632020-02-04 Jonathan Wakely <jwakely@redhat.com>
464
9bc5bea1
JW
465 * include/std/functional (_GLIBCXX_NOT_FN_CALL_OP): Un-define after
466 use.
467
9962493c
JW
468 PR libstdc++/93562
469 * include/bits/unique_ptr.h (__uniq_ptr_impl::swap): Define.
470 (unique_ptr::swap, unique_ptr<T[], D>::swap): Call it.
471 * testsuite/20_util/unique_ptr/modifiers/93562.cc: New test.
472
20fa702b
AB
4732020-02-01 Andrew Burgess <andrew.burgess@embecosm.com>
474
475 * configure: Regenerate.
476
6e5a1963
PP
4772020-01-31 Patrick Palka <ppalka@redhat.com>
478
479 * testsuite/24_iterators/range_operations/distance.cc: Do not assume
480 test_range::end() returns the same type as test_range::begin().
481 * testsuite/24_iterators/range_operations/next.cc: Likewise.
482 * testsuite/24_iterators/range_operations/prev.cc: Likewise.
483 * testsuite/util/testsuite_iterators.h (__gnu_test::test_range::end):
484 Always return a sentinel<I>.
485
5cd2e126
JW
4862020-01-29 Jonathan Wakely <jwakely@redhat.com>
487
0a8f4feb
JW
488 PR libstdc++/92895
489 * include/std/stop_token (stop_token::stop_possible()): Call new
490 _M_stop_possible() function.
491 (stop_token::stop_requested()): Do not use stop_possible().
492 (stop_token::binary_semaphore): New class, as temporary stand-in for
493 std::binary_semaphore.
494 (stop_token::_Stop_cb::_M_callback): Add noexcept to type.
495 (stop_token::_Stop_cb::_M_destroyed, stop_token::_Stop_cb::_M_done):
496 New data members for symchronization with stop_callback destruction.
497 (stop_token::_Stop_cb::_Stop_cb): Make non-template.
498 (stop_token::_Stop_cb::_M_linked, stop_token::_Stop_cb::_S_execute):
499 Remove.
500 (stop_token::_Stop_cb::_M_run): New member function.
501 (stop_token::_Stop_state::_M_stopped, stop_token::_Stop_state::_M_mtx):
502 Remove.
503 (stop_token::_Stop_state::_M_owners): New data member to track
504 reference count for ownership.
505 (stop_token::_Stop_state::_M_value): New data member combining a
506 spinlock, the stop requested flag, and the reference count for
507 associated stop_source objects.
508 (stop_token::_Stop_state::_M_requester): New data member for
509 synchronization with stop_callback destruction.
510 (stop_token::_Stop_state::_M_stop_possible()): New member function.
511 (stop_token::_Stop_state::_M_stop_requested()): Inspect relevant bit
512 of _M_value.
513 (stop_token::_Stop_state::_M_add_owner)
514 (stop_token::_Stop_state::_M_release_ownership)
515 (stop_token::_Stop_state::_M_add_ssrc)
516 (stop_token::_Stop_state::_M_sub_ssrc): New member functions for
517 updating reference counts.
518 (stop_token::_Stop_state::_M_lock, stop_token::_Stop_state::_M_unlock)
519 (stop_token::_Stop_state::_M_lock, stop_token::_Stop_state::_M_unlock)
520 (stop_token::_Stop_state::_M_try_lock)
521 (stop_token::_Stop_state::_M_try_lock_and_stop)
522 (stop_token::_Stop_state::_M_do_try_lock): New member functions for
523 managing spinlock.
524 (stop_token::_Stop_state::_M_request_stop): Use atomic operations to
525 read and update state. Release lock while running callbacks. Use new
526 data members to synchronize with callback destruction.
527 (stop_token::_Stop_state::_M_remove_callback): Likewise.
528 (stop_token::_Stop_state::_M_register_callback): Use atomic operations
529 to read and update state.
530 (stop_token::_Stop_state_ref): Handle type to manage _Stop_state,
531 replacing shared_ptr.
532 (stop_source::stop_source(const stop_source&)): Update reference count.
533 (stop_source::operator=(const stop_source&)): Likewise.
534 (stop_source::~stop_source()): Likewise.
535 (stop_source::stop_source(stop_source&&)): Define as defaulted.
536 (stop_source::operator=(stop_source&&)): Establish postcondition on
537 parameter.
538 (stop_callback): Enforce preconditions on template parameter. Replace
539 base class with data member of new _Cb_impl type.
540 (stop_callback::stop_callback(const stop_token&, Cb&&))
541 (stop_callback::stop_callback(stop_token&&, Cb&&)): Fix TOCTTOU race.
542 (stop_callback::_Cb_impl): New type wrapping _Callback member and
543 defining the _S_execute member function.
544 * testsuite/30_threads/stop_token/stop_callback/deadlock-mt.cc: New
545 test.
546 * testsuite/30_threads/stop_token/stop_callback/deadlock.cc: New test.
547 * testsuite/30_threads/stop_token/stop_callback/destroy.cc: New test.
548 * testsuite/30_threads/stop_token/stop_callback/destructible_neg.cc:
549 New test.
550 * testsuite/30_threads/stop_token/stop_callback/invocable_neg.cc: New
551 test.
552 * testsuite/30_threads/stop_token/stop_callback/invoke.cc: New test.
553 * testsuite/30_threads/stop_token/stop_source/assign.cc: New test.
554 * testsuite/30_threads/stop_token/stop_token/stop_possible.cc: New
555 test.
556
f214ffb3
JW
557 * libsupc++/compare (__detail::__3way_builtin_ptr_cmp): Use
558 three_way_comparable_with.
559 (__detail::__3way_cmp_with): Remove workaround for fixed bug.
560 (compare_three_way::operator()): Remove redundant constraint from
561 requires-clause.
562 (__detail::_Synth3way::operator()): Use three_way_comparable_with
563 instead of workaround.
564 * testsuite/18_support/comparisons/object/93479.cc: Prune extra
565 output due to simplified constraints on compare_three_way::operator().
566
83b02010
JW
567 PR libstdc++/93479
568 * libsupc++/compare (__3way_builtin_ptr_cmp): Require <=> to be valid.
569 * testsuite/18_support/comparisons/object/93479.cc: New test.
570
5cd2e126
JW
571 * testsuite/std/ranges/access/end.cc: Do not assume test_range::end()
572 returns the same type as test_range::begin(). Add comments.
573 * testsuite/std/ranges/access/rbegin.cc: Likewise.
574 * testsuite/std/ranges/access/rend.cc: Likewise.
575 * testsuite/std/ranges/range.cc: Do not assume the sentinel for
576 test_range is the same as its iterator type.
577 * testsuite/util/testsuite_iterators.h (test_range::sentinel): Add
578 operator- overloads to satisfy sized_sentinel_for when the iterator
579 satisfies random_access_iterator.
580
759812fd
JW
5812020-01-28 Jonathan Wakely <jwakely@redhat.com>
582
72a9fd20
JW
583 PR libstdc++/93470
584 * include/bits/refwrap.h (reference_wrapper::operator()): Restrict
585 static assertion to object types.
586
759812fd
JW
587 PR libstdc++/93325
588 * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Use AC_SEARCH_LIBS for
589 clock_gettime instead of explicit glibc version check.
590 * configure: Regenerate.
591
a5d81aaa
JW
5922020-01-28 Martin Liska <mliska@suse.cz>
593
594 PR libstdc++/93478
595 * include/std/atomic: Fix typo.
596 * include/std/optional: Likewise.
597
5982020-01-27 Andrew Burgess <andrew.burgess@embecosm.com>
599
600 * configure: Regenerate.
601
389cd88c
JW
6022020-01-27 Jonathan Wakely <jwakely@redhat.com>
603
604 PR libstdc++/93426
605 * include/std/span (span): Fix deduction guide.
606 * testsuite/23_containers/span/deduction.cc: New test.
607
482eeff5
JW
6082020-01-24 Jonathan Wakely <jwakely@redhat.com>
609
610 * libsupc++/compare (__cmp_cat::_Eq): Remove enumeration type.
611 (__cmp_cat::_Ord::equivalent): Add enumerator.
612 (__cmp_cat::_Ord::_Less, __cmp_cat::_Ord::_Greater): Rename to less
613 and greater.
614 (partial_ordering, weak_ordering, strong_ordering): Remove
615 constructors taking __cmp_cat::_Eq parameters. Use renamed
616 enumerators.
617
e8e66971
MR
6182020-01-24 Maciej W. Rozycki <macro@wdc.com>
619
620 * acinclude.m4: Handle `--with-toolexeclibdir='.
621 * Makefile.in: Regenerate.
622 * aclocal.m4: Regenerate.
623 * configure: Regenerate.
624 * doc/Makefile.in: Regenerate.
625 * include/Makefile.in: Regenerate.
626 * libsupc++/Makefile.in: Regenerate.
627 * po/Makefile.in: Regenerate.
628 * python/Makefile.in: Regenerate.
629 * src/Makefile.in: Regenerate.
630 * src/c++11/Makefile.in: Regenerate.
631 * src/c++17/Makefile.in: Regenerate.
632 * src/c++98/Makefile.in: Regenerate.
633 * src/filesystem/Makefile.in: Regenerate.
634 * testsuite/Makefile.in: Regenerate.
635
7a900bce
AO
6362020-01-23 Alexandre Oliva <oliva@adacore.com>
637
f9e84b31
AO
638 * crossconfig.m4 (GLIBCXX_CHECK_MATH_DECL): Reject macros.
639 * configure: Rebuild.
640
7a900bce
AO
641 * testsuite/27_io/fpos/mbstate_t/1.cc: Zero-init mbstate_t.
642
04681fca
JW
6432020-01-23 Jonathan Wakely <jwakely@redhat.com>
644
645 PR libstdc++/91947
646 * include/Makefile.am (${host_builddir}/largefile-config.h): Simplify
647 rule.
648 * include/Makefile.in: Regenerate.
649
c784f162
JW
6502020-01-20 Jonathan Wakely <jwakely@redhat.com>
651
652 * doc/xml/faq.xml: Fix grammar.
653 * doc/xml/manual/appendix_contributing.xml: Improve instructions.
654 * doc/xml/manual/spine.xml: Update copyright years.
655 * doc/html/*: Regenerate.
656
f4d83eba
ER
6572020-01-19 Eric S. Raymond <esr@thyrsus.com>
658
659 * doc/xml/faq.xml: Update for SVN -> Git transition.
660 * doc/xml/manual/appendix_contributing.xml: Likewise.
661 * doc/xml/manual/status_cxx1998.xml: Likewise.
662 * doc/xml/manual/status_cxx2011.xml: Likewise.
663 * doc/xml/manual/status_cxx2014.xml: Likewise.
664 * doc/xml/manual/status_cxx2017.xml: Likewise.
665 * doc/xml/manual/status_cxx2020.xml: Likewise.
666 * doc/xml/manual/status_cxxtr1.xml: Likewise.
667 * doc/xml/manual/status_cxxtr24733.xml: Likewise.
668
49789fd0
IS
6692020-01-18 Iain Sandoe <iain@sandoe.co.uk>
670
671 * include/Makefile.am: Add coroutine to the std set.
672 * include/Makefile.in: Regenerated.
673 * include/std/coroutine: New file.
674
0ba6a850
JW
6752020-01-17 Jonathan Wakely <jwakely@redhat.com>
676
677 PR libstdc++/92376
678 * include/bits/c++config: Only do PSTL config when the header is
679 present, to fix freestanding.
680 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare allocation
681 functions if they were detected by configure.
682
98d56ea8
JW
6832020-01-16 Kai-Uwe Eckhardt <kuehro@gmx.de>
684 Matthew Bauer <mjbauer95@gmail.com>
685 Jonathan Wakely <jwakely@redhat.com>
686
687 PR bootstrap/64271 (partial)
688 * config/os/bsd/netbsd/ctype_base.h (ctype_base::mask): Change type
689 to unsigned short.
690 (ctype_base::alpha, ctype_base::digit, ctype_base::xdigit)
691 (ctype_base::print, ctype_base::graph, ctype_base::alnum): Sync
692 definitions with NetBSD upstream.
693 (ctype_base::blank): Use _CTYPE_BL.
694 * config/os/bsd/netbsd/ctype_configure_char.cc (_C_ctype_): Remove
695 Declaration.
696 (ctype<char>::classic_table): Use _C_ctype_tab_ instead of _C_ctype_.
697 (ctype<char>::do_toupper, ctype<char>::do_tolower): Cast char
698 parameters to unsigned char.
699 * config/os/bsd/netbsd/ctype_inline.h (ctype<char>::is): Likewise.
700
d9165389
FD
7012020-01-16 François Dumont <fdumont@gcc.gnu.org>
702
703 PR libstdc++/91263
704 * include/bits/hashtable.h (_Hashtable<>): Make _Equality<> friend.
705 * include/bits/hashtable_policy.h: Include <bits/stl_algo.h>.
706 (_Equality_base): Remove.
707 (_Equality<>::_M_equal): Review implementation. Use
708 std::is_permutation.
709 * testsuite/23_containers/unordered_multiset/operators/1.cc
710 (Hash, Equal, test02, test03): New.
711 * testsuite/23_containers/unordered_set/operators/1.cc
712 (Hash, Equal, test02, test03): New.
713
2a0f6c61
JW
7142020-01-15 Jonathan Wakely <jwakely@redhat.com>
715
716 PR libstdc++/93267
717 * include/bits/iterator_concepts.h (__max_diff_type, __max_size_type):
718 Move here from <bits/range_access.h> and define using __int128 when
719 available.
720 (__is_integer_like, __is_signed_integer_like): Move here from
721 <bits/range_access.h>.
722 (weakly_incrementable): Use __is_signed_integer_like.
723 * include/bits/range_access.h (__max_diff_type, __max_size_type)
724 (__is_integer_like, __is_signed_integer_like): Move to
725 <bits/iterator_concepts.h>.
726 (__make_unsigned_like_t): Move here from <ranges>.
727 * include/std/ranges (__make_unsigned_like_t): Move to
728 <bits/range_access.h>.
729 (iota_view): Replace using-directive with using-declarations.
730 * testsuite/std/ranges/iota/93267.cc: New test.
731 * testsuite/std/ranges/iota_view.cc: Move to new 'iota' sub-directory.
732
e4379a93
JW
7332020-01-13 Jonathan Wakely <jwakely@redhat.com>
734
fe7cc34f
JW
735 PR libstdc++/93244
736 * include/bits/fs_path.h (path::generic_string<C,A>)
737 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Convert root-dir to forward-slash.
738 * testsuite/27_io/filesystem/path/generic/generic_string.cc: Check
739 root-dir is converted to forward slash in generic pathname.
740 * testsuite/27_io/filesystem/path/generic/utf.cc: New test.
741 * testsuite/27_io/filesystem/path/generic/wchar_t.cc: New test.
742
e4379a93
JW
743 PR libstdc++/58605
744 * include/bits/atomic_base.h (__cpp_lib_atomic_value_initialization):
745 Define.
746 (__atomic_flag_base, __atomic_base, __atomic_base<_PTp*>)
747 (__atomic_float): Add default member initializer for C++20.
748 * include/std/atomic (atomic): Likewise.
749 (atomic::atomic()): Remove noexcept-specifier on default constructor.
750 * include/std/version (__cpp_lib_atomic_value_initialization): Define.
751 * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust dg-error line
752 number.
753 * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
754 * testsuite/29_atomics/atomic/cons/value_init.cc: New test.
755 * testsuite/29_atomics/atomic_flag/cons/value_init.cc: New test.
756 * testsuite/29_atomics/atomic_flag/requirements/trivial.cc: Adjust
757 expected result for is_trivially_default_constructible.
758 * testsuite/29_atomics/atomic_float/requirements.cc: Likewise.
759 * testsuite/29_atomics/atomic_float/value_init.cc: New test.
760 * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: Likewise.
761 * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: Likewise.
762 * testsuite/29_atomics/atomic_integral/cons/value_init.cc
763 * testsuite/29_atomics/atomic_integral/requirements/trivial.cc: Adjust
764 expected results for is_trivially_default_constructible.
765 * testsuite/util/testsuite_common_types.h (has_trivial_dtor): Add
766 new test generator.
767
7918cb93
JW
7682020-01-10 Jonathan Wakely <jwakely@redhat.com>
769
68be73fc
JW
770 * testsuite/util/testsuite_iterators.h: Improve comment.
771
78f02e80
JW
772 * testsuite/25_algorithms/equal/deque_iterators/1.cc: Don't use C++11
773 initialization syntax.
774
7918cb93
JW
775 PR libstdc++/92285
776 * include/bits/streambuf_iterator.h (istreambuf_iterator): Make type
777 of base class independent of __cplusplus value.
778 [__cplusplus < 201103L] (istreambuf_iterator::reference): Override the
779 type defined in the base class
780 * testsuite/24_iterators/istreambuf_iterator/92285.cc: New test.
781 * testsuite/24_iterators/istreambuf_iterator/requirements/
782 base_classes.cc: Adjust expected base class for C++98.
783
acd43917
OH
7842020-01-09 Olivier Hainque <hainque@adacore.com>
785
786 * doc/xml/manual/appendix_contributing.xml: Document _C2
787 as a reserved identifier, by VxWorks.
788 * include/bits/stl_map.h: Rename _C2 template typenames as _Cmp2.
789 * include/bits/stl_multimap.h: Likewise.
790
caa39b2e
JW
7912020-01-09 Jonathan Wakely <jwakely@redhat.com>
792
1a788638
JW
793 * include/ext/extptr_allocator.h (_ExtPtr_allocator::operator==)
794 (_ExtPtr_allocator::operator!=): Add missing const qualifiers.
795 * include/ext/pointer.h (readable_traits<_Pointer_adapter<S>>): Add
796 partial specialization to disambiguate the two constrained
797 specializations.
798
caa39b2e
JW
799 * include/experimental/type_traits (experimental::is_pod_v): Disable
800 -Wdeprecated-declarations warnings around reference to std::is_pod.
801 * include/std/type_traits (is_pod_v): Likewise.
802 * testsuite/18_support/max_align_t/requirements/2.cc: Also check
803 is_standard_layout and is_trivial. Do not check is_pod for C++20.
804 * testsuite/20_util/is_pod/requirements/explicit_instantiation.cc:
805 Add -Wno-deprecated for C++20.
806 * testsuite/20_util/is_pod/requirements/typedefs.cc: Likewise.
807 * testsuite/20_util/is_pod/value.cc: Likewise.
808 * testsuite/experimental/type_traits/value.cc: Likewise.
809
1a6c5064
JTM
8102020-01-09 JeanHeyd "ThePhD" Meneide <phdofthehouse@gmail.com>
811
812 * include/bits/c++config (_GLIBCXX20_DEPRECATED): Add new macro.
813 * include/std/type_traits (is_pod, is_pod_v): Deprecate for C++20.
814 * testuite/20_util/is_pod/deprecated-2a.cc: New test.
815
d574c8aa
JW
8162020-01-09 Jonathan Wakely <jwakely@redhat.com>
817
160e95dc
JW
818 PR libstdc++/93205
819 * include/bits/random.h (operator>>): Check stream operation succeeds.
820 * include/bits/random.tcc (operator<<): Remove redundant __ostream_type
821 typedefs.
822 (operator>>): Remove redundant __istream_type typedefs. Check stream
823 operations succeed.
824 (__extract_params): New function to fill a vector from a stream.
825 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error line.
826
d574c8aa
JW
827 PR libstdc++/93208
828 * config/abi/pre/gnu.ver: Add new exports.
829 * include/std/memory_resource (memory_resource::~memory_resource()):
830 Do not define inline.
831 (monotonic_buffer_resource::~monotonic_buffer_resource()): Likewise.
832 * src/c++17/memory_resource.cc (memory_resource::~memory_resource()):
833 Define.
834 (monotonic_buffer_resource::~monotonic_buffer_resource()): Define.
835 * testsuite/20_util/monotonic_buffer_resource/93208.cc: New test.
836
b9c84e95
FD
8372020-01-09 François Dumont <fdumont@gcc.gnu.org>
838
839 PR libstdc++/92124
840 * include/bits/hashtable.h (_Hashtable<>::__alloc_node_gen_t): New
841 template alias.
842 (_Hashtable<>::__fwd_value_for): New.
843 (_Hashtable<>::_M_assign_elements<>): Remove _NodeGenerator template
844 parameter.
845 (_Hashtable<>::_M_assign<>): Add _Ht template parameter.
846 (_Hashtable<>::operator=(const _Hashtable<>&)): Adapt.
847 (_Hashtable<>::_M_move_assign): Adapt. Replace std::move_if_noexcept
848 with std::move.
849 (_Hashtable<>::_Hashtable(const _Hashtable&)): Adapt.
850 (_Hashtable<>::_Hashtable(const _Hashtable&, const allocator_type&)):
851 Adapt.
852 (_Hashtable<>::_Hashtable(_Hashtable&&, const allocator_type&)):
853 Adapt.
854 * testsuite/23_containers/unordered_set/92124.cc: New.
855
fff148b7
JW
8562020-01-08 Jonathan Wakely <jwakely@redhat.com>
857
858 PR libstdc++/93201
859 * src/c++17/fs_ops.cc (do_remove_all): New function implementing more
860 detailed error reporting for remove_all. Check result of recursive
861 call before incrementing iterator.
862 (remove_all(const path&), remove_all(const path&, error_code&)): Use
863 do_remove_all.
864 * src/filesystem/ops.cc (remove_all(const path&, error_code&)): Check
865 result of recursive call before incrementing iterator.
866 * testsuite/27_io/filesystem/operations/remove_all.cc: Check errors
867 are reported correctly.
868 * testsuite/experimental/filesystem/operations/remove_all.cc: Likewise.
869
9e3c1eb7
TR
8702020-01-07 Thomas Rodgers <trodgers@redhat.com>
871
872 * include/std/condition_variable
873 (condition_variable_any::wait_on): Rename to match current draft
874 standard.
875 (condition_variable_any::wait_on_until): Likewise.
876 (condition_variable_any::wait_on_for): Likewise.
877 * testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc:
878 Adjust tests to account for renamed methods.
879
6af8819b
FD
8802020-01-07 François Dumont <fdumont@gcc.gnu.org>
881
882 PR libstdc++/92124
883 * include/bits/stl_tree.h
884 (_Rb_tree<>::_M_move_assign(_Rb_tree&, false_type)): Replace
885 std::move_if_noexcept by std::move.
886 * testsuite/23_containers/map/92124.cc: New.
887 * testsuite/23_containers/set/92124.cc: New.
888
f31a99f7
JW
8892020-01-06 Jonathan Wakely <jwakely@redhat.com>
890
a4a1f965
JW
891 * include/std/stop_token (stop_token): Remove operator!= (LWG 3254).
892 (stop_source): Likewise (LWG 3362).
893 * testsuite/30_threads/stop_token/stop_source.cc: Test equality
894 comparisons.
895
f31a99f7
JW
896 * include/bits/stl_algobase.h (__is_byte_iter, __min_cmp)
897 (lexicographical_compare_three_way): Do not depend on
898 __cpp_lib_concepts.
899 * include/std/version (__cpp_lib_three_way_comparison): Only define
900 when __cpp_lib_concepts is defined.
901 * libsupc++/compare (__cpp_lib_three_way_comparison): Likewise.
902
b4e70137
JW
9032020-01-03 Jonathan Wakely <jwakely@redhat.com>
904
905 * include/bits/stl_algobase.h (lexicographical_compare_three_way):
906 Only define four-argument overload when __cpp_lib_concepts is defined.
907
a8497ec6
JDA
9082020-01-01 John David Anglin <danglin@gcc.gnu.org>
909
910 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
911
8d9254fc 9122020-01-01 Jakub Jelinek <jakub@redhat.com>
5624e564
JJ
913
914 Update copyright years.
b4df5e92 915\f
8d9254fc 916Copyright (C) 2020 Free Software Foundation, Inc.
b4df5e92
JW
917
918Copying and distribution of this file, with or without modification,
919are permitted in any medium without royalty provided the copyright
920notice and this notice are preserved.