]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/ChangeLog
Fix conditional add LRA failure for amdgcn
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
CommitLineData
5cd2e126
JW
12020-01-29 Jonathan Wakely <jwakely@redhat.com>
2
0a8f4feb
JW
3 PR libstdc++/92895
4 * include/std/stop_token (stop_token::stop_possible()): Call new
5 _M_stop_possible() function.
6 (stop_token::stop_requested()): Do not use stop_possible().
7 (stop_token::binary_semaphore): New class, as temporary stand-in for
8 std::binary_semaphore.
9 (stop_token::_Stop_cb::_M_callback): Add noexcept to type.
10 (stop_token::_Stop_cb::_M_destroyed, stop_token::_Stop_cb::_M_done):
11 New data members for symchronization with stop_callback destruction.
12 (stop_token::_Stop_cb::_Stop_cb): Make non-template.
13 (stop_token::_Stop_cb::_M_linked, stop_token::_Stop_cb::_S_execute):
14 Remove.
15 (stop_token::_Stop_cb::_M_run): New member function.
16 (stop_token::_Stop_state::_M_stopped, stop_token::_Stop_state::_M_mtx):
17 Remove.
18 (stop_token::_Stop_state::_M_owners): New data member to track
19 reference count for ownership.
20 (stop_token::_Stop_state::_M_value): New data member combining a
21 spinlock, the stop requested flag, and the reference count for
22 associated stop_source objects.
23 (stop_token::_Stop_state::_M_requester): New data member for
24 synchronization with stop_callback destruction.
25 (stop_token::_Stop_state::_M_stop_possible()): New member function.
26 (stop_token::_Stop_state::_M_stop_requested()): Inspect relevant bit
27 of _M_value.
28 (stop_token::_Stop_state::_M_add_owner)
29 (stop_token::_Stop_state::_M_release_ownership)
30 (stop_token::_Stop_state::_M_add_ssrc)
31 (stop_token::_Stop_state::_M_sub_ssrc): New member functions for
32 updating reference counts.
33 (stop_token::_Stop_state::_M_lock, stop_token::_Stop_state::_M_unlock)
34 (stop_token::_Stop_state::_M_lock, stop_token::_Stop_state::_M_unlock)
35 (stop_token::_Stop_state::_M_try_lock)
36 (stop_token::_Stop_state::_M_try_lock_and_stop)
37 (stop_token::_Stop_state::_M_do_try_lock): New member functions for
38 managing spinlock.
39 (stop_token::_Stop_state::_M_request_stop): Use atomic operations to
40 read and update state. Release lock while running callbacks. Use new
41 data members to synchronize with callback destruction.
42 (stop_token::_Stop_state::_M_remove_callback): Likewise.
43 (stop_token::_Stop_state::_M_register_callback): Use atomic operations
44 to read and update state.
45 (stop_token::_Stop_state_ref): Handle type to manage _Stop_state,
46 replacing shared_ptr.
47 (stop_source::stop_source(const stop_source&)): Update reference count.
48 (stop_source::operator=(const stop_source&)): Likewise.
49 (stop_source::~stop_source()): Likewise.
50 (stop_source::stop_source(stop_source&&)): Define as defaulted.
51 (stop_source::operator=(stop_source&&)): Establish postcondition on
52 parameter.
53 (stop_callback): Enforce preconditions on template parameter. Replace
54 base class with data member of new _Cb_impl type.
55 (stop_callback::stop_callback(const stop_token&, Cb&&))
56 (stop_callback::stop_callback(stop_token&&, Cb&&)): Fix TOCTTOU race.
57 (stop_callback::_Cb_impl): New type wrapping _Callback member and
58 defining the _S_execute member function.
59 * testsuite/30_threads/stop_token/stop_callback/deadlock-mt.cc: New
60 test.
61 * testsuite/30_threads/stop_token/stop_callback/deadlock.cc: New test.
62 * testsuite/30_threads/stop_token/stop_callback/destroy.cc: New test.
63 * testsuite/30_threads/stop_token/stop_callback/destructible_neg.cc:
64 New test.
65 * testsuite/30_threads/stop_token/stop_callback/invocable_neg.cc: New
66 test.
67 * testsuite/30_threads/stop_token/stop_callback/invoke.cc: New test.
68 * testsuite/30_threads/stop_token/stop_source/assign.cc: New test.
69 * testsuite/30_threads/stop_token/stop_token/stop_possible.cc: New
70 test.
71
f214ffb3
JW
72 * libsupc++/compare (__detail::__3way_builtin_ptr_cmp): Use
73 three_way_comparable_with.
74 (__detail::__3way_cmp_with): Remove workaround for fixed bug.
75 (compare_three_way::operator()): Remove redundant constraint from
76 requires-clause.
77 (__detail::_Synth3way::operator()): Use three_way_comparable_with
78 instead of workaround.
79 * testsuite/18_support/comparisons/object/93479.cc: Prune extra
80 output due to simplified constraints on compare_three_way::operator().
81
83b02010
JW
82 PR libstdc++/93479
83 * libsupc++/compare (__3way_builtin_ptr_cmp): Require <=> to be valid.
84 * testsuite/18_support/comparisons/object/93479.cc: New test.
85
5cd2e126
JW
86 * testsuite/std/ranges/access/end.cc: Do not assume test_range::end()
87 returns the same type as test_range::begin(). Add comments.
88 * testsuite/std/ranges/access/rbegin.cc: Likewise.
89 * testsuite/std/ranges/access/rend.cc: Likewise.
90 * testsuite/std/ranges/range.cc: Do not assume the sentinel for
91 test_range is the same as its iterator type.
92 * testsuite/util/testsuite_iterators.h (test_range::sentinel): Add
93 operator- overloads to satisfy sized_sentinel_for when the iterator
94 satisfies random_access_iterator.
95
759812fd
JW
962020-01-28 Jonathan Wakely <jwakely@redhat.com>
97
72a9fd20
JW
98 PR libstdc++/93470
99 * include/bits/refwrap.h (reference_wrapper::operator()): Restrict
100 static assertion to object types.
101
759812fd
JW
102 PR libstdc++/93325
103 * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Use AC_SEARCH_LIBS for
104 clock_gettime instead of explicit glibc version check.
105 * configure: Regenerate.
106
a5d81aaa
JW
1072020-01-28 Martin Liska <mliska@suse.cz>
108
109 PR libstdc++/93478
110 * include/std/atomic: Fix typo.
111 * include/std/optional: Likewise.
112
1132020-01-27 Andrew Burgess <andrew.burgess@embecosm.com>
114
115 * configure: Regenerate.
116
389cd88c
JW
1172020-01-27 Jonathan Wakely <jwakely@redhat.com>
118
119 PR libstdc++/93426
120 * include/std/span (span): Fix deduction guide.
121 * testsuite/23_containers/span/deduction.cc: New test.
122
482eeff5
JW
1232020-01-24 Jonathan Wakely <jwakely@redhat.com>
124
125 * libsupc++/compare (__cmp_cat::_Eq): Remove enumeration type.
126 (__cmp_cat::_Ord::equivalent): Add enumerator.
127 (__cmp_cat::_Ord::_Less, __cmp_cat::_Ord::_Greater): Rename to less
128 and greater.
129 (partial_ordering, weak_ordering, strong_ordering): Remove
130 constructors taking __cmp_cat::_Eq parameters. Use renamed
131 enumerators.
132
e8e66971
MR
1332020-01-24 Maciej W. Rozycki <macro@wdc.com>
134
135 * acinclude.m4: Handle `--with-toolexeclibdir='.
136 * Makefile.in: Regenerate.
137 * aclocal.m4: Regenerate.
138 * configure: Regenerate.
139 * doc/Makefile.in: Regenerate.
140 * include/Makefile.in: Regenerate.
141 * libsupc++/Makefile.in: Regenerate.
142 * po/Makefile.in: Regenerate.
143 * python/Makefile.in: Regenerate.
144 * src/Makefile.in: Regenerate.
145 * src/c++11/Makefile.in: Regenerate.
146 * src/c++17/Makefile.in: Regenerate.
147 * src/c++98/Makefile.in: Regenerate.
148 * src/filesystem/Makefile.in: Regenerate.
149 * testsuite/Makefile.in: Regenerate.
150
7a900bce
AO
1512020-01-23 Alexandre Oliva <oliva@adacore.com>
152
f9e84b31
AO
153 * crossconfig.m4 (GLIBCXX_CHECK_MATH_DECL): Reject macros.
154 * configure: Rebuild.
155
7a900bce
AO
156 * testsuite/27_io/fpos/mbstate_t/1.cc: Zero-init mbstate_t.
157
04681fca
JW
1582020-01-23 Jonathan Wakely <jwakely@redhat.com>
159
160 PR libstdc++/91947
161 * include/Makefile.am (${host_builddir}/largefile-config.h): Simplify
162 rule.
163 * include/Makefile.in: Regenerate.
164
c784f162
JW
1652020-01-20 Jonathan Wakely <jwakely@redhat.com>
166
167 * doc/xml/faq.xml: Fix grammar.
168 * doc/xml/manual/appendix_contributing.xml: Improve instructions.
169 * doc/xml/manual/spine.xml: Update copyright years.
170 * doc/html/*: Regenerate.
171
f4d83eba
ER
1722020-01-19 Eric S. Raymond <esr@thyrsus.com>
173
174 * doc/xml/faq.xml: Update for SVN -> Git transition.
175 * doc/xml/manual/appendix_contributing.xml: Likewise.
176 * doc/xml/manual/status_cxx1998.xml: Likewise.
177 * doc/xml/manual/status_cxx2011.xml: Likewise.
178 * doc/xml/manual/status_cxx2014.xml: Likewise.
179 * doc/xml/manual/status_cxx2017.xml: Likewise.
180 * doc/xml/manual/status_cxx2020.xml: Likewise.
181 * doc/xml/manual/status_cxxtr1.xml: Likewise.
182 * doc/xml/manual/status_cxxtr24733.xml: Likewise.
183
49789fd0
IS
1842020-01-18 Iain Sandoe <iain@sandoe.co.uk>
185
186 * include/Makefile.am: Add coroutine to the std set.
187 * include/Makefile.in: Regenerated.
188 * include/std/coroutine: New file.
189
0ba6a850
JW
1902020-01-17 Jonathan Wakely <jwakely@redhat.com>
191
192 PR libstdc++/92376
193 * include/bits/c++config: Only do PSTL config when the header is
194 present, to fix freestanding.
195 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare allocation
196 functions if they were detected by configure.
197
98d56ea8
JW
1982020-01-16 Kai-Uwe Eckhardt <kuehro@gmx.de>
199 Matthew Bauer <mjbauer95@gmail.com>
200 Jonathan Wakely <jwakely@redhat.com>
201
202 PR bootstrap/64271 (partial)
203 * config/os/bsd/netbsd/ctype_base.h (ctype_base::mask): Change type
204 to unsigned short.
205 (ctype_base::alpha, ctype_base::digit, ctype_base::xdigit)
206 (ctype_base::print, ctype_base::graph, ctype_base::alnum): Sync
207 definitions with NetBSD upstream.
208 (ctype_base::blank): Use _CTYPE_BL.
209 * config/os/bsd/netbsd/ctype_configure_char.cc (_C_ctype_): Remove
210 Declaration.
211 (ctype<char>::classic_table): Use _C_ctype_tab_ instead of _C_ctype_.
212 (ctype<char>::do_toupper, ctype<char>::do_tolower): Cast char
213 parameters to unsigned char.
214 * config/os/bsd/netbsd/ctype_inline.h (ctype<char>::is): Likewise.
215
d9165389
FD
2162020-01-16 François Dumont <fdumont@gcc.gnu.org>
217
218 PR libstdc++/91263
219 * include/bits/hashtable.h (_Hashtable<>): Make _Equality<> friend.
220 * include/bits/hashtable_policy.h: Include <bits/stl_algo.h>.
221 (_Equality_base): Remove.
222 (_Equality<>::_M_equal): Review implementation. Use
223 std::is_permutation.
224 * testsuite/23_containers/unordered_multiset/operators/1.cc
225 (Hash, Equal, test02, test03): New.
226 * testsuite/23_containers/unordered_set/operators/1.cc
227 (Hash, Equal, test02, test03): New.
228
2a0f6c61
JW
2292020-01-15 Jonathan Wakely <jwakely@redhat.com>
230
231 PR libstdc++/93267
232 * include/bits/iterator_concepts.h (__max_diff_type, __max_size_type):
233 Move here from <bits/range_access.h> and define using __int128 when
234 available.
235 (__is_integer_like, __is_signed_integer_like): Move here from
236 <bits/range_access.h>.
237 (weakly_incrementable): Use __is_signed_integer_like.
238 * include/bits/range_access.h (__max_diff_type, __max_size_type)
239 (__is_integer_like, __is_signed_integer_like): Move to
240 <bits/iterator_concepts.h>.
241 (__make_unsigned_like_t): Move here from <ranges>.
242 * include/std/ranges (__make_unsigned_like_t): Move to
243 <bits/range_access.h>.
244 (iota_view): Replace using-directive with using-declarations.
245 * testsuite/std/ranges/iota/93267.cc: New test.
246 * testsuite/std/ranges/iota_view.cc: Move to new 'iota' sub-directory.
247
e4379a93
JW
2482020-01-13 Jonathan Wakely <jwakely@redhat.com>
249
fe7cc34f
JW
250 PR libstdc++/93244
251 * include/bits/fs_path.h (path::generic_string<C,A>)
252 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Convert root-dir to forward-slash.
253 * testsuite/27_io/filesystem/path/generic/generic_string.cc: Check
254 root-dir is converted to forward slash in generic pathname.
255 * testsuite/27_io/filesystem/path/generic/utf.cc: New test.
256 * testsuite/27_io/filesystem/path/generic/wchar_t.cc: New test.
257
e4379a93
JW
258 PR libstdc++/58605
259 * include/bits/atomic_base.h (__cpp_lib_atomic_value_initialization):
260 Define.
261 (__atomic_flag_base, __atomic_base, __atomic_base<_PTp*>)
262 (__atomic_float): Add default member initializer for C++20.
263 * include/std/atomic (atomic): Likewise.
264 (atomic::atomic()): Remove noexcept-specifier on default constructor.
265 * include/std/version (__cpp_lib_atomic_value_initialization): Define.
266 * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust dg-error line
267 number.
268 * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
269 * testsuite/29_atomics/atomic/cons/value_init.cc: New test.
270 * testsuite/29_atomics/atomic_flag/cons/value_init.cc: New test.
271 * testsuite/29_atomics/atomic_flag/requirements/trivial.cc: Adjust
272 expected result for is_trivially_default_constructible.
273 * testsuite/29_atomics/atomic_float/requirements.cc: Likewise.
274 * testsuite/29_atomics/atomic_float/value_init.cc: New test.
275 * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: Likewise.
276 * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: Likewise.
277 * testsuite/29_atomics/atomic_integral/cons/value_init.cc
278 * testsuite/29_atomics/atomic_integral/requirements/trivial.cc: Adjust
279 expected results for is_trivially_default_constructible.
280 * testsuite/util/testsuite_common_types.h (has_trivial_dtor): Add
281 new test generator.
282
7918cb93
JW
2832020-01-10 Jonathan Wakely <jwakely@redhat.com>
284
68be73fc
JW
285 * testsuite/util/testsuite_iterators.h: Improve comment.
286
78f02e80
JW
287 * testsuite/25_algorithms/equal/deque_iterators/1.cc: Don't use C++11
288 initialization syntax.
289
7918cb93
JW
290 PR libstdc++/92285
291 * include/bits/streambuf_iterator.h (istreambuf_iterator): Make type
292 of base class independent of __cplusplus value.
293 [__cplusplus < 201103L] (istreambuf_iterator::reference): Override the
294 type defined in the base class
295 * testsuite/24_iterators/istreambuf_iterator/92285.cc: New test.
296 * testsuite/24_iterators/istreambuf_iterator/requirements/
297 base_classes.cc: Adjust expected base class for C++98.
298
acd43917
OH
2992020-01-09 Olivier Hainque <hainque@adacore.com>
300
301 * doc/xml/manual/appendix_contributing.xml: Document _C2
302 as a reserved identifier, by VxWorks.
303 * include/bits/stl_map.h: Rename _C2 template typenames as _Cmp2.
304 * include/bits/stl_multimap.h: Likewise.
305
caa39b2e
JW
3062020-01-09 Jonathan Wakely <jwakely@redhat.com>
307
1a788638
JW
308 * include/ext/extptr_allocator.h (_ExtPtr_allocator::operator==)
309 (_ExtPtr_allocator::operator!=): Add missing const qualifiers.
310 * include/ext/pointer.h (readable_traits<_Pointer_adapter<S>>): Add
311 partial specialization to disambiguate the two constrained
312 specializations.
313
caa39b2e
JW
314 * include/experimental/type_traits (experimental::is_pod_v): Disable
315 -Wdeprecated-declarations warnings around reference to std::is_pod.
316 * include/std/type_traits (is_pod_v): Likewise.
317 * testsuite/18_support/max_align_t/requirements/2.cc: Also check
318 is_standard_layout and is_trivial. Do not check is_pod for C++20.
319 * testsuite/20_util/is_pod/requirements/explicit_instantiation.cc:
320 Add -Wno-deprecated for C++20.
321 * testsuite/20_util/is_pod/requirements/typedefs.cc: Likewise.
322 * testsuite/20_util/is_pod/value.cc: Likewise.
323 * testsuite/experimental/type_traits/value.cc: Likewise.
324
1a6c5064
JTM
3252020-01-09 JeanHeyd "ThePhD" Meneide <phdofthehouse@gmail.com>
326
327 * include/bits/c++config (_GLIBCXX20_DEPRECATED): Add new macro.
328 * include/std/type_traits (is_pod, is_pod_v): Deprecate for C++20.
329 * testuite/20_util/is_pod/deprecated-2a.cc: New test.
330
d574c8aa
JW
3312020-01-09 Jonathan Wakely <jwakely@redhat.com>
332
160e95dc
JW
333 PR libstdc++/93205
334 * include/bits/random.h (operator>>): Check stream operation succeeds.
335 * include/bits/random.tcc (operator<<): Remove redundant __ostream_type
336 typedefs.
337 (operator>>): Remove redundant __istream_type typedefs. Check stream
338 operations succeed.
339 (__extract_params): New function to fill a vector from a stream.
340 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error line.
341
d574c8aa
JW
342 PR libstdc++/93208
343 * config/abi/pre/gnu.ver: Add new exports.
344 * include/std/memory_resource (memory_resource::~memory_resource()):
345 Do not define inline.
346 (monotonic_buffer_resource::~monotonic_buffer_resource()): Likewise.
347 * src/c++17/memory_resource.cc (memory_resource::~memory_resource()):
348 Define.
349 (monotonic_buffer_resource::~monotonic_buffer_resource()): Define.
350 * testsuite/20_util/monotonic_buffer_resource/93208.cc: New test.
351
b9c84e95
FD
3522020-01-09 François Dumont <fdumont@gcc.gnu.org>
353
354 PR libstdc++/92124
355 * include/bits/hashtable.h (_Hashtable<>::__alloc_node_gen_t): New
356 template alias.
357 (_Hashtable<>::__fwd_value_for): New.
358 (_Hashtable<>::_M_assign_elements<>): Remove _NodeGenerator template
359 parameter.
360 (_Hashtable<>::_M_assign<>): Add _Ht template parameter.
361 (_Hashtable<>::operator=(const _Hashtable<>&)): Adapt.
362 (_Hashtable<>::_M_move_assign): Adapt. Replace std::move_if_noexcept
363 with std::move.
364 (_Hashtable<>::_Hashtable(const _Hashtable&)): Adapt.
365 (_Hashtable<>::_Hashtable(const _Hashtable&, const allocator_type&)):
366 Adapt.
367 (_Hashtable<>::_Hashtable(_Hashtable&&, const allocator_type&)):
368 Adapt.
369 * testsuite/23_containers/unordered_set/92124.cc: New.
370
fff148b7
JW
3712020-01-08 Jonathan Wakely <jwakely@redhat.com>
372
373 PR libstdc++/93201
374 * src/c++17/fs_ops.cc (do_remove_all): New function implementing more
375 detailed error reporting for remove_all. Check result of recursive
376 call before incrementing iterator.
377 (remove_all(const path&), remove_all(const path&, error_code&)): Use
378 do_remove_all.
379 * src/filesystem/ops.cc (remove_all(const path&, error_code&)): Check
380 result of recursive call before incrementing iterator.
381 * testsuite/27_io/filesystem/operations/remove_all.cc: Check errors
382 are reported correctly.
383 * testsuite/experimental/filesystem/operations/remove_all.cc: Likewise.
384
9e3c1eb7
TR
3852020-01-07 Thomas Rodgers <trodgers@redhat.com>
386
387 * include/std/condition_variable
388 (condition_variable_any::wait_on): Rename to match current draft
389 standard.
390 (condition_variable_any::wait_on_until): Likewise.
391 (condition_variable_any::wait_on_for): Likewise.
392 * testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc:
393 Adjust tests to account for renamed methods.
394
6af8819b
FD
3952020-01-07 François Dumont <fdumont@gcc.gnu.org>
396
397 PR libstdc++/92124
398 * include/bits/stl_tree.h
399 (_Rb_tree<>::_M_move_assign(_Rb_tree&, false_type)): Replace
400 std::move_if_noexcept by std::move.
401 * testsuite/23_containers/map/92124.cc: New.
402 * testsuite/23_containers/set/92124.cc: New.
403
f31a99f7
JW
4042020-01-06 Jonathan Wakely <jwakely@redhat.com>
405
a4a1f965
JW
406 * include/std/stop_token (stop_token): Remove operator!= (LWG 3254).
407 (stop_source): Likewise (LWG 3362).
408 * testsuite/30_threads/stop_token/stop_source.cc: Test equality
409 comparisons.
410
f31a99f7
JW
411 * include/bits/stl_algobase.h (__is_byte_iter, __min_cmp)
412 (lexicographical_compare_three_way): Do not depend on
413 __cpp_lib_concepts.
414 * include/std/version (__cpp_lib_three_way_comparison): Only define
415 when __cpp_lib_concepts is defined.
416 * libsupc++/compare (__cpp_lib_three_way_comparison): Likewise.
417
b4e70137
JW
4182020-01-03 Jonathan Wakely <jwakely@redhat.com>
419
420 * include/bits/stl_algobase.h (lexicographical_compare_three_way):
421 Only define four-argument overload when __cpp_lib_concepts is defined.
422
a8497ec6
JDA
4232020-01-01 John David Anglin <danglin@gcc.gnu.org>
424
425 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
426
8d9254fc 4272020-01-01 Jakub Jelinek <jakub@redhat.com>
5624e564
JJ
428
429 Update copyright years.
b4df5e92 430\f
8d9254fc 431Copyright (C) 2020 Free Software Foundation, Inc.
b4df5e92
JW
432
433Copying and distribution of this file, with or without modification,
434are permitted in any medium without royalty provided the copyright
435notice and this notice are preserved.