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