]> git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/ChangeLog
Daily bump.
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
1 2021-03-04 Jonathan Wakely <jwakely@redhat.com>
2
3 PR libstdc++/99382
4 * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
5 Make storage larger than required. Verify no write to the last
6 element.
7 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
8 Likewise.
9
10 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11
12 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
13 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
14 Likewise.
15 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
16 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
17 Likewise.
18
19 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20
21 * include/experimental/bits/simd.h: Replace reserved _X, _B by
22 _Xp, _Bp.
23 * include/experimental/bits/simd_builtin.h: Likewise.
24 * include/experimental/bits/simd_x86.h: Likewise.
25
26 2021-02-27 Jonathan Wakely <jwakely@redhat.com>
27
28 PR libstdc++/99301
29 * include/std/chrono (year_month_day::_M_days_since_epoch()):
30 Convert chrono::month and chrono::day to unsigned before
31 converting to uint32_t.
32
33 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
34
35 * include/std/chrono (year_month_day::_S_from_days): Perform
36 all calculations with type uint32_t.
37
38 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
39
40 * doc/xml/manual/abi.xml: Document versioning for GCC 11.
41 * doc/html/manual/abi.html: Regenerate.
42
43 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
44
45 PR libstdc++/99270
46 * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
47 FILE instead of FILE.
48
49 2021-02-25 Andreas Schwab <schwab@suse.de>
50
51 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
52 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
53 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
54 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
55
56 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
57
58 PR libstdc++/99265
59 * include/std/chrono (year_month_day::_S_from_days): Cast long
60 to int explicitly.
61
62 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
63
64 * include/std/utility (to_underlying): Define.
65 * include/std/version (__cpp_lib_to_underlying): Define.
66 * testsuite/20_util/to_underlying/1.cc: New test.
67 * testsuite/20_util/to_underlying/version.cc: New test.
68
69 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
70
71 PR libstdc++/99261
72 * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
73 before value to be printed.
74
75 2021-02-24 Patrick Palka <ppalka@redhat.com>
76
77 * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
78 Relax the condition that guards the printf code path to accept
79 F128_type as well as long double.
80
81 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
82
83 * include/std/chrono (year_month_day_last:day): New
84 implementation.
85
86 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
87
88 * include/std/chrono (year::is_leap): New implementation.
89 * testsuite/std/time/year/2.cc: New test.
90
91 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
92
93 * include/std/chrono (year_month_day::_M_days_since_epoch):
94 New implementation.
95 * testsuite/std/time/year_month_day/4.cc: New test.
96
97 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
98
99 * include/std/chrono (year_month_day::_S_from_days): New
100 implementation.
101 * testsuite/std/time/year_month_day/3.cc: New test.
102
103 2021-02-24 Patrick Palka <ppalka@redhat.com>
104
105 PR libstdc++/98384
106 * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
107 (test01): Simplify verifying the nearby values by using a
108 2-iteration loop and a dedicated output buffer to check that the
109 nearby values are different. Factor out the printf-based
110 verification into a local function, and check that the leading
111 hex digits agree before comparing to the output of printf. Also
112 verify the output by round-tripping it through from_chars.
113
114 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
115
116 PR libstdc++/98389
117 * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
118 symbols for long double arguments mangled as 'g'.
119 * config/os/gnu-linux/ldbl-extra.ver: Likewise.
120 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
121 * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
122 Use -mabi=ibmlongdouble for floating_to_chars.cc.
123 * src/c++17/Makefile.in: Regenerate.
124 * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
125 New type defining type traits of IEEE binary128 format.
126 (floating_type_traits<__float128>): Define specialization.
127 (floating_type_traits<long double>): Define in terms of
128 floating_type_traits_binary128 when appropriate.
129 (floating_to_shortest_scientific): Handle __float128.
130 (sprintf_ld): New function template for printing a long double
131 or __ieee128 value using sprintf.
132 (__floating_to_chars_shortest, __floating_to_chars_precision):
133 Use sprintf_ld.
134 (to_chars): Define overloads for __float128.
135
136 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
137
138 * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
139
140 2021-02-23 Martin Sebor <msebor@redhat.com>
141
142 PR c++/99074
143 * libsupc++/dyncast.cc (__dynamic_cast): Return null when
144 first argument is null.
145
146 2021-02-23 Jakub Jelinek <jakub@redhat.com>
147
148 PR libstdc++/99181
149 * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
150 test.
151
152 2021-02-23 Jakub Jelinek <jakub@redhat.com>
153
154 PR libstdc++/99181
155 * include/bits/char_traits.h (char_traits<char>::compare): For
156 constexpr evaluation don't call
157 __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
158 directly.
159
160 2021-02-23 Jakub Jelinek <jakub@redhat.com>
161
162 PR libstdc++/97549
163 * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
164
165 2021-02-23 Patrick Palka <ppalka@redhat.com>
166
167 PR libstdc++/98384
168 * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
169 the high- and low-order parts from an IBM long double value
170 in an endian-agnostic way.
171
172 2021-02-19 Jonathan Wakely <jwakely@redhat.com>
173
174 * include/bits/atomic_wait.h (__thread_relax()): Call
175 __thread_yield() not __gthread_yield().
176
177 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
178
179 * include/bits/atomic_wait.h (__thread_yield()): Check
180 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
181 (__thread_relax()): Use __thread_yield() instead of repeating
182 the preprocessor checks for __gthread_yield.
183
184 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
185
186 * include/std/mutex (once_flag::_M_activate()): Add explicit
187 return statement for passive case.
188 (once_flag::_M_finish(bool)): Use reserved name for parameter.
189
190 2021-02-14 Jonathan Wakely <jwakely@redhat.com>
191
192 PR libstdc++/99096
193 * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
194
195 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
196
197 PR libstdc++/88881
198 * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
199
200 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
201
202 * doc/xml/manual/status_cxx2014.xml: Document implementation
203 specific properties of std::experimental::filesystem::rename.
204 * doc/xml/manual/status_cxx2017.xml: Document implementation
205 specific properties of std::filesystem::rename.
206 * doc/html/*: Regenerate.
207 * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
208 for directories on Windows.
209 * src/filesystem/ops-common.h (__gnu_posix::rename): Use
210 MoveFileExW on Windows.
211 * testsuite/27_io/filesystem/operations/rename.cc: New test.
212 * testsuite/experimental/filesystem/operations/rename.cc: New test.
213
214 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
215
216 * testsuite/util/testsuite_fs.h (nonexistent_path): Add
217 random number to the path.
218
219 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
220
221 * include/experimental/internet (address_v6::to_string): Include
222 scope ID in string.
223 * testsuite/experimental/net/internet/address/v6/members.cc:
224 Test to_string() results.
225
226 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
227
228 * include/experimental/internet (address_v6::any): Avoid using
229 memcpy in constexpr function.
230 (address_v6::loopback): Likewise.
231 (make_address_v6): Fix missing return statements on error paths.
232 * include/experimental/io_context: Avoid -Wdangling-else
233 warning.
234 * testsuite/experimental/net/internet/address/v4/members.cc:
235 Remove unused variables.
236 * testsuite/experimental/net/internet/address/v6/members.cc:
237 New test.
238
239 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
240
241 * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
242 Add unused attribute to parameter.
243 * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
244 Likewise.
245
246 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
247
248 * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
249 if -fno-rtti is used.
250 * testsuite/30_threads/async/forced_unwind.cc: Expect test
251 to abort if -fno-rtti is used.
252
253 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
254
255 * testsuite/util/testsuite_allocator.h (memory_resource):
256 Remove requirement for RTTI and exceptions to be enabled.
257
258 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
259
260 * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
261 static_cast when RTTI is disabled.
262 * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
263 Likewise.
264 * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
265 Likewise.
266 * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
267 Likewise.
268 * testsuite/27_io/basic_stringstream/str/char/2.cc:
269 Likewise.
270 * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
271 Likewise.
272
273 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
274
275 * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
276 as unused and only use dynamic_cast when RTTI is enabled.
277
278 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
279
280 PR libstdc++/99077
281 * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
282 Change int parameter to error_code, to match std::ios_failure.
283 (__throw_ios_failure(const char*, int)): Construct error_code
284 from int parameter.
285
286 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
287
288 * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
289 new macro.
290 * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
291 macro instead of _GLIBCXX_EH_PTR_COMPAT.
292 (operator==): Likewise.
293
294 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
295
296 PR libstdc++/99058
297 * doc/xml/manual/status_cxx2011.xml: Document when support
298 became stable.
299 * doc/xml/manual/status_cxx2014.xml: Likewise.
300 * doc/xml/manual/status_cxx2017.xml: Likewise.
301 * doc/html/manual/status.html: Regenerate.
302
303 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
304
305 PR libstdc++/88881
306 * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
307
308 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
309
310 * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
311 (fs::remove): Use std::system_category() for error codes from
312 GetLastError().
313 * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
314 Likewise.
315
316 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
317
318 * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
319 in __MINGW32__ macro name.
320 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
321 * testsuite/27_io/filesystem/path/generation/proximate.cc:
322 Likewise.
323 * testsuite/27_io/filesystem/path/generation/relative.cc:
324 Likewise.
325 * testsuite/util/testsuite_fs.h: Likewise.
326
327 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
328
329 * include/bits/stl_tree.h
330 (__has_is_transparent, __has_is_transparent_t): Move...
331 * include/bits/stl_function.h: ...here.
332 * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
333 (_Hashtable_base<>::_M_equals_tr): New.
334 * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
335 _Hashtable<>::_M_equal_range_tr): New member function templates to perform
336 heterogeneous lookup.
337 (_Hashtable<>::_M_find_before_node_tr): New.
338 (_Hashtable<>::_M_find_node_tr): New.
339 * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
340 unordered_map::contains<>, unordered_map::equal_range<>): New member function
341 templates to perform heterogeneous lookup.
342 (unordered_multimap::find<>, unordered_multimap::count<>,
343 unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
344 * include/bits/unordered_set.h (unordered_set::find<>, unordered_set::count<>,
345 unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
346 (unordered_multiset::find<>, unordered_multiset::count<>,
347 unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
348 * include/debug/unordered_map
349 (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
350 (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
351 * include/debug/unordered_set
352 (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
353 (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
354 * testsuite/23_containers/unordered_map/operations/1.cc: New test.
355 * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
356 * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
357 * testsuite/23_containers/unordered_set/operations/1.cc: New test.
358
359 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
360
361 * include/bits/stl_deque.h
362 (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
363 a null pointer test.
364
365 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
366
367 * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
368 test directory after making it writable again.
369 * testsuite/experimental/filesystem/operations/remove_all.cc:
370 Likewise.
371
372 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
373
374 PR libstdc++/99021
375 * include/std/coroutine (coroutine_handle<P>::from_address): Add
376 noexcept.
377
378 2021-02-09 Vladimir Vishnevsky <vv.os.swe@gmail.com>
379
380 * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
381 * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
382
383 2021-02-09 Jakub Jelinek <jakub@redhat.com>
384
385 PR middle-end/98465
386 * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
387 points to the characters moved by earlier _S_move, compute the source
388 address using expression based on the __p pointer rather than __s
389 pointer.
390
391 2021-02-03 Jonathan Wakely <jwakely@redhat.com>
392
393 * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
394 Add comparison with same category and different values.
395 * testsuite/19_diagnostics/error_code/operators/less.cc:
396 Likewise. Fix comparison involving different categories.
397 * testsuite/19_diagnostics/error_code/operators/three_way.cc:
398 Likewise.
399 * testsuite/19_diagnostics/error_condition/operators/less.cc:
400 Add comment.
401 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
402 Likewise.
403
404 2021-02-03 yaozhongxiao <yaozhongxiao@linux.alibaba.com>
405
406 * include/experimental/bits/simd_neon.h: Replace repeated vpadd
407 calls with a single vaddv for aarch64.
408
409 2021-02-03 Matthias Kretz <kretz@kde.org>
410
411 * testsuite/Makefile.am: Warn about the workaround. Add
412 -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
413 Improve initial user feedback from make check-simd.
414 * testsuite/Makefile.in: Regenerated.
415
416 2021-02-03 Matthias Kretz <kretz@kde.org>
417
418 * include/experimental/bits/simd.h: Add __detail::_Minimum and
419 __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
420 Add hmin and hmax overloads for simd and const_where_expression.
421 * include/experimental/bits/simd_scalar.h
422 (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
423 parameter const-ref to allow calling _S_reduce with an rvalue.
424 * testsuite/experimental/simd/tests/reductions.cc: Add tests for
425 hmin and hmax. Since the compiler statically determined that all
426 tests pass, repeat the test after a call to make_value_unknown.
427
428 2021-02-03 Matthias Kretz <kretz@kde.org>
429
430 * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
431 instruction pointer data member. Ensure that the `if (m_failed)`
432 branch is always inlined into the calling code. The body of the
433 conditional can still be a function call. Move the get_ip call
434 into the verify ctor to simplify the ctor calls.
435 (COMPARE): Don't mention the use of all_of for reduction of a
436 simd_mask. It only distracts from the real issue.
437
438 2021-02-03 Matthias Kretz <kretz@kde.org>
439
440 * testsuite/experimental/simd/driver.sh: Abstract reading test
441 options into read_src_option function. Read skip, only,
442 expensive, and xfail via read_src_option. Add timeout and
443 timeout-factor options and adjust timeout variable accordingly.
444 * testsuite/experimental/simd/tests/loadstore.cc: Set
445 timeout-factor 2.
446
447 2021-02-03 Matthias Kretz <kretz@kde.org>
448
449 * testsuite/experimental/simd/driver.sh: When handling the pipe
450 to log (and on verbose to stdout) count the lines. If it exceeds
451 1000 log the issue and exit 125, which is then handled as a
452 failure.
453
454 2021-02-03 Matthias Kretz <kretz@kde.org>
455
456 * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
457 markup for long double on powerpc64*.
458
459 2021-02-03 Matthias Kretz <kretz@kde.org>
460
461 * include/experimental/bits/simd.h: Add __have_power10vec
462 conditional on _ARCH_PWR10.
463 * include/experimental/bits/simd_builtin.h: Forward declare
464 _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
465 defined.
466 (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
467 _SuperImpl for optimizations and correctness.
468 * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
469 (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
470 Otherwise, for >=int use -vec_sums divided by a sizeof factor.
471 For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
472
473 2021-02-03 Matthias Kretz <kretz@kde.org>
474
475 * testsuite/experimental/simd/driver.sh: Remove executable on
476 SIGINT. Process compiler and test executable output: In verbose
477 mode print messages immediately, limited to 1000 lines and
478 breaking long lines to below $COLUMNS (or 1024 if not set).
479 Communicating the exit status of the compiler / test with the
480 necessary pipe is done via a message through stdout/-in.
481
482 2021-02-03 Matthias Kretz <kretz@kde.org>
483
484 * testsuite/Makefile.am: Ensure .simd.summary is empty before
485 collecting a new summary.
486 * testsuite/Makefile.in: Regenerate.
487
488 2021-02-03 Matthias Kretz <kretz@kde.org>
489
490 * testsuite/experimental/simd/generate_makefile.sh: Use
491 different variables internally than documented for user
492 overrides. This makes internal append/prepend work as intended.
493
494 2021-02-03 Matthias Kretz <kretz@kde.org>
495
496 * testsuite/experimental/simd/driver.sh (verify_test): Print
497 test output on run xfail. Do not repeat lines from the log that
498 were already printed on stdout.
499 (test_selector): Make the compiler flags pattern usable as a
500 substring selector.
501 (toplevel): Trap on SIGINT and remove the log and sum files.
502 Call timout with --foreground to quickly terminate on SIGINT.
503 * testsuite/experimental/simd/generate_makefile.sh: Simplify run
504 targets via target patterns. Default DRIVEROPTS to -v for run
505 targets. Remove log and sum files after completion of the run
506 target (so that it's always recompiled).
507 Place help text into text file for reasonable 'make help'
508 performance.
509
510 2021-02-03 Matthias Kretz <kretz@kde.org>
511
512 * include/experimental/bits/simd.h: Remove unnecessary static
513 assertion. Allow sizeof(8) integer __intrinsic_type to enable
514 the necessary mask type.
515
516 2021-02-03 Matthias Kretz <kretz@kde.org>
517
518 * include/experimental/bits/simd.h: Let __intrinsic_type<long
519 double, N> be valid if sizeof(long double) == sizeof(double) and
520 use a __vector double as member type.
521
522 2021-02-03 Matthias Kretz <kretz@kde.org>
523
524 * include/experimental/bits/simd.h (__is_intrinsic_type): New
525 internal type trait. Alias for __is_vector_type on x86.
526 (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
527 __vector_type.
528 (__intrin_bitcast): Allow casting to & from vector & intrinsic
529 types.
530 (__intrinsic_type): Explicitly specialize for NEON intrinsic
531 vector types.
532
533 2021-02-03 Matthias Kretz <kretz@kde.org>
534
535 * testsuite/experimental/simd/driver.sh: Implement skip, only,
536 expensive, and xfail markers. They can select on type, ABI tag
537 subset number, target-triplet, and compiler flags.
538 * testsuite/experimental/simd/generate_makefile.sh: The summary
539 now includes lines for unexpected passes and expected failures.
540 If the skip or only markers are only conditional on the type, do
541 not generate rules for those types.
542 * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
543 for ABI tag subsets 1-9.
544 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
545 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
546 * testsuite/experimental/simd/tests/casts.cc: Ditto.
547 * testsuite/experimental/simd/tests/generator.cc: Ditto.
548 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
549 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
550 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
551 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
552 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
553 * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
554 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
555 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
556 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
557 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
558 * testsuite/experimental/simd/tests/operators.cc: Ditto.
559 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
560 * testsuite/experimental/simd/tests/simd.cc: Ditto.
561 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
562 * testsuite/experimental/simd/tests/splits.cc: Ditto.
563 * testsuite/experimental/simd/tests/where.cc: Ditto.
564 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
565 addition replace "test only floattypes" marker by unconditional
566 "float|double|ldouble" only marker.
567 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
568 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
569 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
570 Ditto.
571 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
572 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
573 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
574 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
575 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
576 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
577 * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
578 addition, xfail on run because the reference data is missing.
579
580 2021-02-02 Jonathan Wakely <jwakely@redhat.com>
581
582 * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
583 * doc/xml/manual/status_cxx2014.xml: Likewise.
584 * doc/xml/manual/status_cxx2017.xml: Likewise.
585 * doc/html/manual/status.html: Regenerate.
586
587 2021-02-01 François Dumont <fdumont@gcc.gnu.org>
588
589 PR libstdc++/70303
590 * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
591 Return 0 if both iterators are value-initialized.
592 * testsuite/23_containers/deque/70303.cc: New test.
593 * testsuite/23_containers/vector/70303.cc: New test.
594
595 2021-02-01 Jonathan Wakely <jwakely@redhat.com>
596
597 * doc/xml/manual/status_cxx2011.xml: Update std::call_once
598 status.
599 * doc/xml/manual/status_cxx2014.xml: Likewise.
600 * doc/xml/manual/status_cxx2017.xml: Likewise. Update
601 std::from_chars and std::to_chars status. Fix formatting.
602 * doc/html/manual/status.html: Regenerate.
603
604 2021-01-28 Jonathan Wakely <jwakely@redhat.com>
605
606 * include/experimental/bits/numeric_traits.h: Update copyright
607 dates.
608 * include/experimental/bits/simd.h: Likewise.
609 * include/experimental/bits/simd_builtin.h: Likewise.
610 * include/experimental/bits/simd_converter.h: Likewise.
611 * include/experimental/bits/simd_detail.h: Likewise.
612 * include/experimental/bits/simd_fixed_size.h: Likewise.
613 * include/experimental/bits/simd_math.h: Likewise.
614 * include/experimental/bits/simd_neon.h: Likewise.
615 * include/experimental/bits/simd_ppc.h: Likewise.
616 * include/experimental/bits/simd_scalar.h: Likewise.
617 * include/experimental/bits/simd_x86.h: Likewise.
618 * include/experimental/bits/simd_x86_conversions.h: Likewise.
619 * include/experimental/simd: Likewise.
620 * testsuite/experimental/simd/*: Likewise.
621
622 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
623
624 * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
625 * doc/html/*: Regenerate.
626
627 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
628
629 * testsuite/experimental/simd/generate_makefile.sh: Use printf
630 instead of echo when printing escape characters.
631
632 2021-01-27 Matthias Kretz <kretz@kde.org>
633
634 * scripts/check_simd: New file. This script is called from the
635 the check-simd target. It determines a set of compiler flags and
636 simulator setups for calling generate_makefile.sh and passes the
637 information back to the check-simd target, which recurses to the
638 generated Makefiles.
639 * scripts/create_testsuite_files: Remove files below simd/tests/
640 from testsuite_files and place them in testsuite_files_simd.
641 * testsuite/Makefile.am: Add testsuite_files_simd. Add
642 check-simd target.
643 * testsuite/Makefile.in: Regenerate.
644 * testsuite/experimental/simd/driver.sh: New file. This script
645 compiles and runs a given simd test, logging its output and
646 status. It uses the timeout command to implement compile and
647 test timeouts.
648 * testsuite/experimental/simd/generate_makefile.sh: New file.
649 This script generates a Makefile which uses driver.sh to compile
650 and run the tests and collect the logs into a single log file.
651 * testsuite/experimental/simd/tests/abs.cc: New file. Tests
652 abs(simd).
653 * testsuite/experimental/simd/tests/algorithms.cc: New file.
654 Tests min/max(simd, simd).
655 * testsuite/experimental/simd/tests/bits/conversions.h: New
656 file. Contains functions to support tests involving conversions.
657 * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
658 Support functions make_mask and make_vec.
659 * testsuite/experimental/simd/tests/bits/mathreference.h: New
660 file. Support functions to supply precomputed math function
661 reference data.
662 * testsuite/experimental/simd/tests/bits/metahelpers.h: New
663 file. Support code for SFINAE testing.
664 * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
665 * testsuite/experimental/simd/tests/bits/test_values.h: New
666 file. Test functions to easily drive a test with simd objects
667 initialized from a given list of values and a range of random
668 values.
669 * testsuite/experimental/simd/tests/bits/ulp.h: New file.
670 Support code to determine the ULP distance of simd objects.
671 * testsuite/experimental/simd/tests/bits/verify.h: New file.
672 Test framework for COMPARE'ing simd objects and instantiating
673 the test templates with value_type and ABI tag.
674 * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
675 simd broadcasts.
676 * testsuite/experimental/simd/tests/casts.cc: New file. Test
677 simd casts.
678 * testsuite/experimental/simd/tests/fpclassify.cc: New file.
679 Test floating-point classification functions.
680 * testsuite/experimental/simd/tests/frexp.cc: New file. Test
681 frexp(simd).
682 * testsuite/experimental/simd/tests/generator.cc: New file. Test
683 simd generator constructor.
684 * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
685 Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
686 * testsuite/experimental/simd/tests/integer_operators.cc: New
687 file. Test integer operators.
688 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
689 New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
690 modf(simd).
691 * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
692 (converting) simd loads and stores.
693 * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
694 log*(simd).
695 * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
696 Test simd_mask broadcasts.
697 * testsuite/experimental/simd/tests/mask_conversions.cc: New
698 file. Test simd_mask conversions.
699 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
700 file. Test simd_mask implicit conversions.
701 * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
702 Test simd_mask loads and stores.
703 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
704 file. Test simd_mask operators convert as specified.
705 * testsuite/experimental/simd/tests/mask_operators.cc: New file.
706 Test simd_mask compares, subscripts, and negation.
707 * testsuite/experimental/simd/tests/mask_reductions.cc: New
708 file. Test simd_mask reductions.
709 * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
710 1-arg math functions on simd.
711 * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
712 2-arg math functions on simd.
713 * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
714 Test implicit conversions on simd binary operators behave as
715 specified.
716 * testsuite/experimental/simd/tests/operators.cc: New file. Test
717 simd compares, subscripts, not, unary minus, plus, minus,
718 multiplies, divides, increment, and decrement.
719 * testsuite/experimental/simd/tests/reductions.cc: New file.
720 Test reduce(simd).
721 * testsuite/experimental/simd/tests/remqo.cc: New file. Test
722 remqo(simd).
723 * testsuite/experimental/simd/tests/simd.cc: New file. Basic
724 sanity checks of simd types.
725 * testsuite/experimental/simd/tests/sincos.cc: New file. Test
726 sin(simd) and cos(simd).
727 * testsuite/experimental/simd/tests/split_concat.cc: New file.
728 Test split(simd) and concat(simd, simd).
729 * testsuite/experimental/simd/tests/splits.cc: New file. Test
730 split(simd_mask).
731 * testsuite/experimental/simd/tests/trigonometric.cc: New file.
732 Test remaining trigonometric functions on simd.
733 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
734 file. Test trunc(simd), ceil(simd), and floor(simd).
735 * testsuite/experimental/simd/tests/where.cc: New file. Test
736 masked operations using where.
737
738 2021-01-27 Matthias Kretz <kretz@kde.org>
739
740 * doc/xml/manual/status_cxx2017.xml: Add implementation status
741 of the Parallelism TS 2. Document implementation-defined types
742 and behavior.
743 * include/Makefile.am: Add new headers.
744 * include/Makefile.in: Regenerate.
745 * include/experimental/simd: New file. New header for
746 Parallelism TS 2.
747 * include/experimental/bits/numeric_traits.h: New file.
748 Implementation of P1841R1 using internal naming. Addition of
749 missing IEC559 functionality query.
750 * include/experimental/bits/simd.h: New file. Definition of the
751 public simd interfaces and general implementation helpers.
752 * include/experimental/bits/simd_builtin.h: New file.
753 Implementation of the _VecBuiltin simd_abi.
754 * include/experimental/bits/simd_converter.h: New file. Generic
755 simd conversions.
756 * include/experimental/bits/simd_detail.h: New file. Internal
757 macros for the simd implementation.
758 * include/experimental/bits/simd_fixed_size.h: New file. Simd
759 fixed_size ABI specific implementations.
760 * include/experimental/bits/simd_math.h: New file. Math
761 overloads for simd.
762 * include/experimental/bits/simd_neon.h: New file. Simd NEON
763 specific implementations.
764 * include/experimental/bits/simd_ppc.h: New file. Implement bit
765 shifts to avoid invalid results for integral types smaller than
766 int.
767 * include/experimental/bits/simd_scalar.h: New file. Simd scalar
768 ABI specific implementations.
769 * include/experimental/bits/simd_x86.h: New file. Simd x86
770 specific implementations.
771 * include/experimental/bits/simd_x86_conversions.h: New file.
772 x86 specific conversion optimizations. The conversion patterns
773 work around missing conversion patterns in the compiler and
774 should be removed as soon as PR85048 is resolved.
775 * testsuite/experimental/simd/standard_abi_usable.cc: New file.
776 Test that all (not all fixed_size<N>, though) standard simd and
777 simd_mask types are usable.
778 * testsuite/experimental/simd/standard_abi_usable_2.cc: New
779 file. As above but with -ffast-math.
780 * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
781 from the standard test loop. Instead use
782 check_vect_support_and_set_flags to build simd tests with the
783 relevant machine flags.
784
785 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
786
787 PR libstdc++/66414
788 * include/bits/string_view.tcc
789 (basic_string_view::find(const CharT*, size_type, size_type)):
790 Optimize.
791
792 2021-01-27 Paul Fee <paul.f.fee@gmail.com>
793
794 * include/bits/basic_string.h (basic_string::contains): New
795 member functions.
796 * include/std/string_view (basic_string_view::contains):
797 Likewise.
798 * include/std/version (__cpp_lib_string_contains): Define.
799 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
800 Remove trailing whitespace.
801 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
802 Likewise.
803 * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
804 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
805 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
806 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
807 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
808
809 2021-01-21 Jonathan Wakely <jwakely@redhat.com>
810
811 * src/c++17/Makefile.in: Regenerate.
812
813 2021-01-20 David Edelsohn <dje.gcc@gmail.com>
814
815 * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
816 _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
817 __lc_type.
818 (const char* ctype<char>:: is): Same.
819
820 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
821
822 PR libstdc++/98725
823 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Do not try to
824 write to a wide character stream if wide character support is
825 disabled in the library.
826
827 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
828
829 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
830 stringbuf not wstringbuf.
831
832 2021-01-18 Jakub Jelinek <jakub@redhat.com>
833
834 PR debug/98708
835 * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
836 Compile with -gno-as-loc-support.
837 * src/c++11/Makefile.in: Regenerated.
838
839 2021-01-16 H.J. Lu <hjl.tools@gmail.com>
840
841 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
842 Add -fcf-protection=none to -march=i486.
843
844 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
845
846 * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
847 compliant.
848
849 2021-01-14 Alexandre Oliva <oliva@adacore.com>
850
851 * testsuite/30_threads/future/members/poll.cc: Calibrate
852 iteration count.
853
854 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
855
856 PR libstdc++/98466
857 * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
858 (_Node_iterator()): Make default.
859 (_Node_const_iterator()): Make default.
860 * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
861 iterator checks.
862 * include/debug/safe_iterator.h
863 (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
864 * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
865 Likewise.
866 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
867 _M_singular checks on input iterators.
868 * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
869 checks.
870 * testsuite/23_containers/deque/debug/98466.cc: New test.
871 * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
872
873 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
874
875 PR libstdc++/98471
876 * include/bits/fs_path.h (__throw_conversion_error): New
877 function to throw or abort on character conversion errors.
878 (__wstr_from_utf8): Move definition after filesystem_error has
879 been defined. Use __throw_conversion_error.
880 (path::_S_convert<_EcharT>): Use __throw_conversion_error.
881 (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
882 (path::u8string): Likewise.
883
884 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
885
886 * include/std/barrier: Update copyright years. Fix whitespace.
887 * include/std/version: Fix whitespace.
888 * testsuite/30_threads/barrier/1.cc: Update copyright years.
889 * testsuite/30_threads/barrier/2.cc: Likewise.
890 * testsuite/30_threads/barrier/arrive.cc: Likewise.
891 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
892 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
893 * testsuite/30_threads/barrier/completion.cc: Likewise.
894
895 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
896
897 * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
898
899 2021-01-10 David Edelsohn <dje.gcc@gmail.com>
900
901 PR libstdc++/98613
902 * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
903 warning.
904 * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
905
906 2021-01-08 Olivier Hainque <hainque@adacore.com>
907
908 * testsuite/20_util/bind/ref_neg.cc: Tweak the
909 dg-prune-output regex for out-of-build-tree contexts.
910
911 2021-01-07 Thomas Rodgers <trodgers@redhat.com>
912
913 * doc/doxygen/user.cfg.in: Add new header.
914 * include/Makefile.am (std_headers): likewise.
915 * include/Makefile.in: Regenerate.
916 * include/precompiled/stdc++.h: Add new header.
917 * include/std/barrier: New file.
918 * include/std/version: Add __cpp_lib_barrier feature test macro.
919 * testsuite/30_threads/barrier/1.cc: New test.
920 * testsuite/30_threads/barrier/2.cc: Likewise.
921 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
922 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
923 * testsuite/30_threads/barrier/arrive.cc: Likewise.
924 * testsuite/30_threads/barrier/completion.cc: Likewise.
925
926 2021-01-07 Patrick Palka <ppalka@redhat.com>
927
928 PR libstdc++/98384
929 * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
930 instead of the non-standard nextupl and nextdownl.
931
932 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
933
934 * configure: Re-generate.
935
936 2021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net>
937
938 * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
939
940 2021-01-01 Jakub Jelinek <jakub@redhat.com>
941
942 * ChangeLog-2020: Rotate ChangeLog. New file.
943
944 \f
945 Copyright (C) 2021 Free Software Foundation, Inc.
946
947 Copying and distribution of this file, with or without modification,
948 are permitted in any medium without royalty provided the copyright
949 notice and this notice are preserved.