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