]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/ChangeLog
PR middle-end/93646 - confusing -Wstringop-truncation on strncat where -Wstringop...
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
CommitLineData
dcda050e
JW
12020-02-09 Jonathan Wakely <jwakely@redhat.com>
2
38660e87
JW
3 * testsuite/20_util/function_objects/range.cmp/equal_to.cc: Fix
4 comment.
5 * testsuite/20_util/function_objects/range.cmp/less.ccL Likewise.
6
97a7c229
JW
7 * include/std/ranges: Fix non-ASCII characters in comment.
8
dcda050e
JW
9 * include/bits/range_cmp.h (__detail::__eq_builtin_ptr_cmp): Require
10 equality comparison to be valid and return bool.
11 (__detail::__less_builtin_ptr_cmp): Likewise for less-than comparison.
12 * testsuite/20_util/function_objects/range.cmp/equal_to.cc: Check
13 type with ambiguous conversion to fundamental types.
14 * testsuite/20_util/function_objects/range.cmp/less.cc: Likewise.
15
d222d8ec
JW
162020-02-07 Jonathan Wakely <jwakely@redhat.com>
17
c8dd2446
JW
18 * include/bits/iterator_concepts.h (iter_difference_t, iter_value_t):
19 Use remove_cvref_t.
20 (readable_traits): Rename to indirectly_readable_traits.
21 (readable): Rename to indirectly_readable.
22 (writable): Rename to indirectly_writable.
23 (__detail::__iter_exchange_move): Do not use remove_reference_t.
24 (indirectly_swappable): Adjust requires expression parameter types.
25 expression.
26 * include/bits/ranges_algo.h (ranges::transform, ranges::replace)
27 (ranges::replace_if, ranges::generate_n, ranges::generate)
28 (ranges::remove): Use new name for writable.
29 * include/bits/stl_iterator.h (__detail::__common_iter_has_arrow):
30 Use new name for readable.
31 * include/ext/pointer.h (readable_traits<_Pointer_adapter<P>>): Use
32 new name for readable_traits.
33 * testsuite/24_iterators/associated_types/readable.traits.cc: Likewise.
34 * testsuite/24_iterators/indirect_callable/projected.cc: Adjust for
35 new definition of indirectly_readable.
36
d222d8ec
JW
37 * include/bits/stl_iterator.h (__detail::__common_iter_ptr): Change
38 to take parameters of common_iterator, instead of the common_iterator
39 type itself. Fix argument for __common_iter_has_arrow constraint.
40 (iterator_traits<common_iterator<I, S>>::pointer): Adjust.
41
572992c8
JW
422020-02-07 Jonathan Wakely <jwakely@redhat.com>
43
44 * include/std/ranges (iota_view): Add braces to prevent -Wempty-body
45 warning.
46 (basic_istream_view::_Iterator::operator++()): Add missing return.
47
cba9ef06
PP
482020-02-07 Patrick Palka <ppalka@redhat.com>
49
a04f635d
PP
50 * include/bits/ranges_algo.h: Remove extraneous &&.
51
b7903d9f
PP
52 * include/std/ranges (ranges::__detail::__stream_extractable,
53 ranges::basic_istream_view, ranges::istream_view): Define.
54 * testsuite/std/ranges/istream_view: New test.
55
cba9ef06
PP
56 Implement C++20 range adaptors
57 * include/std/ranges: Include <bits/refwrap.h> and <tuple>.
58 (subrange::_S_store_size): Mark as const instead of constexpr to
59 avoid what seems to be a bug in GCC.
60 (__detail::__box): Give it defaulted copy and move constructors.
55d4cbcb
PP
61 (ranges::views::_Single::operator()): Mark constexpr.
62 (ranges::views::_Iota::operator()): Mark constexpr.
cba9ef06 63 (__detail::Empty): Define.
55d4cbcb
PP
64 (ranges::views::__closure::_RangeAdaptor,
65 ranges::views::__closure::_RangeAdaptorClosure, ref_view, all_view,
66 ranges::views::all, ranges::__detail::find_if,
67 ranges::__detail::find_if_not, ranges::__detail::mismatch,
68 ranges::detail::min, filter_view, ranges::views::filter, transform_view,
69 ranges::views::transform, take_view, ranges::views::take,
70 take_while_view, ranges::views::take_while, drop_view,
71 ranges::views::drop, join_view, ranges::views::join,
cba9ef06 72 __detail::require_constant, __detail::tiny_range, split_view,
55d4cbcb
PP
73 ranges::views::split, ranges::views::_Counted, ranges::views::counted,
74 common_view, ranges::views::common, reverse_view,
75 ranges::views::reverse,
76 ranges::views::__detail::__is_reversible_subrange,
77 ranges::views::__detail::__is_reverse_view, reverse_view,
78 ranges::views::reverse, __detail::__has_tuple_element, elements_view,
79 ranges::views::elements, ranges::views::keys, ranges::views::values):
80 Define.
81 (views): Alias for ranges::views.
82 (tuple_size<ranges::subrange<>>, tuple_element<0, ranges::subrange>,
83 tuple_element<1, ranges::subrange>): New partial specializations.
cba9ef06
PP
84 * testsuite/std/ranges/adaptors/all.cc: New test.
85 * testsuite/std/ranges/adaptors/common.cc: Likewise.
86 * testsuite/std/ranges/adaptors/counted.cc: Likewise.
87 * testsuite/std/ranges/adaptors/drop.cc: Likewise.
88 * testsuite/std/ranges/adaptors/drop_while.cc: Likewise.
89 * testsuite/std/ranges/adaptors/elements.cc: Likewise.
90 * testsuite/std/ranges/adaptors/filter.cc: Likewise.
91 * testsuite/std/ranges/adaptors/join.cc: Likewise.
92 * testsuite/std/ranges/adaptors/reverse.cc: Likewise.
93 * testsuite/std/ranges/adaptors/split.cc: Likewise.
94 * testsuite/std/ranges/adaptors/take.cc: Likewise.
95 * testsuite/std/ranges/adaptors/take_while.cc: Likewise.
96 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
97
5713834e
JW
982020-02-07 Jonathan Wakely <jwakely@redhat.com>
99
0d57370c
JW
100 * libsupc++/compare (__cmp_cat::type): Define typedef for underlying
101 type of enumerations and comparison category types.
102 (__cmp_cat::_Ord, __cmp_cat::_Ncmp): Add underlying type.
103 (__cmp_cat::_Ncmp::unordered): Change value to 2.
104 (partial_ordering::_M_value, weak_ordering::_M_value)
105 (strong_ordering::_M_value): Change type to __cmp_cat::type.
106 (partial_ordering::_M_is_ordered): Remove data member.
107 (partial_ordering): Use second bit of _M_value for unordered. Adjust
108 comparison operators.
109 (weak_ordering::operator partial_ordering): Simplify to remove
110 branches.
111 (operator<=>(unspecified, weak_ordering)): Likewise.
112 (strong_ordering::operator partial_ordering): Likewise.
113 (strong_ordering::operator weak_ordering): Likewise.
114 (operator<=>(unspecified, strong_ordering)): Likewise.
115 * testsuite/18_support/comparisons/categories/partialord.cc: New test.
116 * testsuite/18_support/comparisons/categories/strongord.cc: New test.
117 * testsuite/18_support/comparisons/categories/weakord.cc: New test.
118
5713834e
JW
119 * include/std/ranges (iota_view::_Iterator): Fix typo in name of
120 __cpp_lib_three_way_comparison macro and use deduced return type for
121 operator<=>.
122 * testsuite/std/ranges/iota/iterator.cc: New test.
123
bc464641
PP
1242020-02-07 Patrick Palka <ppalka@redhat.com>
125 Jonathan Wakely <jwakely@redhat.com>
126
127 Implement C++20 constrained algorithms
128 * include/Makefile.am: Add new header.
129 * include/Makefile.in: Regenerate.
130 * include/std/algorithm: Include <bits/ranges_algo.h>.
131 * include/bits/ranges_algo.h: New file.
132 * testsuite/25_algorithms/adjacent_find/constrained.cc: New test.
133 * testsuite/25_algorithms/all_of/constrained.cc: New test.
134 * testsuite/25_algorithms/any_of/constrained.cc: New test.
135 * testsuite/25_algorithms/binary_search/constrained.cc: New test.
136 * testsuite/25_algorithms/copy/constrained.cc: New test.
137 * testsuite/25_algorithms/copy_backward/constrained.cc: New test.
138 * testsuite/25_algorithms/copy_if/constrained.cc: New test.
139 * testsuite/25_algorithms/copy_n/constrained.cc: New test.
140 * testsuite/25_algorithms/count/constrained.cc: New test.
141 * testsuite/25_algorithms/count_if/constrained.cc: New test.
142 * testsuite/25_algorithms/equal/constrained.cc: New test.
143 * testsuite/25_algorithms/equal_range/constrained.cc: New test.
144 * testsuite/25_algorithms/fill/constrained.cc: New test.
145 * testsuite/25_algorithms/fill_n/constrained.cc: New test.
146 * testsuite/25_algorithms/find/constrained.cc: New test.
147 * testsuite/25_algorithms/find_end/constrained.cc: New test.
148 * testsuite/25_algorithms/find_first_of/constrained.cc: New test.
149 * testsuite/25_algorithms/find_if/constrained.cc: New test.
150 * testsuite/25_algorithms/find_if_not/constrained.cc: New test.
151 * testsuite/25_algorithms/for_each/constrained.cc: New test.
152 * testsuite/25_algorithms/generate/constrained.cc: New test.
153 * testsuite/25_algorithms/generate_n/constrained.cc: New test.
154 * testsuite/25_algorithms/heap/constrained.cc: New test.
155 * testsuite/25_algorithms/includes/constrained.cc: New test.
156 * testsuite/25_algorithms/inplace_merge/constrained.cc: New test.
157 * testsuite/25_algorithms/is_partitioned/constrained.cc: New test.
158 * testsuite/25_algorithms/is_permutation/constrained.cc: New test.
159 * testsuite/25_algorithms/is_sorted/constrained.cc: New test.
160 * testsuite/25_algorithms/is_sorted_until/constrained.cc: New test.
161 * testsuite/25_algorithms/lexicographical_compare/constrained.cc: New
162 test.
163 * testsuite/25_algorithms/lower_bound/constrained.cc: New test.
164 * testsuite/25_algorithms/max/constrained.cc: New test.
165 * testsuite/25_algorithms/max_element/constrained.cc: New test.
166 * testsuite/25_algorithms/merge/constrained.cc: New test.
167 * testsuite/25_algorithms/min/constrained.cc: New test.
168 * testsuite/25_algorithms/min_element/constrained.cc: New test.
169 * testsuite/25_algorithms/minmax/constrained.cc: New test.
170 * testsuite/25_algorithms/minmax_element/constrained.cc: New test.
171 * testsuite/25_algorithms/mismatch/constrained.cc: New test.
172 * testsuite/25_algorithms/move/constrained.cc: New test.
173 * testsuite/25_algorithms/move_backward/constrained.cc: New test.
174 * testsuite/25_algorithms/next_permutation/constrained.cc: New test.
175 * testsuite/25_algorithms/none_of/constrained.cc: New test.
176 * testsuite/25_algorithms/nth_element/constrained.cc: New test.
177 * testsuite/25_algorithms/partial_sort/constrained.cc: New test.
178 * testsuite/25_algorithms/partial_sort_copy/constrained.cc: New test.
179 * testsuite/25_algorithms/partition/constrained.cc: New test.
180 * testsuite/25_algorithms/partition_copy/constrained.cc: New test.
181 * testsuite/25_algorithms/partition_point/constrained.cc: New test.
182 * testsuite/25_algorithms/prev_permutation/constrained.cc: New test.
183 * testsuite/25_algorithms/remove/constrained.cc: New test.
184 * testsuite/25_algorithms/remove_copy/constrained.cc: New test.
185 * testsuite/25_algorithms/remove_copy_if/constrained.cc: New test.
186 * testsuite/25_algorithms/remove_if/constrained.cc: New test.
187 * testsuite/25_algorithms/replace/constrained.cc: New test.
188 * testsuite/25_algorithms/replace_copy/constrained.cc: New test.
189 * testsuite/25_algorithms/replace_copy_if/constrained.cc: New test.
190 * testsuite/25_algorithms/replace_if/constrained.cc: New test.
191 * testsuite/25_algorithms/reverse/constrained.cc: New test.
192 * testsuite/25_algorithms/reverse_copy/constrained.cc: New test.
193 * testsuite/25_algorithms/rotate/constrained.cc: New test.
194 * testsuite/25_algorithms/rotate_copy/constrained.cc: New test.
195 * testsuite/25_algorithms/search/constrained.cc: New test.
196 * testsuite/25_algorithms/search_n/constrained.cc: New test.
197 * testsuite/25_algorithms/set_difference/constrained.cc: New test.
198 * testsuite/25_algorithms/set_intersection/constrained.cc: New test.
199 * testsuite/25_algorithms/set_symmetric_difference/constrained.cc: New
200 test.
201 * testsuite/25_algorithms/set_union/constrained.cc: New test.
202 * testsuite/25_algorithms/shuffle/constrained.cc: New test.
203 * testsuite/25_algorithms/sort/constrained.cc: New test.
204 * testsuite/25_algorithms/stable_partition/constrained.cc: New test.
205 * testsuite/25_algorithms/stable_sort/constrained.cc: New test.
206 * testsuite/25_algorithms/swap_ranges/constrained.cc: New test.
207 * testsuite/25_algorithms/transform/constrained.cc: New test.
208 * testsuite/25_algorithms/unique/constrained.cc: New test.
209 * testsuite/25_algorithms/unique_copy/constrained.cc: New test.
210 * testsuite/25_algorithms/upper_bound/constrained.cc: New test.
211
d1aa7705
JW
2122020-02-06 Jonathan Wakely <jwakely@redhat.com>
213
bd630df0
JW
214 * include/bits/stl_iterator.h (__detail::__common_iter_ptr): Fix PR
215 number in comment. Fix indentation.
216
d1aa7705
JW
217 * include/bits/stl_algobase.h (__iter_swap, __iter_swap<true>): Remove
218 redundant _GLIBCXX20_CONSTEXPR.
219
26eae9ac
JW
220 * include/std/ranges (viewable_range): Replace decay_t with
221 remove_cvref_t (LWG 3375).
222
269e8130
JW
2232020-02-05 Jonathan Wakely <jwakely@redhat.com>
224
225 * include/bits/iterator_concepts.h (iter_reference_t)
226 (iter_rvalue_reference_t, iter_common_reference_t, indirect_result_t):
227 Remove workarounds for PR c++/67704.
228 * testsuite/24_iterators/aliases.cc: New test.
229
7db12d15
PP
2302020-02-05 Patrick Palka <ppalka@redhat.com>
231
232 * include/bits/stl_iterator.h (move_iterator::move_iterator): Move __i
233 when initializing _M_current.
234 (move_iterator::base): Split into two overloads differing in
235 ref-qualifiers as in P1207R4 for C++20.
236
9962493c
JW
2372020-02-04 Jonathan Wakely <jwakely@redhat.com>
238
9bc5bea1
JW
239 * include/std/functional (_GLIBCXX_NOT_FN_CALL_OP): Un-define after
240 use.
241
9962493c
JW
242 PR libstdc++/93562
243 * include/bits/unique_ptr.h (__uniq_ptr_impl::swap): Define.
244 (unique_ptr::swap, unique_ptr<T[], D>::swap): Call it.
245 * testsuite/20_util/unique_ptr/modifiers/93562.cc: New test.
246
20fa702b
AB
2472020-02-01 Andrew Burgess <andrew.burgess@embecosm.com>
248
249 * configure: Regenerate.
250
6e5a1963
PP
2512020-01-31 Patrick Palka <ppalka@redhat.com>
252
253 * testsuite/24_iterators/range_operations/distance.cc: Do not assume
254 test_range::end() returns the same type as test_range::begin().
255 * testsuite/24_iterators/range_operations/next.cc: Likewise.
256 * testsuite/24_iterators/range_operations/prev.cc: Likewise.
257 * testsuite/util/testsuite_iterators.h (__gnu_test::test_range::end):
258 Always return a sentinel<I>.
259
5cd2e126
JW
2602020-01-29 Jonathan Wakely <jwakely@redhat.com>
261
0a8f4feb
JW
262 PR libstdc++/92895
263 * include/std/stop_token (stop_token::stop_possible()): Call new
264 _M_stop_possible() function.
265 (stop_token::stop_requested()): Do not use stop_possible().
266 (stop_token::binary_semaphore): New class, as temporary stand-in for
267 std::binary_semaphore.
268 (stop_token::_Stop_cb::_M_callback): Add noexcept to type.
269 (stop_token::_Stop_cb::_M_destroyed, stop_token::_Stop_cb::_M_done):
270 New data members for symchronization with stop_callback destruction.
271 (stop_token::_Stop_cb::_Stop_cb): Make non-template.
272 (stop_token::_Stop_cb::_M_linked, stop_token::_Stop_cb::_S_execute):
273 Remove.
274 (stop_token::_Stop_cb::_M_run): New member function.
275 (stop_token::_Stop_state::_M_stopped, stop_token::_Stop_state::_M_mtx):
276 Remove.
277 (stop_token::_Stop_state::_M_owners): New data member to track
278 reference count for ownership.
279 (stop_token::_Stop_state::_M_value): New data member combining a
280 spinlock, the stop requested flag, and the reference count for
281 associated stop_source objects.
282 (stop_token::_Stop_state::_M_requester): New data member for
283 synchronization with stop_callback destruction.
284 (stop_token::_Stop_state::_M_stop_possible()): New member function.
285 (stop_token::_Stop_state::_M_stop_requested()): Inspect relevant bit
286 of _M_value.
287 (stop_token::_Stop_state::_M_add_owner)
288 (stop_token::_Stop_state::_M_release_ownership)
289 (stop_token::_Stop_state::_M_add_ssrc)
290 (stop_token::_Stop_state::_M_sub_ssrc): New member functions for
291 updating reference counts.
292 (stop_token::_Stop_state::_M_lock, stop_token::_Stop_state::_M_unlock)
293 (stop_token::_Stop_state::_M_lock, stop_token::_Stop_state::_M_unlock)
294 (stop_token::_Stop_state::_M_try_lock)
295 (stop_token::_Stop_state::_M_try_lock_and_stop)
296 (stop_token::_Stop_state::_M_do_try_lock): New member functions for
297 managing spinlock.
298 (stop_token::_Stop_state::_M_request_stop): Use atomic operations to
299 read and update state. Release lock while running callbacks. Use new
300 data members to synchronize with callback destruction.
301 (stop_token::_Stop_state::_M_remove_callback): Likewise.
302 (stop_token::_Stop_state::_M_register_callback): Use atomic operations
303 to read and update state.
304 (stop_token::_Stop_state_ref): Handle type to manage _Stop_state,
305 replacing shared_ptr.
306 (stop_source::stop_source(const stop_source&)): Update reference count.
307 (stop_source::operator=(const stop_source&)): Likewise.
308 (stop_source::~stop_source()): Likewise.
309 (stop_source::stop_source(stop_source&&)): Define as defaulted.
310 (stop_source::operator=(stop_source&&)): Establish postcondition on
311 parameter.
312 (stop_callback): Enforce preconditions on template parameter. Replace
313 base class with data member of new _Cb_impl type.
314 (stop_callback::stop_callback(const stop_token&, Cb&&))
315 (stop_callback::stop_callback(stop_token&&, Cb&&)): Fix TOCTTOU race.
316 (stop_callback::_Cb_impl): New type wrapping _Callback member and
317 defining the _S_execute member function.
318 * testsuite/30_threads/stop_token/stop_callback/deadlock-mt.cc: New
319 test.
320 * testsuite/30_threads/stop_token/stop_callback/deadlock.cc: New test.
321 * testsuite/30_threads/stop_token/stop_callback/destroy.cc: New test.
322 * testsuite/30_threads/stop_token/stop_callback/destructible_neg.cc:
323 New test.
324 * testsuite/30_threads/stop_token/stop_callback/invocable_neg.cc: New
325 test.
326 * testsuite/30_threads/stop_token/stop_callback/invoke.cc: New test.
327 * testsuite/30_threads/stop_token/stop_source/assign.cc: New test.
328 * testsuite/30_threads/stop_token/stop_token/stop_possible.cc: New
329 test.
330
f214ffb3
JW
331 * libsupc++/compare (__detail::__3way_builtin_ptr_cmp): Use
332 three_way_comparable_with.
333 (__detail::__3way_cmp_with): Remove workaround for fixed bug.
334 (compare_three_way::operator()): Remove redundant constraint from
335 requires-clause.
336 (__detail::_Synth3way::operator()): Use three_way_comparable_with
337 instead of workaround.
338 * testsuite/18_support/comparisons/object/93479.cc: Prune extra
339 output due to simplified constraints on compare_three_way::operator().
340
83b02010
JW
341 PR libstdc++/93479
342 * libsupc++/compare (__3way_builtin_ptr_cmp): Require <=> to be valid.
343 * testsuite/18_support/comparisons/object/93479.cc: New test.
344
5cd2e126
JW
345 * testsuite/std/ranges/access/end.cc: Do not assume test_range::end()
346 returns the same type as test_range::begin(). Add comments.
347 * testsuite/std/ranges/access/rbegin.cc: Likewise.
348 * testsuite/std/ranges/access/rend.cc: Likewise.
349 * testsuite/std/ranges/range.cc: Do not assume the sentinel for
350 test_range is the same as its iterator type.
351 * testsuite/util/testsuite_iterators.h (test_range::sentinel): Add
352 operator- overloads to satisfy sized_sentinel_for when the iterator
353 satisfies random_access_iterator.
354
759812fd
JW
3552020-01-28 Jonathan Wakely <jwakely@redhat.com>
356
72a9fd20
JW
357 PR libstdc++/93470
358 * include/bits/refwrap.h (reference_wrapper::operator()): Restrict
359 static assertion to object types.
360
759812fd
JW
361 PR libstdc++/93325
362 * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Use AC_SEARCH_LIBS for
363 clock_gettime instead of explicit glibc version check.
364 * configure: Regenerate.
365
a5d81aaa
JW
3662020-01-28 Martin Liska <mliska@suse.cz>
367
368 PR libstdc++/93478
369 * include/std/atomic: Fix typo.
370 * include/std/optional: Likewise.
371
3722020-01-27 Andrew Burgess <andrew.burgess@embecosm.com>
373
374 * configure: Regenerate.
375
389cd88c
JW
3762020-01-27 Jonathan Wakely <jwakely@redhat.com>
377
378 PR libstdc++/93426
379 * include/std/span (span): Fix deduction guide.
380 * testsuite/23_containers/span/deduction.cc: New test.
381
482eeff5
JW
3822020-01-24 Jonathan Wakely <jwakely@redhat.com>
383
384 * libsupc++/compare (__cmp_cat::_Eq): Remove enumeration type.
385 (__cmp_cat::_Ord::equivalent): Add enumerator.
386 (__cmp_cat::_Ord::_Less, __cmp_cat::_Ord::_Greater): Rename to less
387 and greater.
388 (partial_ordering, weak_ordering, strong_ordering): Remove
389 constructors taking __cmp_cat::_Eq parameters. Use renamed
390 enumerators.
391
e8e66971
MR
3922020-01-24 Maciej W. Rozycki <macro@wdc.com>
393
394 * acinclude.m4: Handle `--with-toolexeclibdir='.
395 * Makefile.in: Regenerate.
396 * aclocal.m4: Regenerate.
397 * configure: Regenerate.
398 * doc/Makefile.in: Regenerate.
399 * include/Makefile.in: Regenerate.
400 * libsupc++/Makefile.in: Regenerate.
401 * po/Makefile.in: Regenerate.
402 * python/Makefile.in: Regenerate.
403 * src/Makefile.in: Regenerate.
404 * src/c++11/Makefile.in: Regenerate.
405 * src/c++17/Makefile.in: Regenerate.
406 * src/c++98/Makefile.in: Regenerate.
407 * src/filesystem/Makefile.in: Regenerate.
408 * testsuite/Makefile.in: Regenerate.
409
7a900bce
AO
4102020-01-23 Alexandre Oliva <oliva@adacore.com>
411
f9e84b31
AO
412 * crossconfig.m4 (GLIBCXX_CHECK_MATH_DECL): Reject macros.
413 * configure: Rebuild.
414
7a900bce
AO
415 * testsuite/27_io/fpos/mbstate_t/1.cc: Zero-init mbstate_t.
416
04681fca
JW
4172020-01-23 Jonathan Wakely <jwakely@redhat.com>
418
419 PR libstdc++/91947
420 * include/Makefile.am (${host_builddir}/largefile-config.h): Simplify
421 rule.
422 * include/Makefile.in: Regenerate.
423
c784f162
JW
4242020-01-20 Jonathan Wakely <jwakely@redhat.com>
425
426 * doc/xml/faq.xml: Fix grammar.
427 * doc/xml/manual/appendix_contributing.xml: Improve instructions.
428 * doc/xml/manual/spine.xml: Update copyright years.
429 * doc/html/*: Regenerate.
430
f4d83eba
ER
4312020-01-19 Eric S. Raymond <esr@thyrsus.com>
432
433 * doc/xml/faq.xml: Update for SVN -> Git transition.
434 * doc/xml/manual/appendix_contributing.xml: Likewise.
435 * doc/xml/manual/status_cxx1998.xml: Likewise.
436 * doc/xml/manual/status_cxx2011.xml: Likewise.
437 * doc/xml/manual/status_cxx2014.xml: Likewise.
438 * doc/xml/manual/status_cxx2017.xml: Likewise.
439 * doc/xml/manual/status_cxx2020.xml: Likewise.
440 * doc/xml/manual/status_cxxtr1.xml: Likewise.
441 * doc/xml/manual/status_cxxtr24733.xml: Likewise.
442
49789fd0
IS
4432020-01-18 Iain Sandoe <iain@sandoe.co.uk>
444
445 * include/Makefile.am: Add coroutine to the std set.
446 * include/Makefile.in: Regenerated.
447 * include/std/coroutine: New file.
448
0ba6a850
JW
4492020-01-17 Jonathan Wakely <jwakely@redhat.com>
450
451 PR libstdc++/92376
452 * include/bits/c++config: Only do PSTL config when the header is
453 present, to fix freestanding.
454 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare allocation
455 functions if they were detected by configure.
456
98d56ea8
JW
4572020-01-16 Kai-Uwe Eckhardt <kuehro@gmx.de>
458 Matthew Bauer <mjbauer95@gmail.com>
459 Jonathan Wakely <jwakely@redhat.com>
460
461 PR bootstrap/64271 (partial)
462 * config/os/bsd/netbsd/ctype_base.h (ctype_base::mask): Change type
463 to unsigned short.
464 (ctype_base::alpha, ctype_base::digit, ctype_base::xdigit)
465 (ctype_base::print, ctype_base::graph, ctype_base::alnum): Sync
466 definitions with NetBSD upstream.
467 (ctype_base::blank): Use _CTYPE_BL.
468 * config/os/bsd/netbsd/ctype_configure_char.cc (_C_ctype_): Remove
469 Declaration.
470 (ctype<char>::classic_table): Use _C_ctype_tab_ instead of _C_ctype_.
471 (ctype<char>::do_toupper, ctype<char>::do_tolower): Cast char
472 parameters to unsigned char.
473 * config/os/bsd/netbsd/ctype_inline.h (ctype<char>::is): Likewise.
474
d9165389
FD
4752020-01-16 François Dumont <fdumont@gcc.gnu.org>
476
477 PR libstdc++/91263
478 * include/bits/hashtable.h (_Hashtable<>): Make _Equality<> friend.
479 * include/bits/hashtable_policy.h: Include <bits/stl_algo.h>.
480 (_Equality_base): Remove.
481 (_Equality<>::_M_equal): Review implementation. Use
482 std::is_permutation.
483 * testsuite/23_containers/unordered_multiset/operators/1.cc
484 (Hash, Equal, test02, test03): New.
485 * testsuite/23_containers/unordered_set/operators/1.cc
486 (Hash, Equal, test02, test03): New.
487
2a0f6c61
JW
4882020-01-15 Jonathan Wakely <jwakely@redhat.com>
489
490 PR libstdc++/93267
491 * include/bits/iterator_concepts.h (__max_diff_type, __max_size_type):
492 Move here from <bits/range_access.h> and define using __int128 when
493 available.
494 (__is_integer_like, __is_signed_integer_like): Move here from
495 <bits/range_access.h>.
496 (weakly_incrementable): Use __is_signed_integer_like.
497 * include/bits/range_access.h (__max_diff_type, __max_size_type)
498 (__is_integer_like, __is_signed_integer_like): Move to
499 <bits/iterator_concepts.h>.
500 (__make_unsigned_like_t): Move here from <ranges>.
501 * include/std/ranges (__make_unsigned_like_t): Move to
502 <bits/range_access.h>.
503 (iota_view): Replace using-directive with using-declarations.
504 * testsuite/std/ranges/iota/93267.cc: New test.
505 * testsuite/std/ranges/iota_view.cc: Move to new 'iota' sub-directory.
506
e4379a93
JW
5072020-01-13 Jonathan Wakely <jwakely@redhat.com>
508
fe7cc34f
JW
509 PR libstdc++/93244
510 * include/bits/fs_path.h (path::generic_string<C,A>)
511 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Convert root-dir to forward-slash.
512 * testsuite/27_io/filesystem/path/generic/generic_string.cc: Check
513 root-dir is converted to forward slash in generic pathname.
514 * testsuite/27_io/filesystem/path/generic/utf.cc: New test.
515 * testsuite/27_io/filesystem/path/generic/wchar_t.cc: New test.
516
e4379a93
JW
517 PR libstdc++/58605
518 * include/bits/atomic_base.h (__cpp_lib_atomic_value_initialization):
519 Define.
520 (__atomic_flag_base, __atomic_base, __atomic_base<_PTp*>)
521 (__atomic_float): Add default member initializer for C++20.
522 * include/std/atomic (atomic): Likewise.
523 (atomic::atomic()): Remove noexcept-specifier on default constructor.
524 * include/std/version (__cpp_lib_atomic_value_initialization): Define.
525 * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust dg-error line
526 number.
527 * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
528 * testsuite/29_atomics/atomic/cons/value_init.cc: New test.
529 * testsuite/29_atomics/atomic_flag/cons/value_init.cc: New test.
530 * testsuite/29_atomics/atomic_flag/requirements/trivial.cc: Adjust
531 expected result for is_trivially_default_constructible.
532 * testsuite/29_atomics/atomic_float/requirements.cc: Likewise.
533 * testsuite/29_atomics/atomic_float/value_init.cc: New test.
534 * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: Likewise.
535 * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: Likewise.
536 * testsuite/29_atomics/atomic_integral/cons/value_init.cc
537 * testsuite/29_atomics/atomic_integral/requirements/trivial.cc: Adjust
538 expected results for is_trivially_default_constructible.
539 * testsuite/util/testsuite_common_types.h (has_trivial_dtor): Add
540 new test generator.
541
7918cb93
JW
5422020-01-10 Jonathan Wakely <jwakely@redhat.com>
543
68be73fc
JW
544 * testsuite/util/testsuite_iterators.h: Improve comment.
545
78f02e80
JW
546 * testsuite/25_algorithms/equal/deque_iterators/1.cc: Don't use C++11
547 initialization syntax.
548
7918cb93
JW
549 PR libstdc++/92285
550 * include/bits/streambuf_iterator.h (istreambuf_iterator): Make type
551 of base class independent of __cplusplus value.
552 [__cplusplus < 201103L] (istreambuf_iterator::reference): Override the
553 type defined in the base class
554 * testsuite/24_iterators/istreambuf_iterator/92285.cc: New test.
555 * testsuite/24_iterators/istreambuf_iterator/requirements/
556 base_classes.cc: Adjust expected base class for C++98.
557
acd43917
OH
5582020-01-09 Olivier Hainque <hainque@adacore.com>
559
560 * doc/xml/manual/appendix_contributing.xml: Document _C2
561 as a reserved identifier, by VxWorks.
562 * include/bits/stl_map.h: Rename _C2 template typenames as _Cmp2.
563 * include/bits/stl_multimap.h: Likewise.
564
caa39b2e
JW
5652020-01-09 Jonathan Wakely <jwakely@redhat.com>
566
1a788638
JW
567 * include/ext/extptr_allocator.h (_ExtPtr_allocator::operator==)
568 (_ExtPtr_allocator::operator!=): Add missing const qualifiers.
569 * include/ext/pointer.h (readable_traits<_Pointer_adapter<S>>): Add
570 partial specialization to disambiguate the two constrained
571 specializations.
572
caa39b2e
JW
573 * include/experimental/type_traits (experimental::is_pod_v): Disable
574 -Wdeprecated-declarations warnings around reference to std::is_pod.
575 * include/std/type_traits (is_pod_v): Likewise.
576 * testsuite/18_support/max_align_t/requirements/2.cc: Also check
577 is_standard_layout and is_trivial. Do not check is_pod for C++20.
578 * testsuite/20_util/is_pod/requirements/explicit_instantiation.cc:
579 Add -Wno-deprecated for C++20.
580 * testsuite/20_util/is_pod/requirements/typedefs.cc: Likewise.
581 * testsuite/20_util/is_pod/value.cc: Likewise.
582 * testsuite/experimental/type_traits/value.cc: Likewise.
583
1a6c5064
JTM
5842020-01-09 JeanHeyd "ThePhD" Meneide <phdofthehouse@gmail.com>
585
586 * include/bits/c++config (_GLIBCXX20_DEPRECATED): Add new macro.
587 * include/std/type_traits (is_pod, is_pod_v): Deprecate for C++20.
588 * testuite/20_util/is_pod/deprecated-2a.cc: New test.
589
d574c8aa
JW
5902020-01-09 Jonathan Wakely <jwakely@redhat.com>
591
160e95dc
JW
592 PR libstdc++/93205
593 * include/bits/random.h (operator>>): Check stream operation succeeds.
594 * include/bits/random.tcc (operator<<): Remove redundant __ostream_type
595 typedefs.
596 (operator>>): Remove redundant __istream_type typedefs. Check stream
597 operations succeed.
598 (__extract_params): New function to fill a vector from a stream.
599 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error line.
600
d574c8aa
JW
601 PR libstdc++/93208
602 * config/abi/pre/gnu.ver: Add new exports.
603 * include/std/memory_resource (memory_resource::~memory_resource()):
604 Do not define inline.
605 (monotonic_buffer_resource::~monotonic_buffer_resource()): Likewise.
606 * src/c++17/memory_resource.cc (memory_resource::~memory_resource()):
607 Define.
608 (monotonic_buffer_resource::~monotonic_buffer_resource()): Define.
609 * testsuite/20_util/monotonic_buffer_resource/93208.cc: New test.
610
b9c84e95
FD
6112020-01-09 François Dumont <fdumont@gcc.gnu.org>
612
613 PR libstdc++/92124
614 * include/bits/hashtable.h (_Hashtable<>::__alloc_node_gen_t): New
615 template alias.
616 (_Hashtable<>::__fwd_value_for): New.
617 (_Hashtable<>::_M_assign_elements<>): Remove _NodeGenerator template
618 parameter.
619 (_Hashtable<>::_M_assign<>): Add _Ht template parameter.
620 (_Hashtable<>::operator=(const _Hashtable<>&)): Adapt.
621 (_Hashtable<>::_M_move_assign): Adapt. Replace std::move_if_noexcept
622 with std::move.
623 (_Hashtable<>::_Hashtable(const _Hashtable&)): Adapt.
624 (_Hashtable<>::_Hashtable(const _Hashtable&, const allocator_type&)):
625 Adapt.
626 (_Hashtable<>::_Hashtable(_Hashtable&&, const allocator_type&)):
627 Adapt.
628 * testsuite/23_containers/unordered_set/92124.cc: New.
629
fff148b7
JW
6302020-01-08 Jonathan Wakely <jwakely@redhat.com>
631
632 PR libstdc++/93201
633 * src/c++17/fs_ops.cc (do_remove_all): New function implementing more
634 detailed error reporting for remove_all. Check result of recursive
635 call before incrementing iterator.
636 (remove_all(const path&), remove_all(const path&, error_code&)): Use
637 do_remove_all.
638 * src/filesystem/ops.cc (remove_all(const path&, error_code&)): Check
639 result of recursive call before incrementing iterator.
640 * testsuite/27_io/filesystem/operations/remove_all.cc: Check errors
641 are reported correctly.
642 * testsuite/experimental/filesystem/operations/remove_all.cc: Likewise.
643
9e3c1eb7
TR
6442020-01-07 Thomas Rodgers <trodgers@redhat.com>
645
646 * include/std/condition_variable
647 (condition_variable_any::wait_on): Rename to match current draft
648 standard.
649 (condition_variable_any::wait_on_until): Likewise.
650 (condition_variable_any::wait_on_for): Likewise.
651 * testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc:
652 Adjust tests to account for renamed methods.
653
6af8819b
FD
6542020-01-07 François Dumont <fdumont@gcc.gnu.org>
655
656 PR libstdc++/92124
657 * include/bits/stl_tree.h
658 (_Rb_tree<>::_M_move_assign(_Rb_tree&, false_type)): Replace
659 std::move_if_noexcept by std::move.
660 * testsuite/23_containers/map/92124.cc: New.
661 * testsuite/23_containers/set/92124.cc: New.
662
f31a99f7
JW
6632020-01-06 Jonathan Wakely <jwakely@redhat.com>
664
a4a1f965
JW
665 * include/std/stop_token (stop_token): Remove operator!= (LWG 3254).
666 (stop_source): Likewise (LWG 3362).
667 * testsuite/30_threads/stop_token/stop_source.cc: Test equality
668 comparisons.
669
f31a99f7
JW
670 * include/bits/stl_algobase.h (__is_byte_iter, __min_cmp)
671 (lexicographical_compare_three_way): Do not depend on
672 __cpp_lib_concepts.
673 * include/std/version (__cpp_lib_three_way_comparison): Only define
674 when __cpp_lib_concepts is defined.
675 * libsupc++/compare (__cpp_lib_three_way_comparison): Likewise.
676
b4e70137
JW
6772020-01-03 Jonathan Wakely <jwakely@redhat.com>
678
679 * include/bits/stl_algobase.h (lexicographical_compare_three_way):
680 Only define four-argument overload when __cpp_lib_concepts is defined.
681
a8497ec6
JDA
6822020-01-01 John David Anglin <danglin@gcc.gnu.org>
683
684 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
685
8d9254fc 6862020-01-01 Jakub Jelinek <jakub@redhat.com>
5624e564
JJ
687
688 Update copyright years.
b4df5e92 689\f
8d9254fc 690Copyright (C) 2020 Free Software Foundation, Inc.
b4df5e92
JW
691
692Copying and distribution of this file, with or without modification,
693are permitted in any medium without royalty provided the copyright
694notice and this notice are preserved.