]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/ChangeLog
libstdc++: Make std::compare_three_way check if <=> is valid (PR 93479)
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
CommitLineData
5cd2e126
JW
12020-01-29 Jonathan Wakely <jwakely@redhat.com>
2
83b02010
JW
3 PR libstdc++/93479
4 * libsupc++/compare (__3way_builtin_ptr_cmp): Require <=> to be valid.
5 * testsuite/18_support/comparisons/object/93479.cc: New test.
6
5cd2e126
JW
7 * testsuite/std/ranges/access/end.cc: Do not assume test_range::end()
8 returns the same type as test_range::begin(). Add comments.
9 * testsuite/std/ranges/access/rbegin.cc: Likewise.
10 * testsuite/std/ranges/access/rend.cc: Likewise.
11 * testsuite/std/ranges/range.cc: Do not assume the sentinel for
12 test_range is the same as its iterator type.
13 * testsuite/util/testsuite_iterators.h (test_range::sentinel): Add
14 operator- overloads to satisfy sized_sentinel_for when the iterator
15 satisfies random_access_iterator.
16
759812fd
JW
172020-01-28 Jonathan Wakely <jwakely@redhat.com>
18
72a9fd20
JW
19 PR libstdc++/93470
20 * include/bits/refwrap.h (reference_wrapper::operator()): Restrict
21 static assertion to object types.
22
759812fd
JW
23 PR libstdc++/93325
24 * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Use AC_SEARCH_LIBS for
25 clock_gettime instead of explicit glibc version check.
26 * configure: Regenerate.
27
a5d81aaa
JW
282020-01-28 Martin Liska <mliska@suse.cz>
29
30 PR libstdc++/93478
31 * include/std/atomic: Fix typo.
32 * include/std/optional: Likewise.
33
342020-01-27 Andrew Burgess <andrew.burgess@embecosm.com>
35
36 * configure: Regenerate.
37
389cd88c
JW
382020-01-27 Jonathan Wakely <jwakely@redhat.com>
39
40 PR libstdc++/93426
41 * include/std/span (span): Fix deduction guide.
42 * testsuite/23_containers/span/deduction.cc: New test.
43
482eeff5
JW
442020-01-24 Jonathan Wakely <jwakely@redhat.com>
45
46 * libsupc++/compare (__cmp_cat::_Eq): Remove enumeration type.
47 (__cmp_cat::_Ord::equivalent): Add enumerator.
48 (__cmp_cat::_Ord::_Less, __cmp_cat::_Ord::_Greater): Rename to less
49 and greater.
50 (partial_ordering, weak_ordering, strong_ordering): Remove
51 constructors taking __cmp_cat::_Eq parameters. Use renamed
52 enumerators.
53
e8e66971
MR
542020-01-24 Maciej W. Rozycki <macro@wdc.com>
55
56 * acinclude.m4: Handle `--with-toolexeclibdir='.
57 * Makefile.in: Regenerate.
58 * aclocal.m4: Regenerate.
59 * configure: Regenerate.
60 * doc/Makefile.in: Regenerate.
61 * include/Makefile.in: Regenerate.
62 * libsupc++/Makefile.in: Regenerate.
63 * po/Makefile.in: Regenerate.
64 * python/Makefile.in: Regenerate.
65 * src/Makefile.in: Regenerate.
66 * src/c++11/Makefile.in: Regenerate.
67 * src/c++17/Makefile.in: Regenerate.
68 * src/c++98/Makefile.in: Regenerate.
69 * src/filesystem/Makefile.in: Regenerate.
70 * testsuite/Makefile.in: Regenerate.
71
7a900bce
AO
722020-01-23 Alexandre Oliva <oliva@adacore.com>
73
f9e84b31
AO
74 * crossconfig.m4 (GLIBCXX_CHECK_MATH_DECL): Reject macros.
75 * configure: Rebuild.
76
7a900bce
AO
77 * testsuite/27_io/fpos/mbstate_t/1.cc: Zero-init mbstate_t.
78
04681fca
JW
792020-01-23 Jonathan Wakely <jwakely@redhat.com>
80
81 PR libstdc++/91947
82 * include/Makefile.am (${host_builddir}/largefile-config.h): Simplify
83 rule.
84 * include/Makefile.in: Regenerate.
85
c784f162
JW
862020-01-20 Jonathan Wakely <jwakely@redhat.com>
87
88 * doc/xml/faq.xml: Fix grammar.
89 * doc/xml/manual/appendix_contributing.xml: Improve instructions.
90 * doc/xml/manual/spine.xml: Update copyright years.
91 * doc/html/*: Regenerate.
92
f4d83eba
ER
932020-01-19 Eric S. Raymond <esr@thyrsus.com>
94
95 * doc/xml/faq.xml: Update for SVN -> Git transition.
96 * doc/xml/manual/appendix_contributing.xml: Likewise.
97 * doc/xml/manual/status_cxx1998.xml: Likewise.
98 * doc/xml/manual/status_cxx2011.xml: Likewise.
99 * doc/xml/manual/status_cxx2014.xml: Likewise.
100 * doc/xml/manual/status_cxx2017.xml: Likewise.
101 * doc/xml/manual/status_cxx2020.xml: Likewise.
102 * doc/xml/manual/status_cxxtr1.xml: Likewise.
103 * doc/xml/manual/status_cxxtr24733.xml: Likewise.
104
49789fd0
IS
1052020-01-18 Iain Sandoe <iain@sandoe.co.uk>
106
107 * include/Makefile.am: Add coroutine to the std set.
108 * include/Makefile.in: Regenerated.
109 * include/std/coroutine: New file.
110
0ba6a850
JW
1112020-01-17 Jonathan Wakely <jwakely@redhat.com>
112
113 PR libstdc++/92376
114 * include/bits/c++config: Only do PSTL config when the header is
115 present, to fix freestanding.
116 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare allocation
117 functions if they were detected by configure.
118
98d56ea8
JW
1192020-01-16 Kai-Uwe Eckhardt <kuehro@gmx.de>
120 Matthew Bauer <mjbauer95@gmail.com>
121 Jonathan Wakely <jwakely@redhat.com>
122
123 PR bootstrap/64271 (partial)
124 * config/os/bsd/netbsd/ctype_base.h (ctype_base::mask): Change type
125 to unsigned short.
126 (ctype_base::alpha, ctype_base::digit, ctype_base::xdigit)
127 (ctype_base::print, ctype_base::graph, ctype_base::alnum): Sync
128 definitions with NetBSD upstream.
129 (ctype_base::blank): Use _CTYPE_BL.
130 * config/os/bsd/netbsd/ctype_configure_char.cc (_C_ctype_): Remove
131 Declaration.
132 (ctype<char>::classic_table): Use _C_ctype_tab_ instead of _C_ctype_.
133 (ctype<char>::do_toupper, ctype<char>::do_tolower): Cast char
134 parameters to unsigned char.
135 * config/os/bsd/netbsd/ctype_inline.h (ctype<char>::is): Likewise.
136
d9165389
FD
1372020-01-16 François Dumont <fdumont@gcc.gnu.org>
138
139 PR libstdc++/91263
140 * include/bits/hashtable.h (_Hashtable<>): Make _Equality<> friend.
141 * include/bits/hashtable_policy.h: Include <bits/stl_algo.h>.
142 (_Equality_base): Remove.
143 (_Equality<>::_M_equal): Review implementation. Use
144 std::is_permutation.
145 * testsuite/23_containers/unordered_multiset/operators/1.cc
146 (Hash, Equal, test02, test03): New.
147 * testsuite/23_containers/unordered_set/operators/1.cc
148 (Hash, Equal, test02, test03): New.
149
2a0f6c61
JW
1502020-01-15 Jonathan Wakely <jwakely@redhat.com>
151
152 PR libstdc++/93267
153 * include/bits/iterator_concepts.h (__max_diff_type, __max_size_type):
154 Move here from <bits/range_access.h> and define using __int128 when
155 available.
156 (__is_integer_like, __is_signed_integer_like): Move here from
157 <bits/range_access.h>.
158 (weakly_incrementable): Use __is_signed_integer_like.
159 * include/bits/range_access.h (__max_diff_type, __max_size_type)
160 (__is_integer_like, __is_signed_integer_like): Move to
161 <bits/iterator_concepts.h>.
162 (__make_unsigned_like_t): Move here from <ranges>.
163 * include/std/ranges (__make_unsigned_like_t): Move to
164 <bits/range_access.h>.
165 (iota_view): Replace using-directive with using-declarations.
166 * testsuite/std/ranges/iota/93267.cc: New test.
167 * testsuite/std/ranges/iota_view.cc: Move to new 'iota' sub-directory.
168
e4379a93
JW
1692020-01-13 Jonathan Wakely <jwakely@redhat.com>
170
fe7cc34f
JW
171 PR libstdc++/93244
172 * include/bits/fs_path.h (path::generic_string<C,A>)
173 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Convert root-dir to forward-slash.
174 * testsuite/27_io/filesystem/path/generic/generic_string.cc: Check
175 root-dir is converted to forward slash in generic pathname.
176 * testsuite/27_io/filesystem/path/generic/utf.cc: New test.
177 * testsuite/27_io/filesystem/path/generic/wchar_t.cc: New test.
178
e4379a93
JW
179 PR libstdc++/58605
180 * include/bits/atomic_base.h (__cpp_lib_atomic_value_initialization):
181 Define.
182 (__atomic_flag_base, __atomic_base, __atomic_base<_PTp*>)
183 (__atomic_float): Add default member initializer for C++20.
184 * include/std/atomic (atomic): Likewise.
185 (atomic::atomic()): Remove noexcept-specifier on default constructor.
186 * include/std/version (__cpp_lib_atomic_value_initialization): Define.
187 * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust dg-error line
188 number.
189 * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
190 * testsuite/29_atomics/atomic/cons/value_init.cc: New test.
191 * testsuite/29_atomics/atomic_flag/cons/value_init.cc: New test.
192 * testsuite/29_atomics/atomic_flag/requirements/trivial.cc: Adjust
193 expected result for is_trivially_default_constructible.
194 * testsuite/29_atomics/atomic_float/requirements.cc: Likewise.
195 * testsuite/29_atomics/atomic_float/value_init.cc: New test.
196 * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: Likewise.
197 * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: Likewise.
198 * testsuite/29_atomics/atomic_integral/cons/value_init.cc
199 * testsuite/29_atomics/atomic_integral/requirements/trivial.cc: Adjust
200 expected results for is_trivially_default_constructible.
201 * testsuite/util/testsuite_common_types.h (has_trivial_dtor): Add
202 new test generator.
203
7918cb93
JW
2042020-01-10 Jonathan Wakely <jwakely@redhat.com>
205
68be73fc
JW
206 * testsuite/util/testsuite_iterators.h: Improve comment.
207
78f02e80
JW
208 * testsuite/25_algorithms/equal/deque_iterators/1.cc: Don't use C++11
209 initialization syntax.
210
7918cb93
JW
211 PR libstdc++/92285
212 * include/bits/streambuf_iterator.h (istreambuf_iterator): Make type
213 of base class independent of __cplusplus value.
214 [__cplusplus < 201103L] (istreambuf_iterator::reference): Override the
215 type defined in the base class
216 * testsuite/24_iterators/istreambuf_iterator/92285.cc: New test.
217 * testsuite/24_iterators/istreambuf_iterator/requirements/
218 base_classes.cc: Adjust expected base class for C++98.
219
acd43917
OH
2202020-01-09 Olivier Hainque <hainque@adacore.com>
221
222 * doc/xml/manual/appendix_contributing.xml: Document _C2
223 as a reserved identifier, by VxWorks.
224 * include/bits/stl_map.h: Rename _C2 template typenames as _Cmp2.
225 * include/bits/stl_multimap.h: Likewise.
226
caa39b2e
JW
2272020-01-09 Jonathan Wakely <jwakely@redhat.com>
228
1a788638
JW
229 * include/ext/extptr_allocator.h (_ExtPtr_allocator::operator==)
230 (_ExtPtr_allocator::operator!=): Add missing const qualifiers.
231 * include/ext/pointer.h (readable_traits<_Pointer_adapter<S>>): Add
232 partial specialization to disambiguate the two constrained
233 specializations.
234
caa39b2e
JW
235 * include/experimental/type_traits (experimental::is_pod_v): Disable
236 -Wdeprecated-declarations warnings around reference to std::is_pod.
237 * include/std/type_traits (is_pod_v): Likewise.
238 * testsuite/18_support/max_align_t/requirements/2.cc: Also check
239 is_standard_layout and is_trivial. Do not check is_pod for C++20.
240 * testsuite/20_util/is_pod/requirements/explicit_instantiation.cc:
241 Add -Wno-deprecated for C++20.
242 * testsuite/20_util/is_pod/requirements/typedefs.cc: Likewise.
243 * testsuite/20_util/is_pod/value.cc: Likewise.
244 * testsuite/experimental/type_traits/value.cc: Likewise.
245
1a6c5064
JTM
2462020-01-09 JeanHeyd "ThePhD" Meneide <phdofthehouse@gmail.com>
247
248 * include/bits/c++config (_GLIBCXX20_DEPRECATED): Add new macro.
249 * include/std/type_traits (is_pod, is_pod_v): Deprecate for C++20.
250 * testuite/20_util/is_pod/deprecated-2a.cc: New test.
251
d574c8aa
JW
2522020-01-09 Jonathan Wakely <jwakely@redhat.com>
253
160e95dc
JW
254 PR libstdc++/93205
255 * include/bits/random.h (operator>>): Check stream operation succeeds.
256 * include/bits/random.tcc (operator<<): Remove redundant __ostream_type
257 typedefs.
258 (operator>>): Remove redundant __istream_type typedefs. Check stream
259 operations succeed.
260 (__extract_params): New function to fill a vector from a stream.
261 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error line.
262
d574c8aa
JW
263 PR libstdc++/93208
264 * config/abi/pre/gnu.ver: Add new exports.
265 * include/std/memory_resource (memory_resource::~memory_resource()):
266 Do not define inline.
267 (monotonic_buffer_resource::~monotonic_buffer_resource()): Likewise.
268 * src/c++17/memory_resource.cc (memory_resource::~memory_resource()):
269 Define.
270 (monotonic_buffer_resource::~monotonic_buffer_resource()): Define.
271 * testsuite/20_util/monotonic_buffer_resource/93208.cc: New test.
272
b9c84e95
FD
2732020-01-09 François Dumont <fdumont@gcc.gnu.org>
274
275 PR libstdc++/92124
276 * include/bits/hashtable.h (_Hashtable<>::__alloc_node_gen_t): New
277 template alias.
278 (_Hashtable<>::__fwd_value_for): New.
279 (_Hashtable<>::_M_assign_elements<>): Remove _NodeGenerator template
280 parameter.
281 (_Hashtable<>::_M_assign<>): Add _Ht template parameter.
282 (_Hashtable<>::operator=(const _Hashtable<>&)): Adapt.
283 (_Hashtable<>::_M_move_assign): Adapt. Replace std::move_if_noexcept
284 with std::move.
285 (_Hashtable<>::_Hashtable(const _Hashtable&)): Adapt.
286 (_Hashtable<>::_Hashtable(const _Hashtable&, const allocator_type&)):
287 Adapt.
288 (_Hashtable<>::_Hashtable(_Hashtable&&, const allocator_type&)):
289 Adapt.
290 * testsuite/23_containers/unordered_set/92124.cc: New.
291
fff148b7
JW
2922020-01-08 Jonathan Wakely <jwakely@redhat.com>
293
294 PR libstdc++/93201
295 * src/c++17/fs_ops.cc (do_remove_all): New function implementing more
296 detailed error reporting for remove_all. Check result of recursive
297 call before incrementing iterator.
298 (remove_all(const path&), remove_all(const path&, error_code&)): Use
299 do_remove_all.
300 * src/filesystem/ops.cc (remove_all(const path&, error_code&)): Check
301 result of recursive call before incrementing iterator.
302 * testsuite/27_io/filesystem/operations/remove_all.cc: Check errors
303 are reported correctly.
304 * testsuite/experimental/filesystem/operations/remove_all.cc: Likewise.
305
9e3c1eb7
TR
3062020-01-07 Thomas Rodgers <trodgers@redhat.com>
307
308 * include/std/condition_variable
309 (condition_variable_any::wait_on): Rename to match current draft
310 standard.
311 (condition_variable_any::wait_on_until): Likewise.
312 (condition_variable_any::wait_on_for): Likewise.
313 * testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc:
314 Adjust tests to account for renamed methods.
315
6af8819b
FD
3162020-01-07 François Dumont <fdumont@gcc.gnu.org>
317
318 PR libstdc++/92124
319 * include/bits/stl_tree.h
320 (_Rb_tree<>::_M_move_assign(_Rb_tree&, false_type)): Replace
321 std::move_if_noexcept by std::move.
322 * testsuite/23_containers/map/92124.cc: New.
323 * testsuite/23_containers/set/92124.cc: New.
324
f31a99f7
JW
3252020-01-06 Jonathan Wakely <jwakely@redhat.com>
326
a4a1f965
JW
327 * include/std/stop_token (stop_token): Remove operator!= (LWG 3254).
328 (stop_source): Likewise (LWG 3362).
329 * testsuite/30_threads/stop_token/stop_source.cc: Test equality
330 comparisons.
331
f31a99f7
JW
332 * include/bits/stl_algobase.h (__is_byte_iter, __min_cmp)
333 (lexicographical_compare_three_way): Do not depend on
334 __cpp_lib_concepts.
335 * include/std/version (__cpp_lib_three_way_comparison): Only define
336 when __cpp_lib_concepts is defined.
337 * libsupc++/compare (__cpp_lib_three_way_comparison): Likewise.
338
b4e70137
JW
3392020-01-03 Jonathan Wakely <jwakely@redhat.com>
340
341 * include/bits/stl_algobase.h (lexicographical_compare_three_way):
342 Only define four-argument overload when __cpp_lib_concepts is defined.
343
a8497ec6
JDA
3442020-01-01 John David Anglin <danglin@gcc.gnu.org>
345
346 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
347
8d9254fc 3482020-01-01 Jakub Jelinek <jakub@redhat.com>
5624e564
JJ
349
350 Update copyright years.
b4df5e92 351\f
8d9254fc 352Copyright (C) 2020 Free Software Foundation, Inc.
b4df5e92
JW
353
354Copying and distribution of this file, with or without modification,
355are permitted in any medium without royalty provided the copyright
356notice and this notice are preserved.