12021-04-22  Jakub Jelinek  <jakub@redhat.com>
2
3	Backported from master:
4	2021-03-19  Jakub Jelinek  <jakub@redhat.com>
5
6	PR libstdc++/99181
7	* testsuite/21_strings/char_traits/requirements/char/99181.cc: New
8	test.
9
102021-04-22  Jakub Jelinek  <jakub@redhat.com>
11
12	Backported from master:
13	2021-03-19  Jakub Jelinek  <jakub@redhat.com>
14
15	PR libstdc++/99181
16	* include/bits/char_traits.h (char_traits<char>::compare): For
17	constexpr evaluation don't call
18	__gnu_cxx::char_traits<char_type>::compare but do the comparison loop
19	directly.
20
212021-04-21  Patrick Palka  <ppalka@redhat.com>
22
23	Backported from master:
24	2020-09-22  Patrick Palka  <ppalka@redhat.com>
25
26	* include/bits/stl_algo.h (__sample): Exit early when the
27	input range is empty.
28	* testsuite/25_algorithms/sample/3.cc: New test.
29
302021-04-19  Jonathan Wakely  <jwakely@redhat.com>
31
32	Backported from master:
33	2020-10-10  Jonathan Wakely  <jwakely@redhat.com>
34
35	PR libstdc++/97362
36	* doc/html/manual/source_code_style.html: Regenerate.
37	* doc/xml/manual/appendix_contributing.xml: Add __deref to
38	BADNAMES.
39	* include/debug/functions.h (_Irreflexive_checker::__deref):
40	Rename to __ref.
41
422021-04-19  Jonathan Wakely  <jwakely@redhat.com>
43
44	Backported from master:
45	2020-10-26  Jonathan Wakely  <jwakely@redhat.com>
46
47	PR libstdc++/97570
48	* libsupc++/new_opa.cc: Declare size_t in global namespace.
49	Remove unused header.
50
512021-04-19  Jonathan Wakely  <jwakely@redhat.com>
52
53	Backported from master:
54	2020-12-16  Jonathan Wakely  <jwakely@redhat.com>
55
56	PR libstdc++/98319
57	* include/experimental/memory_resource: Add system_header pragma
58	and only define contents for C++14 and later.
59	* include/experimental/random: Only define contents for C++14
60	and later.
61	* include/experimental/source_location: Likewise.
62	* include/experimental/utility: Likewise.
63	* testsuite/experimental/feat-lib-fund.cc: Include all LFTS
64	headers that are present. Allow test to run for all modes.
65
662021-04-19  Jonathan Wakely  <jwakely@redhat.com>
67
68	Backported from master:
69	2021-02-11  Jonathan Wakely  <jwakely@redhat.com>
70
71	PR libstdc++/99058
72	* doc/xml/manual/status_cxx2011.xml: Document when support
73	became stable.
74	* doc/xml/manual/status_cxx2014.xml: Likewise.
75	* doc/xml/manual/status_cxx2017.xml: Likewise.
76	* doc/html/manual/status.html: Regenerate.
77
782021-01-13  Jonathan Wakely  <jwakely@redhat.com>
79
80	Backported from master:
81	2021-01-13  Jonathan Wakely  <jwakely@redhat.com>
82
83	PR libstdc++/98605
84	* include/std/mutex (call_once): Use NOLINT to suppress clang
85	analyzer warnings.
86
872021-01-11  Jonathan Wakely  <jwakely@redhat.com>
88
89	Backported from master:
90	2020-12-02  Jonathan Wakely  <jwakely@redhat.com>
91
92	* python/libstdcxx/v6/printers.py (StdExpPathPrinter): Store the
93	name of the type and pass it to the iterator.
94	* testsuite/libstdc++-prettyprinters/filesystem-ts.cc: New test.
95
962021-01-11  Jonathan Wakely  <jwakely@redhat.com>
97
98	Backported from master:
99	2020-12-02  Jonathan Wakely  <jwakely@redhat.com>
100
101	PR libstdc++/65480
102	PR libstdc++/68735
103	* python/libstdcxx/v6/printers.py (function_pointer_to_name):
104	New helper function to get the name of a function from its
105	address.
106	(StdExpAnyPrinter.__init__): Use it.
107
1082021-01-11  Jonathan Wakely  <jwakely@redhat.com>
109
110	Backported from master:
111	2020-08-10  Jonathan Wakely  <jwakely@redhat.com>
112
113	* python/libstdcxx/v6/printers.py (UniquePointerPrinter.__init__):
114	Use gdb.Type.strip_typedefs().
115	* testsuite/libstdc++-prettyprinters/compat.cc: Use a typedef in
116	the emulated old type.
117
1182021-01-11  Jonathan Wakely  <jwakely@redhat.com>
119
120	Backported from master:
121	2019-05-14  Jonathan Wakely  <jwakely@redhat.com>
122
123	* python/libstdcxx/v6/printers.py (UniquePointerPrinter.__init__): Do
124	not assume field called _M_head_impl is the first tuple element.
125	* testsuite/libstdc++-prettyprinters/compat.cc: Copy from gcc-9
126	branch.
127	* testsuite/libstdc++-prettyprinters/cxx11.cc: Check unique_ptr with
128	empty pointer type and non-empty deleter.
129
1302021-01-11  Jonathan Wakely  <jwakely@redhat.com>
131
132	Backported from master:
133	2020-09-24  Jonathan Wakely  <jwakely@redhat.com>
134
135	* doc/xml/manual/configure.xml: Correct name of option.
136	* doc/html/*: Regenerate.
137
1382020-11-26  Jonathan Wakely  <jwakely@redhat.com>
139
140	Backported from master:
141	2020-11-26  Jonathan Wakely  <jwakely@redhat.com>
142
143	PR libstdc++/98001
144	* testsuite/ext/stdio_filebuf/char/79820.cc: Do not pass invalid
145	FILE* to constructor.
146
1472020-11-16  Jonathan Wakely  <jwakely@redhat.com>
148
149	Backported from master:
150	2020-08-28  Jonathan Wakely  <jwakely@redhat.com>
151
152	PR libstdc++/92978
153	* include/std/numeric (__abs_integral): Replace with ...
154	(__detail::__absu): New function template that returns an
155	unsigned type, guaranteeing it can represent the most
156	negative signed value.
157	(__detail::__gcd, __detail::__lcm): Require arguments to
158	be unsigned and therefore already non-negative.
159	(gcd, lcm): Convert arguments to absolute value as unsigned
160	type before calling __detail::__gcd or __detail::__lcm.
161	* include/experimental/numeric (gcd, lcm): Likewise.
162	* testsuite/26_numerics/gcd/gcd_neg.cc: Adjust expected
163	errors.
164	* testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
165	* testsuite/26_numerics/gcd/92978.cc: New test.
166	* testsuite/26_numerics/lcm/92978.cc: New test.
167	* testsuite/experimental/numeric/92978.cc: New test.
168
1692020-11-09  Jonathan Wakely  <jwakely@redhat.com>
170
171	Backported from master:
172	2020-11-05  Jonathan Wakely  <jwakely@redhat.com>
173
174	PR libstdc++/97731
175	* src/filesystem/dir.cc (recursive_directory_iterator): Call the
176	right overload of _Dir::advance.
177	* testsuite/experimental/filesystem/iterators/97731.cc: New test.
178
1792020-10-08  Jonathan Wakely  <jwakely@redhat.com>
180
181	Backported from master:
182	2020-10-07  Jonathan Wakely  <jwakely@redhat.com>
183
184	* include/bits/random.h (seed_seq(initializer_list<T>)): Rename
185	parameter to use reserved name.
186	* testsuite/17_intro/names.cc: Check "il".
187
1882020-09-22  Jonathan Wakely  <jwakely@redhat.com>
189
190	Backported from master:
191	2020-08-26  Jonathan Wakely  <jwakely@redhat.com>
192
193	PR libstdc++/96803
194	* include/std/tuple
195	(_Tuple_impl(allocator_arg_t, Alloc, const _Tuple_impl<U...>&)):
196	Replace parameter pack with a type parameter and a pack and pass
197	the first type to __use_alloc.
198	* testsuite/20_util/tuple/cons/96803.cc: New test.
199
2002020-09-11  Jonathan Wakely  <jwakely@redhat.com>
201
202	Backported from master:
203	2020-03-18  Jonathan Wakely  <jwakely@redhat.com>
204
205	PR libstdc++/94033
206	* include/std/type_traits (__is_nt_default_constructible_atom): Remove.
207	(__is_nt_default_constructible_impl): Remove.
208	(__is_nothrow_default_constructible_impl): Remove.
209	(__is_nt_constructible_impl): Add bool template parameter. Adjust
210	partial specializations.
211	(__is_nothrow_constructible_impl): Replace class template with alias
212	template.
213	(is_nothrow_default_constructible): Derive from alias template
214	__is_nothrow_constructible_impl instead of
215	__is_nothrow_default_constructible_impl.
216	* testsuite/20_util/is_nothrow_constructible/94003.cc: New test.
217	* testsuite/20_util/is_nothrow_default_constructible/96999.cc: New file.
218
2192020-09-11  Jonathan Wakely  <jwakely@redhat.com>
220
221	PR libstdc++/71960
222	* include/experimental/string_view (basic_string_view):
223	Enable debug assertions.
224	* include/std/string_view (basic_string_view):
225	Likewise.
226
2272020-08-10  Jonathan Wakely  <jwakely@redhat.com>
228
229	* src/c++17/Makefile.in: Remove unused file.
230
2312020-08-07  Jonathan Wakely  <jwakely@redhat.com>
232
233	Backported from master:
234	2020-03-12  Jonathan Wakely  <jwakely@redhat.com>
235
236	* testsuite/27_io/filesystem/operations/last_write_time.cc: Fixes for
237	filesystems that silently truncate timestamps.
238	* testsuite/experimental/filesystem/operations/last_write_time.cc:
239	Likewise.
240
2412020-08-07  Jonathan Wakely  <jwakely@redhat.com>
242
243	Backported from master:
244	2019-01-10  Jonathan Wakely  <jwakely@redhat.com>
245
246	* testsuite/27_io/filesystem/operations/last_write_time.cc: Fix
247	test failures on targets with 32-bit time_t.
248
2492020-08-07  Jonathan Wakely  <jwakely@redhat.com>
250
251	Backported from master:
252	2020-03-21  Jonathan Wakely  <jwakely@redhat.com>
253
254	PR libstdc++/93245
255	* include/experimental/bits/fs_path.h (path::generic_string<C,T,A>()):
256	Return the generic format not the native format.
257	* testsuite/experimental/filesystem/path/generic/generic_string.cc:
258	Improve test coverage.
259
2602020-08-07  Jonathan Wakely  <jwakely@redhat.com>
261
262	Backported from master:
263	2020-03-21  Jonathan Wakely  <jwakely@redhat.com>
264
265	PR libstdc++/94242
266	* include/bits/fs_path.h (path::_S_str_convert): Replace first
267	parameter with basic_string_view so that strings with different
268	allocators can be accepted.
269	(path::generic_string<C,T,A>()): Use basic_string object that uses the
270	right allocator type.
271	* testsuite/27_io/filesystem/path/generic/94242.cc: New test.
272	* testsuite/27_io/filesystem/path/generic/generic_string.cc: Improve
273	test coverage.
274
2752020-08-06  Jonathan Wakely  <jwakely@redhat.com>
276
277	Backported from master:
278	2020-08-06  Jonathan Wakely  <jwakely@redhat.com>
279
280	PR libstdc++/96484
281	* src/filesystem/ops.cc (fs::read_symlink): Return an error
282	immediately for non-symlinks.
283	* src/filesystem/std-ops.cc (fs::read_symlink): Likewise.
284
2852020-07-21  Jonathan Wakely  <jwakely@redhat.com>
286
287	Backported from master:
288	2019-01-28  Jonathan Wakely  <jwakely@redhat.com>
289
290	PR libstdc++/68737
291	* config/locale/generic/c_locale.h (__convert_from_v)
292	[_GLIBCXX_USE_C99_STDIO]: Also check _GLIBCXX_HAVE_BROKEN_VSNPRINTF.
293	* config/os/hpux/os_defines.h: Define _GLIBCXX_HAVE_BROKEN_VSNPRINTF.
294	* include/bits/locale_facets.tcc (num_put::_M_insert_float)
295	[_GLIBCXX_USE_C99_STDIO]: Also check _GLIBCXX_HAVE_BROKEN_VSNPRINTF.
296
2972020-05-06  Jonathan Wakely  <jwakely@redhat.com>
298
299	* doc/xml/manual/abi.xml (abi.versioning.history): Update 8.0.0 to
300	8.1.0 in list of versions.
301	* doc/html/*: Regenerate.
302
3032020-05-04  Jonathan Wakely  <jwakely@redhat.com>
304
305	* doc/xml/faq.xml: Use working link for SGI STL FAQ.
306	* doc/html/*: Regenerate.
307
3082020-04-21  Jonathan Wakely  <jwakely@redhat.com>
309
310	* doc/xml/manual/status_cxx2017.xml: Fix name of feature test macro.
311	* doc/html/*: Regenerate.
312
3132020-04-03  Jonathan Wakely  <jwakely@redhat.com>
314
315	Backport from mainline
316	2020-04-03  Jonathan Wakely  <jwakely@redhat.com>
317
318	PR libstdc++/93960
319	* include/bits/ptr_traits.h (__to_address): Add special case for debug
320	iterators, to avoid dereferenceable check.
321	* testsuite/20_util/to_address/1_neg.cc: Adjust dg-error line number.
322	* testsuite/20_util/to_address/debug.cc: New test.
323
3242020-03-04  Release Manager
325
326	* GCC 8.4.0 released.
327
3282020-02-26  Jonathan Wakely  <jwakely@redhat.com>
329
330	Backport from mainline
331	2020-01-09  Jonathan Wakely  <jwakely@redhat.com>
332
333	PR libstdc++/93205
334	* include/bits/random.h (operator>>): Check stream operation succeeds.
335	* include/bits/random.tcc (operator>>): Likewise.
336	(__extract_params): New function to fill a vector from a stream.
337	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error line.
338
339	Backport from mainline
340	2019-12-10  Jonathan Wakely  <jwakely@redhat.com>
341
342	PR libstdc++/92886
343	* include/bits/ios_base.h (std::ios_base::trunc): Fix comment.
344
345	Backport from mainline
346	2020-01-28  Jonathan Wakely  <jwakely@redhat.com>
347
348	PR libstdc++/93325
349	* acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Use AC_SEARCH_LIBS for
350	clock_gettime instead of explicit glibc version check.
351	* configure: Regenerate.
352
3532020-02-26  Jonathan Wakely  <jwakely@redhat.com>
354
355	Backport from mainline
356	2020-02-04  Jonathan Wakely  <jwakely@redhat.com>
357
358	PR libstdc++/93562
359	* include/bits/unique_ptr.h (__uniq_ptr_impl::swap): Define.
360	(unique_ptr::swap, unique_ptr<T[], D>::swap): Call it.
361	* testsuite/20_util/unique_ptr/modifiers/93562.cc: New test.
362
3632020-02-26  Jonathan Wakely  <jwakely@redhat.com>
364
365	Backport from mainline
366	2020-01-17  Jonathan Wakely  <jwakely@redhat.com>
367
368	PR libstdc++/92376
369	* libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare allocation
370	functions if they were detected by configure.
371
3722020-02-26  Jonathan Wakely  <jwakely@redhat.com>
373
374	Backport from mainline
375	2019-10-09  Jonathan Wakely  <jwakely@redhat.com>
376
377	PR libstdc++/78552
378	* src/c++98/locale_init.cc (locale::classic()): Do not construct a new
379	locale object for every call.
380	(locale::_S_initialize_once()): Construct C locale here.
381
382	Backport from mainline
383	2020-01-23  Jonathan Wakely  <jwakely@redhat.com>
384
385	PR libstdc++/91947
386	* include/Makefile.am (${host_builddir}/largefile-config.h): Simplify
387	rule.
388	* include/Makefile.in: Regenerate.
389
390	Backport from mainlne
391	2019-10-04  Jonathan Wakely  <jwakely@redhat.com>
392
393	PR libstdc++/81091
394	PR libstdc++/91947
395	* configure.ac: Use AC_SYS_LARGEFILE to enable 64-bit file APIs.
396	* config.h.in: Regenerate:
397	* configure: Regenerate:
398	* include/Makefile.am (${host_builddir}/largefile-config.h): New
399	target to generate config header for filesystem library.
400	(${host_builddir}/c++config.h): Rename macros for large file support.
401	* include/Makefile.in: Regenerate.
402	* src/filesystem/dir.cc: Include new config header.
403	* src/filesystem/ops.cc: Likewise.
404	(experimental::filesystem::file_size): Use uintmax_t for size.
405	* src/filesystem/std-dir.cc: Include new config header.
406	* src/filesystem/std-ops.cc: Likewise.
407	(filesystem::file_size): Use uintmax_t for size.
408
4092020-01-24  Jonathan Wakely  <jwakely@redhat.com>
410
411	Backport from mainline
412	2020-01-20  Jonathan Wakely  <jwakely@redhat.com>
413
414	* doc/xml/faq.xml: Fix grammar.
415	* doc/xml/manual/appendix_contributing.xml: Improve instructions.
416	* doc/xml/manual/spine.xml: Update copyright years.
417	* doc/html/*: Regenerate.
418
4192020-01-19  Eric S. Raymond <esr@thyrsus.com>
420	    Sandra Loosemore  <sandra@codesourcery.com>
421
422	Partial backport from mainline:
423
424	2020-01-19  Eric S. Raymond <esr@thyrsus.com>
425	* doc/xml/faq.xml: Update for SVN -> Git transition.
426	* doc/xml/manual/appendix_contributing.xml: Likewise.
427
4282020-01-13  Jonathan Wakely  <jwakely@redhat.com>
429
430	* doc/xml/manual/status_cxx1998.xml: Replace incorrect statement
431	about documenting mainline.
432	* doc/xml/manual/status_cxx2011.xml: Likewise.
433	* doc/xml/manual/status_cxx2014.xml: Likewise.
434	* doc/xml/manual/status_cxx2017.xml: Likewise.
435	* doc/xml/manual/status_cxxtr1.xml: Likewise.
436	* doc/xml/manual/status_cxxtr24733.xml: Likewise.
437	* doc/html/*: Regenerate.
438
4392020-01-08  Jonathan Wakely  <jwakely@redhat.com>
440
441	PR libstdc++/93201
442	* src/c++17/fs_ops.cc (remove_all(const path&, error_code&)): Check
443	result of recursive call before incrementing iterator.
444	* src/filesystem/ops.cc (remove_all(const path&, error_code&)):
445	Likewise.
446	* testsuite/27_io/filesystem/operations/remove_all.cc: Check errors
447	are reported correctly.
448	* testsuite/experimental/filesystem/operations/remove_all.cc: Likewise.
449
4502019-10-24  Jonathan Wakely  <jwakely@redhat.com>
451
452	Backport from mainline
453	2019-06-06  Jonathan Wakely  <jwakely@redhat.com>
454
455	* testsuite/20_util/is_nothrow_invocable/value.cc: Test converting to
456	void.
457	* testsuite/experimental/names.cc: Do not run for C++98 mode. Do not
458	include Library Fundamentals or Networking headers in C++11 mode.
459
460	Backport from mainline
461	2019-10-22  Jonathan Wakely  <jwakely@redhat.com>
462
463	* include/bits/memoryfwd.h (uses_allocator): Do not declare for C++98.
464	* testsuite/17_intro/names.cc: Check uses_allocator in C++98.
465
466	Backport from mainline
467	2019-10-18  Jonathan Wakely  <jwakely@redhat.com>
468
469	PR libstdc++/92143
470	* libsupc++/new_opa.cc (operator new) [__APPLE__]: Increase alignment
471	to at least sizeof(void*).
472
473	Backport from mainline
474	2019-10-08  Jonathan Wakely  <jwakely@redhat.com>
475
476	* doc/Makefile.am (doc-html-docbook-regenerate): New target.
477	(${docbook_outdir}/html): Do not create unused 'html/ext' directory.
478	* doc/Makefile.in: Regenerate.
479	* doc/xml/manual/documentation_hacking.xml: Document new target.
480	* doc/html/*: Regenerate.
481
482	* doc/xml/manual/allocator.xml: Use archived copy of CUJ article.
483
484	Backport from mainline
485	2019-05-31  Gerald Pfeifer  <gerald@pfeifer.com>
486
487	* doc/xml/manual/allocator.xml: Move hoard.org back to http.
488
489	Backport from mainline
490	2019-10-11  Jonathan Wakely  <jwakely@redhat.com>
491
492	PR libstdc++/92059
493	* include/tr2/dynamic_bitset (__dynamic_bitset_base): Define all
494	special member functions as defaulted. Add noexcept to most members.
495	(__dynamic_bitset_base(size_t, unsigned long long, const _Alloc&)):
496	Mask off unwanted bits in the __val parameter. Avoid undefined left
497	shifts.
498	(__dynamic_bitset_base::_M_assign): Remove.
499	(__dynamic_bitset_base::_M_do_reset): Use std::fill.
500	(__dynamic_bitset_base::_M_are_all_aux): Avoid integer promotion when
501	block_type has lower rank than int.
502	(dynamic_bitset): Add noexcept to most members. Use injected-class-name
503	in return types and parameter types.
504	(dynamic_bitset::_M_Nb): Add default member initializer.
505	(dynamic_bitset(), dynamic_bitset(const dynamic_bitset&)): Define as
506	defaulted.
507	(dynamic_bitset(dynamic_bitset&&)): Clear source object after move.
508	(dynamic_bitset::operator=(const dynamic_bitset&)): Define as
509	defaulted.
510	(dynamic_bitset::operator=(dynamic_bitset&&)): Add noexcept-specifier.
511	Define without using swap, to propagate allocator correctly.
512	(dynamic_bitset(const char*, const _Alloc&)): Use strlen.
513	(dynamic_bitset::_M_do_sanitize, dynamic_bitset::_M_do_fill): Use
514	casts to avoid unwanted integer promotions.
515	(dynamic_bitset::_M_copy_from_ptr): Rearrange template parameters and
516	add default template arguments and default argument to simplify usage.
517	(dynamic_bitset::_M_copy_from_string): Adjust call to _M_copy_from_ptr.
518	(operator==(const dynamic_bitset&, const dynamic_bitset&))
519	(operator<(const dynamic_bitset&, const dynamic_bitset&)): Use _M_Nb.
520	* include/tr2/dynamic_bitset.tcc (dynamic_bitset::_M_copy_from_ptr):
521	Adjust template parameters to match declaration.
522	* testsuite/tr2/dynamic_bitset/cmp.cc: New test.
523	* testsuite/tr2/dynamic_bitset/cons.cc: New test.
524	* testsuite/tr2/dynamic_bitset/copy.cc: New test.
525	* testsuite/tr2/dynamic_bitset/move.cc: New test.
526	* testsuite/tr2/dynamic_bitset/pr92059.cc: New test.
527
5282019-09-11  Jonathan Wakely  <jwakely@redhat.com>
529
530	* python/libstdcxx/v6/xmethods.py (SharedPtrUseCountWorker.__call__):
531	Fix syntax error.
532
5332019-09-02  Jonathan Wakely  <jwakely@redhat.com>
534
535	* doc/html/*: Regenerate.
536
537	* testsuite/20_util/unique_ptr/assign/48635_neg.cc: Replace dg-error
538	with dg-prune-output for enable_if failure.
539	* testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Add
540	dg-prune-output for enable_if failure.
541
5422019-08-30  Jonathan Wakely  <jwakely@redhat.com>
543
544	Backport from mainline
545	2018-10-02  Jonathan Wakely  <jwakely@redhat.com>
546
547	* include/std/variant (__gen_vtable_impl::__visit_invoke): Call __get
548	directly instead of get, as caller ensures correct index is used.
549	(holds_alternative, get, get_if): Remove redundant inline specifiers.
550	(_VARIANT_RELATION_FUNCTION_TEMPLATE): Likewise.
551
5522019-08-30  Jonathan Wakely  <jwakely@redhat.com>
553
554	Backport from mainline
555	2018-08-16  Jonathan Wakely  <jwakely@redhat.com>
556
557	* include/std/ostream (basic_ostream::sentry::~sentry): Suppress
558	deprecation warnings for using uncaught_exception().
559
5602019-08-30  Jonathan Wakely  <jwakely@redhat.com>
561
562	Backport from mainline
563	2019-07-31  Jonathan Wakely  <jwakely@redhat.com>
564
565	PR libstdc++/91308
566	* include/bits/unique_ptr.h (unique_ptr::__safe_conversion_up): Remove
567	constraints on deleter that should only apply to the constructor.
568	(unique_ptr<T[], D>::__safe_conversion_up): Likewise.
569	(unique_ptr<T[], D>::unique_ptr(unique_ptr<U, D>&&)): Restore
570	constraints on deleter here.
571	* testsuite/20_util/unique_ptr/assign/91308.cc: New test.
572
5732019-08-30  Jonathan Wakely  <jwakely@redhat.com>
574
575	Backport from mainline
576	2019-07-29  Jonathan Wakely  <jwakely@redhat.com>
577
578	PR libstdc++/51333
579	* libsupc++/cxxabi.h (__gnu_cxx::recursive_init_error): Do not define
580	constructor inline.
581	* libsupc++/guard_error.cc (__gnu_cxx::recursive_init_error): Define
582	constructor.
583	* testsuite/18_support/51333.cc: New test.
584
5852019-08-30  Jonathan Wakely  <jwakely@redhat.com>
586
587	Backport from mainline
588	2019-05-23  Jonathan Wakely  <jwakely@redhat.com>
589
590	* doc/xml/manual/status_cxx2017.xml: Add feature test macro for
591	P0040R3.
592	* doc/html/*: Regenerate.
593
594	Backport from mainline
595	2019-06-20  Jonathan Wakely  <jwakely@redhat.com>
596
597	* doc/xml/manual/status_cxx2017.xml: Fix outdated reference to
598	C++17 working draft.
599
600	Backport from mainline
601	2019-05-21  Jonathan Wakely  <jwakely@redhat.com>
602
603	* doc/xml/manual/shared_ptr.xml: Fix names of lock policy constants.
604
6052019-08-30  Jonathan Wakely  <jwakely@redhat.com>
606
607	Backport from mainline
608	2018-09-21  Jonathan Wakely  <jwakely@redhat.com>
609
610	PR libstdc++/78179
611	* testsuite/26_numerics/headers/cmath/hypot.cc: Use lower tolerance
612	when sizeof(long double) == sizeof(double).
613
6142019-08-30  Jonathan Wakely  <jwakely@redhat.com>
615
616	Backport from mainline
617	2019-03-22  Jonathan Wakely  <jwakely@redhat.com>
618
619	* include/bits/stl_algobase.h (__lg): Do arithmetic on type int to
620	avoid -Wconversion warnings.
621
6222019-08-30  Jonathan Wakely  <jwakely@redhat.com>
623
624	Backport from mainline
625	2019-06-07  Jonathan Wakely  <jwakely@redhat.com>
626
627	PR libstdc++/90770
628	* src/Makefile.am (stamp-debug): Also test for missing makefile.
629	* src/Makefile.in: Regenerate.
630
6312019-08-30  Jonathan Wakely  <jwakely@redhat.com>
632
633	Backport from mainline
634	2019-05-17  Jonathan Wakely  <jwakely@redhat.com>
635
636	* include/bits/random.h (seed_seq::param): Fix non-reserved name.
637	* include/experimental/type_traits (is_detected_exact)
638	(is_detected_exact_v): Likewise.
639	* testsuite/17_intro/names.cc: Check for more non-reserved names.
640	* testsuite/experimental/names.cc: New test.
641
6422019-08-30  Jonathan Wakely  <jwakely@redhat.com>
643
644	Backport from mainline
645	2019-05-17  Jonathan Wakely  <jwakely@redhat.com>
646
647	PR libstdc++/85965
648	* include/bits/hashtable.h (_Hashtable::~_Hashtable()): Remove static
649	assertions from the destructor.
650	* include/bits/hashtable_policy.h (_Hash_code_base::_M_hash_code):
651	Move static_assert for hash function to here.
652	(_Hash_table_base::_M_equals): Move static_assert for equality
653	predicate to here.
654	* include/bits/stl_tree.h (_Rb_tree::_S_key(_Const_Link_type)): Move
655	assertions here. Access the value directly instead of calling _S_value.
656	(_Rb_tree::_S_key(_Const_Base_ptr)): Do downcast and forward to
657	_S_key(_Const_Link_type).
658	* testsuite/23_containers/set/85965.cc: Check construction,
659	destruction, assignment and size() do not trigger the assertions.
660	* testsuite/23_containers/unordered_set/85965.cc: Likewise.
661	* testsuite/23_containers/map/48101_neg.cc: Call find and adjust
662	expected errors.
663	* testsuite/23_containers/multimap/48101_neg.cc: Likewise.
664	* testsuite/23_containers/multiset/48101_neg.cc: Likewise.
665	* testsuite/23_containers/set/48101_neg.cc: Likewise.
666	* testsuite/23_containers/unordered_map/48101_neg.cc: Likewise.
667	* testsuite/23_containers/unordered_multimap/48101_neg.cc: Likewise.
668	* testsuite/23_containers/unordered_multiset/48101_neg.cc: Likewise.
669	* testsuite/23_containers/unordered_set/48101_neg.cc: Likewise.
670
6712019-08-30  Jonathan Wakely  <jwakely@redhat.com>
672
673	Backport from mainline
674	2018-09-03  Jonathan Wakely  <jwakely@redhat.com>
675
676	* include/bits/stl_vector.h (vector::_Temporary_value::_M_ptr):
677	Return raw pointer not allocator's pointer type.
678	(vector::_Temporary_value::_M_val): Use _M_ptr.
679
6802019-06-01   Iain Sandoe  <iain@sandoe.co.uk>
681
682	Backport from mainline
683	2018-12-22 Iain Sandoe <iain@sandoe.co.uk>
684
685	* /config/os/bsd/darwin/ppc-extra.ver: Append long double symbols.
686
6872019-05-30  Jonathan Wakely  <jwakely@redhat.com>
688
689	* doc/xml/manual/status_cxx2017.xml: Fix typo in documentation of
690	implementation-defined support for [fs.conform.9945].
691	* doc/html/*: Regenerate.
692
6932019-05-28  Jonathan Wakely  <jwakely@redhat.com>
694
695	PR libstdc++/90634
696	* src/filesystem/path.cc (path::_M_split_cmpts()): Fix check for "/".
697	* testsuite/27_io/filesystem/path/construct/90634.cc: New test.
698	* testsuite/experimental/filesystem/path/construct/90634.cc: New test.
699
700	PR libstdc++/90634
701	* include/bits/fs_path.h (path::path(path&&)): Only call
702	_M_split_cmpts() for a path with multiple components.
703	(path::_S_is_dir_sep()): Add missing 'static' keyword to function.
704	* include/experimental/bits/fs_path.h: Likewise.
705	* src/filesystem/path.cc (path::_M_split_cmpts()): Count number of
706	components and reserve space in vector. Return early when there is
707	only one component.
708	* src/filesystem/std-path.cc (path::_M_split_cmpts()): Likewise.
709
7102019-05-23  Jonathan Wakely  <jwakely@redhat.com>
711
712	Backport from mainline
713	2019-02-27  Jonathan Wakely  <jwakely@redhat.com>
714
715	PR libstdc++/89466
716	* acinclude.m4 (GLIBCXX_CONFIGURE_DOCBOOK): Reorder check for local
717	stylesheet directories before check for xsltproc. Try to use
718	xmlcatalog to find local stylesheet directory before trying hardcoded
719	paths. Add path used by suse to hardcoded paths. Adjust xsltproc
720	check to look for the same stylesheet as doc/Makefile.am uses. Don't
721	use xsltproc if xmlcatalog fails to find a local stylesheet.
722	* configure.ac: Check for xmlcatalog.
723	* Makefile.in: Regenerate.
724	* configure: Likewise.
725	* doc/Makefile.in: Likewise.
726	* include/Makefile.in: Likewise.
727	* libsupc++/Makefile.in: Likewise.
728	* po/Makefile.in: Likewise.
729	* python/Makefile.in: Likewise.
730	* src/Makefile.in: Likewise.
731	* src/c++11/Makefile.in: Likewise.
732	* src/c++17/Makefile.in: Likewise.
733	* src/c++98/Makefile.in: Likewise.
734	* src/filesystem/Makefile.in: Likewise.
735	* testsuite/Makefile.in: Likewise.
736
7372019-05-23  Jonathan Wakely  <jwakely@redhat.com>
738
739	* doc/html/*: Regenerate.
740
7412019-05-23  Jonathan Wakely  <jwakely@redhat.com>
742
743	Backport from mainline
744	2019-05-23  Jonathan Wakely  <jwakely@redhat.com>
745
746	* include/experimental/any (__any_caster): Use RTTI if comparing
747	addresses fails, to support non-unique addresses in shared libraries.
748	* include/std/any (__any_caster): Likewise.
749	* testsuite/experimental/any/misc/any_cast_neg.cc: Use 0 for dg-error
750	line number.
751
7522019-05-23  Jonathan Wakely  <jwakely@redhat.com>
753
754	Backport from mainline
755	2019-05-23  Jonathan Wakely  <jwakely@redhat.com>
756
757	PR libstdc++/90220
758	* include/experimental/any (__any_caster): Constrain to only be
759	callable for object types. Use remove_cv_t instead of decay_t.
760	If the type decays or isn't copy constructible, compare the manager
761	function to a dummy specialization.
762	(__any_caster): Add overload constrained for non-object types.
763	(any::_Manager_internal<_Op>): Add dummy specialization.
764	* testsuite/experimental/any/misc/any_cast.cc: Test function types
765	and array types.
766
767	Backport from mainline
768	2019-04-24  Jonathan Wakely  <jwakely@redhat.com>
769
770	PR libstdc++/90220
771	* include/std/any (__any_caster): Use remove_cv_t instead of decay_t.
772	Avoid a runtime check for types that can never be stored in std::any.
773	* testsuite/20_util/any/misc/any_cast.cc: Test std::any_cast with
774	array types.
775
776	Backport from mainline
777	2019-04-24  Jonathan Wakely  <jwakely@redhat.com>
778
779	PR libstdc++/90220 (partial)
780	* include/std/any (any_cast<T>(any*), any_cast<T>(const any*)): Do
781	not attempt ill-formed static_cast to pointers to non-object types.
782	* testsuite/20_util/any/misc/any_cast.cc: Test std::any_cast with
783	function types.
784
7852019-05-23  Jonathan Wakely  <jwakely@redhat.com>
786
787	Backported from mainline
788	2019-01-15  Jonathan Wakely  <jwakely@redhat.com>
789
790	* doc/xml/manual/status_cxx2017.xml: Document P0032R3 and P0307R2
791	status.
792	* include/bits/stl_uninitialized.h (__cpp_lib_raw_memory_algorithms):
793	Define.
794	* include/std/any (__cpp_lib_any): Define as 201606L, because P0032R3
795	changes are supported.
796	* include/std/optional (__cpp_lib_optional): Likewise.
797	* include/std/variant (__cpp_lib_variant): Likewise.
798	* libsupc++/exception (__cpp_lib_uncaught_exceptions): Define as long
799	integer.
800
8012019-05-20  Jonathan Wakely  <jwakely@redhat.com>
802
803	Backported from mainline
804	2019-05-20  Jonathan Wakely  <jwakely@redhat.com>
805
806	PR c++/90532 Ensure __is_constructible(T[]) is false
807	* include/std/type_traits (__do_is_default_constructible_impl)
808	(__is_default_constructible_atom, __is_default_constructible_safe):
809	Remove.
810	(is_default_constructible): Use is_constructible.
811	* testsuite/20_util/is_constructible/value.cc: Check int[] case.
812	* testsuite/20_util/is_default_constructible/value.cc: Likewise.
813	* testsuite/20_util/is_trivially_constructible/value.cc: Likewise.
814	* testsuite/20_util/is_trivially_default_constructible/value.cc:
815	Likewise.
816
8172019-05-17  Jonathan Wakely  <jwakely@redhat.com>
818
819	Backport from mainline
820	2019-05-04  Jonathan Wakely  <jwakely@redhat.com>
821
822	PR libstdc++/90299
823	* src/filesystem/std-ops.cc (absolute(const path&)): Report an error
824	if the argument is an empty path.
825	(absolute(const path&, error_code&)): Use invalid_argument as error
826	code instead of no_such_file_or_directory.
827	* testsuite/27_io/filesystem/operations/absolute.cc: Check handling
828	of non-existent paths and empty paths with both overloads of absolute.
829
8302019-05-15  Jonathan Wakely  <jwakely@redhat.com>
831
832	Backport from mainline
833	2019-04-30  Jonathan Wakely  <jwakely@redhat.com>
834
835	* testsuite/27_io/filesystem/path/decompose/root_path.cc: Remove
836	macros accidentally left in.
837
838	Backport from mainline
839	2019-05-13  Jonathan Wakely  <jwakely@redhat.com>
840
841	PR libstdc++/90454.cc path construction from void*
842	* include/bits/fs_path.h (path::_Path): Use remove_pointer so that
843	pointers to void are rejected as well as void.
844	* include/experimental/bits/fs_path.h (path::_Path): Likewise.
845	* testsuite/27_io/filesystem/path/construct/80762.cc: Also check
846	pointers to void.
847	* testsuite/experimental/filesystem/path/construct/80762.cc: Likewise.
848
8492019-05-11  Jonathan Wakely  <jwakely@redhat.com>
850
851	Backport from mainline
852	2019-05-10  Jonathan Wakely  <jwakely@redhat.com>
853
854	PR libstdc++/81266
855	* testsuite/util/thread/all.h: Do not use remove_pointer for
856	std::thread::native_handle_type.
857
8582019-05-07  Jonathan Wakely  <jwakely@redhat.com>
859
860	Backport from mainline
861	2019-02-06  Jonathan Wakely  <jwakely@redhat.com>
862
863	PR libstdc++/89102 (partial)
864	* include/std/type_traits (common_type<>): Define.
865	(common_type<T>): Derive from common_type<T, T>.
866	* testsuite/20_util/common_type/requirements/explicit_instantiation.cc:
867	Test zero-length template argument list.
868	* testsuite/20_util/common_type/requirements/sfinae_friendly_1.cc:
869	Test additional single argument cases.
870	* testsuite/20_util/common_type/requirements/sfinae_friendly_2.cc:
871	Adjust expected error.
872
873	Backport from mainline
874	2019-01-22  Jonathan Wakely  <jwakely@redhat.com>
875
876	PR libstdc++/88740
877	* testsuite/util/testsuite_hooks.h [stderr] (VERIFY): Use fprintf to
878	write to stderr instead of using printf.
879
880	Backport from mainline
881	2019-04-23  Jonathan Wakely  <jwakely@redhat.com>
882
883	PR libstdc++/90165
884	* include/std/variant (variant::__is_in_place_tag)
885	(variant::__not_in_place_tag): New helpers for variant(T&&)
886	constructor constraint.
887	(variant::variant(T&&)): Use __not_in_place_tag in constraints.
888	* testsuite/20_util/variant/compile.cc: Check variant(T&&) constructor
889	isn't used for in_place_type or in_place_index arguments.
890
891	Backport from mainline
892	2019-04-17  Jonathan Wakely  <jwakely@redhat.com>
893
894	PR libstdc++/90105
895	* include/bits/forward_list.tcc (operator==): Do not use operator!= to
896	compare elements.
897	(forward_list<T, A>::sort(Comp)): When elements are equal take the one
898	earlier in the list, so that sort is stable.
899	* testsuite/23_containers/forward_list/operations/90105.cc: New test.
900	* testsuite/23_containers/forward_list/comparable.cc: Test with
901	types that meet the minimum EqualityComparable and LessThanComparable
902	requirements. Remove irrelevant comment.
903
904	Backport from mainline
905	2019-04-17  Jonathan Wakely  <jwakely@redhat.com>
906
907	* include/std/optional (optional::value_or(U&&) &&): Add missing
908	constexpr specifier.
909	* testsuite/20_util/optional/constexpr/observers/4.cc: Check value_or
910	for disengaged optionals and rvalue optionals.
911	* testsuite/20_util/optional/observers/4.cc: Likewise.
912
913	Backport from mainline
914	2019-04-10  Jonathan Wakely  <jwakely@redhat.com>
915
916	* doc/xml/faq.xml: Add information about emergency EH pool.
917	* doc/xml/manual/debug.xml: Update list of memory debugging tools.
918	Move outdated information on mt_allocator to a separate section.
919	* doc/xml/manual/evolution.xml: Clarify that GLIBCXX_FORCE_NEW
920	doesn't affect the default allocator.
921
922	Backport from mainline
923	2019-04-05  Jonathan Wakely  <jwakely@redhat.com>
924
925	* src/filesystem/std-dir.cc (_Dir::advance(bool, error_code&)): Handle
926	d_type == DT_UNKNOWN immediately.
927	(_Dir::should_recurse(bool, error_code&)): Remove file_type::unknown
928	handling here.
929	* testsuite/27_io/filesystem/iterators/caching.cc: New test.
930
931	Backport from mainline
932	2019-04-05  Jonathan Wakely  <jwakely@redhat.com>
933
934	* include/bits/fs_path.h (path::operator=(path&&)): Check for self
935	assignment.
936	* testsuite/27_io/filesystem/path/assign/copy.cc: Test self
937	assignment.
938
939	Backport from mainline
940	2019-03-26  Jonathan Wakely  <jwakely@redhat.com>
941
942	PR libstdc++/85965
943	* include/bits/hashtable.h (_Hashtable): Move static assertions to
944	destructor so they are not evaluated until the _Key type is complete.
945	* include/bits/stl_tree.h (_Rb_tree): Likewise.
946	* testsuite/23_containers/set/85965.cc: New test.
947	* testsuite/23_containers/unordered_set/85965.cc: New test.
948	* testsuite/23_containers/map/48101_neg.cc: Replace "here" errors
949	with regexp matching the corresponding _Rb_tree specialization.
950	* testsuite/23_containers/multimap/48101_neg.cc: Likewise.
951	* testsuite/23_containers/multiset/48101_neg.cc: Remove "here" error.
952	* testsuite/23_containers/set/48101_neg.cc: Likewise.
953	* testsuite/23_containers/unordered_map/48101_neg.cc: Likewise.
954	* testsuite/23_containers/unordered_multimap/48101_neg.cc: Likewise.
955	* testsuite/23_containers/unordered_multiset/48101_neg.cc: Likewise.
956	* testsuite/23_containers/unordered_set/48101_neg.cc: Likewise.
957
958	Backport from mainline
959	2019-03-11  Jonathan Wakely  <jwakely@redhat.com>
960
961	PR libstdc++/89629
962	* libsupc++/hash_bytes.cc [__SIZEOF_SIZE_T__ == 8] (_Hash_bytes):
963	Use correct type for len_aligned.
964	* testsuite/20_util/hash/89629.cc: New test.
965
966	Backport from mainline
967	2019-03-08  Jonathan Wakely  <jwakely@redhat.com>
968
969	* doc/xml/manual/using.xml: Use link element instead of xref.
970
971	Backport from mainline
972	2019-02-14  Jonathan Wakely  <jwakely@redhat.com>
973
974	* doc/xml/manual/intro.xml: Document LWG 2586 status.
975	* include/bits/uses_allocator.h (__uses_alloc): Use const lvalue
976	allocator type in is_constructible checks.
977	* testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error.
978	* testsuite/20_util/scoped_allocator/dr2586.cc: New test.
979	* testsuite/20_util/tuple/cons/allocators.cc: Add test using
980	problematic type from LWG 2586 discussion.
981	* testsuite/20_util/uses_allocator/69293_neg.cc: Adjust dg-error.
982	* testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
983
984	Backport from mainline
985	2019-02-14  Jonathan Wakely  <jwakely@redhat.com>
986
987	* doc/xml/manual/intro.xml: Document LWG 2537 status.
988	* include/bits/stl_queue.h
989	(priority_queue(const Compare&, const Container&, const Alloc&))
990	(priority_queue(const Compare&, Container&&, const Alloc&)): Call
991	make_heap.
992	* testsuite/23_containers/priority_queue/dr2537.cc: New test.
993
9942019-02-22  Jonathan Wakely  <jwakely@redhat.com>
995
996	PR libstdc++/89446
997	* include/bits/char_traits.h (__constant_char_array): Check index is
998	in range before dereferencing.
999	* testsuite/21_strings/basic_string_view/operators/char/89446.cc:
1000	New test.
1001
10022019-02-22  Release Manager
1003
1004	* GCC 8.3.0 released.
1005
10062019-02-14  Jonathan Wakely  <jwakely@redhat.com>
1007
1008	PR middle-end/89303
1009	* testsuite/20_util/enable_shared_from_this/89303.cc: New test.
1010
10112019-02-09  Jonathan Wakely  <jwakely@redhat.com>
1012
1013	Backport from mainline
1014	2019-01-08  Jonathan Wakely  <jwakely@redhat.com>
1015
1016	PR libstdc++/88066
1017	* include/bits/locale_conv.h: Use <> for includes not "".
1018	* include/ext/random: Likewise.
1019	* include/ext/vstring.h: Likewise.
1020
10212019-02-08  Jonathan Wakely  <jwakely@redhat.com>
1022
1023	* doc/html/*: Regenerate.
1024
1025	* src/c++17/fs_ops.cc (absolute(const path&, error_code&)): Do nothing
1026	if the path is already absolute.
1027	[!_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Pass error_code to current_path.
1028
1029	Backport from mainline
1030	2019-01-11  Jonathan Wakely  <jwakely@redhat.com>
1031
1032	* include/std/chrono (duration_values::zero(), duration_values::min())
1033	(duration_values::max()): Add noexcept.
1034	(duration::zero(), duration::min(), duration::max()): Likewise.
1035	(time_point::zero(), time_point::min(), time_point::max()): Likewise.
1036	* testsuite/20_util/duration/requirements/noexcept.cc: New test.
1037	* testsuite/20_util/time_point/requirements/noexcept.cc: New test.
1038
10392019-02-08  Jonathan Wakely  <jwakely@redhat.com>
1040
1041	Backport from mainline
1042	2019-01-07  Jonathan Wakely  <jwakely@redhat.com>
1043
1044	PR libstdc++/87787
1045	* include/bits/char_traits.h (char_traits::move): Do not pass null
1046	pointers to memmove.
1047	* include/bits/locale_facets.h
1048	(ctype<char>::widen(const char*, const char*, char*)): Do not
1049	pass null pointers to memcpy.
1050	(ctype<char>::narrow(const char*, const char*, char, char*)):
1051	Likewise.
1052	(ctype<char>::do_widen(const char*, const char*, char*)):
1053	Likewise.
1054	(ctype<char>::do_narrow(const char*, const char*, char, char*)):
1055	Likewise.
1056
10572019-02-08  Jonathan Wakely  <jwakely@redhat.com>
1058
1059	Backport from mainline
1060	2018-11-23  Martin Sebor  <msebor@redhat.com>
1061		    Jonathan Wakely  <jwakely@redhat.com>
1062
1063	PR libstdc++/65229
1064	* python/libstdcxx/v6/printers.py (StdBitsetPrinter): Handle
1065	exception thrown for std::bitset<0>.
1066	* testsuite/libstdc++-prettyprinters/simple.cc: Test std::bitset<0>.
1067
10682019-02-08  Jonathan Wakely  <jwakely@redhat.com>
1069
1070	Backport from mainline
1071	2018-11-23  Jonathan Wakely  <jwakely@redhat.com>
1072
1073	PR libstdc++/87308 (partial)
1074	* python/libstdcxx/v6/printers.py (StdExpAnyPrinter): Adjust regex to
1075	work around PR 88166.
1076
10772019-02-08  Jonathan Wakely  <jwakely@redhat.com>
1078
1079	Backport from mainline
1080	2019-02-05  Jonathan Wakely  <jwakely@redhat.com>
1081
1082	PR libstdc++/89128
1083	* include/bits/stl_queue.h (queue, priority_queue): Add deduction
1084	guides.
1085	* include/bits/stl_stack.h (stack): Likewise.
1086	* testsuite/23_containers/priority_queue/deduction.cc: New test.
1087	* testsuite/23_containers/queue/deduction.cc: New test.
1088	* testsuite/23_containers/stack/deduction.cc: New test.
1089
10902019-02-08  Jonathan Wakely  <jwakely@redhat.com>
1091
1092	Backport from mainline
1093	2018-11-29  Jonathan Wakely  <jwakely@redhat.com>
1094
1095	PR libstdc++/88119
1096	* include/ext/aligned_buffer.h (__aligned_membuf): Add comment.
1097	(__aligned_buffer): Use __alignof__ instead of std::alignment_of.
1098	* include/std/type_traits (alignment_of): Use alignof instead of
1099	__alignof__.
1100	* testsuite/20_util/alignment_of/value.cc: Fix test to check values
1101	match alignof not __alignof__, as required by the standard.
1102
11032019-02-08  Jonathan Wakely  <jwakely@redhat.com>
1104
1105	Backport from mainline
1106	2018-11-28  Jonathan Wakely  <jwakely@redhat.com>
1107
1108	PR libstdc++/83511
1109	* include/std/string_view (basic_string_view::substr): Add default
1110	argument to first parameter.
1111	* include/experimental/string_view (basic_string_view::substr):
1112	Likewise.
1113	* testsuite/21_strings/basic_string_view/operations/substr/char/
1114	83511.cc: New test.
1115	* testsuite/21_strings/basic_string_view/operations/substr/wchar_t/
1116	83511.cc: New test.
1117	* testsuite/experimental/string_view/operations/substr/char/83511.cc:
1118	New test.
1119	* testsuite/experimental/string_view/operations/substr/wchar_t/83511.cc:
1120	New test.
1121
1122	Backport from mainline
1123	2018-11-19  Jonathan Wakely  <jwakely@redhat.com>
1124
1125	PR libstdc++/88084 - Implement LWG 2777
1126	* include/std/string_view (basic_string_view::copy): Use traits to
1127	copy.
1128	* testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
1129	New test.
1130	* testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
1131	New test.
1132
1133	Backport from mainline
1134	2018-11-29  Jonathan Wakely  <jwakely@redhat.com>
1135
1136	PR libstdc++/86910
1137	PR libstdc++/87846
1138	* src/filesystem/ops.cc (experimental::create_directories): Report
1139	an error when the path resolves to an existing non-directory (P1164).
1140	* src/filesystem/std-ops.cc (create_directories): Likewise. Handle
1141	empty filenames due to trailing slashes.
1142	* testsuite/27_io/filesystem/operations/create_directories.cc: Test
1143	when some component of the path exists and is not a directory. Test
1144	trailing slashes.
1145	* testsuite/experimental/filesystem/operations/create_directories.cc:
1146	Likewise.
1147
1148	Backport from mainline
1149	2018-11-28  Jonathan Wakely  <jwakely@redhat.com>
1150
1151	* doc/xml/manual/intro.xml: Document LWG 3096 change.
1152	* src/filesystem/std-path.cc (path::lexically_relative(const path&)):
1153	Treat a final empty element equivalently to a final dot element.
1154	* testsuite/27_io/filesystem/path/generation/relative.cc: Add checks
1155	for the examples in the DR.
1156
1157	Backport from mainline
1158	2018-07-20  Jonathan Wakely  <jwakely@redhat.com>
1159
1160	PR libstdc++/86595
1161	* include/bits/fs_dir.h (directory_entry::refresh(error_code&)): Add
1162	noexcept.
1163
1164	Backport from mainline
1165	2018-05-21  Jonathan Wakely  <jwakely@redhat.com>
1166
1167	* src/filesystem/std-ops.cc (absolute): Report an error for empty
1168	paths.
1169	(weakly_canonical(const path&)): Do not call canonical on empty path.
1170	(weakly_canonical(const path&, error_code&)): Likewise.
1171	* testsuite/27_io/filesystem/operations/absolute.cc: Check for errors.
1172
1173	Backport from mainline
1174	2019-01-30  Jonathan Wakely  <jwakely@redhat.com>
1175
1176	PR libstdc++/89117
1177	* src/c++17/fs_path.cc (path::replace_extension): Erase extension from
1178	final component as well as from _M_pathname.
1179	* testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
1180	Add more test cases.
1181
11822019-01-21  Jonathan Wakely  <jwakely@redhat.com>
1183
1184	Backport from mainline
1185	2019-01-18  Jonathan Wakely  <jwakely@redhat.com>
1186
1187	PR libstdc++/87514
1188	PR libstdc++/87520
1189	PR libstdc++/88782
1190	* include/bits/shared_ptr.h
1191	(shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...))
1192	(allocate_shared): Change to use new tag type.
1193	(_Sp_alloc_shared_tag): Define new type.
1194	(_Sp_counted_ptr_inplace): Declare __shared_count<_Lp> as a friend.
1195	(__shared_count(Ptr, Deleter),__shared_count(Ptr, Deleter, Alloc)):
1196	Constrain to prevent being called with _Sp_alloc_shared_tag.
1197	(__shared_count(_Sp_make_shared_tag, const _Alloc&, Args&&...)):
1198	Replace constructor with ...
1199	(__shared_count(Tp*&, _Sp_alloc_shared_tag<_Alloc>, Args&&...)): Use
1200	reference parameter so address of the new object can be returned to
1201	the caller. Obtain the allocator from the tag type.
1202	(__shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...)): Replace
1203	constructor with ...
1204	(__shared_ptr(_Sp_alloc_shared_tag<Alloc>, Args&&...)): Pass _M_ptr
1205	to the __shared_count constructor.
1206	(__allocate_shared): Change to use new tag type.
1207
12082019-01-14  Jonathan Wakely  <jwakely@redhat.com>
1209
1210	PR libstdc++/80762
1211	* testsuite/experimental/filesystem/path/construct/80762.cc: Add
1212	dg-require-filesystem-ts directive.
1213
12142019-01-10  Jonathan Wakely  <jwakely@redhat.com>
1215
1216	Backport from mainline
1217	2019-01-04  Jonathan Wakely  <jwakely@redhat.com>
1218
1219	(path::lexically_normal()): Use std::vector iterators instead of
1220	path::iterator. Use pop_back to remove components from the end. Clear
1221	trailing filename, instead of using erase(const_iterator) to remove
1222	a non-final component.
1223	* testsuite/27_io/filesystem/path/generation/normal.cc: Test
1224	additional cases.
1225	* testsuite/27_io/filesystem/path/generation/normal2.cc: New test.
1226
12272019-01-10  Jonathan Wakely  <jwakely@redhat.com>
1228
1229	Backport from mainline
1230	2018-12-12  Jonathan Wakely  <jwakely@redhat.com>
1231
1232	PR libstdc++/80762
1233	* include/bits/fs_path.h (path::_Path): Use remove_cv_t and is_void.
1234	* include/experimental/bits/fs_path.h (path::_Path): Likewise.
1235	* testsuite/27_io/filesystem/path/construct/80762.cc: New test.
1236	* testsuite/experimental/filesystem/path/construct/80762.cc: New test.
1237
12382019-01-10  Jonathan Wakely  <jwakely@redhat.com>
1239
1240	Backport from mainline
1241	2018-05-23  Jonathan Wakely  <jwakely@redhat.com>
1242
1243	* include/bits/fs_path.h (path::_M_type): Change default member
1244	initializer to _Filename.
1245	(path::begin): Create past-the-end iterator for empty path.
1246	(path::has_relative_path()): Return false for empty filenames.
1247	(path::_M_split_cmpts): Set _M_type to _Filename for empty paths.
1248	Fix offset of empty final component.
1249	* testsuite/27_io/filesystem/path/itr/components.cc: New.
1250	* testsuite/27_io/filesystem/path/itr/traversal.cc: Add new inputs.
1251
12522019-01-10  Jonathan Wakely  <jwakely@redhat.com>
1253
1254	Backport from mainline
1255	2019-01-10  Jonathan Wakely  <jwakely@redhat.com>
1256
1257	* testsuite/util/testsuite_fs.h (nonexistent_path): Include name
1258	of the source file containing the caller.
1259	* testsuite/27_io/filesystem/iterators/directory_iterator.cc: Remove
1260	directories created by test.
1261	* testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
1262	Likewise.
1263	* testsuite/experimental/filesystem/iterators/directory_iterator.cc:
1264	Likewise.
1265	* testsuite/experimental/filesystem/iterators/
1266	recursive_directory_iterator.cc: Likewise.
1267
12682019-01-10  Jonathan Wakely  <jwakely@redhat.com>
1269
1270	Backport from mainline
1271	2018-11-27  Jonathan Wakely  <jwakely@redhat.com>
1272
1273	* testsuite/27_io/filesystem/operations/canonical.cc: Remove
1274	directory created by test.
1275	* testsuite/27_io/filesystem/operations/symlink_status.cc: Remove
1276	symlink created by test.
1277
12782019-01-10  Jonathan Wakely  <jwakely@redhat.com>
1279
1280	* src/filesystem/std-path.cc (path::remove_filename()): Remove debug
1281	check that prevents building with -fno-exceptions.
1282
12832019-01-09  Jonathan Wakely  <jwakely@redhat.com>
1284
1285	* testsuite/20_util/optional/cons/value_neg.cc: Change dg-error to
1286	dg-prune-output. Remove unused header.
1287
1288	Backport from mainline
1289	2019-01-08  Jonathan Wakely  <jwakely@redhat.com>
1290
1291	PR libstdc++/87855
1292	* include/std/optional (_Optional_payload_base): New class template
1293	for common code hoisted from _Optional_payload specializations. Use
1294	a template for the union, to allow a partial specialization for
1295	types with non-trivial destructors. Add constructors for in-place
1296	initialization to the union.
1297	(_Optional_payload(bool, const _Optional_payload&)): Use _M_construct
1298	to perform non-trivial copy construction, instead of relying on
1299	non-standard copy elision in a delegating constructor.
1300	(_Optional_payload(bool, _Optional_payload&&)): Likewise for
1301	non-trivial move construction.
1302	(_Optional_payload): Derive from _Optional_payload_base and use it
1303	for everything except the non-trivial assignment operators, which are
1304	defined as needed.
1305	(_Optional_payload<false, C, M>): Derive from the specialization
1306	_Optional_payload<true, false, false> and add a destructor.
1307	(_Optional_base_impl::_M_destruct, _Optional_base_impl::_M_reset):
1308	Forward to corresponding members of _Optional_payload.
1309	(_Optional_base_impl::_M_is_engaged, _Optional_base_impl::_M_get):
1310	Hoist common members from _Optional_base.
1311	(_Optional_base): Make all members and base class public.
1312	(_Optional_base::_M_get, _Optional_base::_M_is_engaged): Move to
1313	_Optional_base_impl.
1314	* python/libstdcxx/v6/printers.py (StdExpOptionalPrinter): Add
1315	support for new std::optional layout.
1316	* testsuite/libstdc++-prettyprinters/compat.cc: New test.
1317
1318	Backport from mainline
1319	2018-11-19  Ville Voutilainen  <ville.voutilainen@gmail.com>
1320
1321	PR libstdc++/87855
1322	Also implement P0602R4 (variant and optional
1323	should propagate copy/move triviality) for std::optional.
1324	* include/std/optional (_Optional_payload): Change
1325	the main constraints to check constructibility in
1326	addition to assignability.
1327	(operator=): Make constexpr.
1328	(_M_reset): Likewise.
1329	(_M_construct): Likewise.
1330	(operator->): Likewise.
1331	* testsuite/20_util/optional/assignment/8.cc: Adjust.
1332	* testsuite/20_util/optional/assignment/9.cc: New.
1333
13342018-12-23  Iain Sandoe  <iain@sandoe.co.uk>
1335
1336	Backport from mainline
1337	2018-12-06  Iain Sandoe  <iain@sandoe.co.uk>
1338
1339	* scripts/make_exports.pl (check names): Don’t try to export
1340	construction vtable symbols.
1341
13422018-12-22  Iain Sandoe  <iain@sandoe.co.uk>
1343
1344	Backport from mainline
1345	2018-12-06  Jonathan Wakely  <jwakely@redhat.com>
1346		    Iain Sandoe  <iain@sandoe.co.uk>
1347
1348	PR libstdc++/64883
1349	* testsuite/17_intro/headers/c++1998/all_attributes.cc: Don't test
1350	always_inline on Darwin.
1351	* testsuite/17_intro/headers/c++2011/all_attributes.cc: Likewise.
1352	* testsuite/17_intro/headers/c++2014/all_attributes.cc: Likewise.
1353	* testsuite/17_intro/headers/c++2017/all_attributes.cc: Likewise.
1354	* testsuite/17_intro/headers/c++2020/all_attributes.cc: Likewise.
1355
13562018-12-06  Iain Sandoe  <iain@sandoe.co.uk>
1357
1358	Backport from mainline
1359	2018-08-25  Iain Sandoe  <iain@sandoe.co.uk>
1360
1361	PR libstdc++/70694
1362	* configure.host (OPT_LDFLAGS): Don't append
1363	-fvisibility-inlines-hidden for newer Darwin.
1364
13652018-11-28  François Dumont  <fdumont@gcc.gnu.org>
1366
1367	PR libstdc++/88199
1368	* include/bits/hashtable.h
1369	(_Hashtable<>::_M_move_assign(_Hashtable&&, false_type)): Deallocate
1370	former buckets after assignment.
1371	* testsuite/23_containers/unordered_set/allocator/move_assign.cc
1372	(test03): New.
1373
13742018-11-22  Jonathan Wakely  <jwakely@redhat.com>
1375
1376	Backport from mainline
1377	2018-11-22  Jonathan Wakely  <jwakely@redhat.com>
1378
1379	PR libstdc++/85930
1380	PR libstdc++/87520
1381	* include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti)
1382	[__cpp_rtti]: Define even when RTTI is enabled. Use array of
1383	sizeof(type_info) so that type-punned reference binds to an object
1384	of the correct size as well as correct alignment.
1385	(_Sp_counted_ptr_inplace::_M_get_deleter) [__cpp_rtti]: Check for
1386	_S_ti() reference even when RTTI is enabled.
1387	(__shared_ptr(_Sp_make_shared_tag, const _Alloc&, _Args&&...))
1388	[__cpp_rtti]: Pass _S_ti() instead of typeid(_Sp_make_shared_tag).
1389
13902018-10-31  Jonathan Wakely  <jwakely@redhat.com>
1391
1392	Backport from mainline
1393	2018-10-31  Jonathan Wakely  <jwakely@redhat.com>
1394
1395	PR libstdc++/87822
1396	* include/bits/stl_pair.h (__pair_base): Change to class template.
1397	(pair): Make base class type depend on template parameters.
1398	* testsuite/20_util/pair/87822.cc: New test.
1399
14002018-10-30  Jonathan Wakely  <jwakely@redhat.com>
1401
1402	Backport from mainline
1403	2018-10-30  Jonathan Wakely  <jwakely@redhat.com>
1404
1405	PR libstdc++/87809
1406	* include/bits/forward_list.h (_Fwd_list_impl::_Fwd_list_impl()): Use
1407	trait in exception-specification instead of possibly invalid
1408	expression.
1409	* include/bits/stl_bvector.h (_Bvector_impl::_Bvector_impl()):
1410	Likewise.
1411	* include/bits/stl_list.h (_List_impl::_List_impl()): Likewise.
1412	* testsuite/23_containers/forward_list/cons/87809.cc: New test.
1413	* testsuite/23_containers/list/cons/87809.cc: New test.
1414	* testsuite/23_containers/vector/bool/cons/87809.cc: New test.
1415	* testsuite/23_containers/vector/cons/87809.cc: New test.
1416
14172018-10-25  Jonathan Wakely  <jwakely@redhat.com>
1418
1419	PR libstdc++/87749
1420	* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1421	(basic_string::operator=(basic_string&&)): For short strings copy the
1422	buffer inline. Only fall back to using assign(const basic_string&) to
1423	do a deep copy when reallocation is needed.
1424	* testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc:
1425	New test.
1426	* testsuite/21_strings/basic_string/modifiers/assign/char/
1427	move_assign_optim.cc: New test.
1428	* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc:
1429	New test.
1430	* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/
1431	move_assign_optim.cc: New test.
1432
14332018-10-23  Jonathan Wakely  <jwakely@redhat.com>
1434
1435	PR libstdc++/87704
1436	* include/bits/unique_ptr.h (unique_ptr::unique_ptr(nullptr_t)): Do
1437	not delegate to default constructor.
1438	(unique_ptr<T[], D>::unique_ptr(nullptr_t)): Likewise.
1439	* testsuite/20_util/unique_ptr/cons/incomplete.cc: New test.
1440
14412018-10-19  Jonathan Wakely  <jwakely@redhat.com>
1442
1443	* include/bits/regex_executor.tcc (_Backref_matcher::_M_apply): Use
1444	_GLIBCXX_STD_A to refer to normal mode algorithms.
1445	* testsuite/28_regex/headers/regex/parallel_mode.cc: New test.
1446	* testsuite/28_regex/headers/regex/std_c++0x_neg.cc: Remove empty
1447	whitespace.
1448
14492018-10-18  Jonathan Wakely  <jwakely@redhat.com>
1450
1451	Backport from mainline
1452	2018-10-18  Jonathan Wakely  <jwakely@redhat.com>
1453
1454	PR libstdc++/87641
1455	* include/bits/valarray_array.h (__valarray_sum): Use first element
1456	to initialize accumulator instead of value-initializing it.
1457	* testsuite/26_numerics/valarray/87641.cc: New test.
1458
14592018-10-15  Jonathan Wakely  <jwakely@redhat.com>
1460
1461	* testsuite/22_locale/numpunct/members/char/3.cc: Adjust test to
1462	account for change to glibc it_IT localedata (glibc bz#10797).
1463
14642018-10-12  Jonathan Wakely  <jwakely@redhat.com>
1465
1466	Backport from mainline
1467	2018-07-31  Jonathan Wakely  <jwakely@redhat.com>
1468
1469	PR libstdc++/86751
1470	* include/bits/stl_pair.h (__pair_base): New class with deleted copy
1471	assignment operator.
1472	(pair): Derive from __pair_base.
1473	(pair::operator=): Remove deleted overload.
1474	* python/libstdcxx/v6/printers.py (StdPairPrinter): New pretty printer
1475	so that new base class isn't shown in GDB.
1476	* testsuite/20_util/pair/86751.cc: New test.
1477	* testsuite/20_util/pair/ref_assign.cc: New test.
1478
14792018-10-12  Jonathan Wakely  <jwakely@redhat.com>
1480
1481	Backport from mainline
1482	2018-09-03  Jonathan Wakely  <jwakely@redhat.com>
1483
1484	PR libstdc++/78595
1485	* include/bits/stl_map.h (map::insert(_Pair&&))
1486	(map::insert(const_iterator, _Pair&&)): Do emplace instead of insert.
1487	* include/bits/stl_multimap.h (multimap::insert(_Pair&&))
1488	(multimap::insert(const_iterator, _Pair&&)): Likewise.
1489	* include/bits/unordered_map.h (unordered_map::insert(_Pair&&))
1490	(unordered_map::insert(const_iterator, _Pair&&))
1491	(unordered_multimap::insert(_Pair&&))
1492	(unordered_multimap::insert(const_iterator, _Pair&&)): Likewise.
1493	* include/std/type_traits (__enable_if_t): Define for C++11.
1494	* testsuite/23_containers/map/modifiers/insert/78595.cc: New test.
1495	* testsuite/23_containers/multimap/modifiers/insert/78595.cc: New test.
1496	* testsuite/23_containers/unordered_map/modifiers/78595.cc: New test.
1497	* testsuite/23_containers/unordered_multimap/modifiers/78595.cc: New
1498	test.
1499
15002018-10-12  Jonathan Wakely  <jwakely@redhat.com>
1501
1502	Backport from mainline
1503	2018-08-30  Jonathan Wakely  <jwakely@redhat.com>
1504
1505	* include/ext/pointer.h (_Pointer_adapter): Define operators for
1506	pointer arithmetic using long long offsets.
1507	* testsuite/ext/ext_pointer/1.cc: Test pointer arithmetic using
1508	long long values.
1509
15102018-10-12  Jonathan Wakely  <jwakely@redhat.com>
1511
1512	Backport from mainline
1513	2018-08-23  Jonathan Wakely  <jwakely@redhat.com>
1514
1515	* testsuite/21_strings/basic_string/init-list.cc:
1516	Require cxx11-abi.
1517	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc:
1518	Likewise.
1519	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
1520	Likewise.
1521
1522	Backport from mainline
1523	2018-08-22  Jonathan Wakely  <jwakely@redhat.com>
1524
1525	PR libstdc++/87061
1526	* include/experimental/regex [!_GLIBCXX_USE_CXX11_ABI]
1527	(experimental::pmr::match_results, experimental::pmr::cmatch)
1528	(experimental::pmr::smatch, experimental::pmr::wcmatch)
1529	(experimental::pmr::wsmatch): Do not declare for gcc4-compatible ABI,
1530	because COW strings don't support C++11 allocator model.
1531	* include/experimental/string [!_GLIBCXX_USE_CXX11_ABI]
1532	(experimental::pmr::basic_string, experimental::pmr::string)
1533	(experimental::pmr::u16string, experimental::pmr::u32string)
1534	(experimental::pmr::wstring): Likewise.
1535
1536	Backport from mainline
1537	2018-08-15  Jonathan Wakely  <jwakely@redhat.com>
1538
1539	* include/experimental/regex: Remove begin/end macros for namespace.
1540	* include/experimental/string: Likewise.
1541	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_deque.cc:
1542	New test.
1543	* testsuite/experimental/polymorphic_allocator/
1544	pmr_typedefs_forward_list.cc: New test.
1545	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_list.cc:
1546	New test.
1547	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_map.cc:
1548	New test.
1549	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc:
1550	New test.
1551	* testsuite/experimental/polymorphic_allocator/
1552	pmr_typedefs_multimap.cc: New test.
1553	* testsuite/experimental/polymorphic_allocator/
1554	pmr_typedefs_multiset.cc: New test.
1555	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_set.cc:
1556	New test.
1557	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
1558	New test.
1559	* testsuite/experimental/polymorphic_allocator/
1560	pmr_typedefs_unordered_map.cc: New test.
1561	* testsuite/experimental/polymorphic_allocator/
1562	pmr_typedefs_unordered_multimap.cc: New test.
1563	* testsuite/experimental/polymorphic_allocator/
1564	pmr_typedefs_unordered_multiset.cc: New test.
1565	* testsuite/experimental/polymorphic_allocator/
1566	pmr_typedefs_unordered_set.cc: New test.
1567	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_vector.cc:
1568	New test.
1569
15702018-10-12  Jonathan Wakely  <jwakely@redhat.com>
1571
1572	Backport from mainline
1573	2018-07-24  Jonathan Wakely  <jwakely@redhat.com>
1574
1575	PR libstdc++/70966
1576	* include/experimental/memory_resource (__get_default_resource): Use
1577	placement new to create an object with dynamic storage duration.
1578
1579	Backport from mainline
1580	2018-06-20  Jonathan Wakely  <jwakely@redhat.com>
1581
1582	PR libstdc++/70966
1583	* include/experimental/memory_resource (__resource_adaptor_imp): Add
1584	static assertions to enforce requirements on pointer types.
1585	(__resource_adaptor_imp::get_allocator()): Add noexcept.
1586	(new_delete_resource, null_memory_resource): Return address of an
1587	object with dynamic storage duration.
1588	(__null_memory_resource): Remove.
1589	* testsuite/experimental/memory_resource/70966.cc: New.
1590
15912018-10-12  Jonathan Wakely  <jwakely@redhat.com>
1592
1593	PR libstdc++/77854
1594	* doc/xml/manual/status_cxx1998.xml: Document size_type and
1595	difference_type for containers.
1596	* doc/html/*: Regenerate.
1597
15982018-10-08  Joseph Myers  <joseph@codesourcery.com>
1599
1600	Backport from mainline
1601	2018-10-02  Joseph Myers  <joseph@codesourcery.com>
1602
1603	* testsuite/lib/libstdc++.exp (libstdc++_init): Use
1604	-fno-show-column in default cxxflags.
1605
16062018-10-08  Jonathan Wakely  <jwakely@redhat.com>
1607
1608	Backport from mainline
1609	2018-10-08  Jonathan Wakely  <jwakely@redhat.com>
1610
1611	PR libstdc++/87538
1612	* include/std/functional (_Not_fn::operator()): Check value of
1613	__is_nothrow_invocable as well.
1614	* testsuite/20_util/function_objects/not_fn/87538.cc: New test.
1615	* testsuite/experimental/functional/87538.cc: New test.
1616
16172018-09-11  Jonathan Wakely  <jwakely@redhat.com>
1618
1619	PR libstdc++/87278
1620	* include/bits/shared_ptr.h (make_shared): Use remove_cv instead of
1621	remove_const.
1622	* testsuite/20_util/shared_ptr/creation/87278.cc: New test.
1623
16242018-08-28  Jonathan Wakely  <jwakely@redhat.com>
1625
1626	PR libstdc++/87116
1627	* src/filesystem/std-path.cc (path::lexically_normal): When handling
1628	a dot-dot filename, preserve an empty final component in the iteration
1629	sequence.
1630	[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Use preferred-separator for
1631	root-directory.
1632	* testsuite/27_io/filesystem/path/generation/normal.cc: Add new tests
1633	for more than two adjacent dot-dot filenames.
1634	[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Replace slashes with
1635	preferred-separator in expected normalized strings.
1636
16372018-08-13  Jonathan Wakely  <jwakely@redhat.com>
1638
1639	Revert
1640	2018-08-10  Sebastian Huber  <sebastian.huber@embedded-brains.de>
1641
1642	PR target/85904
1643	* configure.ac: Define HAVE_ALIGNED_ALLOC if building for
1644	Newlib.
1645	* configure: Regenerate.
1646
16472018-08-10  Sebastian Huber  <sebastian.huber@embedded-brains.de>
1648
1649	Backport from mainline
1650	2018-08-10  Sebastian Huber  <sebastian.huber@embedded-brains.de>
1651
1652	PR target/85904
1653	* configure.ac: Define HAVE_ALIGNED_ALLOC if building for
1654	Newlib.
1655	* configure: Regenerate.
1656
16572018-08-08  Jonathan Wakely  <jwakely@redhat.com>
1658
1659	* libsupc++/new_opa.cc (aligned_alloc): Declare inside namespace to
1660	avoid clashing with an ::aligned_alloc function that was not detected
1661	by configure.
1662
1663	PR libstdc++/86597
1664	* include/bits/fs_dir.h (directory_entry::_M_file_type(error_code&)):
1665	Clear error_code when cached type is used.
1666	* testsuite/27_io/filesystem/directory_entry/86597.cc: New test.
1667
1668	* doc/xml/manual/using.xml: Remove C++2a headers not on gcc-8-branch.
1669	* doc/html/*: Regenerate.
1670
1671	* doc/xml/manual/using.xml: Add missing header to table and fix typo.
1672	Remove C++17 headers not present on gcc-8-branch.
1673	* doc/html/*: Regenerate.
1674
16752018-08-07  Jonathan Wakely  <jwakely@redhat.com>
1676
1677	Backport from mainline
1678	2018-07-31  Jonathan Wakely  <jwakely@redhat.com>
1679
1680	* doc/xml/manual/test.xml: Improve documentation on writing tests for
1681	newer standards.
1682	* doc/xml/manual/using.xml: Document all headers for C++11 and later.
1683	* doc/html/*: Regenerate.
1684
1685	Backport from mainline
1686	2018-05-03  Jonathan Wakely  <jwakely@redhat.com>
1687
1688	PR libstdc++/84535
1689	* include/std/thread (thread::__not_same): New SFINAE helper.
1690	(thread::thread(_Callable&&, _Args&&...)): Add SFINAE constraint that
1691	first argument is not a std::thread. Add static assertion to check
1692	INVOKE expression is valid.
1693	(thread::thread(thread&), thread::thread(const thread&&)): Remove.
1694	* testsuite/30_threads/thread/cons/84535.cc: New.
1695
1696	Backport from mainline
1697	2018-08-03  Jonathan Wakely  <jwakely@redhat.com>
1698
1699	* src/c++11/system_error.cc
1700	(system_error_category::default_error_condition): Add workaround for
1701	ENOTEMPTY and EEXIST having the same value on AIX.
1702	* testsuite/19_diagnostics/error_category/system_category.cc: Add
1703	extra testcases for EDOM, EILSEQ, ERANGE, EEXIST and ENOTEMPTY.
1704
1705	Backport from mainline
1706	2018-08-01  Jonathan Wakely  <jwakely@redhat.com>
1707
1708	PR libstdc++/60555
1709	* src/c++11/system_error.cc
1710	(system_error_category::default_error_condition): New override to
1711	check for POSIX errno values.
1712	* testsuite/19_diagnostics/error_category/generic_category.cc: New
1713	* testsuite/19_diagnostics/error_category/system_category.cc: New
1714	test.
1715
1716	Backport from mainline
1717	2018-08-07  Jonathan Wakely  <jwakely@redhat.com>
1718
1719	PR libstdc++/86874
1720	* include/std/variant (_Copy_ctor_base::_M_destructive_move): Define
1721	here instead of in _Move_assign_base.
1722	(_Copy_ctor_base<true, _Types...>::_M_destructive_move): Define.
1723	(_Copy_assign_base::operator=): Use _M_destructive_move when changing
1724	the contained value to another alternative.
1725	(_Move_assign_base::operator=): Likewise.
1726	(_Move_assign_base::_M_destructive_move): Remove.
1727	* testsuite/20_util/variant/86874.cc: New test.
1728
1729	Backport from mainline
1730	2018-08-07  Jonathan Wakely  <jwakely@redhat.com>
1731
1732	PR libstdc++/86861
1733	* libsupc++/new_opa.cc [_GLIBCXX_HAVE_MEMALIGN] (aligned_alloc):
1734	Replace macro with inline function.
1735	[__sun]: Increase alignment to meet memalign precondition.
1736	[!HAVE__ALIGNED_MALLOC && !HAVE_POSIX_MEMALIGN && !HAVE_MEMALIGN]
1737	(aligned_alloc): Move check for valid alignment to operator new.
1738	Remove redundant check for non-zero size, it's enforced by the caller.
1739	(operator new): Move check for valid alignment here. Use
1740	__builtin_expect on check for zero size.
1741
17422018-07-31  Jonathan Wakely  <jwakely@redhat.com>
1743
1744	Backport from mainline
1745	2018-07-30  Jonathan Wakely  <jwakely@redhat.com>
1746
1747	* libsupc++/new_opa.cc (operator new(size_t, align_val_t)): Add
1748	workaround for aligned_alloc bug on AIX.
1749	* testsuite/18_support/new_aligned.cc: New test.
1750
1751	Backport from mainline
1752	2018-07-20  Fangrui Song  <maskray@google.com>
1753
1754	* include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Use
1755	_GLIBCXX_VISIBILITY(default).
1756
1757	Backport from mainline
1758	2018-07-30  Jonathan Wakely  <jwakely@redhat.com>
1759
1760	PR libstdc++/86734
1761	* include/bits/stl_iterator.h (reverse_iterator::operator->): Use
1762	addressof (LWG 2188).
1763	* testsuite/24_iterators/reverse_iterator/dr2188.cc: New test.
1764
1765	Backport from mainline
1766	2018-05-08  Jonathan Wakely  <jwakely@redhat.com>
1767
1768	PR libstdc++/85672
1769	* include/Makefile.am [!ENABLE_FLOAT128]: Change c++config.h entry
1770	to #undef _GLIBCXX_USE_FLOAT128 instead of defining it to zero.
1771	* include/Makefile.in: Regenerate.
1772	* include/bits/c++config (_GLIBCXX_USE_FLOAT128): Move definition
1773	within conditional block.
1774
1775	Backport from mainline
1776	2018-05-01  Tulio Magno Quites Machado Filho  <tuliom@linux.vnet.ibm.com>
1777
1778	PR libstdc++/84654
1779	* acinclude.m4: Set ENABLE_FLOAT128 instead of _GLIBCXX_USE_FLOAT128.
1780	* config.h.in: Remove references to _GLIBCXX_USE_FLOAT128.
1781	* configure: Regenerate.
1782	* include/Makefile.am: Replace the value of _GLIBCXX_USE_FLOAT128
1783	based on ENABLE_FLOAT128.
1784	* include/Makefile.in: Regenerate.
1785	* include/bits/c++config: Define _GLIBCXX_USE_FLOAT128.
1786	[!defined(__FLOAT128__) && !defined(__SIZEOF_FLOAT128__)]: Undefine
1787	_GLIBCXX_USE_FLOAT128.
1788
17892018-07-26  Marek Polacek  <polacek@redhat.com>
1790
1791	* testsuite/30_threads/condition_variable_any/cond.cc: New.
1792
17932018-07-26  Release Manager
1794
1795	* GCC 8.2.0 released.
1796
17972018-07-18  Jonathan Wakely  <jwakely@redhat.com>
1798
1799	Backport from mainline
1800	2018-07-05  Jonathan Wakely  <jwakely@redhat.com>
1801
1802	* testsuite/21_strings/basic_string/cons/char/deduction.cc: XFAIL for
1803	COW strings.
1804	* testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
1805	Likewise.
1806
1807	Backport from mainline
1808	2018-07-04  Jonathan Wakely  <jwakely@redhat.com>
1809
1810	* testsuite/25_algorithms/make_heap/complexity.cc: Require effective
1811	target for std::random_device.
1812	* testsuite/26_numerics/random/random_device/cons/default.cc:
1813	Likewise.
1814	* testsuite/experimental/algorithm/sample-2.cc: Likewise.
1815	* testsuite/experimental/algorithm/shuffle.cc: Likewise.
1816	* testsuite/experimental/random/randint.cc: Likewise.
1817	* testsuite/lib/libstdc++.exp
1818	(check_effective_target_random_device): New proc.
1819
1820	Backport from mainline
1821	2018-06-26  David Edelsohn  <dje.gcc@gmail.com>
1822
1823	* testsuite/experimental/algorithm/sample-2.cc: Add TLS DejaGNU
1824	directives.
1825	* testsuite/experimental/algorithm/shuffle.cc: Likewise.
1826
1827	Backport from mainline
1828	2018-06-25  Jonathan Wakely  <jwakely@redhat.com>
1829
1830	* include/experimental/algorithm (sample, shuffle): Add new overloads
1831	using per-thread random number engine.
1832	* testsuite/experimental/algorithm/sample.cc: Simpify and reduce
1833	dependencies by using __gnu_test::test_container.
1834	* testsuite/experimental/algorithm/sample-2.cc: New.
1835	* testsuite/experimental/algorithm/shuffle.cc: New.
1836
18372018-07-16  Andreas Krebbel  <krebbel@linux.ibm.com>
1838
1839	* config/abi/post/s390-linux-gnu/baseline_symbols.txt: Update.
1840	* config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Update.
1841	* config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
1842
18432018-07-05  François Dumont  <fdumont@gcc.gnu.org>
1844
1845	Backport from mainline
1846	2018-07-04  François Dumont  <fdumont@gcc.gnu.org>
1847
1848	PR libstdc++/86272
1849	* include/debug/string
1850	(__gnu_debug::basic_string<>::insert<_Ite>(const_iterator, _Ite, _Ite)):
1851	Use __glibcxx_check_insert_range.
1852
18532018-07-04  Jonathan Wakely  <jwakely@redhat.com>
1854
1855	Backport from mainline
1856	2018-05-19  Jonathan Wakely  <jwakely@redhat.com>
1857
1858	* src/c++11/codecvt.cc (__codecvt_utf8_base<wchar_t>::do_in)
1859	[__SIZEOF_WCHAR_T__==2 && __BYTE_ORDER__!=__ORDER_BIG_ENDIAN__]: Set
1860	little_endian element in bitmask.
1861	* testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: Run all tests.
1862	* testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc: New.
1863
1864	Backport from mainline
1865	2018-07-03  Jonathan Wakely  <jwakely@redhat.com>
1866
1867	* include/bits/alloc_traits.h: Remove redundant preprocessor
1868	condition.
1869
1870	Backport from mainline
1871	2018-06-27  Jonathan Wakely  <jwakely@redhat.com>
1872
1873	* include/bits/cpp_type_traits.h [__cplusplus >= 201703]
1874	(__is_byte<byte>): Define specialization for std::byte.
1875
1876	Backport from mainline
1877	2018-06-18  Jonathan Wakely  <jwakely@redhat.com>
1878
1879	LWG 3050 Fix cv-qualification of convertibility constraints
1880	* include/std/chrono (duration, operator*, operator/, operator%): Use
1881	const-qualified type as source type in is_convertible constraints.
1882	* testsuite/20_util/duration/arithmetic/dr3050.cc: New.
1883	* testsuite/20_util/duration/cons/dr3050.cc: New.
1884	* testsuite/20_util/duration/literals/range.cc: Rename to...
1885	* testsuite/20_util/duration/literals/range_neg.cc: Here. Adjust
1886	dg-error lineno.
1887
1888	Backport from mainline
1889	2018-06-13  Jonathan Wakely  <jwakely@redhat.com>
1890
1891	PR libstdc++/86127
1892	* include/bits/forward_list.h (_Fwd_list_base::_Tp_alloc_type): Remove
1893	unused typedef.
1894	(_Fwd_list_base::_M_create_node, _Fwd_list_base::_M_erase_after):
1895	Use node allocator to create and destroy elements.
1896	(forward_list::_Tp_alloc_type): Remove unused typedef.
1897	(forward_list::_Alloc_traits): Use allocator_traits instead of
1898	__gnu_cxx::__alloc_traits.
1899
1900	Backport from mainline
1901	2018-05-29  Jonathan Wakely  <jwakely@redhat.com>
1902
1903	* include/std/variant (__erased_dtor): Qualify call to __get.
1904
1905	Backport from mainline
1906	2018-05-15  Jonathan Wakely  <jwakely@redhat.com>
1907
1908	* include/std/variant (__gen_vtable_impl::__visit_invoke): Qualify
1909	__invoke to prevent ADL.
1910
1911	Backport from mainline
1912	2018-05-24  Maya Rashish  <coypu@sdf.org>
1913
1914	PR target/85904
1915	* crossconfig.m4: Test for aligned_alloc on netbsd.
1916	* configure: Regenerate.
1917
1918	Backport from mainline
1919	2018-05-18  Jonathan Wakely  <jwakely@redhat.com>
1920
1921	PR libstdc++/85098
1922	* include/bits/regex.h [__cplusplus < 201703L] (basic_regex::icase)
1923	(basic_regex::nosubs, basic_regex::optimize, basic_regex::collate)
1924	(basic_regex::ECMAScript, basic_regex::basic, basic_regex::extended)
1925	(basic_regex::awk, basic_regex::grep, basic_regex::egrep): Add
1926	definitions.
1927	* include/bits/regex_automaton.h (_NFA::_M_insert_state): Adjust
1928	whitespace.
1929	* include/bits/regex_compiler.tcc (__INSERT_REGEX_MATCHER): Add
1930	braces around body of do-while.
1931	* testsuite/28_regex/basic_regex/85098.cc: New
1932
1933	Backport from mainline
1934	2018-05-07  Jonathan Wakely  <jwakely@redhat.com>
1935
1936	PR libstdc++/85671
1937	* include/bits/fs_path.h (operator/): Permit copy elision.
1938	* include/experimental/bits/fs_path.h (operator/): Likewise.
1939
1940	Backport from mainline
1941	2018-06-14  Daniel Trebbien <dtrebbien@gmail.com>
1942		    Jonathan Wakely  <jwakely@redhat.com>
1943
1944	PR libstdc++/83982
1945	* include/bits/vector.tcc (vector::_M_default_append(size_type)):
1946	Default-construct new elements before moving existing ones.
1947	* testsuite/23_containers/vector/capacity/resize/strong_guarantee.cc:
1948	New.
1949
1950	Backport from mainline
1951	2018-06-25  Jonathan Wakely  <jwakely@redhat.com>
1952
1953	PR libstdc++/86292
1954	* include/bits/stl_vector.h (vector::_M_range_initialize<InputIter>):
1955	Add try-catch block.
1956	* testsuite/23_containers/vector/cons/86292.cc: New.
1957
1958	Backport from mainline
1959	2018-06-27  Jonathan Wakely  <jwakely@redhat.com>
1960
1961	PR libstdc++/86138
1962	* include/bits/basic_string.tcc: [_GLIBCXX_EXTERN_TEMPLATE < 0]
1963	Declare explicit instantiations of COW empty reps and I/O functions.
1964
1965	Backport from mainline
1966	2018-06-16  Jonathan Wakely  <jwakely@redhat.com>
1967
1968	LWG 3076 basic_string CTAD ambiguity
1969	* doc/xml/manual/intro.xml: Document LWG 3076 change.
1970	* include/bits/basic_string.h
1971	[__cpp_deduction_guides && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS]
1972	(basic_string(const _CharT*, const _Alloc&)): Turn into a function
1973	template constrained by _RequireAllocator.
1974	(basic_string(size_type, _CharT, const _Alloc&)): Likewise.
1975	* src/c++11/string-inst.cc (_GLIBCXX_DEFINING_STRING_INSTANTIATIONS):
1976	Define.
1977	* testsuite/21_strings/basic_string/cons/char/deduction.cc: Test
1978	deduction
1979	* testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
1980	Likewise.
1981
1982	Backport from mainline
1983	2018-06-14  Jonathan Wakely  <jwakely@redhat.com>
1984
1985	LWG 3075 basic_string needs deduction guides from basic_string_view
1986	* include/bits/basic_string.h: Add deduction guides from string_view.
1987	* testsuite/21_strings/basic_string/cons/char/deduction.cc: Test
1988	deduction from string views.
1989	* testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
1990	Likewise.
1991
1992	Backport from mainline
1993	2018-05-03  Jonathan Wakely  <jwakely@redhat.com>
1994
1995	PR libstdc++/84087 LWG DR 2268 basic_string default arguments
1996	* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI=1]
1997	(append(const basic_string&, size_type, size_type)
1998	(assign(const basic_string&, size_type, size_type)
1999	(insert(size_type, const basic_string&, size_type, size_type)
2000	(replace(size_type,size_type,const basic_string&,size_type,size_type)
2001	(compare(size_type,size_type,constbasic_string&,size_type,size_type)):
2002	Add default arguments (LWG 2268).
2003	[_GLIBCXX_USE_CXX11_ABI=0]
2004	(append(const basic_string&, size_type, size_type)
2005	(assign(const basic_string&, size_type, size_type)
2006	(insert(size_type, const basic_string&, size_type, size_type)
2007	(replace(size_type,size_type,const basic_string&,size_type,size_type)
2008	(compare(size_type,size_type,constbasic_string&,size_type,size_type)):
2009	Likewise.
2010	* testsuite/21_strings/basic_string/dr2268.cc: New test.
2011
2012	PR libstdc++/86398
2013	* include/std/type_traits (is_trivially_constructible): Check
2014	is_constructible before __is_trivially_constructible.
2015	* testsuite/20_util/is_trivially_constructible/value.cc: Add more
2016	tests, including negative cases.
2017	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Use
2018	zero for dg-error lineno.
2019	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
2020	Likewise.
2021
20222018-06-25  Jonathan Wakely  <jwakely@redhat.com>
2023
2024	PR libstdc++/86112
2025	* python/libstdcxx/v6/printers.py (add_one_template_type_printer):
2026	Replace dict comprehension.
2027
20282018-06-25  Jonathan Wakely  <jwakely@redhat.com>
2029
2030	PR libstdc++/81092
2031	* config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
2032
20332018-06-22  Jonathan Wakely  <jwakely@redhat.com>
2034
2035	Backport from mainline
2036	2018-06-22  Jonathan Wakely  <jwakely@redhat.com>
2037
2038	PR libstdc++/86138
2039	* include/bits/basic_string.tcc:
2040	[__cplusplus > 201402 && !_GLIBCXX_USE_CXX11_ABI]
2041	(basic_string<char>::_Rep::_S_empty_rep_storage)
2042	(basic_string<wchar_t>::_Rep::_S_empty_rep_storage): Add explicit
2043	instantiation declarations.
2044	[__cplusplus > 201402] (operator>>, operator<<, getline): Re-enable
2045	explicit instantiation declarations.
2046	* testsuite/21_strings/basic_string/cons/char/86138.cc: New.
2047	* testsuite/21_strings/basic_string/cons/wchar_t/86138.cc: New.
2048
20492018-06-21  Jonathan Wakely  <jwakely@redhat.com>
2050
2051	* config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
2052
20532018-06-19  Jonathan Wakely  <jwakely@redhat.com>
2054
2055	* include/std/utility: Remove unused <exception> header.
2056
20572018-06-19  Jonathan Wakely  <jwakely@redhat.com>
2058
2059	Backport from mainline
2060	2018-05-03  Jonathan Wakely  <jwakely@redhat.com>
2061
2062	PR libstdc++/82644
2063	* include/tr1/cmath [__STRICT_ANSI__] (hypergf, hypergl, hyperg): Use
2064	inline definitions instead of using-declarations.
2065	[__STRICT_ANSI__] (conf_hypergf, conf_hypergl, conf_hyperg): Likewise.
2066	* testsuite/tr1/5_numerical_facilities/special_functions/
2067	07_conf_hyperg/compile_cxx17.cc: New.
2068	* testsuite/tr1/5_numerical_facilities/special_functions/
2069	17_hyperg/compile_cxx17.cc: New.
2070
20712018-06-15  Jonathan Wakely  <jwakely@redhat.com>
2072
2073	PR libstdc++/86169
2074	* include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
2075	(basic_string::data()): Unshare string.
2076	* testsuite/21_strings/basic_string/operations/data/char/86169.cc:
2077	New.
2078
20792018-06-15  Jonathan Wakely  <jwakely@redhat.com>
2080
2081	* include/bits/char_traits.h (__cpp_lib_constexpr_char_traits): Only
2082	define for C++17 and above.
2083
20842018-06-06  Jonathan Wakely  <jwakely@redhat.com>
2085
2086	PR libstdc++/86008
2087	* include/bits/quoted_string.h (_Quoted_string<basic_string_view, C>):
2088	Define new partial specialization.
2089	* include/std/iomanip (quoted(basic_string_view<C,T>, C, C)): Define
2090	new overload.
2091	(operator<<(basic_ostream<C,T>&, const _Quoted_string<S,C>&)): Use
2092	value not reference for iteration.
2093	* testsuite/27_io/manipulators/standard/char/quoted.cc: Adjust
2094	comment.
2095	* testsuite/27_io/manipulators/standard/char/quoted_sv.cc: New test.
2096	* testsuite/27_io/manipulators/standard/wchar_t/quoted.cc: Adjust
2097	comment.
2098
20992018-06-05  Jonathan Wakely  <jwakely@redhat.com>
2100
2101	* include/std/type_traits: Fix comment typo.
2102
21032018-06-04  Jonathan Wakely  <jwakely@redhat.com>
2104
2105	PR libstdc++/85930
2106	* include/bits/shared_ptr_base.h [!__cpp_rtti]: Include <typeinfo>
2107	unconditionally. Remove redundant declaration.
2108	[!__cpp_rtti] (_Sp_make_shared_tag::_S_ti): Align the static variable
2109	correctly.
2110
21112018-05-31  Jonathan Wakely  <jwakely@redhat.com>
2112
2113	PR libstdc++/85951
2114	* include/std/type_traits [_GLIBCXX_USE_C99_STDINT_TR1]: Do not define
2115	uint_least16_t and uint_least32_t.
2116	(__make_unsigned<wchar_t>): Define unconditionally.
2117	(__make_unsigned<char16_t>, __make_unsigned<char32_t>): Define.
2118	(__make_signed<wchar_t>, __make_signed<char16_t>)
2119	(__make_signed<char32_t>)): Define unconditionally.
2120	* testsuite/20_util/make_signed/requirements/typedefs-3.cc: Check
2121	wchar_t, char16_t and char32_t are transformed correctly.
2122	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
2123	dg-error lineno.
2124	* testsuite/20_util/make_unsigned/requirements/typedefs-3.cc: Check
2125	wchar_t, char16_t and char32_t are transformed correctly.
2126	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Adjust
2127	dg-error lineno.
2128
21292018-05-21  François Dumont  <fdumont@gcc.gnu.org>
2130
2131	* include/debug/map.h
2132	(map(map&&, const_allocator_type&)): Add noexcept qualitication.
2133	* include/debug/multimap.h
2134	(multimap(multimap&&, const_allocator_type&)): Likewise.
2135	* include/debug/set.h
2136	(set(set&&, const_allocator_type&)): Likewise.
2137	* include/debug/multiset.h
2138	(multiset(multiset&&, const_allocator_type&)): Likewise.
2139
21402018-05-21  Jonathan Wakely  <jwakely@redhat.com>
2141
2142	PR libstdc++/85818
2143	* testsuite/experimental/filesystem/path/preferred_separator.cc: Add
2144	dg-require-filesystem-ts.
2145
21462018-05-17  Jonathan Wakely  <jwakely@redhat.com>
2147
2148	PR libstdc++/85818
2149	* src/filesystem/path.cc (path::preferred_separator): Add used
2150	attribute.
2151	* testsuite/experimental/filesystem/path/preferred_separator.cc: New.
2152
2153	PR libstdc++/85812
2154	* libsupc++/cxxabi_init_exception.h (__cxa_free_exception): Declare.
2155	* libsupc++/exception_ptr.h (make_exception_ptr) [__cpp_exceptions]:
2156	Refactor to separate non-throwing and throwing implementations.
2157	[__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]: Deallocate the memory
2158	if constructing the object throws.
2159
21602018-05-15  Jonathan Wakely  <jwakely@redhat.com>
2161
2162	PR libstdc++/83891
2163	* include/bits/fs_path.h (path::is_absolute()): Use same definition
2164	for all operating systems.
2165	* include/experimental/bits/fs_path.h (path::is_absolute()): Likewise.
2166	* testsuite/27_io/filesystem/path/query/is_absolute.cc: New.
2167	* testsuite/27_io/filesystem/path/query/is_relative.cc: Fix comment.
2168	* testsuite/experimental/filesystem/path/query/is_absolute.cc: New.
2169
2170	* testsuite/27_io/filesystem/path/decompose/extension.cc: Remove
2171	unused <vector> header.
2172	* testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
2173	* testsuite/27_io/filesystem/path/query/has_extension.cc: Likewise.
2174	* testsuite/27_io/filesystem/path/query/has_filename.cc: Likewise.
2175	* testsuite/27_io/filesystem/path/query/has_parent_path.cc: Likewise.
2176	* testsuite/27_io/filesystem/path/query/has_relative_path.cc:
2177	Likewise.
2178	* testsuite/27_io/filesystem/path/query/has_root_directory.cc:
2179	Likewise.
2180	* testsuite/27_io/filesystem/path/query/has_root_name.cc: Likewise.
2181	* testsuite/27_io/filesystem/path/query/has_root_path.cc: Likewise.
2182	* testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
2183	* testsuite/27_io/filesystem/path/query/is_relative.cc: Likewise.
2184	* testsuite/experimental/filesystem/path/decompose/extension.cc:
2185	Likewise.
2186	* testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
2187	* testsuite/experimental/filesystem/path/query/has_extension.cc:
2188	Likewise.
2189	* testsuite/experimental/filesystem/path/query/has_filename.cc:
2190	Likewise.
2191	* testsuite/experimental/filesystem/path/query/has_parent_path.cc:
2192	Likewise.
2193	* testsuite/experimental/filesystem/path/query/has_relative_path.cc:
2194	Likewise.
2195	* testsuite/experimental/filesystem/path/query/has_root_directory.cc:
2196	Likewise.
2197	* testsuite/experimental/filesystem/path/query/has_root_name.cc:
2198	Likewise.
2199	* testsuite/experimental/filesystem/path/query/has_root_path.cc:
2200	Likewise.
2201	* testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
2202	* testsuite/experimental/filesystem/path/query/is_relative.cc:
2203	Likewise.
2204
2205	PR libstdc++/84159
2206	* include/bits/fs_path.h (path::operator/=, path::append): Construct
2207	temporary path before calling _M_append.
2208	(path::_M_append): Change parameter to path and implement C++17
2209	semantics.
2210	* testsuite/27_io/filesystem/path/append/path.cc: Add helper function
2211	and more examples from the standard.
2212	* testsuite/27_io/filesystem/path/append/source.cc: New.
2213	* testsuite/27_io/filesystem/path/decompose/filename.cc: Add comment.
2214	* testsuite/27_io/filesystem/path/nonmember/append.cc: New.
2215
22162018-05-14  Jonathan Wakely  <jwakely@redhat.com>
2217
2218	PR libstdc++/67554
2219	* include/bits/valarray_array.h (_Array_copy_ctor<_Tp, true>)
2220	(_Array_copier<_Tp, true>): Do not pass null pointers to memcpy.
2221
2222	PR libstdc++/82966
2223	* include/bits/node_handle.h (_Node_handle_common::_M_swap): Use value
2224	instead of type.
2225	* testsuite/23_containers/set/modifiers/node_swap.cc: New.
2226
22272018-05-10  Jonathan Wakely  <jwakely@redhat.com>
2228
2229	* doc/xml/faq.xml: Link to C++17 status. Add note to outdated answer.
2230	* doc/xml/manual/debug_mode.xml: Add array and forward_list to list
2231	of C++11 containers with Debug Mode support.
2232	* doc/xml/manual/using.xml: Document that the C++17 Filesystem
2233	implementation also needs -lstdc++fs. Document Dual ABI for
2234	ios_base::failure.
2235	* doc/html/*: Regenerate.
2236
22372018-05-07  Edward Smith-Rowland  <3dw4rd@verizon.net>
2238
2239	Backport from mainline
2240	2018-05-07  Edward Smith-Rowland  <3dw4rd@verizon.net>
2241
2242	Moar PR libstdc++/80506
2243	* include/bits/random.tcc (gamma_distribution::__generate_impl()):
2244	Fix magic number used in loop condition.
2245
22462018-05-04  Jonathan Wakely  <jwakely@redhat.com>
2247
2248	PR libstdc++/85642 fix is_nothrow_default_constructible<optional<T>>
2249	* include/std/optional (_Optional_payload): Add noexcept to default
2250	constructor. Re-indent.
2251	(_Optional_payload<_Tp, true, true, true>): Likewise. Add noexcept to
2252	constructor for copying disengaged payloads.
2253	(_Optional_payload<_Tp, true, false, true>): Likewise.
2254	(_Optional_payload<_Tp, true, true, false>): Likewise.
2255	(_Optional_payload<_Tp, true, false, false>): Likewise.
2256	* testsuite/20_util/optional/cons/85642.cc: New.
2257	* testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error lines.
2258
22592018-05-03  Jonathan Wakely  <jwakely@redhat.com>
2260
2261	PR libstdc++/84769
2262	* include/std/variant (visit): Qualify std::get call.
2263
22642018-05-03  Jonathan Wakely  <jwakely@redhat.com>
2265
2266	PR libstdc++/85632 use uintmax_t for arithmetic
2267	* src/filesystem/ops.cc (experimental::filesystem::space): Perform
2268	arithmetic in result type.
2269	* src/filesystem/std-ops.cc (filesystem::space): Likewise.
2270	* testsuite/27_io/filesystem/operations/space.cc: Check total capacity
2271	is greater than free space.
2272	* testsuite/experimental/filesystem/operations/space.cc: New.
2273
22742018-05-02  Release Manager
2275
2276	* GCC 8.1.0 released.
2277
22782018-04-24  H.J. Lu  <hongjiu.lu@intel.com>
2279
2280	* configure: Regenerated.
2281
22822018-04-19  Jakub Jelinek  <jakub@redhat.com>
2283
2284	* configure: Regenerated.
2285
22862018-04-18  Jonathan Wakely  <jwakely@redhat.com>
2287	    Jakub Jelinek  <jakub@redhat.com>
2288
2289	PR libstdc++/85442
2290	* src/c++11/Makefile.am: Don't generate debuginfo again for
2291	cxx11-ios_failure-lt.s and cxx11-ios_failure.s files.
2292	* src/c++11/Makefile.in: Regenerate.
2293
22942018-04-18  Jonathan Wakely  <jwakely@redhat.com>
2295
2296	PR libstdc++/84442
2297	* testsuite/30_threads/thread/cons/terminate.cc
2298	[!_GLIBCXX_USE_C99_STDLIB] : Use _exit or std::exit instead of _Exit.
2299
23002018-04-18  David Malcolm  <dmalcolm@redhat.com>
2301
2302	PR jit/85384
2303	* configure: Regenerate.
2304
23052018-04-16  Jonathan Wakely  <jwakely@redhat.com>
2306
2307	* testsuite/experimental/filesystem/file_status/1.cc: Add
2308	-DUSE_FILESYSTEM_TS to dg-options.
2309	* testsuite/experimental/filesystem/iterators/directory_iterator.cc:
2310	Likewise.
2311	* testsuite/experimental/filesystem/iterators/pop.cc: Likewise.
2312	* testsuite/experimental/filesystem/iterators/
2313	recursive_directory_iterator.cc: Likewise.
2314	* testsuite/experimental/filesystem/operations/absolute.cc: Likewise.
2315	* testsuite/experimental/filesystem/operations/canonical.cc: Likewise.
2316	* testsuite/experimental/filesystem/operations/copy.cc: Likewise.
2317	* testsuite/experimental/filesystem/operations/copy_file.cc: Likewise.
2318	* testsuite/experimental/filesystem/operations/create_directories.cc:
2319	Likewise.
2320	* testsuite/experimental/filesystem/operations/create_directory.cc:
2321	Likewise.
2322	* testsuite/experimental/filesystem/operations/create_symlink.cc:
2323	Likewise.
2324	* testsuite/experimental/filesystem/operations/current_path.cc:
2325	Likewise.
2326	* testsuite/experimental/filesystem/operations/equivalent.cc: Likewise.
2327	* testsuite/experimental/filesystem/operations/exists.cc: Likewise.
2328	* testsuite/experimental/filesystem/operations/file_size.cc: Likewise.
2329	* testsuite/experimental/filesystem/operations/is_empty.cc: Likewise.
2330	* testsuite/experimental/filesystem/operations/last_write_time.cc:
2331	Likewise.
2332	* testsuite/experimental/filesystem/operations/permissions.cc:
2333	Likewise.
2334	* testsuite/experimental/filesystem/operations/read_symlink.cc:
2335	Likewise.
2336	* testsuite/experimental/filesystem/operations/remove.cc: Likewise.
2337	* testsuite/experimental/filesystem/operations/remove_all.cc: Likewise.
2338	* testsuite/experimental/filesystem/operations/status.cc: Likewise.
2339	* testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2340	Likewise.
2341	* testsuite/experimental/filesystem/path/append/path.cc: Likewise.
2342	* testsuite/experimental/filesystem/path/assign/assign.cc: Likewise.
2343	* testsuite/experimental/filesystem/path/assign/copy.cc: Likewise.
2344	* testsuite/experimental/filesystem/path/compare/compare.cc: Likewise.
2345	* testsuite/experimental/filesystem/path/compare/path.cc: Likewise.
2346	* testsuite/experimental/filesystem/path/compare/strings.cc: Likewise.
2347	* testsuite/experimental/filesystem/path/concat/path.cc: Likewise.
2348	* testsuite/experimental/filesystem/path/concat/strings.cc: Likewise.
2349	* testsuite/experimental/filesystem/path/construct/copy.cc: Likewise.
2350	* testsuite/experimental/filesystem/path/construct/default.cc:
2351	Likewise.
2352	* testsuite/experimental/filesystem/path/construct/locale.cc: Likewise.
2353	* testsuite/experimental/filesystem/path/construct/range.cc: Likewise.
2354	* testsuite/experimental/filesystem/path/construct/string_view.cc:
2355	Likewise.
2356	* testsuite/experimental/filesystem/path/decompose/extension.cc:
2357	Likewise.
2358	* testsuite/experimental/filesystem/path/decompose/filename.cc:
2359	Likewise.
2360	* testsuite/experimental/filesystem/path/decompose/parent_path.cc:
2361	Likewise.
2362	* testsuite/experimental/filesystem/path/decompose/relative_path.cc:
2363	Likewise.
2364	* testsuite/experimental/filesystem/path/decompose/root_directory.cc:
2365	Likewise.
2366	* testsuite/experimental/filesystem/path/decompose/root_name.cc:
2367	Likewise.
2368	* testsuite/experimental/filesystem/path/decompose/root_path.cc:
2369	Likewise.
2370	* testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
2371	* testsuite/experimental/filesystem/path/generic/generic_string.cc:
2372	Likewise.
2373	* testsuite/experimental/filesystem/path/itr/traversal.cc: Likewise.
2374	* testsuite/experimental/filesystem/path/modifiers/clear.cc: Likewise.
2375	* testsuite/experimental/filesystem/path/modifiers/make_preferred.cc:
2376	Likewise.
2377	* testsuite/experimental/filesystem/path/modifiers/remove_filename.cc:
2378	Likewise.
2379	* testsuite/experimental/filesystem/path/modifiers/replace_extension.cc:
2380	Likewise.
2381	* testsuite/experimental/filesystem/path/modifiers/replace_filename.cc:
2382	Likewise.
2383	* testsuite/experimental/filesystem/path/modifiers/swap.cc: Likewise.
2384	* testsuite/experimental/filesystem/path/native/string.cc: Likewise.
2385	* testsuite/experimental/filesystem/path/nonmember/hash_value.cc:
2386	Likewise.
2387	* testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
2388	* testsuite/experimental/filesystem/path/query/has_extension.cc:
2389	Likewise.
2390	* testsuite/experimental/filesystem/path/query/has_filename.cc:
2391	Likewise.
2392	* testsuite/experimental/filesystem/path/query/has_parent_path.cc:
2393	Likewise.
2394	* testsuite/experimental/filesystem/path/query/has_relative_path.cc:
2395	Likewise.
2396	* testsuite/experimental/filesystem/path/query/has_root_directory.cc:
2397	Likewise.
2398	* testsuite/experimental/filesystem/path/query/has_root_name.cc:
2399	Likewise.
2400	* testsuite/experimental/filesystem/path/query/has_root_path.cc:
2401	Likewise.
2402	* testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
2403	* testsuite/experimental/filesystem/path/query/is_relative.cc:
2404	Likewise.
2405
24062018-04-13  Jonathan Wakely  <jwakely@redhat.com>
2407
2408	* src/c++11/Makefile.am: Fix sed command.
2409	* src/c++11/Makefile.in: Regenerate.
2410
2411	* src/c++11/Makefile.am: Rewrite sed rule to be less fragile and to
2412	handle mangled names starting with double underscores on darwin.
2413	* src/c++11/Makefile.in: Regenerate.
2414
24152018-04-12  Jonathan Wakely  <jwakely@redhat.com>
2416
2417	* src/c++11/Makefile.am: Fix comment.
2418	* src/c++11/Makefile.in: Regenerate.
2419	* src/c++11/cxx11-ios_failure.cc: Fix comment.
2420	* src/c++98/ios_failure.cc: Likewise.
2421
2422	* src/c++11/ios.cc: Remove redundant macro definition.
2423
24242018-04-11  Jonathan Wakely  <jwakely@redhat.com>
2425
2426	* doc/xml/manual/abi.xml: Document header locations in recent
2427	releases.
2428	* doc/xml/manual/evolution.xml: Add API changes since GCC 5.
2429	* doc/xml/manual/spine.xml: Update copyright years.
2430	* doc/xml/manual/strings.xml: Adjust tolower example to avoid
2431	undefined behaviour.
2432	* doc/xml/manual/test.xml: Update outdated notes on VERIFY in tests.
2433	* doc/html/*: Regenerate.
2434
24352018-04-10  Jonathan Wakely  <jwakely@redhat.com>
2436
2437	* doc/xml/faq.xml: Update links to archived copy of SGI STL docs.
2438	* doc/xml/manual/backwards_compatibility.xml: Likewise.
2439	* doc/xml/manual/containers.xml: Likewise.
2440	* doc/xml/manual/debug_mode.xml: Likewise.
2441	* doc/xml/manual/extensions.xml: Likewise.
2442	* doc/xml/manual/policy_data_structures_biblio.xml: Likewise.
2443	* doc/xml/manual/using.xml: Likewise.
2444	* doc/xml/manual/utilities.xml: Likewise.
2445
2446	PR libstdc++/85222
2447	* src/c++11/Makefile.am [ENABLE_DUAL_ABI]: Add special rules for
2448	cxx11-ios_failure.cc to rewrite type info for __ios_failure.
2449	* src/c++11/Makefile.in: Regenerate.
2450	* src/c++11/cxx11-ios_failure.cc (__ios_failure, __iosfail_type_info):
2451	New types.
2452	[_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
2453	* src/c++11/ios.cc (__throw_ios_failure): Remove definition.
2454	* src/c++98/ios_failure.cc (__construct_ios_failure)
2455	(__destroy_ios_failure, is_ios_failure_handler): New functions.
2456	[!_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
2457	* testsuite/27_io/ios_base/failure/dual_abi.cc: New.
2458	* testsuite/27_io/basic_ios/copyfmt/char/1.cc: Revert changes to
2459	handler types, to always catch std::ios_base::failure.
2460	* testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
2461	* testsuite/27_io/basic_istream/extractors_arithmetic/char/
2462	exceptions_failbit.cc: Likewise.
2463	* testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
2464	exceptions_failbit.cc: Likewise.
2465	* testsuite/27_io/basic_istream/extractors_other/char/
2466	exceptions_null.cc: Likewise.
2467	* testsuite/27_io/basic_istream/extractors_other/wchar_t/
2468	exceptions_null.cc: Likewise.
2469	* testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
2470	* testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
2471	* testsuite/27_io/basic_ostream/inserters_other/char/
2472	exceptions_null.cc: Likewise.
2473	* testsuite/27_io/basic_ostream/inserters_other/wchar_t/
2474	exceptions_null.cc: Likewise.
2475	* testsuite/27_io/ios_base/storage/2.cc: Likewise.
2476
24772018-04-05  Jonathan Wakely  <jwakely@redhat.com>
2478
2479	* include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Qualify
2480	__get calls to avoid ADL and avoid ambiguity due to Clang bug.
2481
24822018-04-03  Jonathan Wakely  <jwakely@redhat.com>
2483
2484	PR libstdc++/85183
2485	* include/std/variant (_Move_assign_base::operator=): Fix incorrect
2486	value categories.
2487	* testsuite/20_util/variant/85183.cc: New.
2488
24892018-03-26  Jonathan Wakely  <jwakely@redhat.com>
2490
2491	* include/std/variant (__get): Qualify calls to avoid ADL.
2492	(__select_index): Adjust whitespace.
2493	(variant): Add using-declaration to workaround Clang bug.
2494
24952018-03-22  Jonathan Wakely  <jwakely@redhat.com>
2496
2497	PR libstdc++/85040
2498	* include/bits/stl_function.h (greater::__not_overloaded)
2499	(less::__not_overloaded, greater_equal::__not_overloaded)
2500	(less_equal::__not_overloaded): Fix ambiguous specializations.
2501	* testsuite/20_util/function_objects/comparisons_pointer.cc: Add
2502	tests for type with overloaded operators.
2503
25042018-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2505
2506	PR libstdc++/77691
2507	* testsuite/experimental/memory_resource/resource_adaptor.cc:
2508	xfail execution on 32-bit Solaris/x86.
2509
25102018-03-21  Jonathan Wakely  <jwakely@redhat.com>
2511
2512	* testsuite/20_util/function_objects/comparisons_pointer.cc: Use
2513	VERIFY instead of assert.
2514	* testsuite/20_util/hash/84998.cc: New test.
2515	* testsuite/23_containers/vector/cons/destructible_debug_neg.cc: New
2516	copy of test adjusted for Debug Mode.
2517	* testsuite/23_containers/vector/cons/destructible_neg.cc: Do not run
2518	test in Debug Mode.
2519
25202018-03-20  François Dumont  <fdumont@gcc.gnu.org>
2521
2522	PR libstdc++/84998
2523	* include/bits/stl_bvector.h: Fix std::hash friend declaration.
2524	* include/std/bitset: Likewise.
2525	* include/bits/stl_map.h (std::map<>): Fix _Rb_tree_merge_helper friend
2526	declaration.
2527	* include/bits/stl_multimap.h (std::multimap<>): Likewise.
2528	* include/bits/stl_multiset.h (std::multiset<>): Likewise.
2529	* include/bits/stl_set.h (std::set<>): Likewise.
2530	* include/bits/unordered_map.h (std::unordered_map<>): Fix
2531	_Hash_merge_helper friend declaration.
2532	(std::unordered_multimap<>): Likewise.
2533	* include/bits/unordered_set.h (std::unordered_set<>): Likewise.
2534	(std::unordered_multiset<>): Likewise.
2535
25362018-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
2537
2538	* doc/xml/api.xml: www.fsf.org has moved to https. Also omit
2539	trailing slash for domain level link.
2540	* doc/xml/faq.xml: Ditto.
2541	* doc/xml/manual/appendix_free.xml (software): Ditto.
2542	* doc/xml/manual/intro.xml: Ditto.
2543	* doc/xml/manual/spine.xml: Ditto.
2544	* doc/xml/spine.xml: Ditto.
2545
25462018-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
2547
2548	* doc/xml/manual/documentation_hacking.xml: Adjust link to
2549	docbook.org.
2550
25512018-03-17  Jonathan Wakely  <jwakely@redhat.com>
2552
2553	* testsuite/20_util/function_objects/comparisons_pointer.cc: Adjust
2554	to compile as C++98.
2555
25562018-03-14  Jonathan Wakely  <jwakely@redhat.com>
2557
2558	PR libstdc++/78420
2559	* include/bits/stl_function.h (greater<_Tp*>, less<_Tp*>)
2560	(greater_equal<_Tp*>, less_equal<_Tp>*): Add partial specializations
2561	to ensure total order for pointers.
2562	(greater<void>, less<void>, greater_equal<void>, less_equal<void>):
2563	Add operator() overloads for pointer arguments and make generic
2564	overloads dispatch to new _S_cmp functions when comparisons would
2565	use built-in operators for pointers.
2566	* testsuite/20_util/function_objects/comparisons_pointer.cc: New.
2567
25682018-03-12  Jonathan Wakely  <jwakely@redhat.com>
2569
2570	PR libstdc++/84773
2571	PR libstdc++/83662
2572	* crossconfig.m4: Check for aligned_alloc etc. on freebsd and mingw32.
2573	* configure: Regenerate.
2574	* include/c_global/cstdlib [_GLIBCXX_HAVE_ALIGNED_ALLOC]
2575	(aligned_alloc): Add using-declaration.
2576	* testsuite/18_support/aligned_alloc/aligned_alloc.cc: New test.
2577
25782018-03-09  François Dumont  <fdumont@gcc.gnu.org>
2579
2580	* python/libstdcxx/v6/printers.py (build_libstdcxx_dictionary):
2581	Fix std::_Fwd_list_iterator and std::_Fwd_list_const_iterator printers
2582	registration.
2583
25842018-03-09  Jonathan Wakely  <jwakely@redhat.com>
2585
2586	PR libstdc++/84769
2587	* include/std/variant (get<_Tp, _Types...>, get_if<_Tp, _Types...>):
2588	Qualify calls to get<_Np, Types...> and get_if<_Np, _Types...>.
2589
2590	src/filesystem/ops.cc (create_dir): Pass error_code to is_directory.
2591	src/filesystem/std-ops.cc (create_dir): Likewise.
2592
25932018-03-08  François Dumont  <fdumont@gcc.gnu.org>
2594
2595	* python/libstdcxx/v6/printers.py (NodeIteratorPrinter): New.
2596	(StdListIteratorPrinter): Inherit from latter.
2597	(StdFwdListIteratorPrinter): New, inherit from latter.
2598	(StdDebugIteratorPrinter.to_string): Use non-debug iterator printer
2599	when iterator has no associated container.
2600	(build_libstdcxx_dictionary): Add __gnu_cxx::_Fwd_list_iterator and
2601	__gnu_cxx::_Fwd_list_const_iterator printers. Remove __norm namespace
2602	registrations.
2603	* testsuite/libstdc++-prettyprinters/debug.cc: Adapt.
2604	* testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Adapt.
2605
26062018-03-06  Ville Voutilainen  <ville.voutilainen@gmail.com>
2607
2608	PR libstdc++/84601
2609	* include/std/optional (_Optional_payload): Split into multiple
2610	specializations that can handle different cases of trivial or
2611	non-trivial assignment operators.
2612	* testsuite/20_util/optional/84601.cc: New.
2613	* testsuite/20_util/optional/cons/value_neg.cc: Adjust.
2614
26152018-03-02  Jonathan Wakely  <jwakely@redhat.com>
2616
2617	PR libstdc++/84671
2618	* include/bits/parse_numbers.h (_Number_help): Add partial
2619	specialization to handle digit separators. Adjust partial
2620	specialization for recursion temrination to require _Pow == 1ULL.
2621	* testsuite/20_util/duration/literals/84671.cc: New
2622
26232018-02-27  Ville Voutilainen  <ville.voutilainen@gmail.com>
2624
2625	Implement the missing bits of LWG 2769
2626	* include/std/any (any_cast(const any&)): Add static_assert.
2627	(any_cast(any&)): Likewise.
2628	(any_cast(any&&)): Likewise, and remove the handling
2629	for copyable-but-not-movable type.
2630	* testsuite/20_util/any/misc/any_cast.cc: Adjust.
2631	* testsuite/20_util/any/misc/any_cast_neg.cc: Likewise, and
2632	add new tests.
2633
26342018-02-23  Jonathan Wakely  <jwakely@redhat.com>
2635
2636	PR libstdc++/84532
2637	* include/std/thread (thread::__make_invoker): Construct tuple
2638	directly instead of using make_tuple.
2639	* testsuite/30_threads/async/84532.cc: New.
2640	* testsuite/30_threads/thread/84532.cc: New.
2641
26422018-02-20  François Dumont  <fdumont@gcc.gnu.org>
2643
2644	* include/ext/aligned_buffer.h [_GLIBCXX_INLINE_VERSION]
2645	(template<> __aligned_buffer): Define as __aligned_membuf alias.
2646
26472018-02-19  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
2648
2649	PR target/84148
2650	* configure: Regenerate.
2651
26522018-02-15  Jonathan Wakely  <jwakely@redhat.com>
2653
2654	PR libstdc++/81797
2655	* configure.ac (INCLUDE_DIR_NOTPARALLEL): Define.
2656	* configure: Regenerate.
2657	* include/Makefile.am (INCLUDE_DIR_NOTPARALLEL): Add .NOTPARALLEL when
2658	defined.
2659	* include/Makefile.in: Regenerate.
2660
26612018-01-29  Jonathan Wakely  <jwakely@redhat.com>
2662
2663	PR libstdc++/83833
2664	* testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
2665	Add -ffloat-store to options for m68k and ia32.
2666
2667	* doc/xml/faq.xml: Update copyright years.
2668	* doc/html/*: Regenerate.
2669
2670	PR libstdc++/83658
2671	* include/std/any (any::__do_emplace): Only set _M_manager after
2672	constructing the contained object.
2673	* testsuite/20_util/any/misc/any_cast_neg.cc: Adjust dg-error line.
2674	* testsuite/20_util/any/modifiers/83658.cc: New test.
2675
26762018-01-25  Jonathan Wakely  <jwakely@redhat.com>
2677
2678	PR libstdc++/81076
2679	* include/c_global/cstddef (__byte_operand): Define primary template.
2680	* testsuite/18_support/byte/81076.cc: New test.
2681
26822018-01-19  Christophe Lyon  <christophe.lyon@linaro.org>
2683
2684	* testsuite/ext/special_functions/airy_ai/check_nan.cc: Fix
2685	dg-options and dg-add-options order.
2686	* testsuite/ext/special_functions/airy_bi/check_nan.cc: Likewise.
2687	* testsuite/ext/special_functions/conf_hyperg/check_nan.cc:
2688	Likewise.
2689	* testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
2690	* testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
2691	Likewise.
2692	* testsuite/special_functions/02_assoc_legendre/check_nan.cc:
2693	Likewise.
2694	* testsuite/special_functions/03_beta/check_nan.cc: Likewise.
2695	* testsuite/special_functions/04_comp_ellint_1/check_nan.cc:
2696	Likewise.
2697	* testsuite/special_functions/05_comp_ellint_2/check_nan.cc:
2698	Likewise.
2699	* testsuite/special_functions/06_comp_ellint_3/check_nan.cc:
2700	Likewise.
2701	* testsuite/special_functions/06_comp_ellint_3/pr66689.cc:
2702	Likewise.
2703	* testsuite/special_functions/07_cyl_bessel_i/check_nan.cc:
2704	Likewise.
2705	* testsuite/special_functions/08_cyl_bessel_j/check_nan.cc:
2706	Likewise.
2707	* testsuite/special_functions/09_cyl_bessel_k/check_nan.cc:
2708	Likewise.
2709	* testsuite/special_functions/10_cyl_neumann/check_nan.cc:
2710	Likewise.
2711	* testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
2712	* testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
2713	* testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
2714	* testsuite/special_functions/13_ellint_3/pr66689.cc: Likewise.
2715	* testsuite/special_functions/14_expint/check_nan.cc: Likewise.
2716	* testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
2717	* testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
2718	* testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
2719	* testsuite/special_functions/18_riemann_zeta/check_nan.cc:
2720	Likewise.
2721	* testsuite/special_functions/19_sph_bessel/check_nan.cc:
2722	Likewise.
2723	* testsuite/special_functions/20_sph_legendre/check_nan.cc:
2724	Likewise.
2725	* testsuite/special_functions/21_sph_neumann/check_nan.cc:
2726	Likewise.
2727
27282018-01-18  Uros Bizjak  <ubizjak@gmail.com>
2729
2730	* configure.ac (AC_CHECK_HEADERS): Add linux/types.h.  Conditionally
2731	include linux/types.h when checking linux/random.h header.
2732	* config.h.in: Regenerate.
2733	* configure: Ditto.
2734	* src/c++11/random.cc: Conditionally include linux/types.h.
2735
27362018-01-16  Eric Botcazou  <ebotcazou@adacore.com>
2737
2738	* testsuite/17_intro/names.cc: Undefine 'y' on SPARC/Linux.
2739
27402018-01-16  Jonathan Wakely  <jwakely@redhat.com>
2741
2742	PR libstdc++/83834
2743	* config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace std::c[a-g]* wildcard
2744	pattern with exact match for std::cerr.
2745
27462018-01-15  Jonathan Wakely  <jwakely@redhat.com>
2747
2748	PR libstdc++/83833
2749	* include/bits/random.h (chi_squared_distribution::param): Update
2750	gamma distribution parameter.
2751	* testsuite/26_numerics/random/chi_squared_distribution/83833.cc: New
2752	test.
2753
2754	PR libstdc++/83830
2755	* include/std/type_traits (has_unique_object_representations_v): Add
2756	variable template.
2757	* testsuite/20_util/has_unique_object_representations/value.cc: Check
2758	variable template.
2759
27602018-01-15  Ville Voutilainen  <ville.voutilainen@gmail.com>
2761
2762	Make optional conditionally
2763	trivially_{copy,move}_{constructible,assignable}
2764	* include/std/optional (_Optional_payload): Fix the comment in
2765	the class head and turn into a primary and one specialization.
2766	(_Optional_payload::_M_engaged): Strike the NSDMI.
2767	(_Optional_payload<_Tp, false>::operator=(const _Optional_payload&)):
2768	New.
2769	(_Optional_payload<_Tp, false>::operator=(_Optional_payload&&)):
2770	Likewise.
2771	(_Optional_payload<_Tp, false>::_M_get): Likewise.
2772	(_Optional_payload<_Tp, false>::_M_reset): Likewise.
2773	(_Optional_base_impl): Likewise.
2774	(_Optional_base): Turn into a primary and three specializations.
2775	(optional(nullopt)): Change the base init.
2776	* testsuite/20_util/optional/assignment/8.cc: New.
2777	* testsuite/20_util/optional/cons/trivial.cc: Likewise.
2778	* testsuite/20_util/optional/cons/value_neg.cc: Adjust.
2779
27802018-01-15  Jonathan Wakely  <jwakely@redhat.com>
2781
2782	PR libstdc++/80276
2783	* python/libstdcxx/v6/printers.py (strip_inline_namespaces): New.
2784	(get_template_arg_list): New.
2785	(StdVariantPrinter._template_args): Remove, use get_template_arg_list
2786	instead.
2787	(TemplateTypePrinter): Rewrite to work with gdb.Type objects instead
2788	of strings and regular expressions.
2789	(add_one_template_type_printer): Adapt to new TemplateTypePrinter.
2790	(FilteringTypePrinter): Add docstring. Match using startswith. Use
2791	strip_inline_namespaces instead of strip_versioned_namespace.
2792	(add_one_type_printer): Prepend namespace to match argument.
2793	(register_type_printers): Add type printers for char16_t and char32_t
2794	string types and for types using cxx11 ABI. Update calls to
2795	add_one_template_type_printer to provide default argument dicts.
2796	* testsuite/libstdc++-prettyprinters/80276.cc: New test.
2797	* testsuite/libstdc++-prettyprinters/whatis.cc: Remove tests for
2798	basic_string<unsigned char> and basic_string<signed char>.
2799	* testsuite/libstdc++-prettyprinters/whatis2.cc: Duplicate whatis.cc
2800	to test local variables, without overriding _GLIBCXX_USE_CXX11_ABI.
2801
28022018-01-14  Andreas Schwab  <schwab@linux-m68k.org>
2803
2804	PR libstdc++/81092
2805	* config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
2806
28072018-01-13  Tim Shen  <timshen@google.com>
2808
2809	PR libstdc++/83601
2810	* include/bits/regex.tcc (regex_replace): Fix escaping in sed.
2811	* testsuite/28_regex/algorithms/regex_replace/char/pr83601.cc: Tests.
2812	* testsuite/28_regex/algorithms/regex_replace/wchar_t/pr83601.cc: Tests.
2813
28142018-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2815
2816	PR libstdc++/64054
2817	* testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc:
2818	Remove dg-xfail-run-if.
2819
28202018-01-10  François Dumont  <fdumont@gcc.gnu.org>
2821
2822	* include/bits/forward_list.h
2823	(_Fwd_list_node_base(_Fwd_list_node_base&&)): New.
2824	(_Fwd_list_node_base& operator=(_Fwd_list_node_base&&)): New.
2825	(_Fwd_list_node_base(const _Fwd_list_node_base&)): Explicit delete.
2826	(_Fwd_list_node_base& operator=(const _Fwd_list_node_base&)): Likewise.
2827	(_Fwd_list_impl()): Add noexcept qualification.
2828	(_Fwd_list_impl(const _Node_alloc_type&)): Delete.
2829	(_Fwd_list_impl(_Fwd_list_impl&&)): New, default.
2830	(_Fwd_list_impl(_Fwd_list_impl&&, _Node_alloc_type&&)): New.
2831	(_Fwd_list_base()): Default.
2832	(_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&, true_type)): New.
2833	(_Fwd_list_base(_Fwd_list_base&&)): Default.
2834	(forward_list<>()): Default.
2835	(forward_list<>(forward_list&&)): Default.
2836	(forward_list(forward_list&&, _Node_alloc_type&&, false_type)): New.
2837	(forward_list(forward_list&&, _Node_alloc_type&&, true_type)): New.
2838	(forward_list(forward_list&&, const _Alloc&)): Adapt to use latters.
2839	* include/bits/forward_list.tcc
2840	(_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&)): Adapt to use
2841	_M_impl._M_head move assignment.
2842	(forward_list<>::merge(forward_list<>&&, _Comp)): Likewise.
2843	* testsuite/23_containers/forward_list/allocator/default_init.cc: New.
2844
28452018-01-09  Jonathan Wakely  <jwakely@redhat.com>
2846
2847	PR libstdc++/80276
2848	* python/libstdcxx/v6/printers.py (SharedPointerPrinter)
2849	(UniquePointerPrinter): Print correct template argument, not type of
2850	the pointer.
2851	(TemplateTypePrinter._recognizer.recognize): Handle failure to lookup
2852	a type.
2853	* testsuite/libstdc++-prettyprinters/cxx11.cc: Test unique_ptr of
2854	array type.
2855	* testsuite/libstdc++-prettyprinters/cxx17.cc: Test shared_ptr and
2856	weak_ptr of array types.
2857
28582018-01-09  François Dumont  <fdumont@gcc.gnu.org>
2859
2860	PR libstdc++/83709
2861	* include/bits/hashtable_policy.h
2862	(__distance_fwd(_Iterator, _Iterator, input_iterator_tag)): Return 1 if
2863	__first != __last.
2864	(_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, true_type)): New.
2865	(_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, false_type)):
2866	Add false_type parameter.
2867	(_Insert_base::insert): Adapt.
2868	* include/bits/hashtable.h (_Hashtable::operator=(initializzr_list<>)):
2869	Adapt.
2870	(_Hashtable::_M_insert(_Arg&&, const _NodeGen&, true_type, size_t)):
2871	 Add __n_elt parameter, defaulted to 1.
2872	(_Hashtable::_M_insert_unique_node): Likewise. Use it to call rehash
2873	policy _M_need_rehash.
2874	(_Hashtable::_M_merge_unique): Pass target number of elements to add to
2875	produce only 1 rehash if necessary.
2876	* testsuite/23_containers/unordered_map/insert/83709.cc: New.
2877	* testsuite/23_containers/unordered_set/insert/83709.cc: New.
2878
28792018-01-09  Juraj Oršulić  <juraj.orsulic@fer.hr>
2880	    Jonathan Wakely  <jwakely@redhat.com>
2881
2882	PR libstdc++/59253 (partial)
2883	* python/libstdcxx/v6/printers.py (SmartPtrIterator): Common iterator
2884	type for pointer stored by shared_ptr, weak_ptr and unique_ptr.
2885	(SharedPointerPrinter, UniquePointerPrinter): Treat stored values as
2886	children.
2887	* testsuite/libstdc++-prettyprinters/cxx11.cc: Update expected output
2888	of unique_ptr printer.
2889	* testsuite/libstdc++-prettyprinters/shared_ptr.cc: Update expected
2890	output of shared_ptr printer.
2891
28922018-01-05  Jonathan Wakely  <jwakely@redhat.com>
2893
2894	PR libstdc++/83626
2895	* src/filesystem/ops.cc (remove(const path&, error_code&)): Remove
2896	unnecessary symlink_status call.
2897	(remove_all(const path&, error_code&)): Use filesystem::remove.
2898	* src/filesystem/std-ops.cc: Likewise.
2899
2900	PR libstdc++/83279
2901	* src/filesystem/std-ops.cc  (do_copy_file): Use non-null offset with
2902	sendfile.
2903
2904	PR libstdc++/83626
2905	* src/filesystem/ops.cc (remove(const path&, error_code&)): Do not
2906	report an error for ENOENT.
2907	(remove_all(const path&)): Fix type of result variable.
2908	(remove_all(const path&, error_code&)): Use non-throwing increment
2909	for directory iterator. Call POSIX remove directly to avoid redundant
2910	calls to symlink_status. Do not report errors for ENOENT.
2911	* src/filesystem/std-ops.cc: Likewise.
2912	* testsuite/27_io/filesystem/operations/remove_all.cc: Test throwing
2913	overload.
2914	* testsuite/experimental/filesystem/operations/remove_all.cc:
2915	Likewise.
2916
29172018-01-04  Jonathan Wakely  <jwakely@redhat.com>
2918
2919	PR libstdc++/83626
2920	* src/filesystem/ops.cc (remove(const path&, error_code&))): Remove
2921	redundant call to ec.clear().
2922	(remove_all(const path&, error_code&))): Do not return an error for
2923	non-existent paths.
2924	* src/filesystem/std-ops.cc: Likewise.
2925	* testsuite/27_io/filesystem/operations/remove.cc: New test.
2926	* testsuite/27_io/filesystem/operations/remove_all.cc: Fix expected
2927	results for non-existent paths.
2928	* testsuite/experimental/filesystem/operations/remove.cc: New test.
2929	* testsuite/experimental/filesystem/operations/remove_all.cc: Fix
2930	expected results for non-existent paths.
2931
2932	* include/bits/fs_ops.h (exists(const path&, error_code&))): Only
2933	check status_known once.
2934	* include/experimental/bits/fs_ops.h: Likewise.
2935
2936	PR libstdc++/83607
2937	* include/std/functional (__is_byte_like): New trait.
2938	(__is_std_equal_to): Remove.
2939	(__boyer_moore_base_t): Use __is_byte_like instead of
2940	__is_std_equal_to.
2941	* include/experimental/functional (__is_std_equal_to): Remove.
2942	(__boyer_moore_base_t): Use __is_byte_like instead of
2943	__is_std_equal_to.
2944	* testsuite/20_util/function_objects/83607.cc: New test.
2945
29462018-01-03  Ville Voutilainen  <ville.voutilainen@gmail.com>
2947
2948	Protect optional's deduction guide with the feature macro
2949	* include/std/optional: Use the feature macro.
2950
29512018-01-03  Jakub Jelinek  <jakub@redhat.com>
2952
2953	Update copyright years.
2954
2955Copyright (C) 2018 Free Software Foundation, Inc.
2956
2957Copying and distribution of this file, with or without modification,
2958are permitted in any medium without royalty provided the copyright
2959notice and this notice are preserved.
2960