ChangeLog revision 1.1.1.19 1 2020-03-12 Release Manager
2
3 * GCC 9.3.0 released.
4
5 2020-03-06 Jonathan Wakely <jwakely (a] redhat.com>
6
7 Backport from mainline
8 2020-03-06 Jonathan Wakely <jwakely (a] redhat.com>
9
10 PR libstdc++/94069
11 * include/std/shared_mutex [!PTHREAD_RWLOCK_INITIALIZER]
12 (__shared_mutex_pthread::__shared_mutex_pthread()): Remove incorrect
13 second argument to __glibcxx_rwlock_init.
14 * testsuite/30_threads/shared_timed_mutex/94069.cc: New test.
15
16 2020-03-05 Jonathan Wakely <jwakely (a] redhat.com>
17
18 Backport from mainline
19 2020-03-05 Jonathan Wakely <jwakely (a] redhat.com>
20
21 * testsuite/27_io/filesystem/operations/all.cc: Mark unused variable.
22 * testsuite/27_io/filesystem/operations/copy.cc: Fix typo.
23 * testsuite/experimental/filesystem/operations/copy.cc: Likewise.
24 * testsuite/27_io/filesystem/operations/file_size.cc: Use correct type
25 for return value, and in comparison.
26 * testsuite/experimental/filesystem/operations/file_size.cc: Likewise.
27
28 Backport from mainline
29 2019-09-27 Jonathan Wakely <jwakely (a] redhat.com>
30
31 PR libstdc++/91910
32 * src/c++11/debug.cc (_Safe_iterator_base::_M_detach()): Load pointer
33 atomically and lock the mutex before accessing the sequence.
34 (_Safe_local_iterator_base::_M_detach()): Likewise.
35 (_Safe_iterator_base::_M_reset()): Clear _M_sequence atomically.
36
37 Backport from mainline
38 2019-06-17 Jonathan Wakely <jwakely (a] redhat.com>
39
40 * include/c_global/cmath (__lerp, lerp): Add noexcept (LWG 3201).
41
42 Backport from mainline
43 2019-11-07 Jonathan Wakely <jwakely (a] redhat.com>
44
45 * include/bits/stl_algo.h (for_each_n): Handle negative count.
46 * testsuite/25_algorithms/for_each/for_each_n_debug.cc: New test.
47
48 Backport from mainline
49 2020-01-28 Jonathan Wakely <jwakely (a] redhat.com>
50
51 PR libstdc++/93470
52 * include/bits/refwrap.h (reference_wrapper::operator()): Restrict
53 static assertion to object types.
54
55 2020-01-28 Jonathan Wakely <jwakely (a] redhat.com>
56
57 PR libstdc++/93325
58 * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Use AC_SEARCH_LIBS for
59 clock_gettime instead of explicit glibc version check.
60 * configure: Regenerate.
61
62 2020-03-01 H.J. Lu <hongjiu.lu (a] intel.com>
63
64 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
65
66 2020-02-29 John David Anglin <danglin (a] gcc.gnu.org>
67
68 * testsuite/17_intro/headers/c++1998/charset.cc: Skip on *-*-hpux*.
69 * testsuite/17_intro/headers/c++2011/charset.cc: Likewise.
70 * testsuite/17_intro/headers/c++2014/charset.cc: Likewise.
71 * testsuite/17_intro/headers/c++2017/charset.cc: Likewise.
72 * testsuite/17_intro/headers/c++2020/charset.cc: Likewise.
73
74 2020-02-26 Jonathan Wakely <jwakely (a] redhat.com>
75
76 Backport from mainline
77 2020-01-09 Jonathan Wakely <jwakely (a] redhat.com>
78
79 PR libstdc++/93205
80 * include/bits/random.h (operator>>): Check stream operation succeeds.
81 * include/bits/random.tcc (operator>>): Likewise.
82 (__extract_params): New function to fill a vector from a stream.
83 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error line.
84
85 Backport from mainline
86 2019-12-10 Jonathan Wakely <jwakely (a] redhat.com>
87
88 PR libstdc++/92886
89 * include/bits/ios_base.h (std::ios_base::trunc): Fix comment.
90
91 Backport from mainline
92 2020-01-28 Jonathan Wakely <jwakely (a] redhat.com>
93
94 PR libstdc++/93325
95 * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Use AC_SEARCH_LIBS for
96 clock_gettime instead of explicit glibc version check.
97 * configure: Regenerate.
98
99 Backport from mainline
100 2020-02-04 Jonathan Wakely <jwakely (a] redhat.com>
101
102 PR libstdc++/93562
103 * include/bits/unique_ptr.h (__uniq_ptr_impl::swap): Define.
104 (unique_ptr::swap, unique_ptr<T[], D>::swap): Call it.
105 * testsuite/20_util/unique_ptr/modifiers/93562.cc: New test.
106
107 Backport from mainline
108 2020-01-17 Jonathan Wakely <jwakely (a] redhat.com>
109
110 PR libstdc++/92376
111 * include/bits/c++config: Only do PSTL config when the header is
112 present, to fix freestanding.
113 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare allocation
114 functions if they were detected by configure.
115
116 Backport from mainline
117 2019-10-09 Jonathan Wakely <jwakely (a] redhat.com>
118
119 PR libstdc++/78552
120 * src/c++98/locale_init.cc (locale::classic()): Do not construct a new
121 locale object for every call.
122 (locale::_S_initialize_once()): Construct C locale here.
123
124 2020-01-24 Jonathan Wakely <jwakely (a] redhat.com>
125
126 Backport from mainline
127 2020-01-23 Jonathan Wakely <jwakely (a] redhat.com>
128
129 PR libstdc++/91947
130 * include/Makefile.am (${host_builddir}/largefile-config.h): Simplify
131 rule.
132 * include/Makefile.in: Regenerate.
133
134 Backport from mainline
135 2020-01-20 Jonathan Wakely <jwakely (a] redhat.com>
136
137 * doc/xml/faq.xml: Fix grammar.
138 * doc/xml/manual/appendix_contributing.xml: Improve instructions.
139 * doc/xml/manual/spine.xml: Update copyright years.
140 * doc/html/*: Regenerate.
141
142 2020-01-19 Eric S. Raymond <esr (a] thyrsus.com>
143 Sandra Loosemore <sandra (a] codesourcery.com>
144
145 Partial backport from mainline:
146
147 2020-01-19 Eric S. Raymond <esr (a] thyrsus.com>
148 * doc/xml/faq.xml: Update for SVN -> Git transition.
149 * doc/xml/manual/appendix_contributing.xml: Likewise.
150
151 2020-01-13 Jonathan Wakely <jwakely (a] redhat.com>
152
153 Backport from mainlne
154 2019-10-04 Jonathan Wakely <jwakely (a] redhat.com>
155
156 PR libstdc++/81091
157 PR libstdc++/91947
158 * configure.ac: Use AC_SYS_LARGEFILE to enable 64-bit file APIs.
159 * config.h.in: Regenerate:
160 * configure: Regenerate:
161 * include/Makefile.am (${host_builddir}/largefile-config.h): New
162 target to generate config header for filesystem library.
163 (${host_builddir}/c++config.h): Rename macros for large file support.
164 * include/Makefile.in: Regenerate.
165 * src/c++17/fs_dir.cc: Include new config header.
166 * src/c++17/fs_ops.cc: Likewise.
167 (filesystem::file_size): Use uintmax_t for size.
168 * src/filesystem/dir.cc: Include new config header.
169 * src/filesystem/ops.cc: Likewise.
170 (experimental::filesystem::file_size): Use uintmax_t for size.
171
172 * doc/xml/manual/status_cxx1998.xml: Replace incorrect statement
173 about documenting mainline.
174 * doc/xml/manual/status_cxx2011.xml: Likewise.
175 * doc/xml/manual/status_cxx2014.xml: Likewise.
176 * doc/xml/manual/status_cxx2017.xml: Likewise.
177 * doc/xml/manual/status_cxx2020.xml: Likewise.
178 * doc/xml/manual/status_cxxtr1.xml: Likewise.
179 * doc/xml/manual/status_cxxtr24733.xml: Likewise.
180 * doc/html/*: Regenerate.
181
182 2020-01-09 Jonathan Wakely <jwakely (a] redhat.com>
183
184 PR libstdc++/93208
185 * config/abi/pre/gnu.ver: Add new exports.
186 * include/std/memory_resource (memory_resource::~memory_resource()):
187 Do not define inline.
188 (monotonic_buffer_resource::~monotonic_buffer_resource()): Likewise.
189 * src/c++17/memory_resource.cc (memory_resource::~memory_resource()):
190 Define.
191 (monotonic_buffer_resource::~monotonic_buffer_resource()): Define.
192 * testsuite/20_util/monotonic_buffer_resource/93208.cc: New test.
193
194 2020-01-08 Jonathan Wakely <jwakely (a] redhat.com>
195
196 PR libstdc++/93201
197 * src/c++17/fs_ops.cc (remove_all(const path&, error_code&)): Check
198 result of recursive call before incrementing iterator.
199 * src/filesystem/ops.cc (remove_all(const path&, error_code&)):
200 Likewise.
201 * testsuite/27_io/filesystem/operations/remove_all.cc: Check errors
202 are reported correctly.
203 * testsuite/experimental/filesystem/operations/remove_all.cc: Likewise.
204
205 2019-12-11 Jonathan Wakely <jwakely (a] redhat.com>
206
207 Backport from mainline
208 2019-11-25 Jonathan Wakely <jwakely (a] redhat.com>
209
210 PR libstdc++/91786
211 * include/bits/fs_path.h (filesystem_error): Move definition before
212 the use in u8path.
213
214 2019-12-10 Thomas Rodgers <trodgers (a] redhat.com>
215
216 Backport from mainline
217 2019-12-10 Thomas Rodgers <trodgers (a] redhat.com>
218
219 * include/pstl/glue_numeric_defs.h: Restore enable_if lost during
220 original import of pstl.
221 * include/pstl/glue_numeric_impl.h: Likewise.
222
223 2019-12-09 Jonathan Wakely <jwakely (a] redhat.com>
224
225 Backport from mainline
226 2019-12-09 Jonathan Wakely <jwakely (a] redhat.com>
227
228 PR libstdc++/92853
229 * src/c++17/fs_path.cc (filesystem::path::operator+=(const path&)):
230 Do not process a trailing directory separator twice.
231 * testsuite/27_io/filesystem/path/concat/92853.cc: New test.
232 * testsuite/27_io/filesystem/path/concat/path.cc: Test more cases.
233 * testsuite/27_io/filesystem/path/concat/strings.cc: Test more cases.
234
235 2019-11-22 Jonathan Wakely <jwakely (a] redhat.com>
236
237 Backport from mainline
238 2019-10-29 Jonathan Wakely <jwakely (a] redhat.com>
239
240 PR libstdc++/92267
241 * include/bits/stl_deque.h (_Deque_iterator(const _Deque_iterator&)):
242 Do not define as defaulted.
243 * testsuite/23_containers/deque/types/92267.cc: New test.
244
245 2019-10-28 John David Anglin <danglin (a] gcc.gnu.org>
246
247 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
248
249 2019-10-24 Jonathan Wakely <jwakely (a] redhat.com>
250
251 Backport from mainline
252 2019-05-31 Jonathan Wakely <jwakely (a] redhat.com>
253
254 PR libstdc++/90682
255 * libsupc++/eh_term_handler.cc: Include eh_term_handler.h to get
256 definition of _GLIBCXX_DEFAULT_TERM_HANDLER.
257 * libsupc++/eh_term_handler.h: New header defining
258 _GLIBCXX_DEFAULT_TERM_HANDLER.
259 * libsupc++/eh_terminate.cc: Include eh_term_handler.h.
260 (set_terminate): Restore default handler when argument is null.
261 (set_unexpected): Likewise.
262 * testsuite/18_support/set_terminate.cc: New test.
263 * testsuite/18_support/set_unexpected.cc: New test.
264
265 Backport from mainline
266 2019-05-01 Jonathan Wakely <jwakely (a] redhat.com>
267
268 PR libstdc++/61761
269 * include/std/complex (__complex_proj): Return parameter unchanged.
270 [_GLIBCXX_USE_C99_COMPLEX] (__complex_proj): Change overloads for
271 floating-point types to take std::complex arguments.
272 [_GLIBCXX_USE_C99_MATH_TR1] (__complex_proj): Add overloads for
273 floating-point types.
274 * testsuite/26_numerics/complex/proj.cc: New test.
275
276 Backport from mainline
277 2019-06-06 Jonathan Wakely <jwakely (a] redhat.com>
278
279 * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc: Add
280 dg-prune-output for different C++98 diagnostic.
281 * testsuite/23_containers/deque/requirements/dr438/constructor_1_neg.cc:
282 Likewise.
283 * testsuite/23_containers/deque/requirements/dr438/constructor_2_neg.cc:
284 Likewise.
285 * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
286 Likewise.
287 * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
288 Likewise.
289 * testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
290 Likewise.
291 * testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc:
292 Likewise.
293 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
294 Likewise.
295 * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
296 Likewise.
297 * testsuite/23_containers/vector/requirements/dr438/
298 constructor_1_neg.cc: Likewise.
299 * testsuite/23_containers/vector/requirements/dr438/
300 constructor_2_neg.cc: Likewise.
301 * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
302 Likewise.
303 * testsuite/libstdc++-prettyprinters/compat.cc: Do not run for C++98.
304
305 Backport from mainline
306 2019-06-06 Jonathan Wakely <jwakely (a] redhat.com>
307
308 * testsuite/20_util/is_nothrow_invocable/value.cc: Test converting to
309 void.
310 * testsuite/experimental/names.cc: Do not run for C++98 mode. Do not
311 include Library Fundamentals or Networking headers in C++11 mode.
312 * testsuite/ext/char8_t/atomic-1.cc: Do not run for C++98 mode.
313
314 Backport from mainline
315 2019-05-14 Jonathan Wakely <jwakely (a] redhat.com>
316
317 * testsuite/util/testsuite_allocator.h (memory_resource)
318 (default_resource_mgr): Fix indentation.
319
320 Backport from mainline
321 2019-08-30 Jonathan Wakely <jwakely (a] redhat.com>
322
323 PR libstdc++/89164
324 * include/bits/stl_algobase.h (__copy_move): Give descriptive names
325 to template parameters.
326 * include/bits/stl_uninitialized.h (uninitialized_copy)
327 (uninitialized_fill, uninitialized_fill_n): Add static assertions to
328 diagnose invalid uses.
329 * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
330 Adjust expected error.
331 * testsuite/20_util/specialized_algorithms/uninitialized_copy/89164.cc:
332 New test.
333 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
334 89164.cc: New test.
335 * testsuite/20_util/specialized_algorithms/uninitialized_fill/89164.cc:
336 New test.
337 * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/
338 89164.cc: New test.
339 * testsuite/23_containers/vector/cons/89164.cc: New test.
340 * testsuite/23_containers/vector/cons/89164_c++17.cc: New test.
341
342 Backport from mainline
343 2019-10-22 Jonathan Wakely <jwakely (a] redhat.com>
344
345 * include/bits/memoryfwd.h (uses_allocator): Do not declare for C++98.
346 * testsuite/17_intro/names.cc: Check uses_allocator in C++98.
347
348 Backport from mainline
349 2019-10-18 Jonathan Wakely <jwakely (a] redhat.com>
350
351 PR libstdc++/92143
352 * libsupc++/new_opa.cc (operator new) [__APPLE__]: Increase alignment
353 to at least sizeof(void*).
354
355 Backport from mainline
356 2019-06-06 Jonathan Wakely <jwakely (a] redhat.com>
357
358 * testsuite/23_containers/unordered_map/requirements/debug_container.cc:
359 Do not test allocator rebinding extension for C++2a.
360 * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Change
361 dg-do directive for C++17 and C++2a.
362
363 Backport from mainline
364 2019-05-23 Jonathan Wakely <jwakely (a] redhat.com>
365
366 * testsuite/20_util/function_objects/invoke/1.cc: Add more tests.
367 Move C++17-specific tests to ...
368 * testsuite/20_util/function_objects/invoke/3.cc: New test.
369 * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Change
370 "compile" test to "run".
371
372 Backport from mainline
373 2019-10-08 Jonathan Wakely <jwakely (a] redhat.com>
374
375 * doc/Makefile.am (doc-html-docbook-regenerate): New target.
376 (${docbook_outdir}/html): Do not create unused 'html/ext' directory.
377 * doc/Makefile.in: Regenerate.
378 * doc/xml/manual/documentation_hacking.xml: Document new target.
379 * doc/html/*: Regenerate.
380
381 * doc/xml/manual/allocator.xml: Use archived copy of CUJ article.
382
383 Backport from mainline
384 2019-05-31 Gerald Pfeifer <gerald (a] pfeifer.com>
385
386 * doc/xml/manual/allocator.xml: Move hoard.org back to http.
387
388 Backport from mainline
389 2019-08-15 Jonathan Wakely <jwakely (a] redhat.com>
390
391 PR libstdc++/91456
392 * include/bits/std_function.h (__check_func_return_type): Remove.
393 (function::_Callable): Use std::__is_invocable_impl instead of
394 __check_func_return_type.
395 * include/std/type_traits (__is_invocable_impl): Add another defaulted
396 template parameter. Define a separate partial specialization for
397 INVOKE and INVOKE<void>. For INVOKE<R> replace is_convertible check
398 with a check that models delayed temporary materialization.
399 * testsuite/20_util/function/91456.cc: New test.
400 * testsuite/20_util/is_invocable/91456.cc: New test.
401
402 Backport from mainline
403 2019-09-30 Andreas Tobler <andreast (a] gcc.gnu.org>
404
405 * include/experimental/internet: Include netinet/in.h if we have
406 _GLIBCXX_HAVE_NETINET_IN_H defined.
407
408 Backport from mainline
409 2019-09-26 Jonathan Wakely <jwakely (a] redhat.com>
410
411 * include/experimental/internet (operator==, operator<): Fix loop
412 condition to avoid reading past the end of the array.
413
414 Backport from mainline
415 2019-08-06 Jonathan Wakely <jwakely (a] redhat.com>
416
417 P1651R0 bind_front should not unwrap reference_wrapper
418 * include/std/functional (bind_front): Don't unwrap reference_wrapper.
419 * include/std/version (__cpp_lib_bind_front): Update value.
420 * testsuite/20_util/function_objects/bind_front/1.cc: Fix test for
421 feature test macro.
422 * testsuite/20_util/function_objects/bind_front/2.cc: New test.
423
424 Backport from mainline
425 2019-10-11 Jonathan Wakely <jwakely (a] redhat.com>
426
427 PR libstdc++/92059
428 * include/tr2/dynamic_bitset (__dynamic_bitset_base): Define all
429 special member functions as defaulted. Add noexcept to most members.
430 (__dynamic_bitset_base(size_t, unsigned long long, const _Alloc&)):
431 Mask off unwanted bits in the __val parameter. Avoid undefined left
432 shifts.
433 (__dynamic_bitset_base::_M_assign): Remove.
434 (__dynamic_bitset_base::_M_do_reset): Use std::fill.
435 (__dynamic_bitset_base::_M_are_all_aux): Avoid integer promotion when
436 block_type has lower rank than int.
437 (dynamic_bitset): Add noexcept to most members. Use injected-class-name
438 in return types and parameter types.
439 (dynamic_bitset::_M_Nb): Add default member initializer.
440 (dynamic_bitset(), dynamic_bitset(const dynamic_bitset&)): Define as
441 defaulted.
442 (dynamic_bitset(dynamic_bitset&&)): Clear source object after move.
443 (dynamic_bitset::operator=(const dynamic_bitset&)): Define as
444 defaulted.
445 (dynamic_bitset::operator=(dynamic_bitset&&)): Add noexcept-specifier.
446 Define without using swap, to propagate allocator correctly.
447 (dynamic_bitset(const char*, const _Alloc&)): Use strlen.
448 (dynamic_bitset::_M_do_sanitize, dynamic_bitset::_M_do_fill): Use
449 casts to avoid unwanted integer promotions.
450 (dynamic_bitset::_M_copy_from_ptr): Rearrange template parameters and
451 add default template arguments and default argument to simplify usage.
452 (dynamic_bitset::_M_copy_from_string): Adjust call to _M_copy_from_ptr.
453 (operator==(const dynamic_bitset&, const dynamic_bitset&))
454 (operator<(const dynamic_bitset&, const dynamic_bitset&)): Use _M_Nb.
455 * include/tr2/dynamic_bitset.tcc (dynamic_bitset::_M_copy_from_ptr):
456 Adjust template parameters to match declaration.
457 * testsuite/tr2/dynamic_bitset/cmp.cc: New test.
458 * testsuite/tr2/dynamic_bitset/cons.cc: New test.
459 * testsuite/tr2/dynamic_bitset/copy.cc: New test.
460 * testsuite/tr2/dynamic_bitset/move.cc: New test.
461 * testsuite/tr2/dynamic_bitset/pr92059.cc: New test.
462
463 2019-09-12 Jonathan Wakely <jwakely (a] redhat.com>
464
465 PR libstdc++/91748
466 * include/bits/stl_algo.h (for_each_n): Fix random access iterator
467 case.
468 * testsuite/25_algorithms/for_each/for_each_n.cc: Test with random
469 access iterators.
470
471 2019-09-11 Jonathan Wakely <jwakely (a] redhat.com>
472
473 * python/libstdcxx/v6/xmethods.py (SharedPtrUseCountWorker.__call__):
474 Fix syntax error.
475
476 2019-09-09 Edward Smith-Rowland <3dw4rd (a] verizon.net>
477
478 Update docs for p858 - Constexpr iterator changes available since 9.1.
479 * doc/xml/manual/status_cxx2020.xml: Update p0858r0 status.
480
481 2019-09-02 Jonathan Wakely <jwakely (a] redhat.com>
482
483 * doc/xml/manual/abi.xml: Document 9.x library versions.
484 * doc/html/*: Regenerate.
485
486 2019-09-02 Rainer Orth <ro (a] CeBiTec.Uni-Bielefeld.DE>
487
488 * config/abi/post/i386-solaris2.10/baseline_symbols.txt: Regenerate.
489 * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: Likewise.
490 * config/abi/post/i386-solaris2.11/baseline_symbols.txt: Likewise.
491 * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: Likewise.
492 * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: Likewise.
493 * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
494 Likewise.
495 * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: Likewise.
496 * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
497 Likewise.
498
499 2019-08-29 Jonathan Wakely <jwakely (a] redhat.com>
500
501 PR libstdc++/91067
502 * acinclude.m4 (libtool_VERSION): Bump to 6:28:0.
503 * configure: Regenerate.
504 * config/abi/pre/gnu.ver (GLIBCXX_3.4.28): Add new version. Export
505 missing symbols.
506 * testsuite/27_io/filesystem/iterators/91067.cc: Test move
507 constructors.
508 * testsuite/util/testsuite_abi.cc: Add new symbol version.
509
510 2019-08-29 Jakub Jelinek <jakub (a] redhat.com
511
512 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
513 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
514
515 2019-08-28 Jonathan Wakely <jwakely (a] redhat.com>
516
517 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
518 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
519 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
520 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
521 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
522 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
523 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
524
525 2019-08-23 Joseph Myers <joseph (a] codesourcery.com>
526
527 * src/filesystem/ops-common.h [_GLIBCXX_FILESYSTEM_IS_WINDOWS]
528 (std::filesystem::__gnu_posix::lstat): Add return type.
529
530 2019-08-20 Jonathan Wakely <jwakely (a] redhat.com>
531
532 * include/std/numeric (reduce): Fix Doxygen markup.
533
534 Backport from mainline
535 2019-06-19 Jonathan Wakely <jwakely (a] redhat.com>
536
537 * include/std/numeric (reduce(Iter, Iter, T, BinOp)): Fix value
538 category used in invocable check.
539 (reduce(Iter, Iter, T)): Pass initial value as rvalue.
540 * testsuite/26_numerics/reduce/2.cc: New test.
541
542 Backport from mainline
543 2019-06-18 Jonathan Wakely <jwakely (a] redhat.com>
544
545 * include/bits/algorithmfwd.h: Change title of doc group.
546 * include/bits/stl_algo.h (for_each_n): Add new C++17 algorithm from
547 P0024R2.
548 * include/bits/stl_numeric.h: Define doc group and add algos to it.
549 * include/std/numeric (__is_random_access_iter): New internal trait.
550 (reduce, transform_reduce, exclusive_scan, inclusive_scan)
551 (transform_exclusive_scan, transform_inclusive_scan): Likewise.
552 * testsuite/25_algorithms/for_each/for_each_n.cc: New test.
553 * testsuite/26_numerics/exclusive_scan/1.cc: New test.
554 * testsuite/26_numerics/inclusive_scan/1.cc: New test.
555 * testsuite/26_numerics/reduce/1.cc: New test.
556 * testsuite/26_numerics/transform_exclusive_scan/1.cc: New test.
557 * testsuite/26_numerics/transform_inclusive_scan/1.cc: New test.
558 * testsuite/26_numerics/transform_reduce/1.cc: New test.
559 * testsuite/util/testsuite_iterators.h (test_container::size()): New
560 member function.
561
562 2019-08-20 Uros Bizjak <ubizjak (a] gmail.com>
563
564 * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
565
566 2019-08-13 Jonathan Wakely <jwakely (a] redhat.com>
567
568 Backport from mainline
569 2019-08-12 Jonathan Wakely <jwakely (a] redhat.com>
570
571 PR libstdc++/90361
572 * src/c++17/string-inst.cc: Use _GLIBCXX_USE_CXX11_ABI=1 by default.
573
574 2019-08-12 Release Manager
575
576 * GCC 9.2.0 released.
577
578 2019-07-31 Jonathan Wakely <jwakely (a] redhat.com>
579
580 * testsuite/26_numerics/midpoint/floating.cc: Use standard macros
581 instead of GCC-specific ones.
582
583 Backport from mainline
584 2019-06-24 Jonathan Wakely <jwakely (a] redhat.com>
585
586 * testsuite/18_support/headers/cfloat/values_c++17.cc: New test.
587
588 2019-07-31 Jonathan Wakely <jwakely (a] redhat.com>
589
590 Backport from mainline
591 2019-07-31 Jonathan Wakely <jwakely (a] redhat.com>
592
593 * include/std/memory (make_obj_using_allocator): Qualify call to
594 uses_allocator_construction_args.
595
596 2019-07-31 Jonathan Wakely <jwakely (a] redhat.com>
597
598 Backport from mainline
599 2019-07-31 Jonathan Wakely <jwakely (a] redhat.com>
600
601 PR libstdc++/91308
602 * include/bits/unique_ptr.h (unique_ptr::__safe_conversion_up): Remove
603 constraints on deleter that should only apply to the constructor.
604 (unique_ptr<T[], D>::__safe_conversion_up): Likewise.
605 (unique_ptr<T[], D>::unique_ptr(unique_ptr<U, D>&&)): Restore
606 constraints on deleter here.
607 * testsuite/20_util/unique_ptr/assign/91308.cc: New test.
608
609 2019-07-31 Jonathan Wakely <jwakely (a] redhat.com>
610
611 Backport from mainline
612 2019-07-29 Jonathan Wakely <jwakely (a] redhat.com>
613
614 PR libstdc++/51333
615 * libsupc++/cxxabi.h (__gnu_cxx::recursive_init_error): Do not define
616 constructor inline.
617 * libsupc++/guard_error.cc (__gnu_cxx::recursive_init_error): Define
618 constructor.
619 * testsuite/18_support/51333.cc: New test.
620
621 2019-07-26 Jonathan Wakely <jwakely (a] redhat.com>
622
623 Backport from mainline
624 2019-07-26 Jonathan Wakely <jwakely (a] redhat.com>
625
626 * include/std/bit (__cpp_lib_endian): Define.
627 * include/std/version (__cpp_lib_endian): Define.
628 * testsuite/26_numerics/endian/2.cc: New.
629 * testsuite/26_numerics/endian/3.cc: New.
630 * testsuite/26_numerics/endian/4.cc: New.
631
632 2019-07-26 Jonathan Wakely <jwakely (a] redhat.com>
633
634 Backport from mainline
635 2019-07-25 Jonathan Wakely <jwakely (a] redhat.com>
636
637 * include/std/bit (endian): Move definition here as per P1612R1.
638 * include/std/type_traits (endian): Remove definition from here.
639 * testsuite/20_util/endian/1.cc: Rename to ...
640 * testsuite/26_numerics/endian/1.cc: ... here. Adjust header.
641
642 2019-07-26 Jonathan Wakely <jwakely (a] redhat.com>
643
644 Backport from mainline
645 2019-07-22 Jonathan Wakely <jwakely (a] redhat.com>
646
647 * include/std/bit (__rotl, __rotr): Change second parameter from
648 unsigned int to int and handle negative values.
649 (rotl, rotr): Remove check for __STRICT_ANSI__. Change second
650 parameter from unsigned int to int. Add nodiscard attribute.
651 * testsuite/26_numerics/bit/bitops.rot/rotl.cc: Rename to ...
652 * testsuite/26_numerics/bit/bit.rotate/rotl.cc: Here. Test negative
653 shifts.
654 * testsuite/26_numerics/bit/bitops.rot/rotr.cc: Rename to ...
655 * testsuite/26_numerics/bit/bit.rotate/rotr.cc: Here. Test negative
656 shifts.
657
658 2019-07-26 Jonathan Wakely <jwakely (a] redhat.com>
659
660 Backport from mainline
661 2019-07-22 Jonathan Wakely <jwakely (a] redhat.com>
662
663 * include/std/bit (__ceil2): Make unrepresentable results undefined,
664 as per P1355R2. Add debug assertion. Perform one left shift, not two,
665 so that out of range values cause undefined behaviour. Ensure that
666 shift will still be undefined if left operand is promoted.
667 * testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: Replace checks for
668 unrepresentable values with checks that they are not core constant
669 expressions.
670 * testsuite/26_numerics/bit/bit.pow.two/ceil2_neg.cc: New test.
671
672 2019-07-26 Jonathan Wakely <jwakely (a] redhat.com>
673
674 Backport from mainline (partial)
675 2019-06-26 Jonathan Wakely <jwakely (a] redhat.com>
676
677 * include/std/bit (rotl(byte, unsigned), rotr(byte, unsigned))
678 (countl_zero(byte), countl_one(byte), countr_zero(byte))
679 (countr_one(byte), popcount(byte), ispow2(byte), ceil2(byte))
680 (floor2(byte), log2p1(byte)): Remove.
681 * testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: Remove test for
682 std::byte overload.
683 * testsuite/26_numerics/bit/bit.pow.two/floor2.cc: Likewise.
684 * testsuite/26_numerics/bit/bit.pow.two/ispow2.cc: Likewise.
685 * testsuite/26_numerics/bit/bit.pow.two/log2p1.cc: Likewise.
686 * testsuite/26_numerics/bit/bitops.count/countl_one.cc: Likewise.
687 * testsuite/26_numerics/bit/bitops.count/countl_zero.cc: Likewise.
688 * testsuite/26_numerics/bit/bitops.count/countr_one.cc: Likewise.
689 * testsuite/26_numerics/bit/bitops.count/countr_zero.cc: Likewise.
690 * testsuite/26_numerics/bit/bitops.count/popcount.cc: Likewise.
691 * testsuite/26_numerics/bit/bitops.rot/rotl.cc: Likewise.
692 * testsuite/26_numerics/bit/bitops.rot/rotr.cc: Likewise.
693
694 2019-07-26 Jonathan Wakely <jwakely (a] redhat.com>
695
696 Backport from mainline
697 2019-07-16 Jason Merrill <jason (a] redhat.com>
698
699 * include/std/memory (uses_allocator_construction_args): Add parens
700 around constraint.
701
702 2019-07-26 Jonathan Wakely <jwakely (a] redhat.com>
703
704 Backport from mainline
705 2019-07-02 Jonathan Wakely <jwakely (a] redhat.com>
706
707 * include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_LAUNDER)
708 (_GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED): Use __has_builtin
709 instead of __is_identifier to detect Clang support.
710
711 2019-07-26 Jonathan Wakely <jwakely (a] redhat.com>
712
713 Backport from mainline
714 2019-05-23 Jonathan Wakely <jwakely (a] redhat.com>
715
716 * doc/xml/manual/status_cxx2017.xml: Add feature test macro for
717 P0040R3.
718 * doc/html/*: Regenerate.
719
720 2019-07-26 Jonathan Wakely <jwakely (a] redhat.com>
721
722 Backport from mainline
723 2019-06-20 Jonathan Wakely <jwakely (a] redhat.com>
724
725 * doc/xml/manual/status_cxx2017.xml: Fix outdated reference to
726 C++17 working draft.
727
728 2019-07-26 Jonathan Wakely <jwakely (a] redhat.com>
729
730 Backport from mainline
731 2019-06-25 Jonathan Wakely <jwakely (a] redhat.com>
732
733 * include/std/numeric (midpoint(T, T)): Avoid std::abs in constexpr
734 function.
735
736 Backport from mainline
737 2019-06-24 Jonathan Wakely <jwakely (a] redhat.com>
738
739 * include/std/numeric (midpoint(T, T)): Change implementation for
740 floating-point types to avoid incorrect rounding of denormals.
741 * testsuite/26_numerics/midpoint/floating.cc: Add check for correct
742 rounding with denormals.
743 * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error line numbers.
744 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
745
746 2019-07-03 Jonathan Wakely <jwakely (a] redhat.com>
747
748 PR libstdc++/91067
749 * acinclude.m4 (libtool_VERSION): Bump to 6:27:0.
750 * configure: Regenerate.
751 * config/abi/pre/gnu.ver (GLIBCXX_3.4.27): Add new version. Export
752 missing symbols.
753 * testsuite/27_io/filesystem/iterators/91067.cc: New test.
754 * testsuite/util/testsuite_abi.cc: Add new symbol version.
755
756 Backport from mainline
757 2019-07-02 Jonathan Wakely <jwakely (a] redhat.com>
758
759 * include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_LAUNDER)
760 (_GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED): Use __has_builtin
761 instead of __is_identifier to detect Clang support.
762
763 2019-06-27 Jonathan Wakely <jwakely (a] redhat.com>
764
765 PR libstdc++/85494 use rand_s in std::random_device
766 * config/os/mingw32-w64/os_defines.h (_GLIBCXX_USE_CRT_RAND_S): Define.
767 * src/c++11/cow-string-inst.cc (random_device::_M_init_pretr1)
768 [_GLIBCXX_USE_CRT_RAND_S]: Do nothing if rand_s will be used.
769 * src/c++11/random.cc [_GLIBCXX_USE_CRT_RAND_S] (__winxp_rand_s):
770 Define new function.
771 (random_device::_M_init_pretr1) [_GLIBCXX_USE_CRT_RAND_S]: Do nothing
772 if rand_s will be used.
773 (random_device::_M_getval_pretr1) [_GLIBCXX_USE_CRT_RAND_S]: Use
774 __winxp_rand_s().
775 * testsuite/26_numerics/random/random_device/85494.cc: New test.
776
777 PR libstdc++/91012
778 * src/c++17/fs_path.cc (filesystem_error::_Impl): Use a string_view
779 for the what_arg parameters.
780 (filesystem_error::filesystem_error): Pass system_error::what() to
781 the _Impl constructor.
782 * testsuite/27_io/filesystem/filesystem_error/cons.cc: Ensure that
783 filesystem_error::what() contains system_error::what().
784
785 2019-06-21 Jonathan Wakely <jwakely (a] redhat.com>
786
787 Backport from mainline
788 2019-06-19 Jonathan Wakely <jwakely (a] redhat.com>
789
790 PR libstdc++/90920 partially revert r263433
791 * include/bits/stl_algo.h (__rotate): Restore checks for empty ranges.
792 (rotate): Remove checks.
793 * testsuite/25_algorithms/rotate/90920.cc: New test.
794
795 2019-06-17 Jonathan Wakely <jwakely (a] redhat.com>
796
797 PR libstdc++/90281 Fix string conversions for filesystem::path
798 * include/bits/fs_path.h (u8path) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]:
799 Use codecvt_utf8_utf16 instead of codecvt_utf8. Use
800 __str_codecvt_in_all to fail for partial conversions and throw on
801 error.
802 [!_GLIBCXX_FILESYSTEM_IS_WINDOWS && _GLIBCXX_USE_CHAR8_T]
803 (path::_Cvt<char8_t>): Add explicit specialization.
804 [_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::_Cvt::_S_wconvert): Remove
805 overloads.
806 [_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::_Cvt::_S_convert): Use
807 if-constexpr instead of dispatching to _S_wconvert. Use codecvt
808 instead of codecvt_utf8. Use __str_codecvt_in_all and
809 __str_codecvt_out_all.
810 [!_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::_Cvt::_S_convert): Use
811 codecvt instead of codecvt_utf8. Use __str_codecvt_out_all.
812 (path::_S_str_convert) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Use
813 codecvt_utf8_utf16 instead of codecvt_utf8. Construct return values
814 with allocator. Use __str_codecvt_out_all. Fallthrough to POSIX code
815 after converting to UTF-8.
816 (path::_S_str_convert): Use codecvt instead of codecvt_utf8. Use
817 __str_codecvt_in_all.
818 (path::string): Fix initialization of string types with different
819 allocators.
820 (path::u8string) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Use
821 codecvt_utf8_utf16 instead of codecvt_utf8. Use __str_codecvt_out_all.
822 * include/bits/locale_conv.h (__do_str_codecvt): Reorder static and
823 runtime conditions.
824 (__str_codecvt_out_all, __str_codecvt_in_all): New functions that
825 return false for partial conversions.
826 * include/experimental/bits/fs_path.h (u8path):
827 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Implement correctly for mingw.
828 [_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::_Cvt::_S_wconvert): Add
829 missing handling for char8_t. Use codecvt and codecvt_utf8_utf16
830 instead of codecvt_utf8. Use __str_codecvt_in_all and
831 __str_codecvt_out_all.
832 [!_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::_Cvt::_S_convert): Use
833 codecvt instead of codecvt_utf8. Use __str_codecvt_out_all.
834 (path::string) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Use
835 codecvt_utf8_utf16 instead of codecvt_utf8. Construct return values
836 with allocator. Use __str_codecvt_out_all and __str_codecvt_in_all.
837 (path::string) [!_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Use
838 __str_codecvt_in_all.
839 (path::u8string) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Use
840 codecvt_utf8_utf16 instead of codecvt_utf8. Use __str_codecvt_out_all.
841 * src/c++17/fs_path.cc (path::_S_convert_loc): Use
842 __str_codecvt_in_all.
843 * src/filesystem/path.cc (path::_S_convert_loc): Likewise.
844 * testsuite/27_io/filesystem/path/construct/90281.cc: New test.
845 * testsuite/27_io/filesystem/path/factory/u8path.cc: New test.
846 * testsuite/27_io/filesystem/path/native/string.cc: Test with empty
847 strings and with Unicode characters outside the basic multilingual
848 plane.
849 * testsuite/27_io/filesystem/path/native/alloc.cc: New test.
850 * testsuite/experimental/filesystem/path/construct/90281.cc: New test.
851 * testsuite/experimental/filesystem/path/factory/u8path.cc: New test.
852 * testsuite/experimental/filesystem/path/native/alloc.cc: New test.
853 * testsuite/experimental/filesystem/path/native/string.cc: Test with
854 empty strings and with Unicode characters outside the basic
855 multilingual plane.
856
857 2019-06-14 Jonathan Wakely <jwakely (a] redhat.com>
858
859 Backport from mainline
860 2019-04-26 Jonathan Wakely <jwakely (a] redhat.com>
861
862 * config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace wildcard that matches
863 wstring::_M_replace_dispatch with more specific patterns.
864 * include/bits/fs_path.h (path::_S_convert_loc<_InputIterator>):
865 Create const std::string to avoid redundant call to _S_convert_loc
866 with non-const pointers.
867 * include/bits/locale_conv.h (__do_str_codecvt): Use if-constexpr to
868 avoid unnecessary basic_string::assign instantiations.
869
870 2019-06-14 Jonathan Wakely <jwakely (a] redhat.com>
871
872 Backport from mainline
873 2019-04-26 Jonathan Wakely <jwakely (a] redhat.com>
874
875 * include/experimental/bits/fs_path.h
876 (path::_S_convert_loc<_InputIterator>): Create const std::string to
877 avoid redundant call to _S_convert_loc with non-const pointers.
878
879 2019-06-14 Jonathan Wakely <jwakely (a] redhat.com>
880
881 Backport from mainline
882 2019-05-29 Jonathan Wakely <jwakely (a] redhat.com>
883
884 PR libstdc++/88881
885 * src/c++17/fs_ops.cc [_GLIBCXX_FILESYSTEM_IS_WINDOWS]
886 (status(const path&, error_code&)): Use parent_path() to remove
887 trailing slash.
888 (symlink_status(const path&, error_code&)): Duplicate workaround for
889 bug in _wstat for paths with trailing slash.
890 * testsuite/27_io/filesystem/operations/remove_all.cc: Check path
891 with trailing slash.
892 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
893 * testsuite/27_io/filesystem/operations/symlink_status.cc: Likewise.
894
895 2019-06-14 Jonathan Wakely <jwakely (a] redhat.com>
896
897 Backport from mainline
898 2019-05-29 Jonathan Wakely <jwakely (a] redhat.com>
899
900 * src/c++17/fs_path.cc (path::parent_path()): Create whole path at
901 once instead of building it iteratively.
902
903 2019-06-14 Jonathan Wakely <jwakely (a] redhat.com>
904
905 Backport from mainline
906 2019-05-07 Jonathan Wakely <jwakely (a] redhat.com>
907
908 * doc/xml/manual/intro.xml: Fix DR 2537 and DR 2566 confusion.
909
910 2019-06-14 Jonathan Wakely <jwakely (a] redhat.com>
911
912 Backport from mainline
913 2019-06-14 Jonathan Wakely <jwakely (a] redhat.com>
914
915 * include/std/version (__cpp_lib_bind_front): Add missing macro.
916
917 2019-06-14 Jonathan Wakely <jwakely (a] redhat.com>
918
919 Backport from mainline
920 2019-06-12 Jonathan Wakely <jwakely (a] redhat.com>
921
922 * include/std/algorithm (__cpp_lib_parallel_algorithm): Fix value.
923 * include/std/memory (__cpp_lib_parallel_algorithm): Likewise.
924 * include/std/numeric (__cpp_lib_parallel_algorithm): Likewise.
925 * testsuite/25_algorithms/pstl/feature_test.cc: New test.
926
927 2019-06-14 Jonathan Wakely <jwakely (a] redhat.com>
928
929 Backport from mainline
930 2019-06-07 Jonathan Wakely <jwakely (a] redhat.com>
931
932 PR libstdc++/90770
933 * src/Makefile.am (stamp-debug): Also test for missing makefile.
934 * src/Makefile.in: Regenerate.
935
936 2019-06-14 Jonathan Wakely <jwakely (a] redhat.com>
937
938 Backport from mainline
939 2019-05-21 Jonathan Wakely <jwakely (a] redhat.com>
940
941 PR libstdc++/90252
942 * testsuite/lib/libstdc++.exp (check_effective_target_tbb-backend):
943 Use "additional_flags" to pass -ltbb to v3_target_compile command.
944 Use check_v3_target_prop_cached to cache the result of the test.
945
946 Backport from mainline
947 2019-05-20 Thomas Rodgers <trodgers (a] redhat.com>
948
949 PR libstdc++/90252
950 * testsuite/lib/libstdc++.exp (check_effective_target_tbb-backend):
951 Changed v3_target_compile check from preprocess to executable.
952 Added "-ltbb" to v3_target_compile flags.
953
954 Backport from mainline
955 2019-05-20 Thomas Rodgers <trodgers (a] redhat.com>
956
957 * testsuite/lib/libstdc++.exp (check_effective_target_tbb-backend):
958 Add check for Thread Building Blocks 2018 or later.
959
960 2019-06-14 Jonathan Wakely <jwakely (a] redhat.com>
961
962 Backport from mainline
963 2019-05-21 Jonathan Wakely <jwakely (a] redhat.com>
964
965 * doc/xml/manual/shared_ptr.xml: Fix names of lock policy constants.
966
967 2019-06-11 Edward Smith-Rowland <3dw4rd (a] verizon.net>
968
969 Fix ConstexprIterator requirements tests - No constexpr algorithms!
970 * testsuite/21_strings/basic_string_view/requirements/constexpr_iter.cc:
971 Replace copy with hand-rolled loop.
972 * testsuite/23_containers/array/requirements/constexpr_iter.cc:
973 Ditto.
974
975 2019-06-09 Edward Smith-Rowland <3dw4rd (a] verizon.net>
976
977 Test for C++20 p0858 - ConstexprIterator requirements.
978 * testsuite/21_strings/basic_string_view/requirements/constexpr_iter.cc:
979 New test.
980 * testsuite/23_containers/array/requirements/constexpr_iter.cc:
981 New test.
982
983 2019-06-05 Jakub Jelinek <jakub (a] redhat.com>
984
985 Backported from mainline
986 2019-05-29 Jakub Jelinek <jakub (a] redhat.com>
987
988 PR c++/90598
989 2019-05-02 Jonathan Wakely <jwakely (a] redhat.com>
990
991 * testsuite/experimental/propagate_const/requirements2.cc: Adjust
992 dg-error.
993
994 2019-06-03 Jonathan Wakely <jwakely (a] redhat.com>
995
996 PR libstdc++/90700
997 * include/std/tuple
998 (tuple(allocator_arg_t, const A&, const tuple<UTypes...>&)): Fix
999 value category of template argument to _TC::_NonNestedTuple.
1000 * testsuite/20_util/tuple/cons/90700.cc: New test.
1001
1002 PR libstdc++/90686
1003 * doc/xml/manual/status_cxx2014.xml: Document what's missing from
1004 <experimental/memory_resource>.
1005 * doc/xml/manual/status_cxx2020.xml: Document status of P0777R1,
1006 P0339R6, P0340R3, P1164R1 and P1357R1.
1007 * doc/html/*: Regenerate.
1008
1009 * include/std/tuple (make_from_tuple): Use remove_reference_t instead
1010 of decay_t (P0777R1).
1011
1012 2019-05-30 Jonathan Wakely <jwakely (a] redhat.com>
1013
1014 * doc/xml/manual/status_cxx2017.xml: Fix typo in documentation of
1015 implementation-defined support for [fs.conform.9945].
1016 * doc/xml/manual/status_cxx2020.xml: Add feature-test macro for
1017 P0811R3. Change status of P1353R0.
1018 * doc/html/*: Regenerate.
1019
1020 2019-05-28 Jonathan Wakely <jwakely (a] redhat.com>
1021
1022 Backport from mainline
1023 2019-05-28 Jonathan Wakely <jwakely (a] redhat.com>
1024
1025 PR libstdc++/90634
1026 * include/experimental/bits/fs_path.h (path::path(path&&)): Only call
1027 _M_split_cmpts() for a path with multiple components.
1028 (path::_S_is_dir_sep()): Add missing 'static' keyword to function.
1029 * src/filesystem/path.cc (path::_M_split_cmpts()): Count number of
1030 components and reserve space in vector. Return early when there is
1031 only one component.
1032 * testsuite/27_io/filesystem/path/construct/90634.cc: New test.
1033 * testsuite/experimental/filesystem/path/construct/90634.cc: New test.
1034
1035 Backport from mainline
1036 2019-05-28 Jonathan Wakely <jwakely (a] redhat.com>
1037
1038 * testsuite/util/testsuite_fs.h (compare_paths): Use three-argument
1039 form of std::equals for C++11 compatibility.
1040
1041 2019-05-24 Jonathan Wakely <jwakely (a] redhat.com>
1042
1043 Backport from mainline
1044 2019-05-24 Jonathan Wakely <jwakely (a] redhat.com>
1045
1046 * include/std/numeric (midpoint(T*, T*)): Fix incorrect result.
1047 * testsuite/26_numerics/midpoint/pointer.cc: Change "compile" test
1048 to "run".
1049
1050 Backport from mainline
1051 2019-05-17 Jonathan Wakely <jwakely (a] redhat.com>
1052
1053 * include/bits/random.h (seed_seq::param): Fix non-reserved name.
1054 * include/experimental/type_traits (is_detected_exact)
1055 (is_detected_exact_v): Likewise.
1056 * include/pstl/execution_defs.h (is_execution_policy)
1057 (is_execution_policy_v, __enable_if_execution_policy): Likewise.
1058 * include/pstl/execution_impl.h (__policy_traits): Likewise.
1059 * testsuite/17_intro/names.cc: Check for more non-reserved names.
1060 * testsuite/experimental/names.cc: New test.
1061
1062 Backport from mainline
1063 2019-05-17 Jonathan Wakely <jwakely (a] redhat.com>
1064
1065 PR libstdc++/85965
1066 * include/bits/hashtable.h (_Hashtable::~_Hashtable()): Remove static
1067 assertions from the destructor.
1068 * include/bits/hashtable_policy.h (_Hash_code_base::_M_hash_code):
1069 Move static_assert for hash function to here.
1070 (_Hash_table_base::_M_equals): Move static_assert for equality
1071 predicate to here.
1072 * include/bits/stl_tree.h (_Rb_tree::_S_key(_Const_Link_type)): Move
1073 assertions here. Access the value directly instead of calling _S_value.
1074 (_Rb_tree::_S_key(_Const_Base_ptr)): Do downcast and forward to
1075 _S_key(_Const_Link_type).
1076 * testsuite/23_containers/set/85965.cc: Check construction,
1077 destruction, assignment and size() do not trigger the assertions.
1078 * testsuite/23_containers/unordered_set/85965.cc: Likewise.
1079 * testsuite/23_containers/map/48101_neg.cc: Call find and adjust
1080 expected errors.
1081 * testsuite/23_containers/multimap/48101_neg.cc: Likewise.
1082 * testsuite/23_containers/multiset/48101_neg.cc: Likewise.
1083 * testsuite/23_containers/set/48101_neg.cc: Likewise.
1084 * testsuite/23_containers/unordered_map/48101_neg.cc: Likewise.
1085 * testsuite/23_containers/unordered_multimap/48101_neg.cc: Likewise.
1086 * testsuite/23_containers/unordered_multiset/48101_neg.cc: Likewise.
1087 * testsuite/23_containers/unordered_set/48101_neg.cc: Likewise.
1088
1089 2019-05-23 Jonathan Wakely <jwakely (a] redhat.com>
1090
1091 Backport from mainline
1092 2019-05-23 Jonathan Wakely <jwakely (a] redhat.com>
1093
1094 * include/experimental/any (__any_caster): Use RTTI if comparing
1095 addresses fails, to support non-unique addresses in shared libraries.
1096 * include/std/any (__any_caster): Likewise.
1097 * testsuite/experimental/any/misc/any_cast_neg.cc: Use 0 for dg-error
1098 line number.
1099
1100 Backport from mainline
1101 2019-05-23 Jonathan Wakely <jwakely (a] redhat.com>
1102
1103 PR libstdc++/90220
1104 * include/experimental/any (__any_caster): Constrain to only be
1105 callable for object types. Use remove_cv_t instead of decay_t.
1106 If the type decays or isn't copy constructible, compare the manager
1107 function to a dummy specialization.
1108 (__any_caster): Add overload constrained for non-object types.
1109 (any::_Manager_internal<_Op>): Add dummy specialization.
1110 * testsuite/experimental/any/misc/any_cast.cc: Test function types
1111 and array types.
1112
1113 2019-05-22 Jonathan Wakely <jwakely (a] redhat.com>
1114
1115 Backport from mainline
1116 2019-05-22 Jonathan Wakely <jwakely (a] redhat.com>
1117
1118 PR libstdc++/90557
1119 * src/c++17/fs_path.cc (path::_List::operator=(const _List&)): Fix
1120 reversed arguments to uninitialized_copy_n.
1121 * testsuite/27_io/filesystem/path/assign/copy.cc: Check that source
1122 is unchanged by copy assignment.
1123 * testsuite/util/testsuite_fs.h (compare_paths): Use std::equal to
1124 compare path components.
1125
1126 2019-05-20 Jonathan Wakely <jwakely (a] redhat.com>
1127
1128 Backported from mainline
1129 2019-05-20 Jonathan Wakely <jwakely (a] redhat.com>
1130
1131 PR c++/90532 Ensure __is_constructible(T[]) is false
1132 * include/std/type_traits (__do_is_default_constructible_impl)
1133 (__is_default_constructible_atom, __is_default_constructible_safe):
1134 Remove.
1135 (is_default_constructible): Use is_constructible.
1136 * testsuite/20_util/is_constructible/value.cc: Check int[] case.
1137 * testsuite/20_util/is_default_constructible/value.cc: Likewise.
1138 * testsuite/20_util/is_trivially_constructible/value.cc: Likewise.
1139 * testsuite/20_util/is_trivially_default_constructible/value.cc:
1140 Likewise.
1141
1142 2019-05-16 Jonathan Wakely <jwakely (a] redhat.com>
1143
1144 Backport from mainline
1145 2019-05-16 Jonathan Wakely <jwakely (a] redhat.com>
1146
1147 * src/c++17/fs_ops.cc (absolute(const path&, error_code&))
1148 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Remove bogus assertion.
1149
1150 Backport from mainline
1151 2019-05-04 Jonathan Wakely <jwakely (a] redhat.com>
1152
1153 PR libstdc++/90299
1154 * src/c++17/fs_ops.cc (absolute(const path&)): Report an error if the
1155 argument is an empty path.
1156 (absolute(const path&, error_code&)): Use invalid_argument as error
1157 code instead of no_such_file_or_directory.
1158 * testsuite/27_io/filesystem/operations/absolute.cc: Check handling
1159 of non-existent paths and empty paths with both overloads of absolute.
1160
1161 2019-05-15 Jonathan Wakely <jwakely (a] redhat.com>
1162
1163 Backport from mainline
1164 2019-04-30 Jonathan Wakely <jwakely (a] redhat.com>
1165
1166 * testsuite/27_io/filesystem/path/decompose/root_path.cc: Remove
1167 macros accidentally left in.
1168 * testsuite/27_io/filesystem/path/native/string-char8_t.cc: Remove
1169 unnecessary -lstdc++fs option. Fix test for mingw.
1170 * testsuite/experimental/filesystem/path/native/string-char8_t.cc:
1171 Fix test for mingw.
1172
1173 Backport from mainline
1174 2019-05-13 Jonathan Wakely <jwakely (a] redhat.com>
1175
1176 PR libstdc++/90454.cc path construction from void*
1177 * include/bits/fs_path.h (path::_Path): Use remove_pointer so that
1178 pointers to void are rejected as well as void.
1179 * include/experimental/bits/fs_path.h (path::_Path): Likewise.
1180 * testsuite/27_io/filesystem/path/construct/80762.cc: Also check
1181 pointers to void.
1182 * testsuite/experimental/filesystem/path/construct/80762.cc: Likewise.
1183
1184 2019-05-13 Edward Smith-Rowland <3dw4rd (a] verizon.net>
1185
1186 * doc/xml/manual/status_cxx2020.xml: Document P0811R3 status.
1187
1188 2019-05-11 Jonathan Wakely <jwakely (a] redhat.com>
1189
1190 Backport from mainline
1191 2019-05-10 Jonathan Wakely <jwakely (a] redhat.com>
1192
1193 PR libstdc++/81266
1194 * testsuite/util/thread/all.h: Do not use remove_pointer for
1195 std::thread::native_handle_type.
1196
1197 2019-05-10 Jonathan Wakely <jwakely (a] redhat.com>
1198
1199 PR libstdc++/90397
1200 * include/std/variant (variant): Add noexcept to friend declaration.
1201
1202 Backport from mainline
1203 2019-04-26 Jonathan Wakely <jwakely (a] redhat.com>
1204
1205 * include/std/memory (__uses_alloc_args): Add string-literal to
1206 static_assert, to match the one in __uses_alloc.
1207 [__cpp_concepts] (_Std_pair): Use C++2a syntax for concept.
1208 * testsuite/20_util/polymorphic_allocator/construct_c++2a.cc: Check
1209 for recursive uses-allocator construction of nested pairs.
1210 * testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc:: Add
1211 comment.
1212
1213 Backport from mainline
1214 2019-04-25 Jonathan Wakely <jwakely (a] redhat.com>
1215
1216 PR libstdc++/90239
1217 * doc/xml/manual/status_cxx2020.xml: Amend P0591R4 status.
1218 * include/std/scoped_allocator [__cplusplus > 201703L]
1219 (scoped_allocator_adaptor::construct): Define in terms of
1220 uses_allocator_construction_args, as per P0591R4.
1221 * testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc: New test.
1222 * testsuite/util/testsuite_allocator.h: Remove name of unused
1223 parameter.
1224 * doc/html/*: Regenerate.
1225
1226 2019-05-03 Release Manager
1227
1228 * GCC 9.1.0 released.
1229
1230 2019-05-01 Rainer Orth <ro (a] CeBiTec.Uni-Bielefeld.DE>
1231
1232 * config/abi/post/i386-solaris2.10/baseline_symbols.txt: Regenerate.
1233 * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: Likewise.
1234 * config/abi/post/i386-solaris2.11/baseline_symbols.txt: Likewise.
1235 * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: Likewise.
1236 * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: Likewise.
1237 * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
1238 Likewise.
1239 * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: Likewise.
1240 * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
1241 Likewise.
1242
1243 2019-04-30 Jakub Jelinek <jakub (a] redhat.com>
1244
1245 * config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Change _Lock_policyE2 exports
1246 to _Lock_policyE[012].
1247 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
1248
1249 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
1250
1251 2019-04-26 H.J. Lu <hongjiu.lu (a] intel.com>
1252
1253 Backport from mainline
1254 2019-04-26 H.J. Lu <hongjiu.lu (a] intel.com>
1255
1256 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
1257
1258 2019-04-26 Jonathan Wakely <jwakely (a] redhat.com>
1259
1260 Backport from mainline
1261 2019-04-26 Jonathan Wakely <jwakely (a] redhat.com>
1262
1263 * testsuite/20_util/variant/run.cc: Use a new Hashable type to test
1264 hashing, because pmr::string depends on _GLIBCXX_USE_CXX11_ABI==1.
1265 * testsuite/21_strings/basic_string/hash/hash.cc
1266 [!_GLIBCXX_USE_CXX11_ABI]: Don't test pmr strings.
1267 * testsuite/21_strings/basic_string/hash/hash_char8_t.cc
1268 [!_GLIBCXX_USE_CXX11_ABI]: Likewise.
1269
1270 2019-04-26 Jonathan Wakely <jwakely (a] redhat.com>
1271
1272 * config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace wildcard that matches
1273 wstring::_M_replace_dispatch with more specific patterns.
1274
1275 2019-04-26 Jakub Jelinek <jakub (a] redhat.com>
1276
1277 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Update.
1278 * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Update.
1279 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
1280 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
1281
1282 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
1283 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
1284 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
1285 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
1286 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
1287 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
1288 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
1289
1290 2019-04-25 Jonathan Wakely <jwakely (a] redhat.com>
1291
1292 PR libstdc++/90239
1293 * doc/xml/manual/status_cxx2020.xml: Correct status of P0591R4.
1294 * doc/html/*: Regenerate.
1295
1296 2019-04-24 Jonathan Wakely <jwakely (a] redhat.com>
1297
1298 * doc/xml/manual/status_cxx2017.xml: Document P0024R2 status.
1299 * doc/html/*: Regenerate.
1300
1301 * include/bits/fs_path.h (operator<, operator<=, operator>)
1302 (operator>=, operator==, operator!=): Make hidden friends, as per
1303 LWG 3065.
1304 * testsuite/27_io/filesystem/path/native/string-char8_t.cc: Fix
1305 string type in test.
1306 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
1307
1308 * include/std/any (any::any(ValueType&&)): Use __and_v.
1309 * include/std/numeric (midpoint(T, T, T), midpoint(T*, T*, T*)):
1310 Likewise.
1311
1312 * include/std/tuple (apply): Use remove_reference_t instead of decay_t
1313 as per P0777R1.
1314 * include/std/type_traits (__result_of_memfun): Use remove_reference
1315 instead of __remove_cvref_t and remove redundant is_same check.
1316 (__inv_unwrap): Use __remove_cvref_t instead of decay_t.
1317
1318 * include/experimental/string_view (basic_string_view::pointer)
1319 (basic_string_view::reference): Fix to refer to non-const value_type.
1320 * include/bits/basic_string.h (basic_string): Use __sv_check and
1321 __sv_limit instead of basic_string_view::_M_check and
1322 basic_string_view::_M_limit.
1323 * include/std/string_view (__sv_check, __sv_limit): New
1324 helper functions to replace basic_string_view::_M_check and
1325 basic_string_view::_M_limit.
1326 (basic_string_view): Add static assertions to enforce ill-formed
1327 requirement for traits_type::char_type from P1148R0, and to enforce
1328 required properties of char-like types.
1329 (basic_string_view::pointer, basic_string_view::reference): Fix to
1330 refer to non-const value_type.
1331 (basic_string_view::operator[], basic_string_view::at)
1332 (basic_string_view::front, basic_string_view::back)
1333 (basic_string_view::data): Use const_reference and const_pointer
1334 typedefs for return types.
1335 (basic_string_view::_M_check, basic_string_view::_M_limit): Remove.
1336 (hash<wstring_view>): Fix argument_type typedef.
1337 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
1338 char/1.cc: Fix expected return type of basic_string_view::data().
1339 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
1340 wchar_t/1.cc: Likewise.
1341 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
1342 char/1.cc: Likewise.
1343 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
1344 wchar_t/1.cc: Likewise.
1345 * testsuite/21_strings/basic_string_view/requirements/traits_neg.cc:
1346 New test.
1347 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
1348 Check reference and pointer typedefs.
1349 * testsuite/experimental/string_view/requirements/typedefs.cc:
1350 Likewise.
1351 * testsuite/experimental/string_view/modifiers/remove_prefix/char/1.cc:
1352 Fix expected return type of basic_string_view::data().
1353 * testsuite/experimental/string_view/modifiers/remove_prefix/wchar_t/
1354 1.cc: Likewise.
1355 * testsuite/experimental/string_view/modifiers/remove_suffix/char/1.cc:
1356 Likewise.
1357 * testsuite/experimental/string_view/modifiers/remove_suffix/wchar_t/
1358 1.cc: Likewise.
1359
1360 PR libstdc++/90220
1361 * include/std/any (__any_caster): Use remove_cv_t instead of decay_t.
1362 Avoid a runtime check for types that can never be stored in std::any.
1363 * testsuite/20_util/any/misc/any_cast.cc: Test std::any_cast with
1364 array types.
1365
1366 PR libstdc++/90220 (partial)
1367 * include/std/any (any_cast<T>(any*), any_cast<T>(const any*)): Do
1368 not attempt ill-formed static_cast to pointers to non-object types.
1369 * testsuite/20_util/any/misc/any_cast.cc: Test std::any_cast with
1370 function types.
1371
1372 * testsuite/20_util/variant/run.cc: Catch exception by reference to
1373 prevent -Wcatch-value warning.
1374
1375 * include/std/variant (__variant_construct): Use template parameter
1376 type instead of equivalent decltype-specifier.
1377 (_Move_ctor_base<false, Types...>::_Move_ctor_base(_Move_ctor_base&&)):
1378 Replace forward with move.
1379 (_Move_ctor_base<false, Types...>::_M_destructive_move)
1380 (_Move_ctor_base<false, Types...>::_M_destructive_copy)
1381 (_Move_ctor_base<true, Types...>::_M_destructive_move)
1382 (_Move_ctor_base<true, Types...>::_M_destructive_copy): Only set the
1383 index after construction succeeds.
1384 (_Copy_assign_base<false, Types...>::operator=): Remove redundant
1385 if-constexpr checks that are always true. Use __remove_cvref_t instead
1386 of remove_reference so that is_nothrow_move_constructible check
1387 doesn't use a const rvalue parameter. In the potentially-throwing case
1388 construct a temporary and move assign it, as per LWG 2904.
1389 (_Move_assign_base<false, Types...>::operator=): Remove redundant
1390 if-constexpr checks that are always true. Use emplace as per LWG 2904.
1391 (variant::operator=(T&&)): Only use emplace conditionally, otherwise
1392 construct a temporary and move assign from it, as per LWG 2904.
1393 * testsuite/20_util/variant/exception_safety.cc: Check that
1394 assignment operators have strong exception safety guarantee.
1395
1396 2019-04-23 Thomas Rodgers <trodgers (a] redhat.com>
1397
1398 Document PSTL linker flags
1399
1400 * doc/xml/manual/using.xml: Add PSTL linker flags to table 3.1.
1401
1402 2019-04-23 Jonathan Wakely <jwakely (a] redhat.com>
1403
1404 * include/std/variant (__detail::__variant::_Traits): Make
1405 _S_trivial_copy_assign depend on _S_trivial_copy_ctor and make
1406 _S_trivial_move_assign depend on _S_trivial_move_ctor, as per
1407 P0602R4.
1408 (__detail::__variant::_Copy_assign_alias): Only depend on
1409 _S_trivial_copy_assign, which subsumes _S_trivial_copy_ctor now.
1410 * testsuite/20_util/variant/compile.cc: Correct checks for trivial
1411 move assignment operators.
1412
1413 PR libstdc++/90165
1414 * include/std/variant (variant::__not_self): New helper for the
1415 is_same_v<remove_cvref_t<T>, variant>==false constraints.
1416 (variant::__to_type_impl): Remove.
1417 (variant::__to_type): Add default argument to check pack size, instead
1418 of using __to_type_impl.
1419 (variant::__accepted_type): Add default argument using __not_self.
1420 (variant::__is_in_place_tag, variant::__not_in_place_tag): New helpers
1421 for variant(T&&) constructor constraint.
1422 (variant::variant(T&&)): Use __not_in_place_tag in constraints.
1423 Extract __accepted_type into a named template parameter for reuse in
1424 other constraints and in the exception specification.
1425 (variant::variant(in_place_type_t<T>, Args&&...))
1426 (variant::variant(in_place_type_t<T>, initializer_list<U>, Args&&...))
1427 (variant::variant(in_place_index_t<T>, Args&&...))
1428 (variant::variant(in_place_index_t<T>, initializer_list<U>, Args&&...))
1429 (variant::operator=T&&)): Remove redundant && from trait arguments.
1430 * testsuite/20_util/variant/compile.cc: Check variant(T&&) constructor
1431 isn't used for in_place_type or in_place_index arguments.
1432
1433 * include/std/type_traits (unwrap_reference_t): Define for C++2a.
1434 (unwrap_ref_decay): Remove inheritance from unwrap_reference.
1435 * testsuite/20_util/unwrap_reference/1.cc: Adjust test to use alias.
1436
1437 2019-04-23 Ramana Radhakrishnan <ramana.radhakrishnan (a] arm.com>
1438 Bernd Edlinger <bernd.edlinger (a] hotmail.de>
1439 Jakub Jelinek <jakub (a] redhat.com>
1440
1441 PR target/89093
1442 * libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Add
1443 general-regs-only target attribute for ARM.
1444
1445 2019-04-23 Jonathan Wakely <jwakely (a] redhat.com>
1446
1447 PR libstdc++/87431
1448 * include/bits/basic_string.h (_Never_valueless_alt): Make partial
1449 specialization also depend on is_nothrow_move_constructible.
1450 * include/std/variant (__detail::__variant::__never_valueless()):
1451 Only true if the variant would have a move assignment operator.
1452 (__detail::__variant::_Variant_storage<false, T...>::_M_valid()):
1453 Check __never_valueless<T...>().
1454 (variant::emplace): Only perform non-throwing move assignments
1455 for never-valueless alternatives if the variant has a move assignment
1456 operator.
1457 * testsuite/20_util/variant/compile.cc: Check that never-valueless
1458 types can be emplaced into non-assignable variants.
1459 * testsuite/20_util/variant/run.cc: Check that never-valueless types
1460 don't get copied when emplaced into non-assignable variants.
1461
1462 * include/std/variant (__detail::__variant::__ref_cast): Remove
1463 unused function.
1464 (__detail::__variant::_Uninitialized::_M_get)
1465 (__detail::__variant::__get)
1466 (__gen_vtable_impl::__element_by_index_or_cookie): Add noexcept.
1467
1468 2019-04-21 Iain Sandoe <iain (a] sandoe.co.uk>
1469
1470 * testsuite/17_intro/headers/c++1998/charset.cc: Skip for Darwin8
1471 to Darwin10.
1472 * testsuite/17_intro/headers/c++2011/charset.cc: Likewise.
1473 * testsuite/17_intro/headers/c++2014/charset.cc: Likewise.
1474 * testsuite/17_intro/headers/c++2017/charset.cc: Likewise.
1475 * testsuite/17_intro/headers/c++2020/charset.cc: Likewise.
1476
1477 2019-04-20 Thomas Rodgers <trodgers (a] redhat.com>
1478
1479 Delegate PSTL configuration to pstl/pstl_config.h
1480
1481 * include/bits/c++config: Remove explicit PSTL configuration
1482 macros and use definitions from <pstl/pstl_config.h>.
1483
1484 2019-04-20 Thomas Rodgers <trodgers (a] redhat.com>
1485
1486 Cleanup algorithm implementations
1487 * include/pstl/glue_algorithm_impl.h (stable_sort): Forward
1488 execution policy.
1489 (mismatch): Forward execution policy.
1490 (equal): Qualify call to std::equal().
1491 (partial_sort): Forward execution policy.
1492 (inplace_merge): Forward execution policy.
1493
1494 2019-04-19 Thomas Rodgers <trodgers (a] redhat.com>
1495
1496 Improve implementation of parallel equal()
1497 * include/pstl/algorithm_impl.h
1498 (__internal::__brick_equal): use "4 iterator" version of
1499 std::equal().
1500 (__internal::__brick_equal): use simd for random access
1501 iterators on unsequenced execution policies.
1502 (__internal::__pattern_equal): add "4 iterator" version
1503 (__internal::__pattern_equal): dispatch to simd __brick_equal
1504 for vector-only execution policies.
1505 (__internal::__pattern_equal): dispatch to __parallel_or for
1506 parallel execution policies.
1507 * include/pstl/glue_algorithm_impl.h
1508 (std::equal): dispatch to "4 iterator" version of
1509 __internal::__pattern_equal().
1510
1511 2019-04-17 Jonathan Wakely <jwakely (a] redhat.com>
1512
1513 PR libstdc++/90105
1514 * include/bits/forward_list.h (operator==): Do not use operator!= to
1515 compare elements.
1516 (forward_list<T, A>::sort(Comp)): When elements are equal take the one
1517 earlier in the list, so that sort is stable.
1518 * testsuite/23_containers/forward_list/operations/90105.cc: New test.
1519 * testsuite/23_containers/forward_list/comparable.cc: Test with
1520 types that meet the minimum EqualityComparable and LessThanComparable
1521 requirements. Remove irrelevant comment.
1522
1523 * include/std/variant (__detail::__variant::_Traits::_S_copy_assign):
1524 Do not depend on whether all alternative types are move constructible.
1525 (__detail::__variant::_Copy_assign_base::operator=): Remove cv-quals
1526 from the operand when deciding whether to perform the assignment.
1527 * testsuite/20_util/variant/compile.cc (DeletedMoves): Define type
1528 with deleted move constructor and deleted move assignment operator.
1529 (default_ctor, copy_ctor, move_ctor, copy_assign, move_assign): Check
1530 behaviour of variants with DeletedMoves as an alternative.
1531 * testsuite/20_util/variant/run.cc (DeletedMoves): Define same type.
1532 (move_ctor, move_assign): Check that moving a variant with a
1533 DeletedMoves alternative falls back to copying instead of moving.
1534
1535 * testsuite/20_util/variant/compile.cc: Remove empty string literals
1536 from static_assert declarations.
1537
1538 * testsuite/20_util/variant/compile.cc (MoveCtorOnly): Fix type to
1539 actually match its name.
1540 (MoveCtorAndSwapOnly): Define new type that adds swap to MoveCtorOnly.
1541 (test_swap()): Fix result for MoveCtorOnly and check
1542 MoveCtorAndSwapOnly.
1543
1544 * include/std/optional (optional::value_or(U&&) &&): Add missing
1545 constexpr specifier.
1546 * testsuite/20_util/optional/constexpr/observers/4.cc: Check value_or
1547 for disengaged optionals and rvalue optionals.
1548 * testsuite/20_util/optional/observers/4.cc: Likewise.
1549
1550 2019-04-12 Thomas Rodgers <trodgers (a] redhat.com>
1551
1552 * include/pstl/algorithm_impl.h: Uglify identfiers.
1553 * include/pstl/numeric_impl.h: Uglify identfiers.
1554 * include/pstl/parallel_backend_tbb.h: Uglify identfiers.
1555
1556 2019-04-11 Thomas Rodgers <trodgers (a] redhat.com>
1557
1558 * include/bits/c++config:
1559 Add definition for __PSTL_ASSERT.
1560 Add definition for __PSTL_ASSERT_MSG.
1561 * include/pstl/algorithm_impl.h: Replace use of assert().
1562 * include/pstl/numeric_impl.h: Replace use of assert().
1563 * include/pstl/parallel_backend_tbb.h:
1564 Replace use of assert().
1565 Replace use of __TBB_ASSERT().
1566 * include/pstl/parallel_backend_utils.h: Replace use of assert().
1567
1568 2019-04-11 Jonathan Wakely <jwakely (a] redhat.com>
1569
1570 PR libstdc++/90046
1571 * src/c++17/memory_resource.cc
1572 (monotonic_buffer_resource::_Chunk::allocate): Increase alignment if
1573 needed to allow placing a _Chunk at the end of the buffer.
1574 (monotonic_buffer_resource::_M_new_buffer): Remove static_assert.
1575
1576 2019-04-10 Jonathan Wakely <jwakely (a] redhat.com>
1577
1578 * doc/xml/faq.xml: Add information about emergency EH pool.
1579 * doc/xml/manual/debug.xml: Update list of memory debugging tools.
1580 Move outdated information on mt_allocator to a separate section.
1581 * doc/xml/manual/evolution.xml: Clarify that GLIBCXX_FORCE_NEW
1582 doesn't affect the default allocator.
1583
1584 * testsuite/lib/libstdc++.exp (check_v3_target_parallel_mode): Fix
1585 typo.
1586
1587 PR libstdc++/89851
1588 * testsuite/20_util/variant/89851.cc: New test.
1589
1590 2019-04-09 Jonathan Wakely <jwakely (a] redhat.com>
1591
1592 * include/std/variant: Adjust whitespace. Add comments.
1593 (_Multi_array): Leave primary template undefined.
1594 (_Multi_array<_Tp>): Define partial specialization for base case of
1595 recursion.
1596 (__gen_vtable_impl, __gen_vtable): Remove redundant && from type
1597 which is always a reference.
1598 (__gen_vtable::_S_apply()): Remove function, inline body into
1599 default member initializer.
1600 * testsuite/20_util/variant/visit.cc: Test with noncopyable types.
1601
1602 * include/std/variant (__variant_idx_cookie): Add member type.
1603 (__visitor_result_type): Remove.
1604 (__do_visit): Use invoke_result instead of __visitor_result_type.
1605 * testsuite/20_util/variant/visit.cc: New test.
1606
1607 PR libstdc++/90008
1608 * include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Remove
1609 unused capture.
1610 * testsuite/20_util/variant/90008.cc: New test.
1611
1612 2019-04-09 Thomas Rodgers <trodgers (a] redhat.com>
1613
1614 * include/pstl/algorithm_impl.h: Add namespace qualification.
1615 * include/pstl/execution_defs.h: Add namespace qualification.
1616 * include/pstl/execution_impl.h: Add namespace qualification.
1617 * include/pstl/numeric_impl.h: Add namespace qualification.
1618 * include/pstl/parallel_backend_tbb.h: Add namespace qualification.
1619 * include/pstl/unseq_backend_simd.h: Add namespace qualification.
1620 * include/pstl/parallel_backend_utils.h: Include <cassert>.
1621
1622 2019-04-08 Ville Voutilainen <ville.voutilainen (a] gmail.com>
1623
1624 Fix visit<R> for variant.
1625 * include/std/variant (__do_visit): Add a template parameter
1626 for enforcing same return types for visit.
1627 (__gen_vtable_impl): Likewise.
1628 (_S_apply_single_alt): Adjust.
1629 (__visit_invoke_impl): New. Handle casting to void.
1630 (__do_visit_invoke): New. Enforces same return types.
1631 (__do_visit_invoke_r): New. Converts return types.
1632 (__visit_invoke): Adjust.
1633 (__gen_vtable): Add a template parameter for enforcing
1634 same return types for visit.
1635 * testsuite/20_util/variant/visit_r.cc: Add a test for a visitor with
1636 different return types.
1637 * testsuite/20_util/variant/visit_neg.cc: New. Ensures that
1638 visitors with different return types don't accidentally
1639 compile with regular visitation.
1640
1641 2019-04-08 Christophe Lyon <christophe.lyon (a] linaro.org>
1642
1643 * testsuite/27_io/filesystem/iterators/caching.cc: Add
1644 dg-require-filesystem-ts.
1645
1646 2019-04-05 Jonathan Wakely <jwakely (a] redhat.com>
1647
1648 * doc/xml/manual/status_cxx2020.xml: Update status.
1649 * include/std/variant (visit<R>): Define for C++2a (P0655R1).
1650 * testsuite/20_util/variant/visit_r.cc: New test.
1651
1652 * include/bits/fs_dir.h (directory_iterator::operator*)
1653 (directory_iterator::operator->): Add noexcept.
1654 (operator==, operator!=): Replace namespace-scope equality operators
1655 for directory iterators with hidden friends.
1656
1657 PR libstdc++/89986
1658 * config/abi/pre/gnu.ver: Add missing exports.
1659 * testsuite/27_io/filesystem/iterators/directory_iterator.cc: Test
1660 increment member.
1661
1662 * config/abi/pre/gnu.ver: Export new symbols.
1663 * include/bits/fs_dir.h (recursive_directory_iterator::options())
1664 (recursive_directory_iterator::recursion_pending())
1665 (recursive_directory_iterator::disable_recursion_pending()): Remove
1666 inline definitions. Make noexcept.
1667 (recursive_directory_iterator::depth())
1668 (recursive_directory_iterator::operator*())
1669 (recursive_directory_iterator::operator->()): Make noexcept.
1670 (recursive_directory_iterator::_M_options)
1671 (recursive_directory_iterator::_M_pending): Remove data members.
1672 * src/c++17/fs_path.cc (_Dir_stack): Add constructor and data members.
1673 (recursive_directory_iterator::recursive_directory_iterator): Remove
1674 ctor-initializer. Use new constructor for _Dir_stack.
1675 (recursive_directory_iterator::options())
1676 (recursive_directory_iterator::recursion_pending())
1677 (recursive_directory_iterator::disable_recursion_pending()): Add
1678 non-inline definitions.
1679 (recursive_directory_iterator::depth()): Make noexcept.
1680 (recursive_directory_iterator::increment(error_code&))
1681 (recursive_directory_iterator::pop(error_code&)): Adjust to new
1682 location of options and recursion_pending members.
1683 * testsuite/27_io/filesystem/iterators/recursion_pending.cc: New test.
1684 * testsuite/util/testsuite_fs.h (__gnu_test::scoped_file): Add
1685 user-declared move constructor and assignment operator, to make the
1686 type move-only.
1687
1688 * src/c++17/fs_dir.cc (_Dir::advance(bool, error_code&)): Handle
1689 d_type == DT_UNKNOWN immediately.
1690 (_Dir::should_recurse(bool, error_code&)): Remove file_type::unknown
1691 handling here.
1692 * testsuite/27_io/filesystem/iterators/caching.cc: New test.
1693
1694 * include/bits/fs_path.h (path::operator=(path&&)): Check for self
1695 assignment.
1696 * src/c++17/fs_path.cc (path::operator=(const path&)): Likewise.
1697 * testsuite/27_io/filesystem/path/assign/copy.cc: Test self
1698 assignment.
1699
1700 PR libstdc++/87431 (again)
1701 * include/bits/basic_string.h (__variant::_Never_valueless_alt):
1702 Define partial specialization for basic_string.
1703 * include/bits/shared_ptr.h (_Never_valueless_alt): Likewise for
1704 shared_ptr and weak_ptr.
1705 * include/bits/std_function.h (_Never_valueless_alt): Likewise for
1706 function.
1707 * include/bits/stl_vector.h (_Never_valueless_alt): Likewise for
1708 vector.
1709 * include/bits/unique_ptr.h (_Never_valueless_alt): Likewise for
1710 unique_ptr.
1711 * include/debug/vector (_Never_valueless_alt): Likewise for debug
1712 vector.
1713 * include/std/any (_Never_valueless_alt): Define explicit
1714 specialization for any.
1715 * include/std/variant (_Never_valueless_alt): Define primary template.
1716 (__never_valueless): Use _Never_valueless_alt instead of
1717 is_trivially_copyable.
1718 (variant::emplace<N>(Args&&...)): Add special case for non-throwing
1719 initializations to avoid try-catch overhead. Add special case for
1720 scalars produced by potentially-throwing conversions. Use
1721 _Never_valueless_alt instead of is_trivially_copyable for the
1722 remaining strong exception-safety cases.
1723 (variant::emplace<N>(initializer_list<U>, Args&&...)): Likewise.
1724 * testsuite/20_util/variant/87431.cc: Run both test functions.
1725 * testsuite/20_util/variant/exception_safety.cc: New test.
1726 * testsuite/20_util/variant/run.cc: Use pmr::string instead of string,
1727 so the variant becomes valueless.
1728
1729 2019-04-03 Jonathan Wakely <jwakely (a] redhat.com>
1730
1731 PR libstdc++/85184
1732 * include/std/variant (_Copy_assign_base, _Move_assign_base, variant):
1733 Remove assertions.
1734 (variant::emplace<_Tp>): Return result of emplace<N> directly.
1735
1736 * include/std/string (__hash_string_base): New class template defining
1737 operator() for hashing strings.
1738 (hash<pmr::string>, hash<pmr::u8string>, hash<pmr::u16string>)
1739 (hash<pmr::u32string>, hash<pmr::wstring>): Define for C++17.
1740 * testsuite/21_strings/basic_string/hash/hash.cc: New test.
1741 * testsuite/21_strings/basic_string/hash/hash_char8_t.cc: New test.
1742
1743 2019-04-01 Ville Voutilainen <ville.voutilainen (a] gmail.com>
1744
1745 Use single-visitation in variant assignment and swap and relops.
1746 Also use indices instead of types when checking whether
1747 variants hold the same thing.
1748 * include/std/variant (__do_visit): Add a template parameter
1749 for index visitation, invoke with indices if index visitation
1750 is used.
1751 (__variant_idx_cookie): New.
1752 (__visit_with_index): Likewise.
1753 (_Copy_assign_base::operator=): Do single-visitation with
1754 an index visitor.
1755 (_Move_assign_base::operator=): Likewise.
1756 (_Extra_visit_slot_needed): Adjust.
1757 (__visit_invoke): Call with indices if it's an index visitor.
1758 (relops): Do single-visitation with an index visitor.
1759 (swap): Likewise.
1760 (__visitor_result_type): New.
1761
1762 2019-03-30 Eric Botcazou <ebotcazou (a] adacore.com>
1763
1764 * src/c++17/fs_ops.cc (fs::permissions): Use std::errc::not_supported.
1765
1766 2019-03-28 Ville Voutilainen <ville.voutilainen (a] gmail.com>
1767
1768 Don't revisit a variant we are already visiting.
1769 * include/std/variant (__variant_construct_single): New.
1770 (__variant_construct): Use it.
1771 (_M_destructive_move): Likewise.
1772 (_M_destructive_copy): Likewise.
1773 (_Copy_assign_base::operator=): Adjust.
1774 (_Move_assign_base::operator=): Likewise.
1775 (swap): Likewise.
1776
1777 2019-03-26 Jonathan Wakely <jwakely (a] redhat.com>
1778
1779 PR libstdc++/85965
1780 * include/bits/hashtable.h (_Hashtable): Move static assertions to
1781 destructor so they are not evaluated until the _Key type is complete.
1782 * include/bits/stl_tree.h (_Rb_tree): Likewise.
1783 * testsuite/23_containers/set/85965.cc: New test.
1784 * testsuite/23_containers/unordered_set/85965.cc: New test.
1785 * testsuite/23_containers/map/48101_neg.cc: Replace "here" errors
1786 with regexp matching the corresponding _Rb_tree specialization.
1787 * testsuite/23_containers/multimap/48101_neg.cc: Likewise.
1788 * testsuite/23_containers/multiset/48101_neg.cc: Remove "here" error.
1789 * testsuite/23_containers/set/48101_neg.cc: Likewise.
1790 * testsuite/23_containers/unordered_map/48101_neg.cc: Likewise.
1791 * testsuite/23_containers/unordered_multimap/48101_neg.cc: Likewise.
1792 * testsuite/23_containers/unordered_multiset/48101_neg.cc: Likewise.
1793 * testsuite/23_containers/unordered_set/48101_neg.cc: Likewise.
1794
1795 2019-03-26 Ville Voutilainen <ville.voutilainen (a] gmail.com>
1796
1797 PR libstdc++/89825
1798 Fix based on a suggestion by Antony Polukhin.
1799 * include/std/variant (__never_valueless): New.
1800 (_M_valid): Use it.
1801 (_Extra_visit_slot_needed): New.
1802 (_Multi_array): Use it.
1803 (_S_apply_all_alts): Likewise.
1804
1805 2019-03-26 Ville Voutilainen <ville.voutilainen (a] gmail.com>
1806
1807 PR libstdc++/89824
1808 Fix based on a suggestion by Antony Polukhin.
1809 * include/std/variant (__gen_vtable): Don't reserve an
1810 additional table slot, _Multi_array already does that.
1811
1812 2019-03-26 Ville Voutilainen <ville.voutilainen (a] gmail.com>
1813
1814 PR libstdc++/89816
1815 Fix based on a suggestion by Antony Polukhin.
1816 * include/std/variant (__variant_construct): Capture a pointer
1817 to the storage and visit just one variant.
1818
1819 2019-03-22 Jonathan Wakely <jwakely (a] redhat.com>
1820
1821 * doc/xml/manual/backwards_compatibility.xml: Remove link to
1822 Doxygen-generated pages with unstable URL.
1823 * doc/xml/manual/concurrency_extensions.xml: Likewise.
1824 * doc/xml/manual/extensions.xml: Likewise.
1825 * doc/xml/manual/parallel_mode.xml: Likewise.
1826 * doc/xml/manual/support.xml: Likewise.
1827
1828 * include/bits/stl_algobase.h (__lg): Do arithmetic on type int to
1829 avoid -Wconversion warnings.
1830
1831 2019-03-21 Thomas Rodgers <trodgers (a] redhat.com>
1832
1833 * include/Makefile.am (std_header): Add ${std_srcdir}/execution.
1834 (pstl_srcdir, pstl_builddir, pstl_headers): New variables.
1835 (allstamped): Add stamp-pstl.
1836 (install-headers): Add ptsl_builddir.
1837 * include/Makefile.in: Regenerate.
1838 * include/bits/c++config: Add pstl configuration.
1839 * include/pstl/LICENSE.txt: New file.
1840 * include/pstl/algorithm_fwd.h: New file.
1841 * include/pstl/algorithm_impl.h: New file.
1842 * include/pstl/execution_defs.h: New file.
1843 * include/pstl/execution_impl.h: New file.
1844 * include/pstl/glue_algorithm_defs.h: New file.
1845 * include/pstl/glue_algorithm_impl.h: New file.
1846 * include/pstl/glue_execution_defs.h: New file.
1847 * include/pstl/glue_memory_defs.h: New file.
1848 * include/pstl/glue_memory_impl.h: New file.
1849 * include/pstl/glue_numeric_defs.h: New file.
1850 * include/pstl/glue_numeric_impl.h: New file.
1851 * include/pstl/memory_impl.h: New file.
1852 * include/pstl/numeric_fwd.h: New file.
1853 * include/pstl/numeric_impl.h: New file.
1854 * include/pstl/parallel_backend.h: New file.
1855 * include/pstl/parallel_backend_tbb.h: New file.
1856 * include/pstl/parallel_backend_utils.h: New file.
1857 * include/pstl/parallel_impl.h: New file.
1858 * include/pstl/pstl_config.h: New file.
1859 * include/pstl/unseq_backend_simd.h: New file.
1860 * include/pstl/utils.h: New file.
1861 * include/std/algorithm: Include parallel algorithm implementations.
1862 * include/std/execution: New file.
1863 * include/std/memory: Include parallel algorithm implementations.
1864 * include/std/numeric: Include parallel algorithm implementations.
1865 * include/std/version: Add parallel algorithms feature test macro.
1866 * testsuite/util/pstl/pstl_test_config.h: New file.
1867 * testsuite/util/pstl/test_utils.h: New file.
1868 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc: New file.
1869 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc: New file.
1870 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc: New file.
1871 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: New file.
1872 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: New file.
1873 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc: New file.
1874 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc: New file.
1875 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc: New file.
1876 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc: New file.
1877 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc: New file.
1878 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc: New file.
1879 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc: New file.
1880 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc: New file.
1881 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc: New file.
1882 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc: New file.
1883 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc: New file.
1884 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc: New file.
1885 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc: New file.
1886 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc: New file.
1887 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc: New file.
1888 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc: New file.
1889 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc: New file.
1890 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc: New file.
1891 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc: New file.
1892 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc: New file.
1893 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc: New file.
1894 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc: New file.
1895 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc: New file.
1896 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc: New file.
1897 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc: New file.
1898 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc: New file.
1899 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc: New file.
1900 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc: New file.
1901 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc: New file.
1902 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc: New file.
1903 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc: New file.
1904 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc: New file.
1905 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc: New file.
1906 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc: New file.
1907 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc: New file.
1908 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: New file.
1909 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc: New file.
1910 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc: New file.
1911 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc: New file.
1912 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc: New file.
1913 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc: New file.
1914 * testsuite/25_algorithms/pstl/alg_sorting/set.cc: New file.
1915 * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: New file.
1916 * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc: New file.
1917 * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: New file.
1918 * testsuite/26_numerics/pstl/numeric_ops/scan.cc: New file.
1919 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc: New file.
1920 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc: New file.
1921 * testsuite/testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc: New file.
1922 * testsuite/testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc: New file.
1923 * testsuite/testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc: New file.
1924 * testsuite/testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: New file.
1925 * testsuite/testsuite/25_algorithms/pstl/alg_merge/merge.cc: New file.
1926 * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc: New file.
1927 * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc: New file.
1928 * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc: New file.
1929 * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc: New file.
1930 * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc: New file.
1931 * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc: New file.
1932 * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc: New file.
1933 * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc: New file.
1934 * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc: New file.
1935 * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc: New file.
1936 * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc: New file.
1937 * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc: New file.
1938 * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc: New file.
1939 * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc: New file.
1940 * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc: New file.
1941 * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc: New file.
1942 * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc: New file.
1943 * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc: New file.
1944 * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc: New file.
1945 * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc: New file.
1946 * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc: New file.
1947 * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc: New file.
1948 * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc: New file.
1949 * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc: New file.
1950 * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc: New file.
1951 * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc: New file.
1952 * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc: New file.
1953 * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc: New file.
1954 * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc: New file.
1955 * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc: New file.
1956 * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc: New file.
1957 * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc: New file.
1958 * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc: New file.
1959 * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc: New file.
1960 * testsuite/testsuite/25_algorithms/pstl/alg_sorting/includes.cc: New file.
1961 * testsuite/testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: New file.
1962 * testsuite/testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc: New file.
1963 * testsuite/testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc: New file.
1964 * testsuite/testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc: New file.
1965 * testsuite/testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc: New file.
1966 * testsuite/testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc: New file.
1967 * testsuite/testsuite/25_algorithms/pstl/alg_sorting/set.cc: New file.
1968 * testsuite/testsuite/25_algorithms/pstl/alg_sorting/sort.cc: New file.
1969 * testsuite/testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc: New file.
1970 * testsuite/testsuite/26_numerics/pstl/numeric_ops/reduce.cc: New file.
1971 * testsuite/testsuite/26_numerics/pstl/numeric_ops/scan.cc: New file.
1972 * testsuite/testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc: New file.
1973 * testsuite/testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc: New file.
1974
1975 2019-03-21 Jonathan Wakely <jwakely (a] redhat.com>
1976
1977 * include/c_compatibility/math.h [!__STDCPP_WANT_MATH_SPEC_FUNCS__]
1978 (assoc_laguerre, assoc_laguerref, assoc_laguerrel, assoc_legendre)
1979 (assoc_legendref, assoc_legendrel, beta, betaf, betal, comp_ellint_1)
1980 (comp_ellint_1f, comp_ellint_1l, comp_ellint_2, comp_ellint_2f)
1981 (comp_ellint_2l, comp_ellint_3, comp_ellint_3f, comp_ellint_3l)
1982 (cyl_bessel_i, cyl_bessel_if, cyl_bessel_il, cyl_bessel_j)
1983 (cyl_bessel_jf, cyl_bessel_jl, cyl_bessel_k, cyl_bessel_kf)
1984 (cyl_bessel_kl, cyl_neumann, cyl_neumannf, cyl_neumannl, ellint_1)
1985 (ellint_1f, ellint_1l, ellint_2, ellint_2f, ellint_2l, ellint_3)
1986 (ellint_3f, ellint_3l, expint, expintf, expintl, hermite, hermitef)
1987 (hermitel, laguerre, laguerref, laguerrel, legendre, legendref)
1988 (legendrel, riemann_zeta, riemann_zetaf, riemann_zetal, sph_bessel)
1989 (sph_besself, sph_bessell, sph_legendre, sph_legendref, sph_legendrel)
1990 (sph_neumann, sph_neumannf, sph_neumannl): Only add using-declarations
1991 when the special functions IS is enabled, not for C++17.
1992 * testsuite/26_numerics/headers/cmath/functions_global_c++17.cc:
1993 Replace with ...
1994 * testsuite/26_numerics/headers/cmath/functions_global.cc: New test,
1995 without checks for special functions in C++17.
1996 * testsuite/26_numerics/headers/cmath/special_functions_global.cc:
1997 New test.
1998
1999 PR libstdc++/88066
2000 * include/backward/hash_map: Use <> for includes not "".
2001 * include/backward/hash_set: Likewise.
2002 * include/backward/strstream: Likewise.
2003 * include/tr1/bessel_function.tcc: Likewise.
2004 * include/tr1/exp_integral.tcc: Likewise.
2005 * include/tr1/legendre_function.tcc: Likewise.
2006 * include/tr1/modified_bessel_func.tcc: Likewise.
2007 * include/tr1/riemann_zeta.tcc: Likewise.
2008
2009 2019-03-19 Jonathan Wakely <jwakely (a] redhat.com>
2010
2011 * doc/xml/manual/allocator.xml: Link to table documenting evolution
2012 of extension allocators.
2013 * doc/xml/manual/evolution.xml: Use angle brackets for header names.
2014 Document new headers in 7.2, 8.1 and 9.1 releases.
2015 * doc/xml/manual/using.xml: Adjust link target for new_allocator.
2016 * doc/html/*: Regenerate.
2017
2018 2019-03-12 John David Anglin <dave.anglin (a] bell.net>
2019
2020 PR libstdc++/89461
2021 * testsuite/lib/libstdc++.exp: Locate libatomic.
2022 * testsuite/lib/dg-options.exp (add_options_for_libatomic): New.
2023 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Add
2024 libatomic options.
2025 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
2026 * testsuite/experimental/net/timer/waitable/cons.cc: Likewise.
2027 * testsuite/experimental/net/timer/waitable/dest.cc: Likewise.
2028 * testsuite/experimental/net/timer/waitable/ops.cc: Likewise.
2029
2030 2019-03-11 Jonathan Wakely <jwakely (a] redhat.com>
2031
2032 PR libstdc++/89460
2033 * configure.ac: Check for sockatmark.
2034 * crossconfig.m4: Check for sockatmark.
2035 * config.h.in: Regenerate.
2036 * configure: Regenerate.
2037 * include/experimental/internet (address_v4::_S_hton): Rename
2038 overloaded functions to _S_hton_16 and _S_ntoh_16.
2039 (address_v4::_S_ntoh): Rename to _S_ntoh_16 and _S_ntoh_32.
2040 (basic_endpoint): Adjust calls to _S_hton and _S_ntoh.
2041 * include/experimental/socket (basic_socket::at_mark): Check
2042 _GLIBCXX_HAVE_SOCKATMARK.
2043
2044 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: Use
2045 const variables instead of macros.
2046
2047 PR libstdc++/89629
2048 * libsupc++/hash_bytes.cc [__SIZEOF_SIZE_T__ == 8] (_Hash_bytes):
2049 Use correct type for len_aligned.
2050 * testsuite/20_util/hash/89629.cc: New test.
2051
2052 2019-03-11 Jakub Jelinek <jakub (a] redhat.com>
2053
2054 PR libstdc++/89641
2055 * include/std/atomic (atomic<T>::store, atomic<T>::load,
2056 atomic<T>::exchange, atomic<T>::compare_exchange_weak,
2057 atomic<T>::compare_exchange_strong): Cast __m or __s and __f to int.
2058 * include/bits/atomic_base.h (__atomic_base<T>::operator++,
2059 __atomic_base<T>::operator--, __atomic_base<T>::operator+=,
2060 __atomic_base<T>::operator-=, __atomic_base<T>::operator&=,
2061 __atomic_base<T>::operator|=, __atomic_base<T>::operator^=,
2062 __atomic_base<T*>::operator++, __atomic_base<T*>::operator--,
2063 __atomic_base<T*>::operator+=, __atomic_base<T*>::operator-=): Cast
2064 memory_order_seq_cst to int.
2065
2066 2019-03-08 Jonathan Wakely <jwakely (a] redhat.com>
2067
2068 * doc/xml/manual/using.xml: Use link element instead of xref.
2069 * doc/html/*: Regenerate.
2070
2071 * include/bits/fs_path.h (path::format): Add fixed underlying type.
2072
2073 2019-03-08 Franois Dumont <fdumont (a] gcc.gnu.org>
2074
2075 PR libstdc++/89477
2076 * include/debug/map.h (map): Use _RequireNotAllocator to constrain
2077 parameters in deduction guides.
2078 * include/debug/multimap.h (multimap): Likewise.
2079 * include/debug/set.h (multimap): Likewise.
2080 * include/debug/multiset.h (multimap): Likewise.
2081 * include/debug/unordered_map (unordered_map): Likewise.
2082 (unordered_multimap): Likewise.
2083 * include/debug/unordered_set (unordered_set): Likewise.
2084 (unordered_multiset): Likewise.
2085
2086 PR libstdc++/89608
2087 * include/debug/unordered_map (unordered_map<>::_M_check_rehashed):
2088 Invalidate all iterators in case of rehash.
2089 (unordered_multimap<>::_M_check_rehashed): Likewise.
2090 * include/debug/unordered_set
2091 (unordered_set<>::_M_check_rehashed): Likewise.
2092 (unordered_multiset<>::_M_check_rehashed): Likewise.
2093 * testsuite/23_containers/unordered_set/debug/89608_neg.cc: New.
2094
2095 2019-03-07 Andreas Schwab <schwab (a] suse.de>
2096
2097 * config/abi/post/riscv64-linux-gnu: New directory.
2098 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: New file.
2099
2100 2019-03-07 Jonathan Wakely <jwakely (a] redhat.com>
2101
2102 * testsuite/20_util/function_objects/bind_front/1.cc: Change from
2103 compile test to run. Fix typo.
2104
2105 * doc/xml/manual/status_cxx2020.xml: Update C++20 status.
2106 * doc/html/*: Regenerate.
2107
2108 P0356R5 Simplified partial function application
2109 * include/std/functional [C++20] (_Bind_front, _Bind_front_t): Define
2110 helpers for bind_front.
2111 (bind_front, __cpp_lib_bind_front): Define.
2112 * testsuite/20_util/function_objects/bind_front/1.cc: New test.
2113
2114 2019-03-06 Jonathan Wakely <jwakely (a] redhat.com>
2115
2116 * include/std/type_traits (__cpp_lib_bounded_array_traits): Define.
2117 * include/std/version (__cpp_lib_bounded_array_traits): Likewise.
2118 * testsuite/20_util/is_bounded_array/value.cc: Check for macro.
2119 * testsuite/20_util/is_unbounded_array/value.cc: Likewise.
2120
2121 2019-03-06 Edward Smith-Rowland <3dw4rd (a] verizon.net>
2122
2123 PR libstdc++/86655 - std::assoc_legendre should not constrain
2124 the value of m (or x).
2125 * include/tr1/legendre_function.tcc (__assoc_legendre_p,
2126 __sph_legendre): If degree > order Don't throw, return 0.
2127 (__legendre_p, __assoc_legendre_p): Don't constrain x either.
2128 * testsuite/special_functions/02_assoc_legendre/pr86655.cc: New test.
2129 * testsuite/special_functions/20_sph_legendre/pr86655.cc: New test.
2130 * testsuite/tr1/5_numerical_facilities/special_functions/
2131 02_assoc_legendre/pr86655.cc: New test.
2132 * testsuite/tr1/5_numerical_facilities/special_functions/
2133 22_sph_legendre/pr86655.cc: New test.
2134
2135 2019-03-06 Ville Voutilainen <ville.voutilainen (a] gmail.com>
2136
2137 Rewrite variant.
2138 Also PR libstdc++/85517
2139 * include/std/variant (__do_visit): New.
2140 (__variant_cast): Likewise.
2141 (__variant_cookie): Likewise.
2142 (__erased_*): Remove.
2143 (_Variant_storage::_S_vtable): Likewise.
2144 (_Variant_storage::__M_reset_impl): Adjust to use __do_visit.
2145 (_Variant_storage::__M_reset): Adjust.
2146 (__variant_construct): New.
2147 (_Copy_ctor_base(const _Copy_ctor_base&)): Adjust to use
2148 __variant_construct.
2149 (_Move_ctor_base(_Move_ctor_base&&)): Likewise.
2150 (_Move_ctor_base::__M_destructive_copy): New.
2151 (_Move_ctor_base::__M_destructive_move): Adjust to use
2152 __variant_construct.
2153 (_Copy_assign_base::operator=): Adjust to use __do_visit.
2154 (_Copy_assign_alias): Adjust to check both copy assignment
2155 and copy construction for triviality.
2156 (_Move_assign_base::operator=): Adjust to use __do_visit.
2157 (_Multi_array): Add support for visitors that accept and return
2158 a __variant_cookie.
2159 (__gen_vtable_impl::_S_apply_all_alts): Likewise.
2160 (__gen_vtable_impl::_S_apply_single_alt): Likewise.
2161 (__gen_vtable_impl::__element_by_index_or_cookie): New. Generate
2162 a __variant_cookie temporary for a variant that is valueless and..
2163 (__gen_vtable_impl::__visit_invoke): ..adjust here.
2164 (__gen_vtable::_Array_type): Conditionally make space for
2165 the __variant_cookie visitor case.
2166 (__variant_construct_by_index): New.
2167 (get_if): Adjust to use std::addressof.
2168 (relops): Adjust to use __do_visit.
2169 (variant): Add __variant_cast and __variant_construct_by_index
2170 as friends.
2171 (variant::emplace): Use _M_reset() and __variant_construct_by_index
2172 instead of self-destruction.
2173 (variant::swap): Adjust to use __do_visit.
2174 (visit): Reimplement in terms of __do_visit.
2175 (__variant_hash_call_base_impl::operator()): Adjust to use __do_visit.
2176 * testsuite/20_util/variant/compile.cc: Adjust.
2177 * testsuite/20_util/variant/run.cc: Likewise.
2178
2179 2019-03-06 Jonathan Wakely <jwakely (a] redhat.com>
2180
2181 * include/bits/c++config.h (_cpp_lib_char8_t): Add L suffix to
2182 constant.
2183 * testsuite/experimental/feat-char8_t.cc: Likewise.
2184
2185 * include/std/type_traits [C++20] (is_bounded_array)
2186 (is_unbounded_array, is_bounded_array_v, is_unbounded_array_v):
2187 Define.
2188 * testsuite/20_util/is_bounded_array/requirements/
2189 explicit_instantiation.cc: New test.
2190 * testsuite/20_util/is_bounded_array/requirements/typedefs.cc: New
2191 test.
2192 * testsuite/20_util/is_bounded_array/value.cc: New test.
2193 * testsuite/20_util/is_unbounded_array/requirements/
2194 explicit_instantiation.cc: New test.
2195 * testsuite/20_util/is_unbounded_array/requirements/typedefs.cc: New
2196 * test.
2197 * testsuite/20_util/is_unbounded_array/value.cc: New test.
2198
2199 * include/bits/ptr_traits.h [C++20] (pointer_traits<T*>::pointer_to):
2200 Add constexpr.
2201 * testsuite/20_util/pointer_traits/pointer_to_constexpr.cc: New test.
2202
2203 2019-03-05 Jonathan Wakely <jwakely (a] redhat.com>
2204
2205 * include/c_compatibility/math.h [C++20] (lerp): Add using
2206 declaration.
2207 * include/c_global/cmath [C++20] (__cpp_lib_interpolate): Define.
2208 (__lerp): Define function template to implement lerp.
2209 (lerp(float, float, float), lerp(double, double, double))
2210 (lerp(long double, long double, long double)): Define for C++20.
2211 * include/std/numeric [C++20] (__cpp_lib_interpolate): Define.
2212 (midpoint(T, T), midpoint(T*, T*)): Define.
2213 * include/std::version [C++20] (__cpp_lib_interpolate): Define.
2214 * testsuite/26_numerics/lerp.cc: New test.
2215 * testsuite/26_numerics/midpoint/floating.cc: New test.
2216 * testsuite/26_numerics/midpoint/integral.cc: New test.
2217 * testsuite/26_numerics/midpoint/pointer.cc: New test.
2218
2219 2019-03-04 Edward Smith-Rowland <3dw4rd (a] verizon.net>
2220
2221 PR libstdc++/88996 Implement P0439R0
2222 Make std::memory_order a scoped enumeration.
2223 * include/bits/atomic_base.h: For C++20 make memory_order a scoped enum,
2224 add variables for the old enumerators. Adjust calls.
2225 * testsuite/29_atomics/headers/atomic/types_std_c++2a.cc: New test.
2226 * testsuite/29_atomics/headers/atomic/types_std_c++2a_neg.cc: New test.
2227
2228 2019-03-04 Jonathan Wakely <jwakely (a] redhat.com>
2229
2230 * testsuite/26_numerics/bit/bitops.rot/rotl.cc: Remove bogus dg-do
2231 directive.
2232
2233 * include/std/memory_resource (polymorphic_allocator): Add default
2234 template argument for C++20.
2235 (polymorphic_allocator::allocate_bytes)
2236 (polymorphic_allocator::deallocate_bytes)
2237 (polymorphic_allocator::allocate_object)
2238 (polymorphic_allocator::deallocate_object)
2239 (polymorphic_allocator::new_object)
2240 (polymorphic_allocator::delete_object): New member functions for
2241 C++20.
2242 * testsuite/20_util/polymorphic_allocator/allocate_object.cc: New
2243 test.
2244
2245 2019-03-03 Jonathan Wakely <jwakely (a] redhat.com>
2246
2247 PR libstdc++/89562
2248 * src/filesystem/ops-common.h (do_copy_file): Open files in binary
2249 mode for mingw.
2250
2251 2019-03-01 Jonathan Wakely <jwakely (a] redhat.com>
2252
2253 * testsuite/util/testsuite_allocator.h (__gnu_test::memory_resource)
2254 [!__cpp_sized_deallocation]: Do not pass size to operator delete.
2255
2256 * include/std/memory (uses_allocator_construction_args): New set of
2257 overloaded functions.
2258 (make_obj_using_allocator, uninitialized_construct_using_allocator):
2259 New functions.
2260 * include/std/memory_resource (polymorphic_allocator::construct)
2261 [__cplusplus > 201703l]: Replace all overloads with a single function
2262 using uses_allocator_construction_args.
2263 * testsuite/20_util/polymorphic_allocator/construct_c++2a.cc: New
2264 test.
2265 * testsuite/20_util/uses_allocator/make_obj.cc: New test.
2266
2267 2019-02-27 Jonathan Wakely <jwakely (a] redhat.com>
2268
2269 PR libstdc++/89466
2270 * acinclude.m4 (GLIBCXX_CONFIGURE_DOCBOOK): Reorder check for local
2271 stylesheet directories before check for xsltproc. Try to use
2272 xmlcatalog to find local stylesheet directory before trying hardcoded
2273 paths. Add path used by suse to hardcoded paths. Adjust xsltproc
2274 check to look for the same stylesheet as doc/Makefile.am uses. Don't
2275 use xsltproc if xmlcatalog fails to find a local stylesheet.
2276 * configure.ac: Check for xmlcatalog.
2277 * Makefile.in: Regenerate.
2278 * configure: Likewise.
2279 * doc/Makefile.in: Likewise.
2280 * include/Makefile.in: Likewise.
2281 * libsupc++/Makefile.in: Likewise.
2282 * po/Makefile.in: Likewise.
2283 * python/Makefile.in: Likewise.
2284 * src/Makefile.in: Likewise.
2285 * src/c++11/Makefile.in: Likewise.
2286 * src/c++17/Makefile.in: Likewise.
2287 * src/c++98/Makefile.in: Likewise.
2288 * src/filesystem/Makefile.in: Likewise.
2289 * testsuite/Makefile.in: Likewise.
2290
2291 2019-02-26 Jonathan Wakely <jwakely (a] redhat.com>
2292
2293 PR libstdc++/89477
2294 * include/bits/alloc_traits.h (_RequireNotAllocator): New helper for
2295 container deduction guides.
2296 * include/bits/hashtable.h (_RequireNotAllocatorOrIntegral): Likewise.
2297 * include/bits/stl_map.h (map): Use _RequireNotAllocator to constrain
2298 parameters in deduction guides.
2299 * include/bits/stl_multimap.h (multimap): Likewise.
2300 * include/bits/stl_multiset.h (multiset): Likewise.
2301 * include/bits/stl_queue.h (queue, priority_queue): Likewise.
2302 * include/bits/stl_set.h (set): Likewise.
2303 * include/bits/stl_stack.h (stack): Likewise.
2304 * include/bits/unordered_map.h (unordered_map, unordered_multimap):
2305 use _RequireNotAllocator and _RequireNotAllocatorOrIntegral to
2306 constrain parameters in deduction guides.
2307 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
2308 Likewise.
2309 * testsuite/23_containers/map/cons/deduction.cc: Test additional
2310 deduction cases.
2311 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
2312 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
2313 * testsuite/23_containers/unordered_map/cons/deduction.cc: Likewise.
2314 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
2315 Likewise.
2316 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
2317 Likewise.
2318 * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
2319
2320 PR libstdc++/89416
2321 * include/bits/alloc_traits.h (__is_alloc_insertable_impl): Change
2322 to class template and partial specialization using void_t.
2323 (__is_copy_insertable, __is_move_insertable): Adjust base class.
2324
2325 2019-02-24 Jonathan Wakely <jwakely (a] redhat.com>
2326
2327 PR libstdc++/89416
2328 * include/bits/alloc_traits.h (__is_alloc_insertable_impl): Make
2329 copy and move members public.
2330
2331 2019-02-23 Jonathan Wakely <jwakely (a] redhat.com>
2332
2333 * include/std/type_traits (__underlying_type_impl): New helper to
2334 make underlying_type SFINAE-friendly.
2335 (underlying_type): Derive from __underlying_type_impl.
2336 * testsuite/20_util/underlying_type/requirements/typedefs-3.cc: New
2337 test.
2338
2339 PR libstdc++/89446
2340 * include/bits/char_traits.h (__constant_char_array): Check index is
2341 in range before dereferencing.
2342 (char_traits<char>::compare, char_traits<char>::find)
2343 (char_traits<char8_t>::compare, char_traits<char8_t>::find): Return
2344 immediately if n is zero.
2345 (char_traits<wchar_t>::compare, char_traits<wchar_t>::find): Likewise.
2346 Remove workarounds for PR 67026.
2347 * testsuite/21_strings/basic_string_view/operators/char/89446.cc:
2348 New test.
2349 * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
2350 New test.
2351
2352 2019-02-22 Eric Botcazou <ebotcazou (a] adacore.com>
2353
2354 * config/abi/post/sparc64-linux-gnu/baseline_symbols.txt: Adjust.
2355 * config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt: Likewise.
2356
2357 2019-02-22 Jakub Jelinek <jakub (a] redhat.com>
2358
2359 PR libstdc++/89402
2360 * src/c++98/compatibility-ldbl.cc (_ZNKSt4hashIeEclEe): Change return
2361 type to std::size_t and argument to type to long double.
2362
2363 2019-02-22 Eric Botcazou <ebotcazou (a] adacore.com>
2364
2365 * configure.host (abi_baseline_pair): Adjust for SPARC64/Linux.
2366 * config/abi/post/sparc64-linux-gnu: New directory.
2367 * config/abi/post/sparc64-linux-gnu/baseline_symbols.txt: New file.
2368 * config/abi/post/sparc64-linux-gnu/32: New directory.
2369 * config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt: New file.
2370
2371 2019-02-21 Jonathan Wakely <jwakely (a] redhat.com>
2372
2373 * testsuite/29_atomics/headers/atomic/types_std_c++20.cc: New test.
2374 * testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc: New
2375 test.
2376
2377 2019-02-22 Tom Honermann <tom (a] honermann.net>
2378
2379 * python/libstdcxx/v6/printers.py (register_type_printers): Add type
2380 printers for u8string and u8string_view.
2381
2382 2019-02-22 Tom Honermann <tom (a] honermann.net>
2383
2384 * testsuite/18_support/byte/ops.cc: Validate
2385 std::to_integer<char8_t>, std::to_integer<char16_t>, and
2386 std::to_integer<char32_t>.
2387 * testsuite/18_support/numeric_limits/dr559.cc: Validate
2388 std::numeric_limits<char8_t>.
2389 * testsuite/18_support/numeric_limits/lowest.cc: Validate
2390 std::numeric_limits<char8_t>::lowest().
2391 * testsuite/18_support/numeric_limits/max_digits10.cc: Validate
2392 std::numeric_limits<char8_t>::max_digits10.
2393 * testsuite/18_support/type_info/fundamental.cc: Validate
2394 typeinfo for char8_t.
2395 * testsuite/20_util/from_chars/1_c++20_neg.cc: New test, validating
2396 std::from_chars with char8_t.
2397 * testsuite/20_util/hash/requirements/explicit_instantiation.cc:
2398 Validate explicit instantiation of std::hash<char8_t>.
2399 * testsuite/20_util/is_integral/value.cc: Validate
2400 std::is_integral<char8_t>.
2401 * testsuite/20_util/make_signed/requirements/typedefs-4.cc:
2402 Validate std::make_signed<char8_t>.
2403 * testsuite/21_strings/basic_string/cons/char/deduction.cc:
2404 Validate u8string construction from char8_t sources.
2405 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc: Validate
2406 std::pmr::u8string.
2407 * testsuite/21_strings/basic_string_view/operations/compare/
2408 char/70483.cc: Validate substr operations on u8string_view.
2409 * testsuite/21_strings/basic_string_view/typedefs.cc: Validate that
2410 the u8string_view typedef is defined.
2411 * testsuite/21_strings/char_traits/requirements/
2412 constexpr_functions.cc: Validate char_traits<char8_t> constexpr
2413 member functions.
2414 * testsuite/21_strings/char_traits/requirements/
2415 constexpr_functions_c++17.cc: Validate char_traits<char8_t> C++17
2416 constexpr member functions.
2417 * testsuite/21_strings/headers/string/types_std_c++0x.cc: Validate
2418 that the u8string typedef is defined.
2419 * testsuite/22_locale/locale/cons/unicode.cc: Validate the presence
2420 of the std::codecvt<char16_t, char8_t, std::mbstate_t> and
2421 std::codecvt<char32_t, char8_t, std::mbstate_t> facets.
2422 * testsuite/29_atomics/atomic/cons/assign_neg.cc: Update line
2423 numbers.
2424 * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
2425 * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc:
2426 Likewise.
2427 * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: Likewise.
2428 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
2429 Validate std::atomic<char8_t>::is_always_lock_free
2430 * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc:
2431 Update line numbers.
2432 * testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc:
2433 Likewise.
2434 * testsuite/29_atomics/atomic_integral/operators/increment_neg.cc:
2435 Likewise.
2436 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
2437 Validate std::experimental::pmr::u8string.
2438 * testsuite/experimental/string_view/typedefs.cc: Validate that the
2439 u8string_view typedef is defined.
2440 * testsuite/util/testsuite_common_types.h: Add char8_t, char16_t and
2441 char32_t to the typelists.
2442
2443 2019-02-22 Tom Honermann <tom (a] honermann.net>
2444
2445 * include/ext/typelist.h: Constrain a partial specialization of
2446 typelist::detail::append_ to only match chain<T1,T2>.
2447
2448 2019-02-21 Jonathan Wakely <jwakely (a] redhat.com>
2449
2450 PR libstdc++/89416
2451 * include/bits/alloc_traits.h (__is_alloc_insertable_impl): Replace
2452 class template with class. Replace move and copy member types with
2453 member alias templates, so they are only instantiated when needed.
2454 (__is_copy_insertable, __is_move_insertable): Adjust base class.
2455 * testsuite/23_containers/vector/modifiers/push_back/89130.cc: Enable
2456 test for C++11/14/17 as well.
2457 * testsuite/23_containers/vector/modifiers/push_back/89416.cc: New
2458 test.
2459
2460 2019-02-20 Jakub Jelinek <jakub (a] redhat.com>
2461
2462 PR libstdc++/89402
2463 * src/c++98/compatibility-ldbl.cc (_ZNKSt4hashIeEclEe): Add
2464 _GLIBCXX_PURE to the alias declaration.
2465
2466 2019-02-19 Jonathan Wakely <jwakely (a] redhat.com>
2467
2468 * testsuite/21_strings/basic_string/literals/types.cc
2469 [_GLIBCXX_USE_CHAR8_T]: Adjust expected string type for u8 literal.
2470 * testsuite/21_strings/basic_string/literals/values.cc
2471 [_GLIBCXX_USE_CHAR8_T]: Likewise.
2472 * testsuite/22_locale/codecvt/char16_t.cc: Adjust for u8 literals
2473 potentially having different type.
2474 * testsuite/22_locale/codecvt/char32_t.cc: Likewise.
2475 * testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: Cast u8 literal
2476 to char.
2477 * testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc: Likewise.
2478 * testsuite/22_locale/codecvt/utf8.cc: Likewise.
2479 * testsuite/22_locale/conversions/string/2.cc: Remove u8 prefix from
2480 string literals only using basic character set.
2481 * testsuite/22_locale/conversions/string/3.cc: Likewise. Cast other
2482 u8 literals to char.
2483 * testsuite/29_atomics/headers/atomic/macros.cc [_GLIBCXX_USE_CHAR8_T]:
2484 Test ATOMIC_CHAR8_T_LOCK_FREE.
2485 Add missing #error to ATOMIC_CHAR16_T_LOCK_FREE test.
2486 * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc
2487 [_GLIBCXX_USE_CHAR8_T]: Check for std::atomic_char8_t.
2488 * testsuite/experimental/string_view/literals/types.cc
2489 [_GLIBCXX_USE_CHAR8_T]: Adjust expected string_view type for u8
2490 literal.
2491 * testsuite/experimental/string_view/literals/values.cc
2492 [_GLIBCXX_USE_CHAR8_T]: Likewise.
2493
2494 2019-02-19 Tom Honermann <tom (a] honermann.net>
2495
2496 * testsuite/18_support/numeric_limits/char8_t.cc: New test cloned
2497 from char16_32_t.cc; validates numeric_limits<char8_t>.
2498 * testsuite/21_strings/basic_string/literals/types-char8_t.cc: New
2499 test cloned from types.cc; validates operator""s for char8_t
2500 returns u8string.
2501 * testsuite/21_strings/basic_string/literals/values-char8_t.cc: New
2502 test cloned from values.cc; validates construction and comparison
2503 of u8string values.
2504 * testsuite/21_strings/basic_string/requirements/
2505 /explicit_instantiation/char8_t/1.cc: New test cloned from
2506 char16_t/1.cc; validates explicit instantiation of
2507 basic_string<char8_t>.
2508 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
2509 New test cloned from types.cc; validates operator""sv for char8_t
2510 returns u8string_view.
2511 * testsuite/21_strings/basic_string_view/literals/
2512 values-char8_t.cc: New test cloned from values.cc; validates
2513 construction and comparison of u8string_view values.
2514 * testsuite/21_strings/basic_string_view/requirements/
2515 explicit_instantiation/char8_t/1.cc: New test cloned from
2516 char16_t/1.cc; validates explicit instantiation of
2517 basic_string_view<char8_t>.
2518 * testsuite/21_strings/char_traits/requirements/char8_t/65049.cc:
2519 New test cloned from char16_t/65049.cc; validates that
2520 char_traits<char8_t> is not vulnerable to the concerns in PR65049.
2521 * testsuite/21_strings/char_traits/requirements/char8_t/
2522 typedefs.cc: New test cloned from char16_t/typedefs.cc; validates
2523 that char_traits<char8_t> member typedefs are present and correct.
2524 * testsuite/21_strings/char_traits/requirements/
2525 explicit_instantiation/char8_t/1.cc: New test cloned from
2526 char16_t/1.cc; validates explicit instantiation of
2527 char_traits<char8_t>.
2528 * testsuite/22_locale/codecvt/char16_t-char8_t.cc: New test cloned
2529 from char16_t.cc: validates
2530 codecvt<char16_t, char8_t, mbstate_t>.
2531 * testsuite/22_locale/codecvt/char32_t-char8_t.cc: New test cloned
2532 from char32_t.cc: validates
2533 codecvt<char32_t, char8_t, mbstate_t>.
2534 * testsuite/22_locale/codecvt/utf8-char8_t.cc: New test cloned from
2535 utf8.cc; validates codecvt<char16_t, char8_t, std::mbstate_t> and
2536 codecvt<char32_t, char8_t, std::mbstate_t>.
2537 * testsuite/27_io/filesystem/path/native/string-char8_t.cc: New
2538 test cloned from string.cc; validates filesystem::path construction
2539 from char8_t input.
2540 * testsuite/experimental/feat-char8_t.cc: New test; validates that
2541 the __cpp_lib_char8_t feature test macro is defined with the
2542 correct value.
2543 * testsuite/experimental/filesystem/path/native/string-char8_t.cc:
2544 New test cloned from string.cc; validates filesystem::path
2545 construction from char8_t input.
2546 * testsuite/experimental/string_view/literals/types-char8_t.cc: New
2547 test cloned from types.cc; validates operator""sv for char8_t
2548 returns u8string_view.
2549 * testsuite/experimental/string_view/literals/values-char8_t.cc:
2550 New test cloned from values.cc; validates construction and
2551 comparison of u8string_view values.
2552 * testsuite/experimental/string_view/requirements/
2553 explicit_instantiation/char8_t/1.cc: New test cloned from
2554 char16_t/1.cc; validates explicit instantiation of
2555 basic_string_view<char8_t>.
2556 * testsuite/ext/char8_t/atomic-1.cc: New test; validates that
2557 ATOMIC_CHAR8_T_LOCK_FREE is not defined if char8_t support is not
2558 enabled.
2559
2560 2019-02-19 Tom Honermann <tom (a] honermann.net>
2561
2562 P0482R5 char8_t: Standard library support
2563 * config/abi/pre/gnu-versioned-namespace.ver (CXXABI_2.0): Add
2564 typeinfo symbols for char8_t.
2565 * config/abi/pre/gnu.ver: Add CXXABI_1.3.12.
2566 (GLIBCXX_3.4.26): Add symbols for specializations of
2567 numeric_limits and codecvt that involve char8_t.
2568 (CXXABI_1.3.12): Add typeinfo symbols for char8_t.
2569 * include/bits/atomic_base.h: Add atomic_char8_t.
2570 * include/bits/basic_string.h: Add std::hash<u8string> and
2571 operator""s(const char8_t*, size_t).
2572 * include/bits/c++config: Define _GLIBCXX_USE_CHAR8_T and
2573 __cpp_lib_char8_t.
2574 * include/bits/char_traits.h: Add char_traits<char8_t>.
2575 * include/bits/codecvt.h: Add
2576 codecvt<char16_t, char8_t, mbstate_t>,
2577 codecvt<char32_t, char8_t, mbstate_t>,
2578 codecvt_byname<char16_t, char8_t, mbstate_t>, and
2579 codecvt_byname<char32_t, char8_t, mbstate_t>.
2580 * include/bits/cpp_type_traits.h: Add __is_integer<char8_t> to
2581 recognize char8_t as an integral type.
2582 * include/bits/fs_path.h: (path::__is_encoded_char): Recognize
2583 char8_t.
2584 (path::u8string): Return std::u8string when char8_t support is
2585 enabled.
2586 (path::generic_u8string): Likewise.
2587 (path::_S_convert): Handle conversion from char8_t input.
2588 (path::_S_str_convert): Likewise.
2589 * include/bits/functional_hash.h: Add hash<char8_t>.
2590 * include/bits/locale_conv.h (__str_codecvt_out): Add overloads for
2591 char8_t.
2592 * include/bits/locale_facets.h (_GLIBCXX_NUM_UNICODE_FACETS): Bump
2593 for new char8_t specializations.
2594 * include/bits/localefwd.h: Add missing declarations of
2595 codecvt<char16_t, char, mbstate_t> and
2596 codecvt<char32_t, char, mbstate_t>. Add char8_t declarations
2597 codecvt<char16_t, char8_t, mbstate_t> and
2598 codecvt<char32_t, char8_t, mbstate_t>.
2599 * include/bits/postypes.h: Add u8streampos
2600 * include/bits/stringfwd.h: Add declarations of
2601 char_traits<char8_t> and u8string.
2602 * include/c_global/cstddef: Add __byte_operand<char8_t>.
2603 * include/experimental/bits/fs_path.h (path::__is_encoded_char):
2604 Recognize char8_t.
2605 (path::u8string): Return std::u8string when char8_t support is
2606 enabled.
2607 (path::generic_u8string): Likewise.
2608 (path::_S_convert): Handle conversion from char8_t input.
2609 (path::_S_str_convert): Likewise.
2610 * include/experimental/string: Add u8string.
2611 * include/experimental/string_view: Add u8string_view,
2612 hash<experimental::u8string_view>, and
2613 operator""sv(const char8_t*, size_t).
2614 * include/std/atomic: Add atomic<char8_t> and atomic_char8_t.
2615 * include/std/charconv (__is_int_to_chars_type): Recognize char8_t
2616 as a character type.
2617 * include/std/limits: Add numeric_limits<char8_t>.
2618 * include/std/string_view: Add u8string_view,
2619 hash<experimental::u8string_view>, and
2620 operator""sv(const char8_t*, size_t).
2621 * include/std/type_traits: Add __is_integral_helper<char8_t>,
2622 __make_unsigned<char8_t>, and __make_signed<char8_t>.
2623 * libsupc++/atomic_lockfree_defines.h: Define
2624 ATOMIC_CHAR8_T_LOCK_FREE.
2625 * src/c++11/Makefile.am: Compile with -fchar8_t when compiling
2626 codecvt.cc and limits.cc so that char8_t specializations of
2627 numeric_limits and codecvt and emitted.
2628 * src/c++11/Makefile.in: Likewise.
2629 * src/c++11/codecvt.cc: Define members of
2630 codecvt<char16_t, char8_t, mbstate_t>,
2631 codecvt<char32_t, char8_t, mbstate_t>,
2632 codecvt_byname<char16_t, char8_t, mbstate_t>, and
2633 codecvt_byname<char32_t, char8_t, mbstate_t>.
2634 * src/c++11/limits.cc: Define members of
2635 numeric_limits<char8_t>.
2636 * src/c++98/Makefile.am: Compile with -fchar8_t when compiling
2637 locale_init.cc and localename.cc.
2638 * src/c++98/Makefile.in: Likewise.
2639 * src/c++98/locale_init.cc: Add initialization for the
2640 codecvt<char16_t, char8_t, mbstate_t> and
2641 codecvt<char32_t, char8_t, mbstate_t> facets.
2642 * src/c++98/localename.cc: Likewise.
2643 * testsuite/util/testsuite_abi.cc: Validate ABI bump.
2644
2645 2019-02-18 Wilco Dijkstra <wdijkstr (a] arm.com>
2646
2647 * 27_io/filesystem/operations/all.cc: Add dg-require-filesystem-ts.
2648 * 27_io/filesystem/operations/resize_file.cc: Likewise.
2649 * 27_io/filesystem/path/generation/normal2.cc: Likewise.
2650
2651 2019-02-14 Jonathan Wakely <jwakely (a] redhat.com>
2652
2653 * doc/xml/manual/status_cxx2020.xml: Update P0887R1 status.
2654 * doc/html/*: Regenerate.
2655
2656 * doc/xml/manual/status_cxx2017.xml: Add P0063R3 to status table.
2657 * doc/html/*: Regenerate.
2658
2659 * doc/xml/manual/intro.xml: Document LWG 2586 status.
2660 * include/bits/uses_allocator.h (__uses_alloc): Use const lvalue
2661 allocator type in is_constructible checks.
2662 * testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error.
2663 * testsuite/20_util/scoped_allocator/dr2586.cc: New test.
2664 * testsuite/20_util/tuple/cons/allocators.cc: Add test using
2665 problematic type from LWG 2586 discussion.
2666 * testsuite/20_util/uses_allocator/69293_neg.cc: Adjust dg-error.
2667 * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
2668
2669 * configure.ac: Check for C11 timespec_get function.
2670 * crossconfig.m4 (freebsd, linux, gnu, cygwin, solaris, netbsd)
2671 (openbsd): Likewise
2672 * config.h.in: Regenerate.
2673 * configure: Regenerate.
2674 * include/c_global/ctime (timespec, timespec_get): Add to namespace
2675 std for C++17 and up.
2676
2677 * doc/xml/manual/intro.xml: Document LWG 2537 status.
2678 * include/bits/stl_queue.h
2679 (priority_queue(const Compare&, const Container&, const Alloc&))
2680 (priority_queue(const Compare&, Container&&, const Alloc&)): Call
2681 make_heap.
2682 * testsuite/23_containers/priority_queue/dr2537.cc: New test.
2683
2684 * doc/xml/manual/intro.xml: Document LWG 2566 status.
2685 * include/bits/stl_queue.h (queue, priority_queue): Add static
2686 assertions to enforce LWG 2566 requirement on value_type.
2687 * include/bits/stl_stack.h (stack): Likewise.
2688
2689 PR middle-end/89303
2690 * testsuite/20_util/enable_shared_from_this/89303.cc: New test.
2691
2692 * doc/xml/manual/intro.xml: Document LWG 2735 status.
2693 * include/bits/std_abs.h: Add comment about LWG 2735.
2694 * testsuite/26_numerics/headers/cstdlib/dr2735.cc: New test.
2695
2696 2019-02-13 Jonathan Wakely <jwakely (a] redhat.com>
2697
2698 PR libstdc++/89345
2699 * include/std/version [__cpp_impl_destroying_delete]
2700 (__cpp_lib_destroying_delete): Only define for C++2a and later.
2701 * libsupc++/new [__cpp_impl_destroying_delete]
2702 (__cpp_lib_destroying_delete): Likewise.
2703 (destroying_delete_t, destroying_delete): Likewise, but define even
2704 when __cpp_impl_destroying_delete is not defined.
2705 * testsuite/18_support/destroying_delete.cc: New test.
2706
2707 2019-02-11 Jonathan Wakely <jwakely (a] redhat.com>
2708
2709 PR libstdc++/89023
2710 * testsuite/17_intro/headers/c++2011/parallel_mode.cc: New test.
2711 * testsuite/17_intro/headers/c++2014/parallel_mode.cc: New test.
2712 * testsuite/17_intro/headers/c++2017/parallel_mode.cc: New test.
2713 * testsuite/28_regex/headers/regex/parallel_mode.cc: Remove.
2714
2715 2019-02-09 Jonathan Wakely <jwakely (a] redhat.com>
2716
2717 PR libstdc++/71044
2718 * include/bits/fs_path.h (path::has_root_name)
2719 (path::has_root_directory, path::has_root_path)
2720 (path::has_relative_path, path::has_parent_path)
2721 (path::has_filename, path::has_stem, path::has_extension)
2722 (path::is_absolute, path::is_relative, path::_M_find_extension): Add
2723 noexcept.
2724 * src/c++17/fs_path.cc (path::has_root_name)
2725 (path::has_root_directory, path::has_root_path)
2726 (path::has_relative_path, path::has_parent_path)
2727 (path::has_filename, path::_M_find_extension): Add noexcept.
2728
2729 2019-02-06 Jonathan Wakely <jwakely (a] redhat.com>
2730
2731 PR libstdc++/89102 (partial)
2732 * include/std/type_traits (common_type<>): Define.
2733 (common_type<T>): Derive from common_type<T, T>.
2734 * testsuite/20_util/common_type/requirements/explicit_instantiation.cc:
2735 Test zero-length template argument list.
2736 * testsuite/20_util/common_type/requirements/sfinae_friendly_1.cc:
2737 Test additional single argument cases.
2738 * testsuite/20_util/common_type/requirements/sfinae_friendly_2.cc:
2739 Adjust expected error.
2740
2741 2019-02-05 Jonathan Wakely <jwakely (a] redhat.com>
2742
2743 PR libstdc++/89128
2744 * include/bits/stl_queue.h (queue, priority_queue): Add deduction
2745 guides.
2746 * include/bits/stl_stack.h (stack): Likewise.
2747 * testsuite/23_containers/priority_queue/deduction.cc: New test.
2748 * testsuite/23_containers/queue/deduction.cc: New test.
2749 * testsuite/23_containers/stack/deduction.cc: New test.
2750
2751 PR libstdc++/89194
2752 * include/std/type_traits (__is_convertible_helper)
2753 (__is_convertible_helper<_From, _To, false>): Revert changes to
2754 support is_nothrow_convertible.
2755 (__is_nt_convertible_helper): New helper.
2756 (is_nothrow_convertible): Use __is_nt_convertible_helper.
2757
2758 * testsuite/23_containers/vector/modifiers/push_back/49836.cc: Restore
2759 use of CopyConsOnlyType, but also test DelAnyAssign for completeness.
2760
2761 PR libstdc++/89130
2762 * include/bits/alloc_traits.h (__is_copy_insertable_impl): Rename to
2763 __is_alloc_insertable_impl. Replace single type member with two
2764 members, one for each of copy and move insertable.
2765 (__is_move_insertable): New trait for internal use.
2766 * include/bits/stl_vector.h (vector::_S_nothrow_relocate(true_type))
2767 (vector::_S_nothrow_relocate(true_type)): New functions to
2768 conditionally check if __relocate_a can throw.
2769 (vector::_S_use_relocate()): Dispatch to _S_nothrow_relocate based
2770 on __is_move_insertable.
2771 (vector::_S_do_relocate): New overloaded functions to conditionally
2772 call __relocate_a.
2773 (vector::_S_relocate): New function that dispatches to _S_do_relocate
2774 based on _S_use_relocate.
2775 * include/bits/vector.tcc (vector::reserve, vector::_M_realloc_insert)
2776 (vector::_M_default_append): Call _S_relocate instead of __relocate_a.
2777 * testsuite/23_containers/vector/modifiers/push_back/89130.cc: New.
2778
2779 PR libstdc++/89090
2780 * include/bits/stl_uninitialized.h (__relocate_a_1): Make unused
2781 parameter unnamed. Add message to static assertion.
2782 * include/bits/vector.tcc (vector::reserve, vector::_M_realloc_insert)
2783 (vector::_M_default_append): Use _GLIBCXX17_CONSTEXPR for if constexpr
2784 in C++11 code.
2785
2786 2019-02-05 Marc Glisse <marc.glisse (a] inria.fr>
2787
2788 PR libstdc++/87106
2789 * include/bits/stl_uninitialized.h (__is_trivially_relocatable):
2790 Rename...
2791 (__is_bitwise_relocatable): ... to this.
2792 (__relocate_a_1): Adapt.
2793 * include/bits/stl_deque.h (__is_trivially_relocatable): Rename...
2794 (__is_bitwise_relocatable): ... to this.
2795
2796 2019-01-30 Jonathan Wakely <jwakely (a] redhat.com>
2797
2798 PR libstdc++/89117
2799 * src/c++17/fs_path.cc (path::replace_extension): Erase extension from
2800 final component as well as from _M_pathname. Append the dot using
2801 operator+= instead of only to _M_pathname.
2802 (path::_M_find_extension): Reformat slightly.
2803 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
2804 Add more test cases.
2805
2806 2019-01-30 Ulrich Drepper <drepper (a] redhat.com>
2807
2808 * doc/xml/manual/status_cxx2020.xml: Update P0600 entry.
2809
2810 2019-01-29 Jonathan Wakely <jwakely (a] redhat.com>
2811
2812 * testsuite/26_numerics/headers/complex/synopsis.cc: Remove incorrect
2813 constexpr specifiers from arg and proj.
2814
2815 * config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Add missing exports for
2816 __shared_ptr instantiations used by gcc4-compatible ABI.
2817
2818 * include/experimental/forward_list (experimental::erase): Qualify
2819 call to erase_if.
2820 * include/experimental/list (experimental::erase): Likewise.
2821 * include/std/forward_list (std::erase): Likewise.
2822 * include/std/list (std::erase): Likewise.
2823
2824 * testsuite/20_util/reference_wrapper/result_type.cc: Disable for
2825 C++2a.
2826 * testsuite/20_util/reference_wrapper/typedefs-2.cc: Likewise.
2827 * testsuite/20_util/reference_wrapper/typedefs-3.cc: Likewise.
2828 * testsuite/20_util/reference_wrapper/typedefs.cc: Likewise.
2829 * testsuite/30_threads/async/54297.cc: Suppress nodiscard warning.
2830 * testsuite/ext/array_allocator/26875.cc: Likewise.
2831 * testsuite/ext/pool_allocator/allocate_chunk.cc: Likewise.
2832 * testsuite/util/replacement_memory_operators.h: Likewise.
2833 * testsuite/util/testsuite_allocator.h: Likewise.
2834
2835 * include/std/memory_resource (__pool_resource::_M_unpooled): Use
2836 normal mode vector, even for debug mode.
2837 * include/std/vector [_GLIBCXX_DEBUG] (_GLIBCXX_STD_C::pmr::vector):
2838 Define alias template for normal mode vector.
2839
2840 2019-01-28 Jonathan Wakely <jwakely (a] redhat.com>
2841
2842 PR libstdc++/68737
2843 * config/locale/generic/c_locale.h (__convert_from_v)
2844 [_GLIBCXX_USE_C99_STDIO]: Also check _GLIBCXX_HAVE_BROKEN_VSNPRINTF.
2845 * config/os/hpux/os_defines.h: Define _GLIBCXX_HAVE_BROKEN_VSNPRINTF.
2846 * include/bits/locale_facets.tcc (num_put::_M_insert_float)
2847 [_GLIBCXX_USE_C99_STDIO]: Also check _GLIBCXX_HAVE_BROKEN_VSNPRINTF.
2848
2849 2019-01-24 Jonathan Wakely <jwakely (a] redhat.com>
2850
2851 PR libstdc++/88840
2852 * include/bits/stl_vector.h (vector::__use_relocate): Replace static
2853 data member with static member function _S_use_relocate().
2854 * include/bits/vector.tcc (vector::reserve, vector::_M_realloc_insert)
2855 (vector::_M_default_append): Use _S_use_relocate() instead of
2856 __use_relocate.
2857
2858 * testsuite/27_io/filesystem/path/compare/strings.cc: Only compare
2859 sign of results.
2860
2861 2019-01-22 Jonathan Wakely <jwakely (a] redhat.com>
2862
2863 PR libstdc++/88740
2864 * testsuite/util/testsuite_hooks.h [stderr] (VERIFY): Use fprintf to
2865 write to stderr instead of using printf.
2866
2867 2019-01-21 Jakub Jelinek <jakub (a] redhat.com>
2868
2869 PR libstdc++/86590
2870 * include/bits/char_traits.h (__constant_string_p,
2871 __constant_char_array_p): Use __builtin_is_constant_evaluated if
2872 available.
2873
2874 2019-01-20 Ulrich Drepper <drepper (a] redhat.com>
2875
2876 Implement C++20 P0600r1.
2877 * include/backward/hash_map: Add nodiscard attribute to empty.
2878 * include/backward/hash_set: Likewise.
2879 * backward/hashtable.h: Likewise.
2880 * include/bits/basic_string.h: Likewise.
2881 * include/bits/forward_list.h: Likewise.
2882 * include/bits/hashtable.h: Likewise.
2883 * include/bits/regex.h: Likewise.
2884 * include/bits/stl_deque.h: Likewise.
2885 * include/bits/stl_list.h: Likewise.
2886 * include/bits/stl_map.h: Likewise.
2887 * include/bits/stl_multimap.h: Likewise.
2888 * include/bits/stl_multiset.h: Likewise.
2889 * include/bits/stl_queue.h: Likewise.
2890 * include/bits/stl_set.h: Likewise.
2891 * include/bits/stl_stack.h: Likewise.
2892 * include/bits/stl_tree.h: Likewise.
2893 * include/bits/stl_vector.h: Likewise.
2894 * include/bits/unordered_map.h: Likewise.
2895 * include/bits/unordered_set.h: Likewise.
2896 * include/debug/array: Likewise.
2897 * include/experimental/any: Likewise.
2898 * include/experimental/bits/fs_path.h: Likewise.
2899 * include/experimental/internet: Likewise.
2900 * include/experimental/string_view: Likewise.
2901 * include/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp:
2902 Likewise.
2903 * include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp:
2904 Likewise.
2905 * include/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp:
2906 Likewise.
2907 * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp:
2908 Likewise.
2909 * include/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp:
2910 Likewise.
2911 * include/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp:
2912 Likewise.
2913 * include/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp:
2914 Likewise.
2915 * include/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp:
2916 Likewise.
2917 * include/ext/pb_ds/detail/left_child_next_sibling_heap_/
2918 info_fn_imps.hpp: Likewise.
2919 * include/ext/pb_ds/detail/left_child_next_sibling_heap_/
2920 left_child_next_sibling_heap_.hpp: Likewise.
2921 * include/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp:
2922 Likewise.
2923 * include/ext/pb_ds/detail/list_update_map_/lu_map_.hpp:
2924 Likewise.
2925 * include/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp:
2926 Likewise.
2927 * include/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hp:
2928 Likewise.
2929 * include/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp:
2930 Likewise.
2931 * include/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp:
2932 Likewise.
2933 * include/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp:
2934 Likewise.
2935 * include/ext/pb_ds/detail/tree_trace_base.hpp: Likewise.
2936 * include/ext/pb_ds/trie_policy.hpp: Likewise.
2937 * include/ext/rope: Likewise.
2938 * include/ext/slist: Likewise.
2939 * include/ext/vstring.h: Likewise.
2940 * include/profile/array: Likewise.
2941 * include/std/array: Likewise.
2942 * include/tr1/array: Likewise.
2943 * include/tr1/hashtable.h: Likewise.
2944 * include/tr1/regex: Likewise.
2945 * include/tr2/dynamic_bitset: Likewise.
2946 * include/bits/alloc_traits.h: Add nodiscard attribute to
2947 allocate.
2948 * include/experimental/memory_resource: Likewise.
2949 * include/ext/alloc_traits.h: Likewise.
2950 * include/ext/array_allocator.h: Likewise.
2951 * include/ext/bitmap_allocator.h: Likewise.
2952 * include/ext/debug_allocator.h: Likewise.
2953 * include/ext/extptr_allocator.h: Likewise.
2954 * include/ext/mt_allocator.h: Likewise.
2955 * include/ext/new_allocator.h: Likewise.
2956 * include/ext/pool_allocator.h: Likewise.
2957 * include/ext/throw_allocator.h: Likewise.
2958 * include/std/scoped_allocator: Likewise.
2959 * libsupc++/eh_alloc.cc: Likewise.
2960 * include/std/future: Add nodiscard attribute to async.
2961 * libsupc++/new: Add nodiscard attribute to new.
2962
2963 2019-01-18 Jonathan Wakely <jwakely (a] redhat.com>
2964
2965 PR libstdc++/87514
2966 PR libstdc++/87520
2967 PR libstdc++/88782
2968 * config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Export new symbol.
2969 * include/bits/shared_ptr.h
2970 (shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...))
2971 (allocate_shared): Change to use new tag type.
2972 * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_eq):
2973 Declare new member function.
2974 (_Sp_alloc_shared_tag): Define new type.
2975 (_Sp_counted_ptr_inplace): Declare __shared_count<_Lp> as a friend.
2976 (_Sp_counted_ptr_inplace::_M_get_deleter) [!__cpp_rtti]: Use
2977 _Sp_make_shared_tag::_S_eq to check type_info.
2978 (__shared_count(Ptr, Deleter),__shared_count(Ptr, Deleter, Alloc)):
2979 Constrain to prevent being called with _Sp_alloc_shared_tag.
2980 (__shared_count(_Sp_make_shared_tag, const _Alloc&, Args&&...)):
2981 Replace constructor with ...
2982 (__shared_count(Tp*&, _Sp_alloc_shared_tag<_Alloc>, Args&&...)): Use
2983 reference parameter so address of the new object can be returned to
2984 the caller. Obtain the allocator from the tag type.
2985 (__shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...)): Replace
2986 constructor with ...
2987 (__shared_ptr(_Sp_alloc_shared_tag<Alloc>, Args&&...)): Pass _M_ptr
2988 to the __shared_count constructor.
2989 (__allocate_shared): Change to use new tag type.
2990 * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq): Define.
2991
2992 2019-01-17 Jonathan Wakely <jwakely (a] redhat.com>
2993
2994 * src/c++17/fs_ops.cc
2995 (equivalent(const path&, const path&, error_code&))
2996 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Use GetFileInformationByHandle to
2997 compare files instead of relying on incomplete info returned by stat.
2998
2999 PR libstdc++/88884
3000 * src/c++17/fs_ops.cc (absolute(const path&, error_code&)): Do nothing
3001 if the path is already absolute.
3002 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Normalize root-directory.
3003 [!_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Pass error_code to current_path.
3004
3005 PR libstdc++/88881
3006 * src/c++17/fs_ops.cc (canonical(const path&, error_code&))
3007 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Normalize path, to match behaviour
3008 of filesystem::exists.
3009 (create_directories(const path&, error_code&)): Add assertions.
3010 (status(const path&, error_code&)) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]:
3011 Add workaround for bug in _wstat for paths with trailing slash.
3012 * testsuite/27_io/filesystem/operations/create_directories.cc: Adjust
3013 for expected behaviour on mingw.
3014 * testsuite/experimental/filesystem/operations/create_directories.cc:
3015 Likewise.
3016 * testsuite/27_io/filesystem/operations/temp_directory_path.cc: Use
3017 "TMP" instead of "TMPDIR" and clean environment before each test. Do
3018 not test permissions on mingw targets.
3019
3020 2019-01-16 Jonathan Wakely <jwakely (a] redhat.com>
3021
3022 * config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Add exports for fstream
3023 constructors and open members taking wide strings. Fix patterns for
3024 filesystem::path members to match wstring_view parameters. Add
3025 exports for shared_ptr members used by directory iterators.
3026 * src/c++17/fs_ops.cc (remove(const path&, error_code&)): Clear the
3027 error code parameter if the file doesn't exist.
3028 * src/filesystem/ops.cc (remove(const path&, error_code&)):
3029 Likewise.
3030 * testsuite/27_io/filesystem/operations/canonical.cc: Fix expected
3031 values for mingw targets, where "/" is not an absolute path. Do not
3032 test symlinks on mingw targets.
3033 * testsuite/experimental/filesystem/operations/canonical.cc: Likewise.
3034 * testsuite/27_io/filesystem/operations/copy.cc: Do not test symlinks
3035 on mingw targets.
3036 * testsuite/experimental/filesystem/operations/copy.cc: Likewise.
3037 * testsuite/27_io/filesystem/operations/create_directories.cc: Check
3038 that each component of the path is created.
3039 * testsuite/experimental/filesystem/operations/create_directories.cc:
3040 Likewise.
3041 * testsuite/27_io/filesystem/operations/exists.cc: Do not test
3042 permissions on mingw targets.
3043 * testsuite/experimental/filesystem/operations/exists.cc: Likewise.
3044 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
3045 * testsuite/experimental/filesystem/operations/is_empty.cc: Likewise.
3046 * testsuite/27_io/filesystem/operations/permissions.cc: XFAIL for
3047 mingw targets.
3048 * testsuite/experimental/filesystem/operations/permissions.cc:
3049 Likewise.
3050 * testsuite/27_io/filesystem/operations/remove.cc: Do not test
3051 symlinks or permissions on mingw targets.
3052 * testsuite/experimental/filesystem/operations/remove.cc: Likewise.
3053 * testsuite/27_io/filesystem/operations/remove_all.cc: Do not test
3054 symlinks on mingw targets.
3055 * testsuite/experimental/filesystem/operations/remove_all.cc:
3056 Likewise.
3057 * testsuite/27_io/filesystem/operations/status.cc: Do not test
3058 permissions on mingw targets.
3059 * testsuite/27_io/filesystem/operations/weakly_canonical.cc: Do not
3060 test symlinks on mingw targets.
3061 * testsuite/experimental/filesystem/operations/space.cc: Fix test
3062 for mingw targets.
3063
3064 2019-02-14 Ulrich Drepper <drepper (a] redhat.com>
3065
3066 PR libstdc++/88738
3067 Warn about unused comparisons of shared_ptr/unique_ptr
3068 * include/bits/c++config [_GLIBCXX_NODISCARD]: Define.
3069 * include/bits/shared_ptr.h: Use it for operator ==, !=,
3070 <, <=, >, >= for shared_ptr.
3071 * include/bits/unique_ptr.h: Likewise for unique_ptr.
3072
3073 2019-01-15 Jonathan Wakely <jwakely (a] redhat.com>
3074
3075 * include/bits/shared_ptr_base.h (__cpp_lib_shared_ptr_arrays): Define
3076 as 201611L, because P0497R0 changes are supported.
3077 * include/std/version (__cpp_lib_shared_ptr_arrays): Likewise.
3078
3079 * include/bits/erase_if.h [__cplusplus > 201703L]
3080 (__cpp_lib_erase_if): Only define for C++2a.
3081 * include/std/iterator [__cplusplus >= 201402L && !_GLIBCXX_DEBUG]
3082 (__cpp_lib_null_iterators): Define.
3083 * include/std/version [__cplusplus >= 201402L && !_GLIBCXX_DEBUG]
3084 (__cpp_lib_null_iterators): Define.
3085 [__cpp_impl_destroying_delete] (__cpp_lib_destroying_delete): Define.
3086
3087 * doc/xml/manual/status_cxx2017.xml: Document P0032R3 and P0307R2
3088 status.
3089 * include/bits/stl_uninitialized.h (__cpp_lib_raw_memory_algorithms):
3090 Define.
3091 * include/std/any (__cpp_lib_any): Define as 201606L, because P0032R3
3092 changes are supported.
3093 * include/std/optional (__cpp_lib_optional): Likewise.
3094 * include/std/variant (__cpp_lib_variant): Likewise.
3095 * include/std/version [!__STRICT_ANSI__]
3096 (__cpp_lib_uncaught_exceptions): Define as long integer.
3097 [__cplusplus >= 201703L] (__cpp_lib_any)
3098 (__cpp_lib_raw_memory_algorithms, __cpp_lib_uncaught_exceptions)
3099 (__cpp_lib_variant): Define for C++17.
3100 [__cplusplus >= 201703L] (__cpp_lib_optional): Update value and define
3101 as long integer.
3102 * libsupc++/exception (__cpp_lib_uncaught_exceptions): Define as long
3103 integer.
3104
3105 * doc/xml/manual/status_cxx2020.xml: Update P1123R0 status.
3106
3107 2019-01-12 Jonathan Wakely <jwakely (a] redhat.com>
3108
3109 PR libstdc++/88811
3110 PR libstdc++/83306
3111 * src/filesystem/path.cc: Fix typo. If first path is empty, show []
3112 before second path.
3113 * testsuite/experimental/filesystem/filesystem_error/cons.cc: New
3114 test.
3115
3116 2019-01-11 Jonathan Wakely <jwakely (a] redhat.com>
3117
3118 * doc/xml/manual/intro.xml: Include new section.
3119 * doc/xml/manual/status_cxx2017.xml: Document more
3120 implementation-defined properties of the library.
3121 * doc/xml/manual/status_cxx2020.xml: Document C++2a status.
3122 * doc/html/*: Regenerate.
3123
3124 * include/bits/refwrap.h [__cplusplus > 201703L]
3125 (_Refwrap_base_arg1, _Refwrap_base_arg2, _Reference_wrapper_base)
3126 (_Reference_wrapper_base_memfun): Do not define for C++2a.
3127 (reference_wrapper): Do not derive from _Reference_wrapper_base_memfun
3128 for C++2a.
3129 (reference_wrapper::operator()): Add static assertion.
3130 * testsuite/20_util/reference_wrapper/incomplete.cc: New test.
3131
3132 * include/std/chrono (duration_values::zero(), duration_values::min())
3133 (duration_values::max()): Add noexcept.
3134 (duration::zero(), duration::min(), duration::max()): Likewise.
3135 (time_point::zero(), time_point::min(), time_point::max()): Likewise.
3136 * testsuite/20_util/duration/requirements/noexcept.cc: New test.
3137 * testsuite/20_util/time_point/requirements/noexcept.cc: New test.
3138
3139 * include/std/version (__cpp_lib_erase_if): Move to C++20 group.
3140
3141 2019-01-11 Jakub Jelinek <jakub (a] redhat.com>
3142
3143 * include/std/type_traits (__cpp_lib_is_constant_evaluated): Define.
3144 * include/std/version (__cpp_lib_is_constant_evaluated): Define.
3145
3146 2019-01-11 Jonathan Wakely <jwakely (a] redhat.com>
3147
3148 PR libstdc++/88802
3149 * include/bits/functional_hash.h (hash<nullptr_t>): Define
3150 specialization for C++17 (P0513R0, LWG 2817).
3151 * testsuite/20_util/hash/nullptr.cc: New test.
3152
3153 PR libstdc++/88125
3154 * config/abi/pre/gnu.ver (GLIBCXX_3.4.6): Remove unused duplicate
3155 pattern for std::basic_stringbuf::str().
3156
3157 * config/abi/pre/gnu.ver (GLIBCXX_3.4): Correct recent changes to
3158 basic_ostream::operator<< patterns.
3159
3160 2019-01-10 Jonathan Wakely <jwakely (a] redhat.com>
3161
3162 * testsuite/27_io/filesystem/operations/last_write_time.cc: Fix
3163 test failures on targets with 32-bit time_t.
3164
3165 * include/bits/erase_if.h: Define __cpp_lib_erase_if.
3166 * include/std/deque: Likewise.
3167 * include/std/forward_list: Likewise.
3168 * include/std/list: Likewise.
3169 * include/std/string: Likewise.
3170 * include/std/vector: Likewise.
3171 * include/std/version: Likewise.
3172 * testsuite/21_strings/basic_string/erasure.cc: Test macro.
3173 * testsuite/23_containers/deque/erasure.cc: Likewise.
3174 * testsuite/23_containers/forward_list/erasure.cc: Likewise.
3175 * testsuite/23_containers/list/erasure.cc: Likewise.
3176 * testsuite/23_containers/map/erasure.cc: Likewise.
3177 * testsuite/23_containers/set/erasure.cc: Likewise.
3178 * testsuite/23_containers/unordered_map/erasure.cc: Likewise.
3179 * testsuite/23_containers/unordered_set/erasure.cc: Likewise.
3180 * testsuite/23_containers/vector/erasure.cc: Likewise.
3181
3182 * include/experimental/internet [AI_NUMERICSERV]
3183 (resolver_base::numeric_service): Define conditionally.
3184 * testsuite/experimental/net/internet/resolver/base.cc: Test it
3185 conditionally.
3186 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
3187 Likewise.
3188
3189 2019-01-10 Ville Voutilainen <ville.voutilainen (a] gmail.com>
3190 Jonathan Wakely <jwakely (a] redhat.com>
3191
3192 Implement LWG 2221
3193 * config/abi/pre/gnu.ver (GLIBCXX_3.4): Tighten patterns.
3194 (GLIBCXX_3.4.26): Add new exports.
3195 * include/Makefile.am: Add ostream-inst.cc. Move string-inst.cc to
3196 correct list of sources.
3197 * include/Makefile.in: Regenerate.
3198 * include/std/ostream (operator<<(nullptr_t)): New member function.
3199 * src/c++17/ostream-inst.cc: New file.
3200 * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc: New
3201 test.
3202
3203 2019-01-10 Jonathan Wakely <jwakely (a] redhat.com>
3204
3205 * testsuite/util/testsuite_fs.h (nonexistent_path): Include name
3206 of the source file containing the caller.
3207 * testsuite/27_io/filesystem/iterators/directory_iterator.cc: Remove
3208 directories created by test.
3209 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
3210 Likewise.
3211 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
3212 Likewise.
3213 * testsuite/experimental/filesystem/iterators/
3214 recursive_directory_iterator.cc: Likewise.
3215
3216 2019-01-10 Jakub Jelinek <jakub (a] redhat.com>
3217
3218 PR tree-optimization/88775
3219 * include/bits/stl_function.h (greater<_Tp*>::operator(),
3220 less<_Tp*>::operator(), greater_equal<_Tp*>::operator(),
3221 less_equal<_Tp*>::operator()): Use __builtin_is_constant_evaluated
3222 instead of __builtin_constant_p if available. Don't bother with
3223 the pointer comparison in C++11 and earlier.
3224
3225 2019-01-09 Sandra Loosemore <sandra (a] codesourcery.com>
3226
3227 PR other/16615
3228
3229 * include/ext/bitmap_allocator.h: Mechanically replace "can not"
3230 with "cannot".
3231
3232 2019-01-09 Jonathan Wakely <jwakely (a] redhat.com>
3233
3234 * testsuite/libstdc++-prettyprinters/cxx17.cc: Fix expected output
3235 for filesystem::path. Give variables more distinctive names.
3236
3237 * include/std/optional (_Optional_payload_base::_M_copy_assign): New
3238 member function to perform non-trivial assignment.
3239 (_Optional_payload_base::_M_move_assign): Likewise.
3240 (_Optional_payload<T, true, false, true>::operator=)
3241 (_Optional_payload<T, true, true, false>::operator=)
3242 (_Optional_payload<T, true, false, false>::operator=): Call
3243 _M_copy_assign and/or _M_move_assign to do non-trivial assignments.
3244
3245 PR libstdc++/88204
3246 * testsuite/26_numerics/complex/operators/more_constexpr.cc: Do not
3247 test std::complex<long double> if long double format is IBM128.
3248 * testsuite/26_numerics/complex/requirements/more_constexpr.cc:
3249 Likewise.
3250
3251 2019-01-08 Jonathan Wakely <jwakely (a] redhat.com>
3252
3253 * testsuite/libstdc++-prettyprinters/compat.cc: Test printer support
3254 for old std::unique_ptr layout.
3255 * testsuite/libstdc++-prettyprinters/cxx17.cc: Fix std::variant test
3256 to become valueless. Add filesystem::path tests.
3257
3258 PR libstdc++/87855
3259 * include/std/optional (_Optional_payload_base): New class template
3260 for common code hoisted from _Optional_payload specializations. Use
3261 a template for the union, to allow a partial specialization for
3262 types with non-trivial destructors. Add constructors for in-place
3263 initialization to the union.
3264 (_Optional_payload(bool, const _Optional_payload&)): Use _M_construct
3265 to perform non-trivial copy construction, instead of relying on
3266 non-standard copy elision in a delegating constructor.
3267 (_Optional_payload(bool, _Optional_payload&&)): Likewise for
3268 non-trivial move construction.
3269 (_Optional_payload): Derive from _Optional_payload_base and use it
3270 for everything except the non-trivial assignment operators, which are
3271 defined as needed.
3272 (_Optional_payload<false, C, M>): Derive from the specialization
3273 _Optional_payload<true, false, false> and add a destructor.
3274 (_Optional_base_impl::_M_destruct, _Optional_base_impl::_M_reset):
3275 Forward to corresponding members of _Optional_payload.
3276 (_Optional_base_impl::_M_is_engaged, _Optional_base_impl::_M_get):
3277 Hoist common members from _Optional_base.
3278 (_Optional_base): Make all members and base class public.
3279 (_Optional_base::_M_get, _Optional_base::_M_is_engaged): Move to
3280 _Optional_base_impl.
3281 * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter): Add
3282 support for new std::optional layout.
3283 * testsuite/libstdc++-prettyprinters/compat.cc: New test.
3284
3285 PR libstdc++/88066
3286 * include/bits/locale_conv.h: Use <> for includes not "".
3287 * include/ext/random: Likewise.
3288 * include/ext/vstring.h: Likewise.
3289
3290 2019-01-08 Rainer Orth <ro (a] CeBiTec.Uni-Bielefeld.DE>
3291
3292 * config/abi/pre/gnu.ver (GLIBCXX_3.4): Tighten existing patterns.
3293 (GLIBCXX_3.4.21): Likewise.
3294
3295 2019-01-08 Jonathan Wakely <jwakely (a] redhat.com>
3296
3297 PR libstdc++/88749
3298 * src/filesystem/ops.cc (last_write_time): Fix preprocessor condition
3299 to match the one that controls whether utimbuf and utime are declared.
3300
3301 2019-01-07 Jonathan Wakely <jwakely (a] redhat.com>
3302
3303 PR libstdc++/87787
3304 * include/bits/char_traits.h (char_traits::move): Do not pass null
3305 pointers to memmove.
3306 * include/bits/locale_facets.h
3307 (ctype<char>::widen(const char*, const char*, char*)): Do not
3308 pass null pointers to memcpy.
3309 (ctype<char>::narrow(const char*, const char*, char, char*)):
3310 Likewise.
3311 (ctype<char>::do_widen(const char*, const char*, char*)):
3312 Likewise.
3313 (ctype<char>::do_narrow(const char*, const char*, char, char*)):
3314 Likewise.
3315
3316 * doc/xml/manual/spine.xml: Update copyright years.
3317 * doc/xml/manual/status_cxx2017.xml: Adjust note about -lstdc++fs.
3318 * doc/xml/manual/using.xml: Remove requirement to link with -lstdc++fs
3319 for C++17 filesystem library.
3320 * doc/html/*: Regenerate.
3321
3322 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for truncate.
3323 * config.h.in: Regenerate.
3324 * config/abi/pre/gnu.ver: Order patterns for filesystem operations
3325 alphabetically and add missing entries for copy_symlink,
3326 hard_link_count, rename, and resize_file.
3327 * configure: Regenerate.
3328 * src/c++17/fs_ops.cc (resize_file): Remove #if so posix::truncate is
3329 used unconditionally.
3330 * src/filesystem/ops-common.h (__gnu_posix::truncate)
3331 [!_GLIBCXX_HAVE_TRUNCATE]: Provide fallback definition that only
3332 supports truncating to zero length.
3333 * testsuite/27_io/filesystem/operations/all.cc: New test.
3334 * testsuite/27_io/filesystem/operations/resize_file.cc: New test.
3335
3336 2019-01-06 Jonathan Wakely <jwakely (a] redhat.com>
3337
3338 PR libstdc++/86756
3339 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for utime and
3340 lstat and define _GLIBCXX_USE_UTIME and _GLIBCXX_USE_LSTAT.
3341 * config.h.in: Regenerate.
3342 * config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Export symbols for
3343 remaining std::filesystem types and functions.
3344 * configure: Regenerate.
3345 * src/c++17/Makefile.am: Add C++17 filesystem sources.
3346 * src/c++17/Makefile.in: Regenerate.
3347 * src/c++17/cow-fs_dir.cc: Move src/filesystem/cow-std-dir.cc to
3348 here, and change name of included file.
3349 * src/c++17/cow-fs_ops.cc: Move src/filesystem/cow-std-ops.cc to
3350 here, and change name of included file.
3351 * src/c++17/fs_dir.cc: Move src/filesystem/std-dir.cc to here. Change
3352 path to dir-common.h.
3353 * src/c++17/fs_ops.cc: Move src/filesystem/std-ops.cc to here. Change
3354 path to ops-common.h. Disable -Wunused-parameter warnings.
3355 (internal_file_clock): Define unconditionally.
3356 [!_GLIBCXX_HAVE_SYS_STAT_H] (internal_file_clock::from_stat): Do not
3357 define.
3358 (do_copy_file, do_space): Move definitions to ops.common.h.
3359 (copy, file_size, hard_link_count, last_write_time, space): Only
3360 perform operation when _GLIBCXX_HAVE_SYS_STAT_H is defined, otherwise
3361 report an error.
3362 (last_write_time, read_symlink): Remove unused attributes from
3363 parameters.
3364 * src/filesystem/Makefile.am: Remove C++17 filesystem sources.
3365 * src/filesystem/Makefile.in: Regenerate.
3366 * src/filesystem/cow-std-dir.cc: Move to src/c++17/cow-fs_dir.cc.
3367 * src/filesystem/cow-std-ops.cc: Move to src/c++17/cow-fs_ops.cc.
3368 * src/filesystem/std-dir.cc: Move to src/c++17/fs_dir.cc.
3369 * src/filesystem/std-ops.cc: Move to src/c++17/fs_ops.cc.
3370 * src/filesystem/dir-common.h [!_GLIBCXX_HAVE_DIRENT_H]: Define
3371 dummy types and functions instead of using #error.
3372 * src/filesystem/dir.cc [!_GLIBCXX_HAVE_DIRENT_H]: Use #error.
3373 * src/filesystem/ops-common.h [!_GLIBCXX_USE_LSTAT] (lstat): Define
3374 in terms of stat.
3375 [!_GLIBCXX_HAVE_UNISTD_H]: Define dummy types and functions.
3376 (do_copy_file, do_space): Move definitions here from std-ops.cc.
3377 * src/filesystem/ops.cc: Adjust calls to do_copy_file and do_space
3378 to account for new namespace.
3379 * testsuite/27_io/filesystem/directory_entry/86597.cc: Remove
3380 -lstdc++fs from dg-options.
3381 * testsuite/27_io/filesystem/directory_entry/lwg3171.cc: Likewise.
3382 * testsuite/27_io/filesystem/file_status/1.cc: Likewise.
3383 * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
3384 * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
3385 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
3386 Likewise.
3387 * testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
3388 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
3389 Likewise.
3390 * testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
3391 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
3392 * testsuite/27_io/filesystem/operations/copy.cc: Likewise.
3393 * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
3394 * testsuite/27_io/filesystem/operations/create_directories.cc:
3395 Likewise.
3396 * testsuite/27_io/filesystem/operations/create_directory.cc: Likewise.
3397 * testsuite/27_io/filesystem/operations/create_symlink.cc: Likewise.
3398 * testsuite/27_io/filesystem/operations/current_path.cc: Likewise.
3399 * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
3400 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
3401 * testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
3402 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
3403 * testsuite/27_io/filesystem/operations/last_write_time.cc: Likewise.
3404 * testsuite/27_io/filesystem/operations/permissions.cc: Likewise.
3405 * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
3406 * testsuite/27_io/filesystem/operations/read_symlink.cc: Likewise.
3407 * testsuite/27_io/filesystem/operations/relative.cc: Likewise.
3408 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
3409 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
3410 * testsuite/27_io/filesystem/operations/space.cc: Likewise.
3411 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
3412 * testsuite/27_io/filesystem/operations/symlink_status.cc: Likewise.
3413 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
3414 Likewise.
3415 * testsuite/27_io/filesystem/operations/weakly_canonical.cc: Likewise.
3416
3417
3418 PR libstdc++/86756
3419 * config/abi/pre/gnu.ver (GLIBCXX_3.4): Make various patterns for
3420 typeinfo and vtables less greedy.
3421 (GLIBCXX_3.4.26): Export symbols for std::filesystem::path.
3422 * src/c++17/Makefile.am: Add fs_path.cc and cow-fs_path.cc.
3423 * src/c++17/Makefile.in: Regenerate.
3424 * src/c++17/cow-fs_path.cc: Move src/filesystem/cow-std-path.cc to
3425 here, and change name of included file.
3426 * src/c++17/fs_path.cc: Move src/filesystem/std-path.cc to here.
3427 * src/filesystem/Makefile.am: Remove std-path.cc and cow-std-path.cc
3428 from sources.
3429 * src/filesystem/Makefile.in: Regenerate.
3430 * src/filesystem/cow-std-path.cc: Move to src/c++17/cow-fs_path.cc.
3431 * src/filesystem/std-path.cc: Move to src/c++17/fs_path.cc.
3432 * testsuite/27_io/filesystem/path/append/path.cc: Remove -lstdc++fs
3433 from dg-options and remove dg-require-filesystem-ts.
3434 * testsuite/27_io/filesystem/path/append/source.cc: Likewise.
3435 * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
3436 * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
3437 * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
3438 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
3439 * testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
3440 * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
3441 * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
3442 * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
3443 * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
3444 * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
3445 * testsuite/27_io/filesystem/path/construct/default.cc: Likewise.
3446 * testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
3447 * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
3448 * testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
3449 * testsuite/27_io/filesystem/path/construct/string_view.cc: Likewise.
3450 * testsuite/27_io/filesystem/path/decompose/extension.cc: Likewise.
3451 * testsuite/27_io/filesystem/path/decompose/filename.cc: Likewise.
3452 * testsuite/27_io/filesystem/path/decompose/parent_path.cc: Likewise.
3453 * testsuite/27_io/filesystem/path/decompose/relative_path.cc: Likewise.
3454 * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
3455 Likewise.
3456 * testsuite/27_io/filesystem/path/decompose/root_name.cc: Likewise.
3457 * testsuite/27_io/filesystem/path/decompose/root_path.cc: Likewise.
3458 * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
3459 * testsuite/27_io/filesystem/path/generation/normal.cc: Likewise.
3460 * testsuite/27_io/filesystem/path/generation/normal2.cc: Likewise.
3461 * testsuite/27_io/filesystem/path/generation/proximate.cc: Likewise.
3462 * testsuite/27_io/filesystem/path/generation/relative.cc: Likewise.
3463 * testsuite/27_io/filesystem/path/generic/generic_string.cc: Likewise.
3464 * testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
3465 * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
3466 * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
3467 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
3468 Likewise.
3469 * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
3470 Likewise.
3471 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
3472 Likewise.
3473 * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
3474 Likewise.
3475 * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
3476 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
3477 * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
3478 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc: Likewise.
3479 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
3480 * testsuite/27_io/filesystem/path/query/has_extension.cc: Likewise.
3481 * testsuite/27_io/filesystem/path/query/has_filename.cc: Likewise.
3482 * testsuite/27_io/filesystem/path/query/has_parent_path.cc: Likewise.
3483 * testsuite/27_io/filesystem/path/query/has_relative_path.cc: Likewise.
3484 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
3485 Likewise.
3486 * testsuite/27_io/filesystem/path/query/has_root_name.cc: Likewise.
3487 * testsuite/27_io/filesystem/path/query/has_root_path.cc: Likewise.
3488 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
3489 * testsuite/27_io/filesystem/path/query/is_absolute.cc: Likewise.
3490 * testsuite/27_io/filesystem/path/query/is_relative.cc: Likewise.
3491
3492 PR libstdc++/87431
3493 * include/std/variant (_Variant_storage<true, _Types...>::_M_valid):
3494 Check is_trivially_copyable instead of is_scalar.
3495 (variant::emplace<N, Args>(Args&&...)): If construction of the new
3496 contained value can throw and its type is trivially copyable then
3497 construct into a temporary variant and move from it, to provide the
3498 strong exception safety guarantee.
3499 (variant::emplace<N, U, Args>(initializer_list<U>, Args&&...)):
3500 Likewise.
3501 * testsuite/20_util/variant/87431.cc: New test.
3502 * testsuite/20_util/variant/run.cc: Adjust test so that throwing
3503 conversion causes valueless state.
3504
3505 PR libstdc++/88607
3506 * testsuite/17_intro/headers/c++1998/charset.cc: New test.
3507 * testsuite/17_intro/headers/c++2011/charset.cc: New test.
3508 * testsuite/17_intro/headers/c++2014/charset.cc: New test.
3509 * testsuite/17_intro/headers/c++2017/charset.cc: New test.
3510 * testsuite/17_intro/headers/c++2020/charset.cc: New test.
3511
3512 2019-01-05 Jonathan Wakely <jwakely (a] redhat.com>
3513
3514 * include/bits/fs_fwd.h (__file_clock): Define new clock.
3515 (file_time_type): Redefine in terms of __file_clock.
3516 * src/filesystem/ops-common.h (file_time): Add FIXME comment about
3517 overflow.
3518 * src/filesystem/std-ops.cc (is_set(perm_options, perm_options)): Give
3519 internal linkage.
3520 (internal_file_lock): New helper type for accessing __file_clock.
3521 (do_copy_file): Use internal_file_lock to convert system time to
3522 file_time_type.
3523 (last_write_time(const path&, error_code&)): Likewise.
3524 (last_write_time(const path&, file_time_type, error_code&)): Likewise.
3525
3526 2019-01-04 Jonathan Wakely <jwakely (a] redhat.com>
3527
3528 * config/abi/pre/gnu.ver (GLIBCXX_3.4.21): Make patterns less greedy
3529 for const member functions of std::basic_string.
3530 (GLIBCXX_3.4.26): Export member functions of std::basic_string added
3531 in C++17.
3532 * include/bits/basic_string.h (basic_string(__sv_wrapper, const A&)):
3533 Make non-standard constructor private.
3534 [!_GLIBCXX_USE_CXX11_ABI] (basic_string(__sv_wrapper, const A&)):
3535 Likewise.
3536 * include/bits/basic_string.tcc (std::string, std::wstring): Declare
3537 explicit instantiations for C++17 as well as earlier dialects.
3538 * src/c++17/Makefile.am: Add new source files.
3539 * src/c++17/Makefile.in: Regenerate.
3540 * src/c++17/cow-string-inst.cc: New file defining explicit
3541 instantiations for basic_string member functions added in C++17.
3542 * src/c++17/string-inst.cc: Likewise.
3543
3544 * config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Export allocator-extended
3545 copy/move constructors for old std::basic_string.
3546 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
3547 (basic_string::reference, basic_string::const_reference): Define
3548 as plain references for C++11 and later.
3549 (basic_string::basic_string()): Put constructor body outside
3550 preprocessor conditional groups.
3551 (basic_string::basic_string(basic_string&&)): Move _Alloc_hider
3552 instead of copying it.
3553 (basic_string::basic_string(const basic_string&, const _Alloc&)):
3554 Define.
3555 (basic_string::basic_string(basic_string&&, const _Alloc&)):
3556 Define.
3557 * include/bits/fs_path.h [!_GLIBCXX_USE_CXX11_ABI]: Remove special
3558 cases for old basic_string.
3559 * testsuite/21_strings/basic_string/cons/char/8.cc: Test
3560 allocator-extended constructors unconditionally. Add extra members to
3561 allocator type when using old string ABI.
3562 * testsuite/21_strings/basic_string/allocator/71964.cc: Enable test
3563 for old string ABI.
3564 * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: Likewise.
3565
3566 * testsuite/23_containers/list/61347.cc: Avoid spurious failure when
3567 -fno-inline added to test flags.
3568
3569 * testsuite/21_strings/basic_string/requirements/
3570 explicit_instantiation/debug.cc: Remove XFAIL for old ABI.
3571
3572 * testsuite/27_io/filesystem/filesystem_error/copy.cc: Fix static
3573 assertion failures with old std::string ABI.
3574
3575 * include/bits/fs_path.h (path::_List::erase): Replace both overloads
3576 with ...
3577 (path::pop_back(), path::_M_erase_from(const_iterator)): New member
3578 functions that will only erase elements at the end.
3579 * src/filesystem/std-path.cc (path::_List::_Impl::pop_back()): Define.
3580 (path::_List::_Impl::_M_erase_from(const_iterator)): Define.
3581 (path::_List::operator=(const _List&)): Use _M_erase_from(p) instead
3582 of erase(p, end()).
3583 (path::_List::pop_back()): Define.
3584 (path::_List::_M_erase_from(const_iterator)): Define.
3585 (path::operator/=(const path&)): Use pop_back to remove last component
3586 and _M_erase_from to remove multiple components.
3587 (path::_M_append(basic_string_view<value_type>)): Likewise.
3588 (path::operator+=(const path&)): Likewise.
3589 (path::_M_concat(basic_string_view<value_type>)): Likewise.
3590 (path::remove_filename()): Likewise.
3591 (path::lexically_normal()): Use _List::_Impl iterators instead of
3592 path::iterator. Use pop_back to remove components from the end. Clear
3593 trailing filename, instead of using erase(const_iterator) to remove
3594 a non-final component.
3595 * testsuite/27_io/filesystem/path/generation/normal.cc: Test
3596 additional cases.
3597 * testsuite/27_io/filesystem/path/generation/normal2.cc: New test.
3598
3599 * src/filesystem/std-path.cc (path::operator+=(const path&)): Fix
3600 incorrect treatment of empty filename after trailing slash.
3601 * testsuite/27_io/filesystem/path/concat/path.cc: Test problem case.
3602
3603 * testsuite/21_strings/basic_string/modifiers/assign/char/
3604 move_assign_optim.cc: Avoid spurious failure when -fno-inline added
3605 to test flags.
3606 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/
3607 move_assign_optim.cc: Likewise.
3608
3609 2019-01-03 Jonathan Wakely <jwakely (a] redhat.com>
3610 Jakub Jelinek <jakub (a] redhat.com>
3611
3612 PR libstdc++/88607
3613 * include/experimental/memory: Replace UTF-8 quote characters.
3614 * include/std/future: Replace UTF-8 "em dash" characters.
3615
3616 2019-01-03 Jonathan Wakely <jwakely (a] redhat.com>
3617
3618 PR libstdc++/88607
3619 * include/bits/forward_list.h: Replace UTF-8 "ligature fi" character.
3620 * include/debug/forward_list: Likewise.
3621 * include/experimental/bits/shared_ptr.h: Remove UTF-8 "section sign"
3622 character.
3623 * include/experimental/chrono: Likewise.
3624 * include/experimental/functional: Likewise.
3625 * include/experimental/ratio: Likewise.
3626 * include/experimental/system_error: Likewise.
3627 * include/experimental/tuple: Likewise.
3628 * include/experimental/type_traits: Likewise.
3629 * include/parallel/workstealing.h: Replace UTF-8 "en dash" character.
3630 * include/parallel/multiseq_selection.h: Likewise.
3631
3632 PR libstdc++/88681
3633 * config/abi/pre/gnu.ver: Add missing exports.
3634 * testsuite/22_locale/collate_byname/88681.cc: New test.
3635 * testsuite/22_locale/time_get/get/char/88681.cc: New test.
3636 * testsuite/22_locale/time_get/get/wchar_t/88681.cc: New test.
3637
3638 2019-01-02 Jonathan Wakely <jwakely (a] redhat.com>
3639
3640 * testsuite/23_containers/map/cons/deduction.cc: Test deduction from
3641 initializer_list<value_type> and from input iterator ranges.
3642 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
3643
3644 * testsuite/experimental/string_view/element_access/char/empty.cc:
3645 Fix year range in copyright header.
3646
3647 2019-01-02 Joel Brobecker <brobecker (a] adacore.com>
3648
3649 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
3650 Fix year range in copyright header.
3651
3652 2019-01-01 Jakub Jelinek <jakub (a] redhat.com>
3653
3654 Update copyright years.
3655
3657 Copyright (C) 2019 Free Software Foundation, Inc.
3658
3659 Copying and distribution of this file, with or without modification,
3660 are permitted in any medium without royalty provided the copyright
3661 notice and this notice are preserved.
3662