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