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