]> gcc.gnu.org Git - gcc.git/blame - libstdc++-v3/ChangeLog
combine: Fix up expand_compound_operation [PR99905]
[gcc.git] / libstdc++-v3 / ChangeLog
CommitLineData
3115aba8
GA
12021-04-09 François Dumont <fdumont@gcc.gnu.org>
2
3 PR libstdc++/99402
4 * include/debug/helper_functions.h (__can_advance(_InputIterator,
5 const std::pair<_Diff, _Distance_precision>&, int)): New.
6 (__can_advance(const _Safe_iterator<>&,
7 const std::pair<_Diff, _Distance_precision>&, int)): New.
8 * include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
9 use latter.
10 (__glibcxx_check_can_increment_range): Adapt to use latter.
11 (__glibcxx_check_can_decrement_range): Likewise.
12 * include/debug/safe_iterator.h
13 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
14 int)): New.
15 (__can_advance(const _Safe_iterator<>&,
16 const std::pair<_Diff, _Distance_precision>&, int)): New.
17 * include/debug/safe_iterator.tcc
18 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
19 int)): New.
20 (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
21 std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
22 __dp_sign_max_size.
23 (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
24 (__copy_move_backward_a): Likewise.
25 (__equal_aux): Likewise.
26 * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
27 const std::pair<_Diff, _Distance_precision>&, int)): New.
28 (__can_advance(const std::move_iterator<>&,
29 const std::pair<_Diff, _Distance_precision>&, int)): New.
30 * testsuite/25_algorithms/copy/debug/99402.cc: New test.
31
322021-04-09 Jonathan Wakely <jwakely@redhat.com>
33
34 PR libstdc++/99985
35 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
36 to be a valid constexpr function in C++11.
37 * testsuite/23_containers/unordered_set/cons/99985.cc: New test.
38
392021-04-09 Jonathan Wakely <jwakely@redhat.com>
40
41 * include/bits/fs_fwd.h: Fix doxygen group command.
42 * include/bits/streambuf_iterator.h: Likewise.
43 * include/bits/uses_allocator_args.h: Likewise.
44 * include/std/memory: Likewise.
45 * include/tr1/complex: Likewise.
46
019a9220
GA
472021-04-08 Jonathan Wakely <jwakely@redhat.com>
48
49 * include/bits/basic_string.h: Tweak doxygen comment.
50
512021-04-08 Patrick Palka <ppalka@redhat.com>
52
53 * include/std/ranges (__detail::find): Define.
54 (split_view::_OuterIter::operator++): Apply proposed resolution
55 of LWG 3505.
56 * testsuite/std/ranges/adaptors/split.cc (test10): New test.
57
582021-04-08 Patrick Palka <ppalka@redhat.com>
59
60 * include/std/ranges (__detail::find_if): Simplify.
61 (__detail::find_if_not): Likewise.
62 (__detail::min): Remove.
63 (__detail::mismatch): Simplify.
64 (take_view::size): Use std::min instead of __detail::min.
65
662021-04-08 Patrick Palka <ppalka@redhat.com>
67
68 * include/std/ranges (__detail::__returnable_element): New
69 concept.
70 (elements_view): Use this concept in its constraints. Add
71 missing private access specifier.
72 (elements_view::_S_get_element): Define as per LWG 3502.
73 (elements_view::operator*, elements_view::operator[]): Use
74 _S_get_element.
75 (elements_view::operator++): Remove unnecessary constraint
76 as per LWG 3492.
77 * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
78
792021-04-08 Jonathan Wakely <jwakely@redhat.com>
80
81 * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
82 out-of-memory error in log file.
83 * doc/Makefile.in: Regenerate.
84
852021-04-08 Jonathan Wakely <jwakely@redhat.com>
86
87 * configure: Regenerate.
88
892021-04-08 Jonathan Wakely <jwakely@redhat.com>
90
91 * include/bits/random.h: Fix doxygen group commands.
92 * include/bits/regex_constants.h: Likewise.
93 * include/tr1/random.h: Likewise.
94
952021-04-08 Jonathan Wakely <jwakely@redhat.com>
96
97 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
98 New function to determine noexcept-specifier for move
99 constructors.
100 (_Hashtable): Use _S_nothrow_move() on move constructors.
101 * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
102 Correct static assertion message.
103 * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
104 Likewise.
105 * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
106 Likewise.
107 * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
108 Likewise.
109
1102021-04-08 Patrick Palka <ppalka@redhat.com>
111
112 PR libstdc++/98384
113 * testsuite/20_util/to_chars/long_double.cc: Don't run the test
114 on targets without a large long double. XFAIL the execution on
115 targets with a non-conforming printf.
116
1172021-04-08 Patrick Palka <ppalka@redhat.com>
118
119 PR libstdc++/99433
120 * include/std/ranges (__adaptor::__maybe_refwrap): Remove.
121 (__adaptor::__adaptor_invocable): New concept.
122 (__adaptor::__adaptor_partial_app_viable): New concept.
123 (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
124 non-template base class.
125 (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
126 class template.
127 (__adaptor::_Partial): New class template that represents
128 partial application of a range adaptor non-closure.
129 (__adaptor::__pipe_invocable): New concept.
130 (__adaptor::_Pipe): New class template.
131 (__detail::__can_ref_view): New concept.
132 (__detail::__can_subrange): New concept.
133 (all): Replace the lambda here with ...
134 (_All): ... this functor. Add appropriate constraints.
135 (__detail::__can_filter_view): New concept.
136 (filter, _Filter): As in all/_All.
137 (__detail::__can_transform): New concept.
138 (transform, _Transform): As in all/_All.
139 (__detail::__can_take_view): New concept.
140 (take, _Take): As in all/_All.
141 (__detail::__can_take_while_view): New concept.
142 (take_while, _TakeWhile): As in all/_All.
143 (__detail::__can_drop_view): New concept.
144 (drop, _Drop): As in all/_All.
145 (__detail::__can_drop_while_view): New concept.
146 (drop_while, _DropWhile): As in all/_All.
147 (__detail::__can_join_view): New concept.
148 (join, _Join): As in all/_All.
149 (__detail::__can_split_view): New concept.
150 (split, _Split): As in all/_All. Rename template parameter
151 _Fp to _Pattern.
152 (__detail::__already_common): New concept.
153 (__detail::__can_common_view): New concept.
154 (common, _Common): As in all/_All.
155 (__detail::__can_reverse_view): New concept.
156 (reverse, _Reverse): As in all/_All.
157 (__detail::__can_elements_view): New concept.
158 (elements, _Elements): As in all/_All.
159 (keys, values): Adjust.
160 * testsuite/std/ranges/adaptors/99433.cc: New test.
161 * testsuite/std/ranges/adaptors/all.cc: No longer expect that
162 adding empty range adaptor closure objects to a pipeline doesn't
163 increase the size of the pipeline.
164 (test05): New test.
165 * testsuite/std/ranges/adaptors/common.cc (test03): New test.
166 * testsuite/std/ranges/adaptors/drop.cc (test09): New test.
167 * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
168 * testsuite/std/ranges/adaptors/elements.cc (test04): New test.
169 * testsuite/std/ranges/adaptors/filter.cc (test06): New test.
170 * testsuite/std/ranges/adaptors/join.cc (test09): New test.
171 * testsuite/std/ranges/adaptors/p2281.cc: New test.
172 * testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
173 * testsuite/std/ranges/adaptors/split.cc (test01, test04):
174 Adjust.
175 (test09): New test.
176 * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
177 expected error message.
178 (test02): Likewise. Extend test.
179 * testsuite/std/ranges/adaptors/take.cc (test06): New test.
180 * testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
181 * testsuite/std/ranges/adaptors/transform.cc (test07, test08):
182 New test.
183
1842021-04-08 Jonathan Wakely <jwakely@redhat.com>
185
186 * include/std/string_view: Adjust Doxygen @file comment.
187
1882021-04-08 Jonathan Wakely <jwakely@redhat.com>
189
190 * include/std/type_traits (is_scoped_enum<T>): Constrain partial
191 specialization to not match incomplete enum types. Use a
192 requires-expression instead of instantiating is_convertible.
193 (is_scoped_enum<const T>): Add as workaround for PR c++/99968.
194 * testsuite/20_util/is_scoped_enum/value.cc: Check with
195 incomplete types and opaque-enum-declarations.
196
299859c2
GA
1972021-04-07 Jonathan Wakely <jwakely@redhat.com>
198
199 PR libstdc++/99805
200 * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
201 non-const member on _M_pathname, to avoid copy-on-write.
202 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
203 Check construction from strings that might be shared.
204
8cac6af6
GA
2052021-04-06 Jonathan Wakely <jwakely@redhat.com>
206
207 * include/bits/move.h (forward, move, move_if_noexcept)
208 (addressof): Add _GLIBCXX_NODISCARD.
209 * include/bits/ranges_cmp.h (identity::operator()): Add
210 nodiscard attribute.
211 * include/c_global/cstddef (to_integer): Likewise.
212 * include/std/bit (bit_cast): Likewise.
213 * include/std/utility (as_const, to_underlying): Likewise.
214
2152021-04-06 Jonathan Wakely <jwakely@redhat.com>
216
217 * include/bits/move.h (forward): Change static_assert message
218 to be unambiguous about what must be true.
219 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
220 * testsuite/20_util/forward/f_neg.cc: Likewise.
221
2222021-04-06 Jonathan Wakely <jwakely@redhat.com>
223
224 * include/bits/alloc_traits.h: Use markdown for code font.
225 * include/bits/basic_string.h: Fix @param names.
226 * include/bits/max_size_type.h: Remove period after @file.
227 * include/bits/regex.h: Fix duplicate @retval names, and rename.
228 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
229 group open to match existing group close.
230 * include/ext/pb_ds/priority_queue.hpp: Add blank line before group
231 open.
232
8cac6af6
GA
2332021-04-06 Jonathan Wakely <jwakely@redhat.com>
234
235 * include/bits/atomic_base.h: Fix doxygen group close.
236 * include/bits/basic_ios.h: Likewise.
237 * include/bits/forward_list.h: Likewise.
238 * include/bits/fs_dir.h: Likewise.
239 * include/bits/fs_ops.h: Likewise.
240 * include/bits/fs_path.h: Likewise.
241 * include/bits/functional_hash.h: Likewise.
242 * include/bits/gslice.h: Likewise.
243 * include/bits/gslice_array.h: Likewise.
244 * include/bits/hashtable_policy.h: Likewise.
245 * include/bits/indirect_array.h: Likewise.
246 * include/bits/locale_classes.h: Likewise.
247 * include/bits/locale_facets.h: Likewise.
248 * include/bits/locale_facets_nonio.h: Likewise.
249 * include/bits/mask_array.h: Likewise.
250 * include/bits/refwrap.h: Likewise.
251 * include/bits/regex.h: Likewise.
252 * include/bits/regex_automaton.h: Likewise.
253 * include/bits/regex_compiler.h: Likewise.
254 * include/bits/regex_constants.h: Likewise.
255 * include/bits/regex_error.h: Likewise.
256 * include/bits/regex_executor.h: Likewise.
257 * include/bits/regex_scanner.h: Likewise.
258 * include/bits/shared_ptr.h: Likewise.
259 * include/bits/shared_ptr_atomic.h: Likewise.
260 * include/bits/shared_ptr_base.h: Likewise.
261 * include/bits/slice_array.h: Likewise.
262 * include/bits/specfun.h: Likewise.
263 * include/bits/std_function.h: Likewise.
264 * include/bits/std_mutex.h: Likewise.
265 * include/bits/stl_deque.h: Likewise.
266 * include/bits/stl_iterator.h: Likewise.
267 * include/bits/stl_iterator_base_types.h: Likewise.
268 * include/bits/stl_map.h: Likewise.
269 * include/bits/stl_multimap.h: Likewise.
270 * include/bits/stl_multiset.h: Likewise.
271 * include/bits/stl_numeric.h: Likewise.
272 * include/bits/stl_pair.h: Likewise.
273 * include/bits/stl_set.h: Likewise.
274 * include/bits/stl_uninitialized.h: Likewise.
275 * include/bits/stream_iterator.h: Likewise.
276 * include/bits/streambuf_iterator.h: Likewise.
277 * include/bits/unique_ptr.h: Likewise.
278 * include/bits/unordered_map.h: Likewise.
279 * include/bits/unordered_set.h: Likewise.
280 * include/decimal/decimal: Likewise.
281 * include/experimental/any: Likewise.
282 * include/experimental/array: Likewise.
283 * include/experimental/bits/fs_dir.h: Likewise.
284 * include/experimental/bits/fs_fwd.h: Likewise.
285 * include/experimental/bits/fs_ops.h: Likewise.
286 * include/experimental/bits/fs_path.h: Likewise.
287 * include/experimental/buffer: Likewise.
288 * include/experimental/internet: Likewise.
289 * include/experimental/optional: Likewise.
290 * include/experimental/propagate_const: Likewise.
291 * include/experimental/socket: Likewise.
292 * include/ext/pb_ds/assoc_container.hpp: Likewise.
293 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
294 Likewise.
295 * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
296 * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
297 * include/ext/pb_ds/detail/types_traits.hpp: Likewise.
298 * include/ext/pb_ds/exception.hpp: Likewise.
299 * include/ext/pb_ds/priority_queue.hpp: Likewise.
300 * include/ext/pb_ds/tag_and_trait.hpp: Likewise.
301 * include/ext/random: Likewise.
302 * include/std/any: Likewise.
303 * include/std/atomic: Likewise.
304 * include/std/bitset: Likewise.
305 * include/std/chrono: Likewise.
306 * include/std/complex: Likewise.
307 * include/std/condition_variable: Likewise.
308 * include/std/fstream: Likewise.
309 * include/std/future: Likewise.
310 * include/std/iostream: Likewise.
311 * include/std/istream: Likewise.
312 * include/std/mutex: Likewise.
313 * include/std/numeric: Likewise.
314 * include/std/ostream: Likewise.
315 * include/std/ratio: Likewise.
316 * include/std/shared_mutex: Likewise.
317 * include/std/stdexcept: Likewise.
318 * include/std/streambuf: Likewise.
319 * include/std/system_error: Likewise.
320 * include/std/thread: Likewise.
321 * include/std/valarray: Likewise.
322 * include/std/variant: Likewise.
323 * include/tr1/cmath: Likewise.
324 * include/tr1/regex: Likewise.
325 * include/tr2/dynamic_bitset: Likewise.
326 * libsupc++/atomic_lockfree_defines.h: Likewise.
327 * libsupc++/exception: Likewise.
328 * libsupc++/exception.h: Likewise.
329 * libsupc++/exception_ptr.h: Likewise.
330 * libsupc++/nested_exception.h: Likewise.
331
95d217ab
GA
3322021-03-31 Alexandre Oliva <oliva@adacore.com>
333
334 * testsuite/30_threads/future/members/poll.cc: Use faster
335 after-ready call in the calibration loop.
336
65374af2
GA
3372021-03-29 Jonathan Wakely <jwakely@redhat.com>
338
339 * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
340 * doc/html/manual/status.html: Regenerate.
341
c4110112
GA
3422021-03-28 François Dumont <fdumont@gcc.gnu.org>
343
344 * include/debug/forward_list
345 (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
346 * include/debug/list (list(list&&, const allocator_type&)): Likewise and add
347 call to safe container allocator aware move constructor.
348 * include/debug/vector (vector(vector&&, const allocator_type&)):
349 Fix noexcept qualification.
350 * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
351 Add allocator-extended move constructor noexceot qualification check.
352 * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
353
651684b4
GA
3542021-03-26 Jonathan Wakely <jwakely@redhat.com>
355
356 * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
357 fallback is needed.
358 [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
359 New helper functions and callback.
360 (random_device::_M_init): Add 'prng' and 'all' enumerators.
361 Replace switch with fallthrough with a series of 'if' statements.
362 [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
363 checks fail.
364 (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
365 token.
366 (random_device::_M_getval): Check for callback unconditionally
367 and always pass _M_file pointer.
368 * testsuite/26_numerics/random/random_device/85494.cc: Remove
369 effective-target check. Use new random_device_available helper.
370 * testsuite/26_numerics/random/random_device/94087.cc: Likewise.
371 * testsuite/26_numerics/random/random_device/cons/default-cow.cc:
372 Remove effective-target check.
373 * testsuite/26_numerics/random/random_device/cons/default.cc:
374 Likewise.
375 * testsuite/26_numerics/random/random_device/cons/token.cc: Use
376 new random_device_available helper. Test "prng" token.
377 * testsuite/util/testsuite_random.h (random_device_available):
378 New helper function.
379
4493b1c1
GA
3802021-03-25 François Dumont <fdumont@gcc.gnu.org>
381
382 * include/debug/string
383 (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
384 (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
385 (basic_string<>::erase): Adapt to take __const_iterator.
386 (basic_string(const _CharT*, const _Allocator&)): Remove assign call.
387 (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
388 remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
389 [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
390 (__gnu_debug::u16string, __gnu_debug::u32string): New.
391 (std::hash<__gnu_debug::basic_string<>>): New partial specialization.
392 (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
393 * testsuite/util/exception/safety.h
394 (erase_base<__gnu_debug::basic_string<>>): New partial specialization.
395 (insert_base<__gnu_debug::basic_string<>>): Likewise.
396 * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
397 New partial specialization.
398 * testsuite/21_strings/basic_string/hash/debug.cc: New test.
399 * testsuite/21_strings/basic_string/requirements/citerators.cc:
400 Add test on __gnu_debug::string.
401 * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
402 * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
403 * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
404 Likewise.
405 * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
406 Likewise.
407 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
408 Likewise.
409 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
410 Likewise.
411 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
412 Likewise.
413 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
414 Likewise.
415 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
416 Likewise.
417 * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
418
4192021-03-25 Jakub Jelinek <jakub@redhat.com>
420
421 PR c++/99672
422 * testsuite/18_support/source_location/consteval.cc (main): Adjust
423 expected column numbers.
424 * testsuite/18_support/source_location/1.cc (main): Likewise.
425
4262021-03-25 Jonathan Wakely <jwakely@redhat.com>
427
428 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
429
4302021-03-25 Jonathan Wakely <jwakely@redhat.com>
431
432 * testsuite/util/exception/safety.h (setup_base::generate):
433 Support seeding random engine.
434 (erase_point, erase_range): Adjust range of random numbers to
435 ensure dereferenceable iterators are used where required.
436 (generation_prohibited::run): Do not try to erase from empty
437 containers.
438 * testsuite/util/testsuite_containergen.h (test_containers):
439 Support seeding random engine.
440
bf1f3168
GA
4412021-03-23 Jonathan Wakely <jwakely@redhat.com>
442
443 * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
444 line with a check that uses the const being/end overloads.
445
4462021-03-23 Moritz Sichert <sichert@in.tum.de>
447
448 * include/std/ranges (reverse_view::begin, reverse_view::end):
449 Qualify make_reverse_iterator calls to avoid ADL.
450 * testsuite/std/ranges/adaptors/reverse.cc: Test that
451 views::reverse works when make_reverse_iterator is defined
452 in an associated namespace.
453
4542021-03-23 Jonathan Wakely <jwakely@redhat.com>
455
456 * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
457 Do not define when compiling with Clang.
458
8b744f46
GA
4592021-03-22 Jonathan Wakely <jwakely@redhat.com>
460
461 * include/std/string_view (basic_string_view(Range&&)): Define new
462 constructor and deduction guide.
463 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
464 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
465
4662021-03-22 Jonathan Wakely <jwakely@redhat.com>
467
468 * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
469 Add missing 'noexcept' as per LWG 2280.
470 (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
471 (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
472 * testsuite/24_iterators/range_access/range_access.cc: Check for
473 expected noexcept specifiers. Check result types of generic
474 std::begin and std::end overloads.
475 * testsuite/24_iterators/range_access/range_access_cpp14.cc:
476 Check for expected noexcept specifiers.
477 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
478 Likewise.
479
5f256a70
GA
4802021-03-19 Jonathan Wakely <jwakely@redhat.com>
481
482 * include/std/type_traits (is_scoped_enum): Define.
483 * include/std/version (__cpp_lib_is_scoped_enum): Define.
484 * testsuite/20_util/is_scoped_enum/value.cc: New test.
485 * testsuite/20_util/is_scoped_enum/version.cc: New test.
486
bc212776
GA
4872021-03-16 Jonathan Wakely <jwakely@redhat.com>
488
489 PR libstdc++/99341
490 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
491 std::once_flag symbols.
492 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
493 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
494 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
495 Likewise.
496 * config/abi/pre/gnu.ver: Likewise.
497 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
498 (struct __once_flag_compat): Remove.
499 (_ZNSt9once_flag11_M_activateEv): Remove.
500 (_ZNSt9once_flag9_M_finishEb): Remove.
501
5022021-03-16 Jonathan Wakely <jwakely@redhat.com>
503
504 PR libstdc++/99341
505 * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
506 Revert to pthread_once_t implementation.
507 [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
508 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
509 (struct __once_flag_compat): New type matching the reverted
510 implementation of once_flag using futexes.
511 (once_flag::_M_activate): Remove, replace with ...
512 (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
513 (once_flag::_M_finish): Remove, replace with ...
514 (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
515 * testsuite/30_threads/call_once/66146.cc: Removed.
516
3c5b6d24
GA
5172021-03-15 Iain Sandoe <iain@sandoe.co.uk>
518
519 * testsuite/17_intro/names.cc: Exclude j from the list
520 of test symbols for Darwin.
521
5222021-03-15 Iain Sandoe <iain@sandoe.co.uk>
523
524 * config/os/bsd/darwin/ppc-extra.ver: Add matching for
525 to_chars and from_chars for long double.
526
5272021-03-15 Patrick Palka <ppalka@redhat.com>
528
529 * include/bits/max_size_type.h (__max_size_type::operator _Tp):
530 Fix formatting.
531 (__max_size_type::operator++): Define.
532 (__max_size_type::operator--): Likewise.
533 (__max_size_type::operator<=>): Conditionally define (in place
534 of the other comparison operators).
535 (__max_diff_type::operator _Tp): Fix formatting.
536 (__max_diff_type::operator++): Define.
537 (__max_diff_type::operator--): Likewise.
538 (__max_diff_type::operator<=>): Conditionally define (in place
539 of the other comparison operators).
540 * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
541 these operator overloads.
542
c2be8205
CT
5432021-03-15 Caroline Tice <cmtice@google.com>
544
545 PR libstdc++/99172
546 * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
547 AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
548 AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
549 filtered out.
550 * src/Makefile.in: Regenerate.
551
48ff383f
GA
5522021-03-11 Patrick Palka <ppalka@redhat.com>
553
554 * src/c++17/floating_to_chars.cc: Simplify the file as if
555 __SIZEOF_INT128__ is always defined.
556 [!defined __SIZEOF_INT128__]: Include "uint128_t.h". Define
557 a base-10 to_chars overload for the uint128_t class type.
558 * src/c++17/uint128_t.h: New file.
559 * testsuite/20_util/to_chars/long_double.cc: No longer expect an
560 execution FAIL on targets that have a large long double type
561 but lack __int128.
562
5632021-03-11 Patrick Palka <ppalka@redhat.com>
564
565 * src/c++17/ryu/LOCAL_PATCHES: Update.
566 * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
567 * src/c++17/ryu/generic_128.h: Likewise.
568 * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
569 Use uint128_t instead of __uint128_t.
570 (generic_binary_to_decimal): Likewise.
571
5722021-03-11 Patrick Palka <ppalka@redhat.com>
573
574 * src/c++17/ryu/LOCAL_PATCHES: New file.
575
5762021-03-11 Patrick Palka <ppalka@redhat.com>
577
578 * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
579 defined alias of unsigned __int128.
580 (floating_type_traits_binary128::mantissa_t): Use uint128_t
581 instead of unsigned __int128.
582 (floating_type_traits<long double>::mantissa_t)
583 [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
584 (get_ieee_repr): Likewise. Make casts from uint_t to mantissa_t
585 and uint32_t explicit. Simplify the extraction of mantissa,
586 exponent and sign bit.
587
5882021-03-11 Jonathan Wakely <jwakely@redhat.com>
589
590 * include/std/barrier (barrier::arrival_token): New move-only
591 class that encapsulates the underlying token value.
592
5932021-03-11 Jonathan Wakely <jwakely@redhat.com>
594
595 * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
596 instead of unqualified() method.
597
5982021-03-11 Jonathan Wakely <jwakely@redhat.com>
599
600 PR libstdc++/99537
601 * include/std/stop_token (_Stop_state_t::_M_release_ownership):
602 Use acq_rel memory ordering.
603
6042021-03-11 Jonathan Wakely <jwakely@redhat.com>
605
864caa15 606 PR libstdc++/99533
48ff383f
GA
607 * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
608 helper function to check for permission denied errors.
609 * src/filesystem/dir.cc (recursive_directory_iterator):
610 Likewise.
611 * src/filesystem/dir-common.h (is_permission_denied_error): New
612 helper function.
613
6142021-03-11 Jonathan Wakely <jwakely@redhat.com>
615
616 PR libstdc++/99536
617 * include/bits/random.h (normal_distribution): Use
618 default-initializer for _M_saved and _M_saved_available.
619
e9800852
GA
6202021-03-10 John David Anglin <danglin@gcc.gnu.org>
621
622 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
623 link with libatomic.
624 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
625 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
626 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
627 * testsuite/30_threads/barrier/arrive.cc: Likewise.
628 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
629 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
630 * testsuite/30_threads/barrier/completion.cc: Likewise.
631 * testsuite/30_threads/latch/3.cc: Likewise.
632 * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
633 * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
634 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
635
6362021-03-10 Jonathan Wakely <jwakely@redhat.com>
637
638 PR libstdc++/99413
639 * include/bits/align.h: Include debug/assertions.h.
640 * include/bits/codecvt.h: Include bits/c++config.h.
641 * include/bits/enable_special_members.h: Likewise.
642 * include/bits/erase_if.h: Likewise.
643 * include/bits/functional_hash.h: Include <type_traits>.
644 * include/bits/invoke.h: Include bits/move.h.
645 * include/bits/ostream_insert.h: Include bits/exception_defines.h.
646 * include/bits/parse_numbers.h: Include <type_traits>.
647 * include/bits/predefined_ops.h: Include bits/c++config.h.
648 * include/bits/range_access.h: Include bits/stl_iterator.h.
649 * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
650 * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
651 * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
652 * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
653 * include/bits/unique_lock.h: Include bits/std_mutex.h.
654 * include/debug/assertions.h: Include bits/c++config.h.
655
6562021-03-10 Jonathan Wakely <jwakely@redhat.com>
657
658 * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
659 (ranges::equal_to, ranges::not_equal_to): Do not constrain
660 with __eq_builtin_ptr_cmp.
661 (ranges::less, ranges::greater, ranges::less_equal)
662 (ranges::greater_equal): Do not constrain with
663 __less_builtin_ptr_cmp.
664 * libsupc++/compare (compare_three_way): Do not constrain with
665 __3way_builtin_ptr_cmp.
666 * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
667 * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
668 * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
669
6702021-03-10 Jonathan Wakely <jwakely@redhat.com>
671
672 * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
673 C++20 calendar types.
674
0ad6a2e2
GA
6752021-03-06 Jakub Jelinek <jakub@redhat.com>
676
677 PR libstdc++/99396
678 * include/std/bit (__rotl, __rotr): Add optimized variants for power of
679 two _Nd which the compiler can pattern match the rotates.
680
67f10d28
GA
6812021-03-04 Jonathan Wakely <jwakely@redhat.com>
682
683 PR libstdc++/99382
684 * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
685 Make storage larger than required. Verify no write to the last
686 element.
687 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
688 Likewise.
689
f3641ac7
GA
6902021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
691
692 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
693 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
694 Likewise.
695 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
696 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
697 Likewise.
698
6992021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
700
701 * include/experimental/bits/simd.h: Replace reserved _X, _B by
702 _Xp, _Bp.
703 * include/experimental/bits/simd_builtin.h: Likewise.
704 * include/experimental/bits/simd_x86.h: Likewise.
705
ec9dc4fa
GA
7062021-02-27 Jonathan Wakely <jwakely@redhat.com>
707
708 PR libstdc++/99301
709 * include/std/chrono (year_month_day::_M_days_since_epoch()):
710 Convert chrono::month and chrono::day to unsigned before
711 converting to uint32_t.
712
daa68844
GA
7132021-02-25 Jonathan Wakely <jwakely@redhat.com>
714
715 * include/std/chrono (year_month_day::_S_from_days): Perform
716 all calculations with type uint32_t.
717
7182021-02-25 Jonathan Wakely <jwakely@redhat.com>
719
720 * doc/xml/manual/abi.xml: Document versioning for GCC 11.
721 * doc/html/manual/abi.html: Regenerate.
722
7232021-02-25 Jonathan Wakely <jwakely@redhat.com>
724
725 PR libstdc++/99270
726 * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
727 FILE instead of FILE.
728
7292021-02-25 Andreas Schwab <schwab@suse.de>
730
731 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
732 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
733 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
734 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
735
7362021-02-25 Jonathan Wakely <jwakely@redhat.com>
737
738 PR libstdc++/99265
739 * include/std/chrono (year_month_day::_S_from_days): Cast long
740 to int explicitly.
741
7422021-02-25 Jonathan Wakely <jwakely@redhat.com>
743
744 * include/std/utility (to_underlying): Define.
745 * include/std/version (__cpp_lib_to_underlying): Define.
746 * testsuite/20_util/to_underlying/1.cc: New test.
747 * testsuite/20_util/to_underlying/version.cc: New test.
748
4028d01a
GA
7492021-02-24 Jonathan Wakely <jwakely@redhat.com>
750
751 PR libstdc++/99261
752 * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
753 before value to be printed.
754
7552021-02-24 Patrick Palka <ppalka@redhat.com>
756
757 * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
758 Relax the condition that guards the printf code path to accept
759 F128_type as well as long double.
760
7612021-02-24 Cassio Neri <cassio.neri@gmail.com>
762
763 * include/std/chrono (year_month_day_last:day): New
764 implementation.
765
7662021-02-24 Cassio Neri <cassio.neri@gmail.com>
767
768 * include/std/chrono (year::is_leap): New implementation.
769 * testsuite/std/time/year/2.cc: New test.
770
7712021-02-24 Cassio Neri <cassio.neri@gmail.com>
772
773 * include/std/chrono (year_month_day::_M_days_since_epoch):
774 New implementation.
775 * testsuite/std/time/year_month_day/4.cc: New test.
776
7772021-02-24 Cassio Neri <cassio.neri@gmail.com>
778
779 * include/std/chrono (year_month_day::_S_from_days): New
780 implementation.
781 * testsuite/std/time/year_month_day/3.cc: New test.
782
7832021-02-24 Patrick Palka <ppalka@redhat.com>
784
785 PR libstdc++/98384
786 * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
787 (test01): Simplify verifying the nearby values by using a
788 2-iteration loop and a dedicated output buffer to check that the
789 nearby values are different. Factor out the printf-based
790 verification into a local function, and check that the leading
791 hex digits agree before comparing to the output of printf. Also
792 verify the output by round-tripping it through from_chars.
793
7942021-02-24 Jonathan Wakely <jwakely@redhat.com>
795
796 PR libstdc++/98389
797 * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
798 symbols for long double arguments mangled as 'g'.
799 * config/os/gnu-linux/ldbl-extra.ver: Likewise.
800 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
801 * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
802 Use -mabi=ibmlongdouble for floating_to_chars.cc.
803 * src/c++17/Makefile.in: Regenerate.
804 * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
805 New type defining type traits of IEEE binary128 format.
806 (floating_type_traits<__float128>): Define specialization.
807 (floating_type_traits<long double>): Define in terms of
808 floating_type_traits_binary128 when appropriate.
809 (floating_to_shortest_scientific): Handle __float128.
810 (sprintf_ld): New function template for printing a long double
811 or __ieee128 value using sprintf.
812 (__floating_to_chars_shortest, __floating_to_chars_precision):
813 Use sprintf_ld.
814 (to_chars): Define overloads for __float128.
815
8162021-02-24 Jonathan Wakely <jwakely@redhat.com>
817
818 * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
819
71e24b06
GA
8202021-02-23 Martin Sebor <msebor@redhat.com>
821
822 PR c++/99074
823 * libsupc++/dyncast.cc (__dynamic_cast): Return null when
824 first argument is null.
825
8262021-02-23 Jakub Jelinek <jakub@redhat.com>
827
828 PR libstdc++/99181
829 * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
830 test.
831
8322021-02-23 Jakub Jelinek <jakub@redhat.com>
833
834 PR libstdc++/99181
835 * include/bits/char_traits.h (char_traits<char>::compare): For
836 constexpr evaluation don't call
837 __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
838 directly.
839
8402021-02-23 Jakub Jelinek <jakub@redhat.com>
841
842 PR libstdc++/97549
843 * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
844
8452021-02-23 Patrick Palka <ppalka@redhat.com>
846
847 PR libstdc++/98384
848 * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
849 the high- and low-order parts from an IBM long double value
850 in an endian-agnostic way.
851
50352c6c
GA
8522021-02-19 Jonathan Wakely <jwakely@redhat.com>
853
854 * include/bits/atomic_wait.h (__thread_relax()): Call
855 __thread_yield() not __gthread_yield().
856
de594739
GA
8572021-02-15 Jonathan Wakely <jwakely@redhat.com>
858
859 * include/bits/atomic_wait.h (__thread_yield()): Check
860 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
861 (__thread_relax()): Use __thread_yield() instead of repeating
862 the preprocessor checks for __gthread_yield.
863
8642021-02-15 Jonathan Wakely <jwakely@redhat.com>
865
866 * include/std/mutex (once_flag::_M_activate()): Add explicit
867 return statement for passive case.
868 (once_flag::_M_finish(bool)): Use reserved name for parameter.
869
c5ae38e8
GA
8702021-02-14 Jonathan Wakely <jwakely@redhat.com>
871
872 PR libstdc++/99096
873 * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
874
fab095da
GA
8752021-02-12 Jonathan Wakely <jwakely@redhat.com>
876
877 PR libstdc++/88881
878 * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
879
8802021-02-12 Jonathan Wakely <jwakely@redhat.com>
881
882 * doc/xml/manual/status_cxx2014.xml: Document implementation
883 specific properties of std::experimental::filesystem::rename.
884 * doc/xml/manual/status_cxx2017.xml: Document implementation
885 specific properties of std::filesystem::rename.
886 * doc/html/*: Regenerate.
887 * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
888 for directories on Windows.
889 * src/filesystem/ops-common.h (__gnu_posix::rename): Use
890 MoveFileExW on Windows.
891 * testsuite/27_io/filesystem/operations/rename.cc: New test.
892 * testsuite/experimental/filesystem/operations/rename.cc: New test.
893
8942021-02-12 Jonathan Wakely <jwakely@redhat.com>
895
896 * testsuite/util/testsuite_fs.h (nonexistent_path): Add
897 random number to the path.
898
8992021-02-12 Jonathan Wakely <jwakely@redhat.com>
900
901 * include/experimental/internet (address_v6::to_string): Include
902 scope ID in string.
903 * testsuite/experimental/net/internet/address/v6/members.cc:
904 Test to_string() results.
905
9062021-02-12 Jonathan Wakely <jwakely@redhat.com>
907
908 * include/experimental/internet (address_v6::any): Avoid using
909 memcpy in constexpr function.
910 (address_v6::loopback): Likewise.
911 (make_address_v6): Fix missing return statements on error paths.
912 * include/experimental/io_context: Avoid -Wdangling-else
913 warning.
914 * testsuite/experimental/net/internet/address/v4/members.cc:
915 Remove unused variables.
916 * testsuite/experimental/net/internet/address/v6/members.cc:
917 New test.
918
9192021-02-12 Jonathan Wakely <jwakely@redhat.com>
920
921 * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
922 Add unused attribute to parameter.
923 * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
924 Likewise.
925
9262021-02-12 Jonathan Wakely <jwakely@redhat.com>
927
928 * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
929 if -fno-rtti is used.
930 * testsuite/30_threads/async/forced_unwind.cc: Expect test
931 to abort if -fno-rtti is used.
932
9332021-02-12 Jonathan Wakely <jwakely@redhat.com>
934
935 * testsuite/util/testsuite_allocator.h (memory_resource):
936 Remove requirement for RTTI and exceptions to be enabled.
937
9382021-02-12 Jonathan Wakely <jwakely@redhat.com>
939
940 * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
941 static_cast when RTTI is disabled.
942 * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
943 Likewise.
944 * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
945 Likewise.
946 * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
947 Likewise.
948 * testsuite/27_io/basic_stringstream/str/char/2.cc:
949 Likewise.
950 * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
951 Likewise.
952
9532021-02-12 Jonathan Wakely <jwakely@redhat.com>
954
955 * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
956 as unused and only use dynamic_cast when RTTI is enabled.
957
9582021-02-12 Jonathan Wakely <jwakely@redhat.com>
959
960 PR libstdc++/99077
961 * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
962 Change int parameter to error_code, to match std::ios_failure.
963 (__throw_ios_failure(const char*, int)): Construct error_code
964 from int parameter.
965
0c5cdb31
GA
9662021-02-11 Jonathan Wakely <jwakely@redhat.com>
967
968 * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
969 new macro.
970 * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
971 macro instead of _GLIBCXX_EH_PTR_COMPAT.
972 (operator==): Likewise.
973
9742021-02-11 Jonathan Wakely <jwakely@redhat.com>
975
976 PR libstdc++/99058
977 * doc/xml/manual/status_cxx2011.xml: Document when support
978 became stable.
979 * doc/xml/manual/status_cxx2014.xml: Likewise.
980 * doc/xml/manual/status_cxx2017.xml: Likewise.
981 * doc/html/manual/status.html: Regenerate.
982
4b37c3ea
GA
9832021-02-10 Jonathan Wakely <jwakely@redhat.com>
984
985 PR libstdc++/88881
986 * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
987
9882021-02-10 Jonathan Wakely <jwakely@redhat.com>
989
990 * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
991 (fs::remove): Use std::system_category() for error codes from
992 GetLastError().
993 * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
994 Likewise.
995
9962021-02-10 Jonathan Wakely <jwakely@redhat.com>
997
998 * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
999 in __MINGW32__ macro name.
1000 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
1001 * testsuite/27_io/filesystem/path/generation/proximate.cc:
1002 Likewise.
1003 * testsuite/27_io/filesystem/path/generation/relative.cc:
1004 Likewise.
1005 * testsuite/util/testsuite_fs.h: Likewise.
1006
0a91b73e
GA
10072021-02-09 François Dumont <fdumont@gcc.gnu.org>
1008
1009 * include/bits/stl_tree.h
1010 (__has_is_transparent, __has_is_transparent_t): Move...
1011 * include/bits/stl_function.h: ...here.
1012 * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
1013 (_Hashtable_base<>::_M_equals_tr): New.
1014 * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
1015 _Hashtable<>::_M_equal_range_tr): New member function templates to perform
1016 heterogeneous lookup.
1017 (_Hashtable<>::_M_find_before_node_tr): New.
1018 (_Hashtable<>::_M_find_node_tr): New.
1019 * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
1020 unordered_map::contains<>, unordered_map::equal_range<>): New member function
1021 templates to perform heterogeneous lookup.
1022 (unordered_multimap::find<>, unordered_multimap::count<>,
1023 unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
1024 * include/bits/unordered_set.h (unordered_set::find<>, unordered_set::count<>,
1025 unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
1026 (unordered_multiset::find<>, unordered_multiset::count<>,
1027 unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
1028 * include/debug/unordered_map
1029 (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
1030 (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
1031 * include/debug/unordered_set
1032 (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
1033 (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
1034 * testsuite/23_containers/unordered_map/operations/1.cc: New test.
1035 * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
1036 * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
1037 * testsuite/23_containers/unordered_set/operations/1.cc: New test.
1038
10392021-02-09 François Dumont <fdumont@gcc.gnu.org>
1040
1041 * include/bits/stl_deque.h
1042 (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
1043 a null pointer test.
1044
10452021-02-09 Jonathan Wakely <jwakely@redhat.com>
1046
1047 * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
1048 test directory after making it writable again.
1049 * testsuite/experimental/filesystem/operations/remove_all.cc:
1050 Likewise.
1051
10522021-02-09 Jonathan Wakely <jwakely@redhat.com>
1053
1054 PR libstdc++/99021
1055 * include/std/coroutine (coroutine_handle<P>::from_address): Add
1056 noexcept.
1057
10582021-02-09 Vladimir Vishnevsky <vv.os.swe@gmail.com>
1059
1060 * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
1061 * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
1062
10632021-02-09 Jakub Jelinek <jakub@redhat.com>
1064
1065 PR middle-end/98465
1066 * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
1067 points to the characters moved by earlier _S_move, compute the source
1068 address using expression based on the __p pointer rather than __s
1069 pointer.
1070
9faaa807
GA
10712021-02-03 Jonathan Wakely <jwakely@redhat.com>
1072
1073 * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
1074 Add comparison with same category and different values.
1075 * testsuite/19_diagnostics/error_code/operators/less.cc:
1076 Likewise. Fix comparison involving different categories.
1077 * testsuite/19_diagnostics/error_code/operators/three_way.cc:
1078 Likewise.
1079 * testsuite/19_diagnostics/error_condition/operators/less.cc:
1080 Add comment.
1081 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
1082 Likewise.
1083
10842021-02-03 yaozhongxiao <yaozhongxiao@linux.alibaba.com>
1085
1086 * include/experimental/bits/simd_neon.h: Replace repeated vpadd
1087 calls with a single vaddv for aarch64.
1088
10892021-02-03 Matthias Kretz <kretz@kde.org>
1090
1091 * testsuite/Makefile.am: Warn about the workaround. Add
1092 -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
1093 Improve initial user feedback from make check-simd.
1094 * testsuite/Makefile.in: Regenerated.
1095
10962021-02-03 Matthias Kretz <kretz@kde.org>
1097
1098 * include/experimental/bits/simd.h: Add __detail::_Minimum and
1099 __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
1100 Add hmin and hmax overloads for simd and const_where_expression.
1101 * include/experimental/bits/simd_scalar.h
1102 (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
1103 parameter const-ref to allow calling _S_reduce with an rvalue.
1104 * testsuite/experimental/simd/tests/reductions.cc: Add tests for
1105 hmin and hmax. Since the compiler statically determined that all
1106 tests pass, repeat the test after a call to make_value_unknown.
1107
11082021-02-03 Matthias Kretz <kretz@kde.org>
1109
1110 * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
1111 instruction pointer data member. Ensure that the `if (m_failed)`
1112 branch is always inlined into the calling code. The body of the
1113 conditional can still be a function call. Move the get_ip call
1114 into the verify ctor to simplify the ctor calls.
1115 (COMPARE): Don't mention the use of all_of for reduction of a
1116 simd_mask. It only distracts from the real issue.
1117
11182021-02-03 Matthias Kretz <kretz@kde.org>
1119
1120 * testsuite/experimental/simd/driver.sh: Abstract reading test
1121 options into read_src_option function. Read skip, only,
1122 expensive, and xfail via read_src_option. Add timeout and
1123 timeout-factor options and adjust timeout variable accordingly.
1124 * testsuite/experimental/simd/tests/loadstore.cc: Set
1125 timeout-factor 2.
1126
11272021-02-03 Matthias Kretz <kretz@kde.org>
1128
1129 * testsuite/experimental/simd/driver.sh: When handling the pipe
1130 to log (and on verbose to stdout) count the lines. If it exceeds
1131 1000 log the issue and exit 125, which is then handled as a
1132 failure.
1133
11342021-02-03 Matthias Kretz <kretz@kde.org>
1135
1136 * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
1137 markup for long double on powerpc64*.
1138
11392021-02-03 Matthias Kretz <kretz@kde.org>
1140
1141 * include/experimental/bits/simd.h: Add __have_power10vec
1142 conditional on _ARCH_PWR10.
1143 * include/experimental/bits/simd_builtin.h: Forward declare
1144 _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
1145 defined.
1146 (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
1147 _SuperImpl for optimizations and correctness.
1148 * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
1149 (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
1150 Otherwise, for >=int use -vec_sums divided by a sizeof factor.
1151 For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
1152
11532021-02-03 Matthias Kretz <kretz@kde.org>
1154
1155 * testsuite/experimental/simd/driver.sh: Remove executable on
1156 SIGINT. Process compiler and test executable output: In verbose
1157 mode print messages immediately, limited to 1000 lines and
1158 breaking long lines to below $COLUMNS (or 1024 if not set).
1159 Communicating the exit status of the compiler / test with the
1160 necessary pipe is done via a message through stdout/-in.
1161
11622021-02-03 Matthias Kretz <kretz@kde.org>
1163
1164 * testsuite/Makefile.am: Ensure .simd.summary is empty before
1165 collecting a new summary.
1166 * testsuite/Makefile.in: Regenerate.
1167
11682021-02-03 Matthias Kretz <kretz@kde.org>
1169
1170 * testsuite/experimental/simd/generate_makefile.sh: Use
1171 different variables internally than documented for user
1172 overrides. This makes internal append/prepend work as intended.
1173
11742021-02-03 Matthias Kretz <kretz@kde.org>
1175
1176 * testsuite/experimental/simd/driver.sh (verify_test): Print
1177 test output on run xfail. Do not repeat lines from the log that
1178 were already printed on stdout.
1179 (test_selector): Make the compiler flags pattern usable as a
1180 substring selector.
1181 (toplevel): Trap on SIGINT and remove the log and sum files.
1182 Call timout with --foreground to quickly terminate on SIGINT.
1183 * testsuite/experimental/simd/generate_makefile.sh: Simplify run
1184 targets via target patterns. Default DRIVEROPTS to -v for run
1185 targets. Remove log and sum files after completion of the run
1186 target (so that it's always recompiled).
1187 Place help text into text file for reasonable 'make help'
1188 performance.
1189
11902021-02-03 Matthias Kretz <kretz@kde.org>
1191
1192 * include/experimental/bits/simd.h: Remove unnecessary static
1193 assertion. Allow sizeof(8) integer __intrinsic_type to enable
1194 the necessary mask type.
1195
11962021-02-03 Matthias Kretz <kretz@kde.org>
1197
1198 * include/experimental/bits/simd.h: Let __intrinsic_type<long
1199 double, N> be valid if sizeof(long double) == sizeof(double) and
1200 use a __vector double as member type.
1201
12022021-02-03 Matthias Kretz <kretz@kde.org>
1203
1204 * include/experimental/bits/simd.h (__is_intrinsic_type): New
1205 internal type trait. Alias for __is_vector_type on x86.
1206 (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
1207 __vector_type.
1208 (__intrin_bitcast): Allow casting to & from vector & intrinsic
1209 types.
1210 (__intrinsic_type): Explicitly specialize for NEON intrinsic
1211 vector types.
1212
12132021-02-03 Matthias Kretz <kretz@kde.org>
1214
1215 * testsuite/experimental/simd/driver.sh: Implement skip, only,
1216 expensive, and xfail markers. They can select on type, ABI tag
1217 subset number, target-triplet, and compiler flags.
1218 * testsuite/experimental/simd/generate_makefile.sh: The summary
1219 now includes lines for unexpected passes and expected failures.
1220 If the skip or only markers are only conditional on the type, do
1221 not generate rules for those types.
1222 * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
1223 for ABI tag subsets 1-9.
1224 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
1225 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
1226 * testsuite/experimental/simd/tests/casts.cc: Ditto.
1227 * testsuite/experimental/simd/tests/generator.cc: Ditto.
1228 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
1229 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
1230 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
1231 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
1232 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
1233 * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
1234 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
1235 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
1236 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
1237 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
1238 * testsuite/experimental/simd/tests/operators.cc: Ditto.
1239 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
1240 * testsuite/experimental/simd/tests/simd.cc: Ditto.
1241 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
1242 * testsuite/experimental/simd/tests/splits.cc: Ditto.
1243 * testsuite/experimental/simd/tests/where.cc: Ditto.
1244 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
1245 addition replace "test only floattypes" marker by unconditional
1246 "float|double|ldouble" only marker.
1247 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
1248 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
1249 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
1250 Ditto.
1251 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
1252 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
1253 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
1254 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
1255 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
1256 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
1257 * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
1258 addition, xfail on run because the reference data is missing.
1259
548b75d8
GA
12602021-02-02 Jonathan Wakely <jwakely@redhat.com>
1261
1262 * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
1263 * doc/xml/manual/status_cxx2014.xml: Likewise.
1264 * doc/xml/manual/status_cxx2017.xml: Likewise.
1265 * doc/html/manual/status.html: Regenerate.
1266
f7884fb1
GA
12672021-02-01 François Dumont <fdumont@gcc.gnu.org>
1268
1269 PR libstdc++/70303
1270 * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
1271 Return 0 if both iterators are value-initialized.
1272 * testsuite/23_containers/deque/70303.cc: New test.
1273 * testsuite/23_containers/vector/70303.cc: New test.
1274
12752021-02-01 Jonathan Wakely <jwakely@redhat.com>
1276
1277 * doc/xml/manual/status_cxx2011.xml: Update std::call_once
1278 status.
1279 * doc/xml/manual/status_cxx2014.xml: Likewise.
1280 * doc/xml/manual/status_cxx2017.xml: Likewise. Update
1281 std::from_chars and std::to_chars status. Fix formatting.
1282 * doc/html/manual/status.html: Regenerate.
1283
85d04a2e
GA
12842021-01-28 Jonathan Wakely <jwakely@redhat.com>
1285
1286 * include/experimental/bits/numeric_traits.h: Update copyright
1287 dates.
1288 * include/experimental/bits/simd.h: Likewise.
1289 * include/experimental/bits/simd_builtin.h: Likewise.
1290 * include/experimental/bits/simd_converter.h: Likewise.
1291 * include/experimental/bits/simd_detail.h: Likewise.
1292 * include/experimental/bits/simd_fixed_size.h: Likewise.
1293 * include/experimental/bits/simd_math.h: Likewise.
1294 * include/experimental/bits/simd_neon.h: Likewise.
1295 * include/experimental/bits/simd_ppc.h: Likewise.
1296 * include/experimental/bits/simd_scalar.h: Likewise.
1297 * include/experimental/bits/simd_x86.h: Likewise.
1298 * include/experimental/bits/simd_x86_conversions.h: Likewise.
1299 * include/experimental/simd: Likewise.
1300 * testsuite/experimental/simd/*: Likewise.
1301
aa69f0a8
GA
13022021-01-27 Jonathan Wakely <jwakely@redhat.com>
1303
1304 * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
1305 * doc/html/*: Regenerate.
1306
13072021-01-27 Jonathan Wakely <jwakely@redhat.com>
1308
1309 * testsuite/experimental/simd/generate_makefile.sh: Use printf
1310 instead of echo when printing escape characters.
1311
13122021-01-27 Matthias Kretz <kretz@kde.org>
1313
1314 * scripts/check_simd: New file. This script is called from the
1315 the check-simd target. It determines a set of compiler flags and
1316 simulator setups for calling generate_makefile.sh and passes the
1317 information back to the check-simd target, which recurses to the
1318 generated Makefiles.
1319 * scripts/create_testsuite_files: Remove files below simd/tests/
1320 from testsuite_files and place them in testsuite_files_simd.
1321 * testsuite/Makefile.am: Add testsuite_files_simd. Add
1322 check-simd target.
1323 * testsuite/Makefile.in: Regenerate.
1324 * testsuite/experimental/simd/driver.sh: New file. This script
1325 compiles and runs a given simd test, logging its output and
1326 status. It uses the timeout command to implement compile and
1327 test timeouts.
1328 * testsuite/experimental/simd/generate_makefile.sh: New file.
1329 This script generates a Makefile which uses driver.sh to compile
1330 and run the tests and collect the logs into a single log file.
1331 * testsuite/experimental/simd/tests/abs.cc: New file. Tests
1332 abs(simd).
1333 * testsuite/experimental/simd/tests/algorithms.cc: New file.
1334 Tests min/max(simd, simd).
1335 * testsuite/experimental/simd/tests/bits/conversions.h: New
1336 file. Contains functions to support tests involving conversions.
1337 * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
1338 Support functions make_mask and make_vec.
1339 * testsuite/experimental/simd/tests/bits/mathreference.h: New
1340 file. Support functions to supply precomputed math function
1341 reference data.
1342 * testsuite/experimental/simd/tests/bits/metahelpers.h: New
1343 file. Support code for SFINAE testing.
1344 * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
1345 * testsuite/experimental/simd/tests/bits/test_values.h: New
1346 file. Test functions to easily drive a test with simd objects
1347 initialized from a given list of values and a range of random
1348 values.
1349 * testsuite/experimental/simd/tests/bits/ulp.h: New file.
1350 Support code to determine the ULP distance of simd objects.
1351 * testsuite/experimental/simd/tests/bits/verify.h: New file.
1352 Test framework for COMPARE'ing simd objects and instantiating
1353 the test templates with value_type and ABI tag.
1354 * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
1355 simd broadcasts.
1356 * testsuite/experimental/simd/tests/casts.cc: New file. Test
1357 simd casts.
1358 * testsuite/experimental/simd/tests/fpclassify.cc: New file.
1359 Test floating-point classification functions.
1360 * testsuite/experimental/simd/tests/frexp.cc: New file. Test
1361 frexp(simd).
1362 * testsuite/experimental/simd/tests/generator.cc: New file. Test
1363 simd generator constructor.
1364 * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
1365 Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
1366 * testsuite/experimental/simd/tests/integer_operators.cc: New
1367 file. Test integer operators.
1368 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
1369 New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
1370 modf(simd).
1371 * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
1372 (converting) simd loads and stores.
1373 * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
1374 log*(simd).
1375 * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
1376 Test simd_mask broadcasts.
1377 * testsuite/experimental/simd/tests/mask_conversions.cc: New
1378 file. Test simd_mask conversions.
1379 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
1380 file. Test simd_mask implicit conversions.
1381 * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
1382 Test simd_mask loads and stores.
1383 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
1384 file. Test simd_mask operators convert as specified.
1385 * testsuite/experimental/simd/tests/mask_operators.cc: New file.
1386 Test simd_mask compares, subscripts, and negation.
1387 * testsuite/experimental/simd/tests/mask_reductions.cc: New
1388 file. Test simd_mask reductions.
1389 * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
1390 1-arg math functions on simd.
1391 * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
1392 2-arg math functions on simd.
1393 * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
1394 Test implicit conversions on simd binary operators behave as
1395 specified.
1396 * testsuite/experimental/simd/tests/operators.cc: New file. Test
1397 simd compares, subscripts, not, unary minus, plus, minus,
1398 multiplies, divides, increment, and decrement.
1399 * testsuite/experimental/simd/tests/reductions.cc: New file.
1400 Test reduce(simd).
1401 * testsuite/experimental/simd/tests/remqo.cc: New file. Test
1402 remqo(simd).
1403 * testsuite/experimental/simd/tests/simd.cc: New file. Basic
1404 sanity checks of simd types.
1405 * testsuite/experimental/simd/tests/sincos.cc: New file. Test
1406 sin(simd) and cos(simd).
1407 * testsuite/experimental/simd/tests/split_concat.cc: New file.
1408 Test split(simd) and concat(simd, simd).
1409 * testsuite/experimental/simd/tests/splits.cc: New file. Test
1410 split(simd_mask).
1411 * testsuite/experimental/simd/tests/trigonometric.cc: New file.
1412 Test remaining trigonometric functions on simd.
1413 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
1414 file. Test trunc(simd), ceil(simd), and floor(simd).
1415 * testsuite/experimental/simd/tests/where.cc: New file. Test
1416 masked operations using where.
1417
14182021-01-27 Matthias Kretz <kretz@kde.org>
1419
1420 * doc/xml/manual/status_cxx2017.xml: Add implementation status
1421 of the Parallelism TS 2. Document implementation-defined types
1422 and behavior.
1423 * include/Makefile.am: Add new headers.
1424 * include/Makefile.in: Regenerate.
1425 * include/experimental/simd: New file. New header for
1426 Parallelism TS 2.
1427 * include/experimental/bits/numeric_traits.h: New file.
1428 Implementation of P1841R1 using internal naming. Addition of
1429 missing IEC559 functionality query.
1430 * include/experimental/bits/simd.h: New file. Definition of the
1431 public simd interfaces and general implementation helpers.
1432 * include/experimental/bits/simd_builtin.h: New file.
1433 Implementation of the _VecBuiltin simd_abi.
1434 * include/experimental/bits/simd_converter.h: New file. Generic
1435 simd conversions.
1436 * include/experimental/bits/simd_detail.h: New file. Internal
1437 macros for the simd implementation.
1438 * include/experimental/bits/simd_fixed_size.h: New file. Simd
1439 fixed_size ABI specific implementations.
1440 * include/experimental/bits/simd_math.h: New file. Math
1441 overloads for simd.
1442 * include/experimental/bits/simd_neon.h: New file. Simd NEON
1443 specific implementations.
1444 * include/experimental/bits/simd_ppc.h: New file. Implement bit
1445 shifts to avoid invalid results for integral types smaller than
1446 int.
1447 * include/experimental/bits/simd_scalar.h: New file. Simd scalar
1448 ABI specific implementations.
1449 * include/experimental/bits/simd_x86.h: New file. Simd x86
1450 specific implementations.
1451 * include/experimental/bits/simd_x86_conversions.h: New file.
1452 x86 specific conversion optimizations. The conversion patterns
1453 work around missing conversion patterns in the compiler and
1454 should be removed as soon as PR85048 is resolved.
1455 * testsuite/experimental/simd/standard_abi_usable.cc: New file.
1456 Test that all (not all fixed_size<N>, though) standard simd and
1457 simd_mask types are usable.
1458 * testsuite/experimental/simd/standard_abi_usable_2.cc: New
1459 file. As above but with -ffast-math.
1460 * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
1461 from the standard test loop. Instead use
1462 check_vect_support_and_set_flags to build simd tests with the
1463 relevant machine flags.
1464
14652021-01-27 Jonathan Wakely <jwakely@redhat.com>
1466
1467 PR libstdc++/66414
1468 * include/bits/string_view.tcc
1469 (basic_string_view::find(const CharT*, size_type, size_type)):
1470 Optimize.
1471
14722021-01-27 Paul Fee <paul.f.fee@gmail.com>
1473
1474 * include/bits/basic_string.h (basic_string::contains): New
1475 member functions.
1476 * include/std/string_view (basic_string_view::contains):
1477 Likewise.
1478 * include/std/version (__cpp_lib_string_contains): Define.
1479 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
1480 Remove trailing whitespace.
1481 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
1482 Likewise.
1483 * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
1484 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
1485 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
1486 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
1487 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
1488
7559d465
GA
14892021-01-21 Jonathan Wakely <jwakely@redhat.com>
1490
1491 * src/c++17/Makefile.in: Regenerate.
1492
b93d0e36
GA
14932021-01-20 David Edelsohn <dje.gcc@gmail.com>
1494
1495 * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
1496 _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
1497 __lc_type.
1498 (const char* ctype<char>:: is): Same.
1499
ef1f8ee6
GA
15002021-01-18 Jonathan Wakely <jwakely@redhat.com>
1501
1502 PR libstdc++/98725
1503 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Do not try to
1504 write to a wide character stream if wide character support is
1505 disabled in the library.
1506
15072021-01-18 Jonathan Wakely <jwakely@redhat.com>
1508
1509 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
1510 stringbuf not wstringbuf.
1511
15122021-01-18 Jakub Jelinek <jakub@redhat.com>
1513
1514 PR debug/98708
1515 * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
1516 Compile with -gno-as-loc-support.
1517 * src/c++11/Makefile.in: Regenerated.
1518
59cf67d1
GA
15192021-01-16 H.J. Lu <hjl.tools@gmail.com>
1520
1521 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
1522 Add -fcf-protection=none to -march=i486.
1523
5fff80fd
GA
15242021-01-14 François Dumont <fdumont@gcc.gnu.org>
1525
1526 * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
1527 compliant.
1528
15292021-01-14 Alexandre Oliva <oliva@adacore.com>
1530
1531 * testsuite/30_threads/future/members/poll.cc: Calibrate
1532 iteration count.
1533
15342021-01-14 François Dumont <fdumont@gcc.gnu.org>
1535
1536 PR libstdc++/98466
1537 * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
1538 (_Node_iterator()): Make default.
1539 (_Node_const_iterator()): Make default.
1540 * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
1541 iterator checks.
1542 * include/debug/safe_iterator.h
1543 (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
1544 * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
1545 Likewise.
1546 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
1547 _M_singular checks on input iterators.
1548 * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
1549 checks.
1550 * testsuite/23_containers/deque/debug/98466.cc: New test.
1551 * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
1552
15532021-01-14 Jonathan Wakely <jwakely@redhat.com>
1554
1555 PR libstdc++/98471
1556 * include/bits/fs_path.h (__throw_conversion_error): New
1557 function to throw or abort on character conversion errors.
1558 (__wstr_from_utf8): Move definition after filesystem_error has
1559 been defined. Use __throw_conversion_error.
1560 (path::_S_convert<_EcharT>): Use __throw_conversion_error.
1561 (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
1562 (path::u8string): Likewise.
1563
15642021-01-14 Jonathan Wakely <jwakely@redhat.com>
1565
1566 * include/std/barrier: Update copyright years. Fix whitespace.
1567 * include/std/version: Fix whitespace.
1568 * testsuite/30_threads/barrier/1.cc: Update copyright years.
1569 * testsuite/30_threads/barrier/2.cc: Likewise.
1570 * testsuite/30_threads/barrier/arrive.cc: Likewise.
1571 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
1572 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
1573 * testsuite/30_threads/barrier/completion.cc: Likewise.
1574
be0851b8
GA
15752021-01-13 Jonathan Wakely <jwakely@redhat.com>
1576
1577 * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
1578
366f86bd
GA
15792021-01-10 David Edelsohn <dje.gcc@gmail.com>
1580
1581 PR libstdc++/98613
1582 * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
1583 warning.
1584 * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
1585
bf5cbb9e
GA
15862021-01-08 Olivier Hainque <hainque@adacore.com>
1587
1588 * testsuite/20_util/bind/ref_neg.cc: Tweak the
1589 dg-prune-output regex for out-of-build-tree contexts.
1590
7d187e4f
GA
15912021-01-07 Thomas Rodgers <trodgers@redhat.com>
1592
1593 * doc/doxygen/user.cfg.in: Add new header.
1594 * include/Makefile.am (std_headers): likewise.
1595 * include/Makefile.in: Regenerate.
1596 * include/precompiled/stdc++.h: Add new header.
1597 * include/std/barrier: New file.
1598 * include/std/version: Add __cpp_lib_barrier feature test macro.
1599 * testsuite/30_threads/barrier/1.cc: New test.
1600 * testsuite/30_threads/barrier/2.cc: Likewise.
1601 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
1602 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
1603 * testsuite/30_threads/barrier/arrive.cc: Likewise.
1604 * testsuite/30_threads/barrier/completion.cc: Likewise.
1605
16062021-01-07 Patrick Palka <ppalka@redhat.com>
1607
1608 PR libstdc++/98384
1609 * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
1610 instead of the non-standard nextupl and nextdownl.
1611
651b8a50
GA
16122021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
1613
1614 * configure: Re-generate.
1615
16162021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net>
1617
1618 * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
1619
b6dd195a
GA
16202021-01-01 Jakub Jelinek <jakub@redhat.com>
1621
1622 * ChangeLog-2020: Rotate ChangeLog. New file.
1623
b4df5e92 1624\f
618e665a 1625Copyright (C) 2021 Free Software Foundation, Inc.
b4df5e92
JW
1626
1627Copying and distribution of this file, with or without modification,
1628are permitted in any medium without royalty provided the copyright
1629notice and this notice are preserved.
This page took 1.69238 seconds and 5 git commands to generate.