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