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