xref: /netbsd-src/external/gpl3/gcc/dist/libstdc++-v3/ChangeLog-2018 (revision 181254a7b1bdde6873432bffef2d2decc4b5c22f)
12018-12-23  François Dumont  <fdumont@gcc.gnu.org>
2
3	* libstdc++-v3/testsuite/util/testsuite_allocator.h
4	(CustomPointerAlloc<>::allocate(size_t, pointer)): Replace by...
5	(CustomPointerAlloc<>::allocate(size_t, const_void_pointer)): ...this.
6
7	Respect pointer_traits on node deallocation in _ReuseOrAllocNode
8	parenthesis operator.
9
10	* include/bits/hashtable_policy.h
11	(_Hashtable_alloc<>::_M_deallocate_node_ptr(__node_type*)): New.
12	(_Hashtable_alloc<>::_M_deallocate_node(__node_type*)): Use latter.
13	(_ReuseOrAllocNode<>::operator<_Arg>()(_Arg&&)): Likewise.
14
152018-12-22  Iain Sandoe  <iain@sandoe.co.uk>
16
17	* /config/os/bsd/darwin/ppc-extra.ver: Append long double symbols.
18
192018-12-20  Jonathan Wakely  <jwakely@redhat.com>
20
21	* testsuite/27_io/filesystem/operations/proximate.cc: Fix test for
22	MinGW.
23	* testsuite/27_io/filesystem/path/append/source.cc: Likewise.
24	* testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
25
26	* testsuite/27_io/filesystem/directory_entry/lwg3171.cc: New test
27	(missed from previous commit).
28
292018-12-19  Jonathan Wakely  <jwakely@redhat.com>
30
31	* doc/xml/manual/abi.xml: Add missing word.
32
332018-12-18  Jonathan Wakely  <jwakely@redhat.com>
34
35	* include/bits/fs_dir.h (operator<<): Overload for directory_entry,
36	as per LWG 3171.
37	* testsuite/27_io/filesystem/directory_entry/lwg3171.cc: New test.
38
39	* src/filesystem/std-dir.cc (filesystem::_Dir::advance): Move new
40	path instead of copying.
41
42	* src/filesystem/std-dir.cc (filesystem::_Dir::advance): Append
43	string to lvalue to avoid creating temporary path.
44
45	* include/bits/fs_path.h (path::compare(const string_type&))
46	(path::compare(const value_type*)): Add noexcept and construct a
47	string view to compare to instead of a path.
48	(path::compare(basic_string_view<value_type>)): Add noexcept. Remove
49	inline definition.
50	* src/filesystem/std-path.cc (path::_Parser): Track last type read
51	from input.
52	(path::_Parser::next()): Return a final empty component when the
53	input ends in a non-root directory separator.
54	(path::_M_append(basic_string_view<value_type>)): Remove special cases
55	for trailing non-root directory separator.
56	(path::_M_concat(basic_string_view<value_type>)): Likewise.
57	(path::compare(const path&)): Implement LWG 2936.
58	(path::compare(basic_string_view<value_type>)): Define in terms of
59	components returned by parser, consistent with LWG 2936.
60	* testsuite/27_io/filesystem/path/compare/lwg2936.cc: New.
61	* testsuite/27_io/filesystem/path/compare/path.cc: Test more cases.
62	* testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
63
64	* include/std/string_view [__cplusplus > 201703L]
65	(basic_string_view::starts_with(basic_string_view)): Implement
66	proposed resolution of LWG 3040 to avoid redundant length check.
67	(basic_string_view::starts_with(_CharT)): Implement proposed
68	resolution of LWG 3040 to check at most one character.
69	(basic_string_view::ends_with(_CharT)): Likewise.
70
712018-12-17  Jonathan Wakely  <jwakely@redhat.com>
72
73	PR libstdc++/71044
74	* src/filesystem/std-path.cc (path::_M_append): Fix off-by-one error
75	that caused a component to be lost from the iteration sequence.
76	(path::_M_concat): Likewise.
77	* testsuite/27_io/filesystem/path/append/source.cc: Test appending
78	long strings.
79	* testsuite/27_io/filesystem/path/concat/strings.cc: Test
80	concatenating long strings.
81	* testsuite/27_io/filesystem/path/construct/string_view.cc: Test
82	construction from long string.
83
842018-12-13  Jonathan Wakely  <jwakely@redhat.com>
85
86	* src/filesystem/std-path.cc (SLASHSLASH_IS_ROOT_NAME): New macro to
87	control whether interpret paths with two slashes as a root-name.
88	(path::operator/=(const path&)) [SLASHSLASH_IS_ROOT_NAME]: Add a
89	root-directory when appending to a root-name.
90	(path::_M_append(basic_string_view<value_type>))
91	[SLASHSLASH_IS_ROOT_NAME]: Likewise.
92	(path::operator/=(const path&)) [SLASHSLASH_IS_ROOT_NAME]: Likewise.
93	(path::_M_concat(basic_string_view<value_type>))
94	[SLASHSLASH_IS_ROOT_NAME]: Likewise.
95	(path::lexically_normal()) [SLASHSLASH_IS_ROOT_NAME]: Use += instead
96	of /= to add a root-directory to the result.
97	* testsuite/27_io/filesystem/path/decompose/root_directory.cc: Fix
98	expected result for Cygwin.
99
100	PR libstdc++/71044
101	* include/bits/fs_path.h (path::path(path&&)): Add noexcept when
102	appropriate. Move _M_cmpts instead of reparsing the native pathname.
103	(path::operator=(const path&)): Do not define as defaulted.
104	(path::operator/=, path::append): Call _M_append.
105	(path::concat): Call _M_concat.
106	(path::path(string_type, _Type): Change type of first parameter to
107	basic_string_view<value_type>.
108	(path::_M_append(basic_string_view<value_type>)): New member function.
109	(path::_M_concat(basic_string_view<value_type>)): New member function.
110	(_S_convert(value_type*, __null_terminated)): Return string view.
111	(_S_convert(const value_type*, __null_terminated)): Return string view.
112	(_S_convert(value_type*, value_type*))
113	(_S_convert(const value_type*, const value_type*)): Add overloads for
114	pairs of pointers.
115	(_S_convert(_InputIterator, __null_terminated)): Construct string_type
116	explicitly, for cases where _S_convert returns a string view.
117	(path::_S_is_dir_sep): Replace with non-member is_dir_sep.
118	(path::_M_trim, path::_M_add_root_name, path::_M_add_root_dir)
119	(path::_M_add_filename): Remove.
120	(path::_M_type()): New member function to replace _M_type data member.
121	(path::_List): Define new struct type instead of using std::vector.
122	(path::_Cmpt::_Cmpt(string_type, _Type, size_t)): Change type of
123	first parameter to basic_string_view<value_type>.
124	(path::operator+=(const path&)): Do not define inline.
125	(path::operator+=(const string_type&)): Call _M_concat.
126	(path::operator+=(const value_type*)): Likewise.
127	(path::operator+=(value_type)): Likewise.
128	(path::operator+=(basic_string_view<value_type>)): Likewise.
129	(path::operator/=(const path&)): Do not define inline.
130	(path::_M_append(path)): Remove.
131	* python/libstdcxx/v6/printers.py (StdPathPrinter): New printer that
132	understands the new path::_List type.
133	* src/filesystem/std-path.cc (is_dir_sep): New function to replace
134	path::_S_is_dir_sep.
135	(path::_Parser): New helper class to parse strings as paths.
136	(path::_List::_Impl): Define container type for path components.
137	(path::_List): Define members.
138	(path::operator=(const path&)): Define explicitly, to provide the
139	strong exception safety guarantee.
140	(path::operator/=(const path&)): Implement manually by processing
141	each component of the argument, rather than using _M_split_cmpts
142	to parse the entire string again.
143	(path::_M_append(string_type)): Likewise.
144	(path::operator+=(const path&)): Likewise.
145	(path::_M_concat(string_type)): Likewise.
146	(path::remove_filename()): Perform trim directly instead of calling
147	_M_trim().
148	(path::_M_split_cmpts()): Rewrite in terms of _Parser class.
149	(path::_M_trim, path::_M_add_root_name, path::_M_add_root_dir)
150	(path::_M_add_filename): Remove.
151	* testsuite/27_io/filesystem/path/append/source.cc: Test appending a
152	string view that aliases the path.
153	testsuite/27_io/filesystem/path/concat/strings.cc: Test concatenating
154	a string view that aliases the path.
155
156	* testsuite/27_io/filesystem/path/generation/proximate.cc: Use
157	preferred directory separators for normalized paths.
158	* testsuite/27_io/filesystem/path/generation/relative.cc: Likewise.
159
160	* testsuite/27_io/filesystem/path/itr/traversal.cc: Fix test for
161	mingw.
162
163	* testsuite/27_io/filesystem/path/construct/80762.cc: Skip test if
164	the Filesystem TS support is not configured.
165	* testsuite/experimental/filesystem/path/construct/80762.cc: Likewise.
166
1672018-12-12  Jonathan Wakely  <jwakely@redhat.com>
168
169	PR libstdc++/71044 (partial)
170	* include/bits/fs_path.h (__path_iter_distance, __path_iter_advance):
171	New friend functions to implement std::distance and std::advance more
172	efficiently.
173	(distance, advance): Add overloads for path::iterator.
174	* testsuite/27_io/filesystem/path/itr/components.cc: Test new
175	overload.
176
177	PR libstdc++/80762
178	* include/bits/fs_path.h (path::_Path): Use remove_cv_t and is_void.
179	* include/experimental/bits/fs_path.h (path::_Path): Likewise.
180	* testsuite/27_io/filesystem/path/construct/80762.cc: New test.
181	* testsuite/experimental/filesystem/path/construct/80762.cc: New test.
182
1832018-12-12  Jakub Jelinek  <jakub@redhat.com>
184
185	P0595R2 - is_constant_evaluated
186	* include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED):
187	Define if __builtin_is_constant_evaluated is available.
188	* include/std/type_traits (std::is_constant_evaluated): New constexpr
189	inline function.
190	* testsuite/20_util/is_constant_evaluated/1.cc: New test.
191	* testsuite/20_util/is_constant_evaluated/noexcept.cc: New test.
192
1932018-12-10  Gerald Pfeifer  <gerald@pfeifer.com>
194
195	* doc/xml/manual/documentation_hacking.xml: Update reference
196	to epubcheck.
197
1982018-12-10  Jonathan Wakely  <jwakely@redhat.com>
199
200	* testsuite/experimental/filesystem/path/query/is_absolute.cc: Fix
201	test to use TS, not C++17.
202
2032018-12-06  Iain Sandoe  <iain@sandoe.co.uk>
204
205	* scripts/make_exports.pl (check names): Don’t try to export
206	construction vtable symbols.
207
2082018-12-06  Jonathan Wakely  <jwakely@redhat.com>
209	    Iain Sandoe  <iain@sandoe.co.uk>
210
211	PR libstdc++/64883
212	* testsuite/17_intro/headers/c++1998/all_attributes.cc: Don't test
213	always_inline on Darwin.
214	* testsuite/17_intro/headers/c++2011/all_attributes.cc: Likewise.
215	* testsuite/17_intro/headers/c++2014/all_attributes.cc: Likewise.
216	* testsuite/17_intro/headers/c++2017/all_attributes.cc: Likewise.
217	* testsuite/17_intro/headers/c++2020/all_attributes.cc: Likewise.
218
2192018-12-03  Edward Smith-Rowland  <3dw4rd@verizon.net>
220
221	PR libstdc++/88341 - Complex norm doesn't compile with C++11
222	* include/std/complex (_S_do_it): Make C++20 constexpr.
223	* testsuite/26_numerics/complex/value_operations/pr88341.cc: New test.
224
2252018-11-30  Edward Smith-Rowland  <3dw4rd@verizon.net>
226
227	Implement P0457R2 String Prefix and Suffix Checking.
228	* include/bits/basic_string.h: Add starts_with, ends_with members.
229	* include/std/string_view: Ditto.
230	* testsuite/21_strings/basic_string/operations/starts_with/
231	char/1.cc: New test.
232	* testsuite/21_strings/basic_string/operations/starts_with/
233	wchar_t/1.cc: New test.
234	* testsuite/21_strings/basic_string/operations/ends_with/
235	char/1.cc: New test.
236	* testsuite/21_strings/basic_string/operations/ends_with/
237	wchar_t/1.cc: New test.
238	* testsuite/21_strings/basic_string_view/operations/starts_with/
239	char/1.cc: New test.
240	* testsuite/21_strings/basic_string_view/operations/starts_with/
241	wchar_t/1.cc: New test.
242	* testsuite/21_strings/basic_string_view/operations/ends_with/
243	char/1.cc: New test.
244	* testsuite/21_strings/basic_string_view/operations/ends_with/
245	wchar_t/1.cc: New test.
246
2472018-11-30  Edward Smith-Rowland  <3dw4rd@verizon.net>
248
249	Pre-emptively support P0646R1 for std container erasure.
250	* include/bits/erase_if.h: Accumulate and return number of erased nodes.
251	* include/std/forward_list (): Return number of erased items.
252	* include/std/list (): Ditto.
253	* include/std/map (): Ditto.
254	* include/std/set (): Ditto.
255	* include/std/string (): Ditto.
256	* include/std/unordered_map (): Ditto.
257	* include/std/unordered_set (): Ditto.
258	* include/std/vector (): Ditto.
259	* include/std/deque (): Ditto.
260	* testsuite/21_strings/basic_string/erasure.cc: Test number of erasures.
261	* testsuite/23_containers/deque/erasure.cc: Ditto.
262	* testsuite/23_containers/forward_list/erasure.cc: Ditto.
263	* testsuite/23_containers/list/erasure.cc: Ditto.
264	* testsuite/23_containers/map/erasure.cc: Ditto.
265	* testsuite/23_containers/set/erasure.cc: Ditto.
266	* testsuite/23_containers/unordered_map/erasure.cc: Ditto.
267	* testsuite/23_containers/unordered_set/erasure.cc: Ditto.
268	* testsuite/23_containers/vector/erasure.cc: Ditto.
269
2702018-11-29  Edward Smith-Rowland  <3dw4rd@verizon.net>
271
272	Only include bits/stl_algo.h for C++20.
273	* include/std/deque: Only include bits/stl_algo.h for C++20.
274	* include/std/string: Ditto.
275	* include/std/vector: Ditto.
276
2772018-11-29  Edward Smith-Rowland  <3dw4rd@verizon.net>
278
279	Fix erasure goofs.
280	* include/experimental/deque: Make inline.
281	* include/std/deque: Include bits/stl_algo.h.
282	(erase, erase_if): Make inline.
283	* include/std/string: Include bits/stl_algo.h.
284	* include/std/unordered_set: Add erase, erase_if!
285	* include/std/vector: Include bits/stl_algo.h.
286	* testsuite/21_strings/basic_string/erasure.cc:
287	Add { dg-options "-std=gnu++2a" }.
288	* testsuite/23_containers/deque/erasure.cc: Ditto.
289	* testsuite/23_containers/forward_list/erasure.cc: Ditto.
290	* testsuite/23_containers/list/erasure.cc: Ditto.
291	* testsuite/23_containers/map/erasure.cc: Ditto.
292	* testsuite/23_containers/set/erasure.cc: Ditto.
293	* testsuite/23_containers/unordered_map/erasure.cc: Ditto.
294	* testsuite/23_containers/unordered_set/erasure.cc: Ditto.
295	* testsuite/23_containers/vector/erasure.cc: Ditto.
296
2972018-11-29  Jonathan Wakely  <jwakely@redhat.com>
298
299	PR libstdc++/88119
300	* include/ext/aligned_buffer.h (__aligned_membuf): Add comment.
301	(__aligned_buffer): Use __alignof__ instead of std::alignment_of.
302	* include/std/type_traits (alignment_of): Use alignof instead of
303	__alignof__.
304	* testsuite/20_util/alignment_of/value.cc: Fix test to check values
305	match alignof not __alignof__, as required by the standard.
306
307	PR libstdc++/86910
308	PR libstdc++/87846
309	* src/filesystem/ops.cc (experimental::create_directories): Report
310	an error when the path resolves to an existing non-directory (P1164).
311	* src/filesystem/std-ops.cc (create_directories): Likewise. Handle
312	empty filenames due to trailing slashes.
313	* testsuite/27_io/filesystem/operations/create_directories.cc: Test
314	when some component of the path exists and is not a directory. Test
315	trailing slashes.
316	* testsuite/experimental/filesystem/operations/create_directories.cc:
317	Likewise.
318
3192018-11-28  Jonathan Wakely  <jwakely@redhat.com>
320
321	PR libstdc++/83306
322	* src/filesystem/path.cc (filesystem_error::_M_gen_what()): Create
323	string directly, instead of calling fs_err_concat.
324
325	PR libstdc++/83511
326	* include/std/string_view (basic_string_view::substr): Add default
327	argument to first parameter.
328	* include/experimental/string_view (basic_string_view::substr):
329	Likewise.
330	* testsuite/21_strings/basic_string_view/operations/substr/char/
331	83511.cc: New test.
332	* testsuite/21_strings/basic_string_view/operations/substr/wchar_t/
333	83511.cc: New test.
334	* testsuite/experimental/string_view/operations/substr/char/83511.cc:
335	New test.
336	* testsuite/experimental/string_view/operations/substr/wchar_t/83511.cc:
337	New test.
338
3392018-11-28  Edward Smith-Rowland  <3dw4rd@verizon.net>
340
341	Implement uniform container erasure for C++20.
342	* include/Makefile.am: Move erase_if.h.
343	* include/Makefile.in: Move erase_if.h.
344	* include/experimental/bits/erase_if.h: Move ...
345	* include/bits/erase_if.h: ... here.
346	* include/experimental/map: Move erase_if.h.
347	* include/experimental/set: Move erase_if.h.
348	* include/experimental/unordered_map: Move erase_if.h.
349	* include/experimental/unordered_set: Move erase_if.h.
350	* include/std/deque (erase_if, erase): New functions.
351	* include/std/forward_list: Ditto.
352	* include/std/list: Ditto.
353	* include/std/map: Ditto.
354	* include/std/set: Ditto.
355	* include/std/string: Ditto.
356	* include/std/unordered_map: Ditto.
357	* include/std/unordered_set: Ditto.
358	* include/std/vector: Ditto.
359	* testsuite/21_strings/basic_string/erasure.cc: New test.
360	* testsuite/23_containers/deque/erasure.cc: New test.
361	* testsuite/23_containers/forward_list/erasure.cc: New test.
362	* testsuite/23_containers/list/erasure.cc: New test.
363	* testsuite/23_containers/map/erasure.cc: New test.
364	* testsuite/23_containers/set/erasure.cc: New test.
365	* testsuite/23_containers/unordered_map/erasure.cc: New test.
366	* testsuite/23_containers/unordered_set/erasure.cc: New test.
367	* testsuite/23_containers/vector/erasure.cc: New test.
368
3692018-11-28  Jonathan Wakely  <jwakely@redhat.com>
370
371	* doc/xml/manual/intro.xml: Document LWG 3096 change.
372	* src/filesystem/std-path.cc (path::lexically_relative(const path&)):
373	Treat a final empty element equivalently to a final dot element.
374	* testsuite/27_io/filesystem/path/generation/relative.cc: Add checks
375	for the examples in the DR.
376
377	PR libstdc++/83306
378	* include/bits/fs_path.h (filesystem_error): Move data members into
379	pimpl class owned by shared_ptr. Remove inline definitions of member
380	functions.
381	* src/filesystem/std-path.cc (filesystem_error::_Impl): Define.
382	(filesystem_error): Define member functions.
383	* testsuite/27_io/filesystem/filesystem_error/cons.cc: New test.
384	* testsuite/27_io/filesystem/filesystem_error/copy.cc: New test.
385
386	* doc/xml/manual/status_cxx2017.xml: Update C++17 status.
387	* doc/html/*: Regenerate.
388
3892018-11-27  Jonathan Wakely  <jwakely@redhat.com>
390
391	* testsuite/27_io/filesystem/operations/canonical.cc: Remove
392	directory created by test.
393	* testsuite/27_io/filesystem/operations/symlink_status.cc: Remove
394	symlink created by test.
395
396	PR libstdc++/67843
397	* acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Add new macro
398	that defines _GLIBCXX_HAVE_ATOMIC_LOCK_POLICY.
399	* config.h.in: Regenerate.
400	* configure: Regenerate.
401	* configure.ac: Use GLIBCXX_ENABLE_LOCK_POLICY.
402	* doc/xml/manual/configure.xml: Document new configure option.
403	* include/bits/fs_dir.h (directory_iterator): Use __shared_ptr
404	instead of shared_ptr.
405	(recursive_directory_iterator): Likewise.
406	(__shared_ptr<_Dir>): Add explicit instantiation declaration.
407	(__shared_ptr<recursive_directory_iterator::_Dir_stack>): Likewise.
408	* include/bits/shared_ptr_base.h (__allocate_shared, __make_shared):
409	Add default template argument for _Lock_policy template parameter.
410	* include/ext/concurrence.h (__default_lock_policy): Check macro
411	_GLIBCXX_HAVE_ATOMIC_LOCK_POLICY instead of checking if the current
412	target supports the builtins for compare-and-swap.
413	* src/filesystem/std-dir.cc (__shared_ptr<_Dir>): Add explicit
414	instantiation definition.
415	(__shared_ptr<recursive_directory_iterator::_Dir_stack>): Likewise.
416	(directory_iterator, recursive_directory_iterator): Use __make_shared
417	instead of make_shared.
418
4192018-11-27  François Dumont  <fdumont@gcc.gnu.org>
420
421	PR libstdc++/88199
422	* include/bits/hashtable.h (_Hashtable<>::_M_assign_elements): New.
423	(_Hashtable<>::operator=(const _Hashtable&)): Use latter.
424	(_Hashtable<>::_M_move_assign(_Hashtable&&, false_type)): Likewise.
425	* testsuite/23_containers/unordered_set/allocator/move_assign.cc
426	(test03): New.
427
4282018-11-26  Jonathan Wakely  <jwakely@redhat.com>
429
430	* testsuite/26_numerics/complex/requirements/more_constexpr.cc: Fix
431	failure on targets without __float128.
432
4332018-11-23  Edward Smith-Rowland  <3dw4rd@verizon.net>
434
435	Implement P0415 More constexpr for std::complex.
436	* include/std/complex (conj(complex<Tp>), norm(complex<Tp>)): Constexpr;
437	(real(Tp), imag(Tp)): Constexpr;
438	(operator@=(Tp), operator@=(complex<Tp>)): Constexpr;
439	(operator@(Tp,complex<Tp>), operator@(complex<Tp>,Tp)
440	operator@(complex<Tp>,complex<Tp>)): Constexpr.
441	* testsuite/26_numerics/complex/comparison_operators/
442	more_constexpr.cc: New test.
443	* testsuite/26_numerics/complex/operators/more_constexpr.cc: New test.
444	* testsuite/26_numerics/complex/requirements/
445	more_constexpr.cc: New test.
446	* testsuite/26_numerics/complex/value_operations/
447	more_constexpr.cc: New test.
448	* testsuite/26_numerics/headers/complex/synopsis.cc:
449	Add _GLIBCXX20_CONSTEXPR to applicable operators; Add missing proj().
450	* testsuite/26_numerics/headers/complex/synopsis.cc:
451	Add _GLIBCXX20_CONSTEXPR to relevant decls.
452
4532018-11-23  Martin Sebor  <msebor@redhat.com>
454	    Jonathan Wakely  <jwakely@redhat.com>
455
456	PR libstdc++/65229
457	* python/libstdcxx/v6/printers.py (StdBitsetPrinter): Handle
458	exception thrown for std::bitset<0>.
459	* testsuite/libstdc++-prettyprinters/simple.cc: Test std::bitset<0>.
460
4612018-11-23  Jonathan Wakely  <jwakely@redhat.com>
462
463	PR libstdc++/87308 (partial)
464	* python/libstdcxx/v6/printers.py (StdExpAnyPrinter): Adjust regex to
465	work around PR 88166.
466	* testsuite/libstdc++-prettyprinters/cxx17.cc: Test std::any
467	containing a local type.
468
4692018-11-22  Marc Glisse  <marc.glisse@inria.fr>
470
471	PR libstdc++/87106
472	* include/bits/stl_algobase.h: Include <type_traits>.
473	(__niter_base): Add noexcept specification.
474	* include/bits/stl_deque.h: Include <bits/stl_uninitialized.h>.
475	(__is_trivially_relocatable): Specialize for deque.
476	* include/bits/stl_iterator.h: Include <type_traits>.
477	(__niter_base): Add noexcept specification.
478	* include/bits/stl_uninitialized.h (__is_trivially_relocatable):
479	Add parameter for meta-programming.
480	(__relocate_a_1, __relocate_a): Add noexcept specification.
481	* include/bits/stl_vector.h (__use_relocate): Test __relocate_a.
482
4832018-11-22  Jonathan Wakely  <jwakely@redhat.com>
484
485	PR libstdc++/85930
486	PR libstdc++/87520
487	* include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti)
488	[__cpp_rtti]: Define even when RTTI is enabled. Use array of
489	sizeof(type_info) so that type-punned reference binds to an object
490	of the correct size as well as correct alignment.
491	(_Sp_counted_ptr_inplace::_M_get_deleter) [__cpp_rtti]: Check for
492	_S_ti() reference even when RTTI is enabled.
493	(__shared_ptr(_Sp_make_shared_tag, const _Alloc&, _Args&&...))
494	[__cpp_rtti]: Pass _S_ti() instead of typeid(_Sp_make_shared_tag).
495
4962018-11-21  Jakub Jelinek  <jakub@redhat.com>
497
498	PR c++/87386
499	* testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust expected
500	line.
501	* testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
502	* testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
503	* testsuite/experimental/propagate_const/requirements2.cc: Likewise.
504	* testsuite/experimental/propagate_const/requirements3.cc: Likewise.
505	* testsuite/experimental/propagate_const/requirements4.cc: Likewise.
506	* testsuite/experimental/propagate_const/requirements5.cc: Likewise.
507
5082018-11-21  Jonathan Wakely  <jwakely@redhat.com>
509
510	PR libstdc++/88111
511	* include/std/memory_resource (pool_options): Add Doxygen comments.
512	* src/c++17/memory_resource.cc (pool_sizes): Only use suitable values
513	on targets with 16-bit or 20-bit size_t type.
514	(munge_options): Make default values depend on width of size_t type.
515
516	PR libstdc++/88113
517	* src/c++17/memory_resource.cc (bitset::size_type): Use the smaller
518	of uint32_t and size_t.
519	(bitset::size(), bitset::free(), bitset::update_next_word())
520	(bitset::max_blocks_per_chunk(), bitset::max_word_index()): Use
521	size_type consistently instead of size_t.
522	(chunk): Adjust static_assert checking sizeof(chunk).
523
5242018-11-20  Ville Voutilainen  <ville.voutilainen@gmail.com>
525
526	Housekeeping for the effective targets of optional's tests.
527	* testsuite/20_util/optional/77288.cc: Adjust.
528	* testsuite/20_util/optional/84601.cc: Likewise.
529	* testsuite/20_util/optional/assignment/1.cc: Likewise.
530	* testsuite/20_util/optional/assignment/2.cc: Likewise.
531	* testsuite/20_util/optional/assignment/3.cc: Likewise.
532	* testsuite/20_util/optional/assignment/4.cc: Likewise.
533	* testsuite/20_util/optional/assignment/5.cc: Likewise.
534	* testsuite/20_util/optional/assignment/6.cc: Likewise.
535	* testsuite/20_util/optional/assignment/7.cc: Likewise.
536	* testsuite/20_util/optional/assignment/8.cc: Likewise.
537	* testsuite/20_util/optional/cons/77727.cc: Likewise.
538	* testsuite/20_util/optional/cons/copy.cc: Likewise.
539	* testsuite/20_util/optional/cons/deduction.cc: Likewise.
540	* testsuite/20_util/optional/cons/default.cc: Likewise.
541	* testsuite/20_util/optional/cons/move.cc: Likewise.
542	* testsuite/20_util/optional/cons/trivial.cc: Likewise.
543	* testsuite/20_util/optional/cons/value.cc: Likewise.
544	* testsuite/20_util/optional/cons/value_neg.cc: Likewise.
545	* testsuite/20_util/optional/constexpr/cons/default.cc: Likewise.
546	* testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
547	* testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
548	* testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
549	* testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
550	* testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
551	* testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
552	* testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
553	* testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
554	* testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
555	* testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
556	* testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
557	* testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
558	* testsuite/20_util/optional/in_place.cc: Likewise.
559	* testsuite/20_util/optional/make_optional.cc: Likewise.
560	* testsuite/20_util/optional/nullopt.cc: Likewise.
561	* testsuite/20_util/optional/observers/1.cc: Likewise.
562	* testsuite/20_util/optional/observers/2.cc: Likewise.
563	* testsuite/20_util/optional/observers/3.cc: Likewise.
564	* testsuite/20_util/optional/observers/4.cc: Likewise.
565	* testsuite/20_util/optional/observers/5.cc: Likewise.
566	* testsuite/20_util/optional/observers/6.cc: Likewise.
567	* testsuite/20_util/optional/relops/1.cc: Likewise.
568	* testsuite/20_util/optional/relops/2.cc: Likewise.
569	* testsuite/20_util/optional/relops/3.cc: Likewise.
570	* testsuite/20_util/optional/relops/4.cc: Likewise.
571	* testsuite/20_util/optional/relops/5.cc: Likewise.
572	* testsuite/20_util/optional/relops/6.cc: Likewise.
573	* testsuite/20_util/optional/relops/7.cc: Likewise.
574	* testsuite/20_util/optional/requirements.cc: Likewise.
575	* testsuite/20_util/optional/swap/1.cc: Likewise.
576	* testsuite/20_util/optional/swap/2.cc: Likewise.
577	* testsuite/20_util/optional/typedefs.cc: Likewise.
578
5792018-11-19  François Dumont  <fdumont@gcc.gnu.org>
580
581	* include/ext/throw_allocator.h
582	(annotate_base::insert(void*, size_t)): Use insert result to check for
583	double insert attempt.
584	(annotate_base::insert_construct(void*)): Likewise.
585	(annotate_base::check_allocated(void*, size_t)): Return found iterator.
586	(annotate_base::erase(void*, size_t)): Use latter method returned
587	iterator.
588	(annotate_base::check_constructed(void*, size_t)): Return found iterator.
589	(annotate_base::erase_construct(void*)): Use latter method returned
590	iterator.
591
5922018-11-19  Ville Voutilainen  <ville.voutilainen@gmail.com>
593
594	PR libstdc++/87855
595	Also implement P0602R4 (variant and optional
596	should propagate copy/move triviality) for std::optional.
597	* include/std/optional (_Optional_payload): Change
598	the main constraints to check constructibility in
599	addition to assignability.
600	(operator=): Make constexpr.
601	(_M_reset): Likewise.
602	(_M_construct): Likewise.
603	(operator->): Likewise.
604	* testsuite/20_util/optional/assignment/8.cc: Adjust.
605	* testsuite/20_util/optional/assignment/9.cc: New.
606
6072018-11-19  Jonathan Wakely  <jwakely@redhat.com>
608
609	PR libstdc++/88084 - Implement LWG 2777
610	* include/std/string_view (basic_string_view::copy): Use traits to
611	copy.
612	* testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
613	New test.
614	* testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
615	New test.
616
6172018-11-18  Michele Pezzutti <mpezz@tiscali.it>
618	    Edward Smith-Rowland  <3dw4rd@verizon.net>
619
620	PR libstdc++/83566 - cyl_bessel_j returns wrong result for x>1000
621	for high orders.
622	* include/tr1/bessel_function.tcc: Perform no fewer than nu/2 iterations
623	of the asymptotic series (nu is the Bessel order).
624	* testsuite/tr1/5_numerical_facilities/special_functions/
625	09_cyl_bessel_j/check_value.cc: Add tests at nu=100, 1000<=x<=2000.
626	* testsuite/tr1/5_numerical_facilities/special_functions/
627	11_cyl_neumann/check_value.cc: Ditto.
628	* testsuite/special_functions/08_cyl_bessel_j/check_value.cc: Ditto.
629	* testsuite/special_functions/10_cyl_neumann/check_value.cc: Ditto.
630
6312018-11-17  Jonathan Wakely  <jwakely@redhat.com>
632
633	Implement std::pmr::synchronized_pool_resource
634	* config/abi/pre/gnu.ver: Add new symbols.
635	* include/std/memory_resource [_GLIBCXX_HAS_GTHREADS]
636	(__cpp_lib_memory_resource): Define to expected value, 201603.
637	(synchronized_pool_resource): New class.
638	[!_GLIBCXX_HAS_GTHREADS] (__cpp_lib_memory_resource): Define to 1.
639	* include/std/shared_mutex (__glibcxx_rwlock_rdlock)
640	(__glibcxx_rwlock_tryrdlock, __glibcxx_rwlock_wrlock)
641	(__glibcxx_rwlock_trywrlock, __glibcxx_rwlock_unlock)
642	(__glibcxx_rwlock_destroy, __glibcxx_rwlock_init)
643	(__glibcxx_rwlock_timedrdlock, __glibcxx_rwlock_timedwrlock): Define
644	weak symbols for POSIX rwlock functions.
645	(__shared_mutex_pthread): Use weak symbols.
646	* include/std/version (__cpp_lib_memory_resource): Define.
647	* src/c++17/memory_resource.cc [_GLIBCXX_HAS_GTHREADS]
648	(synchronized_pool_resource::_TPools): New class.
649	(destroy_TPools): New function for pthread_key_create destructor.
650	(synchronized_pool_resource::synchronized_pool_resource)
651	(synchronized_pool_resource::~synchronized_pool_resource)
652	(synchronized_pool_resource::release)
653	(synchronized_pool_resource::do_allocate)
654	(synchronized_pool_resource::do_deallocate): Define public members.
655	(synchronized_pool_resource::_M_thread_specific_pools)
656	(synchronized_pool_resource::_M_alloc_tpools)
657	(synchronized_pool_resource::_M_alloc_shared_tpools): Define private
658	members.
659	* testsuite/20_util/synchronized_pool_resource/allocate.cc: New test.
660	* testsuite/20_util/synchronized_pool_resource/cons.cc: New test.
661	* testsuite/20_util/synchronized_pool_resource/is_equal.cc: New test.
662	* testsuite/20_util/synchronized_pool_resource/multithreaded.cc: New
663	test.
664	* testsuite/20_util/synchronized_pool_resource/release.cc: New test.
665	* testsuite/performance/20_util/memory_resource/pools.cc: Add
666	multithreaded tests using pmr::synchronized_pool_resource.
667
6682018-11-16  Renlin Li  <renlin.li@arm.com>
669	    Tejas Belagod  <tejas.belagod@arm.com>
670
671	testsuite/lib/libstdc++.exp (check_v3_target_prop_cached): New proc.
672	(check_v3_target): Use the check_v3_target_prop_cached.
673
6742018-11-15  Jonathan Wakely  <jwakely@redhat.com>
675
676	* scripts/check_performance: Allow tests to choose a -std flag.
677	* src/c++17/memory_resource.cc (bitset::get_first_unset()): Use local
678	variables of the right types. Call update_next_word() unconditionally.
679	* testsuite/20_util/unsynchronized_pool_resource/cons.cc: New test.
680	* testsuite/performance/20_util/memory_resource/pools.cc: New test.
681	* testsuite/util/testsuite_performance.h (time_counter): Allow
682	timer to be restarted.
683
684	* testsuite/20_util/unsynchronized_pool_resource/allocate.cc: Fix
685	test for 32-bit targets. Test additional allocation sizes.
686
6872018-11-14  Jonathan Wakely  <jwakely@redhat.com>
688
689	* scripts/create_testsuite_files: Add special_functions to the list
690	of directories to search. Add comment referring to conformance.exp.
691	* testsuite/libstdc++-dg/conformance.exp: Add comment referring
692	to create_testsuite_files.
693
6942018-11-13  Jonathan Wakely  <jwakely@redhat.com>
695
696	* src/c++17/memory_resource.cc (select_num_pools): Fix off-by-one
697	error when block_size is equal to one of the values in the array.
698
699	* src/c++17/memory_resource.cc (_Pool::deallocate): Restore
700	attributes to parameters that are only used in assertions.
701
702	* src/c++17/memory_resource.cc (bitset::find_first_unset()): Remove
703	unused function.
704	(bitset::get_first_unset()): Remove loop, if there's are unset bits
705	then _M_next_word refers to the first one and there's no need to loop.
706	(_Pool::_Pool(size_t, size_t), _Pool::block_size()): Remove dead code.
707
708	* src/c++17/memory_resource.cc (munge_options): Round up value of
709	largest_required_pool_block to multiple of smallest pool size. Round
710	excessively large values down to largest pool size.
711	(select_num_pools): Increase number of pools by one unless it exactly
712	matches requested largest_required_pool_block.
713	(__pool_resource::_M_alloc_pools()): Make largest pool size equal
714	largest_required_pool_block.
715	* testsuite/20_util/unsynchronized_pool_resource/options.cc: Check
716	that pool_options::largest_required_pool_block is set appropriately.
717
718	* src/c++17/memory_resource.cc (big_block): Improve comments.
719	(big_block::all_ones): Remove.
720	(big_block::big_block(size_t, size_t)): Use alloc_size.
721	(big_block::size()): Add comment, replace all_ones with equivalent
722	expression.
723	(big_block::align()): Shift value of correct type.
724	(big_block::alloc_size(size_t)): New function to round up size.
725	(__pool_resource::allocate(size_t, size_t)): Add comment.
726	(__pool_resource::deallocate(void*, size_t, size_t)): Likewise. Fix
727	incorrect assertion by using big_block::alloc_size(size_t).
728	* testsuite/20_util/unsynchronized_pool_resource/allocate.cc: Add
729	more tests for unpooled allocations.
730
731	* src/c++17/memory_resource.cc (bitset::full()): Handle edge case
732	for _M_next_word maximum value.
733	(bitset::get_first_unset(), bitset::set(size_type)): Use
734	update_next_word() to update _M_next_word.
735	(bitset::update_next_word()): New function, avoiding wraparound of
736	unsigned _M_next_word member.
737	(bitset::max_word_index()): New function.
738	(chunk::chunk(void*, uint32_t, void*, size_t)): Add assertion.
739	(chunk::max_bytes_per_chunk()): New function.
740	(pool::replenish(memory_resource*, const pool_options&)): Prevent
741	_M_blocks_per_chunk from exceeding max_blocks_per_chunk or from
742	causing chunk::max_bytes_per_chunk() to be exceeded.
743	* testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc:
744	New test.
745
7462018-11-12  Jason Merrill  <jason@redhat.com>
747
748	* libsupc++/new (std::destroying_delete_t): New.
749
7502018-11-12  Jonathan Wakely  <jwakely@redhat.com>
751
752	PR libstdc++/87963
753	* src/c++17/memory_resource.cc (chunk::_M_bytes): Change type from
754	unsigned to uint32_t.
755	(chunk): Fix static assertion for 64-bit targets that aren't LP64.
756	(bigblock::all_ones): Fix undefined shift.
757
7582018-11-11  Hans-Peter Nilsson  <hp@axis.com>
759
760	PR libstdc++-v3/54005
761	* include/bits/atomic_base.h (__atomic_base<_TTp>::is_lock_free(),
762	__atomic_base<_PTp*>::is_lock_free()): Call __atomic_is_lock_free
763	with the type-derived _S_alignment instead of __alignof the object.
764	* include/std/atomic (atomic<T>::is_lock_free()): Likewise.
765
7662018-11-11  Jonathan Wakely  <jwakely@redhat.com>
767
768	Implement P0318R1 unwrap_ref_decay and unwrap_reference
769	* include/std/type_traits (unwrap_reference, unwrap_reference_t)
770	(unwrap_ref_decay, unwrap_ref_decay_t): New traits and aliases.
771	* testsuite/20_util/unwrap_reference/1.cc: New test.
772	* testsuite/20_util/unwrap_reference/2.cc: New test.
773
774	Implement P1007R3 std::assume_aligned
775	* include/std/memory (assume_aligned): Implement for C++17.
776	* testsuite/20_util/assume_aligned/1.cc: New test.
777	* testsuite/20_util/assume_aligned/2_neg.cc: New test.
778	* testsuite/20_util/assume_aligned/3.cc: New test.
779
7802018-11-09  Jonathan Wakely  <jwakely@redhat.com>
781
782	PR libstdc++/87787
783	* include/bits/stl_uninitialized.h (__relocate_a_1): Do not call
784	memmove when there's nothing to copy (and pointers could be null).
785
7862018-11-07  Hafiz Abid Qadeer  <abidh@codesourcery.com>
787
788	* configure: Regenerated.
789
7902018-11-07  Jonathan Wakely  <jwakely@redhat.com>
791
792	* config/abi/pre/gnu.ver: Fix patterns for size_t parameters.
793
7942018-11-06  Jonathan Wakely  <jwakely@redhat.com>
795
796	Implement std::pmr::unsynchronized_pool_resource
797	* config/abi/pre/gnu.ver: Add new symbols.
798	* include/std/memory_resource (std::pmr::__pool_resource): New class.
799	(std::pmr::unsynchronized_pool_resource): New class.
800	* src/c++17/Makefile.am: Add -fimplicit-templates to flags for
801	memory_resource.cc
802	* src/c++17/Makefile.in: Regenerate.
803	* src/c++17/memory_resource.cc (bitset, chunk, big_block): New
804	internal classes.
805	(__pool_resource::_Pool): Define new class.
806	(munge_options, pool_index, select_num_pools): New internal functions.
807	(__pool_resource::__pool_resource, __pool_resource::~__pool_resource)
808	(__pool_resource::allocate, __pool_resource::deallocate)
809	(__pool_resource::_M_alloc_pools): Define member functions.
810	(unsynchronized_pool_resource::unsynchronized_pool_resource)
811	(unsynchronized_pool_resource::~unsynchronized_pool_resource)
812	(unsynchronized_pool_resource::release)
813	(unsynchronized_pool_resource::_M_find_pool)
814	(unsynchronized_pool_resource::do_allocate)
815	(unsynchronized_pool_resource::do_deallocate): Define member
816	functions.
817	* testsuite/20_util/unsynchronized_pool_resource/allocate.cc: New
818	test.
819	* testsuite/20_util/unsynchronized_pool_resource/is_equal.cc: New
820	test.
821	* testsuite/20_util/unsynchronized_pool_resource/options.cc: New
822	test.
823	* testsuite/20_util/unsynchronized_pool_resource/release.cc: New
824	test.
825
8262018-11-06  John Bytheway  <jbytheway@gmail.com>
827
828	PR libstdc++/87872
829	* include/debug/safe_sequence.tcc
830	(_Safe_sequence<>::_M_transfer_from_if): Skip transfer to self.
831
8322018-10-31  Joseph Myers  <joseph@codesourcery.com>
833
834	PR bootstrap/82856
835	* Makefile.am: Include multilib.am.
836	* configure.ac: Remove AC_PREREQ.
837	* Makefile.in, aclocal.m4, configure, doc/Makefile.in,
838	include/Makefile.in, libsupc++/Makefile.in, po/Makefile.in,
839	python/Makefile.in, src/Makefile.in, src/c++11/Makefile.in,
840	src/c++17/Makefile.in, src/c++98/Makefile.in,
841	src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
842
8432018-10-31  Jonathan Wakely  <jwakely@redhat.com>
844
845	* testsuite/20_util/pair/87822.cc: Test deeper nesting.
846
847	PR libstdc++/87822
848	* include/bits/stl_pair.h (__pair_base): Change to class template.
849	(pair): Make base class type depend on template parameters.
850	* testsuite/20_util/pair/87822.cc: New test.
851
8522018-10-30  Marek Polacek  <polacek@redhat.com>
853
854	Implement P0892R2, explicit(bool).
855	* testsuite/20_util/any/cons/explicit.cc: Adjust dg-error.
856	* testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
857	* testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise.
858
8592018-10-30  Jonathan Wakely  <jwakely@redhat.com>
860
861	PR libstdc++/87809
862	* include/bits/forward_list.h (_Fwd_list_impl::_Fwd_list_impl()): Use
863	trait in exception-specification instead of possibly invalid
864	expression.
865	* include/bits/stl_bvector.h (_Bvector_impl::_Bvector_impl()):
866	Likewise.
867	* include/bits/stl_list.h (_List_impl::_List_impl()): Likewise.
868	* include/bits/stl_vector.h (_Vector_impl::_Vector_impl()): Likewise.
869	* testsuite/23_containers/forward_list/cons/87809.cc: New test.
870	* testsuite/23_containers/list/cons/87809.cc: New test.
871	* testsuite/23_containers/vector/bool/cons/87809.cc: New test.
872	* testsuite/23_containers/vector/cons/87809.cc: New test.
873
874	PR libstdc++/87784
875	* include/tr2/dynamic_bitset (dynamic_bitset::push_back): When there
876	are no unused bits in the last block, append a new block with the
877	right value so the bit doesn't need to be set. Only increment size
878	after setting the new bit, not before.
879	* testsuite/tr2/dynamic_bitset/pr87784.cc: New test.
880
8812018-10-29  David Malcolm  <dmalcolm@redhat.com>
882
883	* testsuite/17_intro/using_namespace_std_exp_neg.cc: Remove
884	"expected namespace-name before" error.
885	* testsuite/17_intro/using_namespace_std_tr1_neg.cc: Likewise.
886
8872018-10-28  François Dumont  <fdumont@gcc.gnu.org>
888
889	* testsuite/23_containers/deque/48101_neg.cc: Remove dg-prune-output
890	'std' from regex pattern for versioned namespace compatibility.
891	* testsuite/23_containers/vector/48101_neg.cc: Likewise.
892	* testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
893
8942018-10-25  Jonathan Wakely  <jwakely@redhat.com>
895
896	PR libstdc++/87749
897	* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
898	(basic_string::operator=(basic_string&&)): For short strings copy the
899	buffer inline. Only fall back to using assign(const basic_string&) to
900	do a deep copy when reallocation is needed.
901	* testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc:
902	New test.
903	* testsuite/21_strings/basic_string/modifiers/assign/char/
904	move_assign_optim.cc: New test.
905	* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc:
906	New test.
907	* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/
908	move_assign_optim.cc: New test.
909
9102018-10-25  Marc Glisse  <marc.glisse@inria.fr>
911
912	PR libstdc++/87106
913	* include/bits/alloc_traits.h (_S_construct, _S_destroy, construct,
914	destroy): Add noexcept specification.
915	* include/bits/allocator.h (construct, destroy): Likewise.
916	* include/ext/alloc_traits.h (construct, destroy): Likewise.
917	* include/ext/malloc_allocator.h (construct, destroy): Likewise.
918	* include/ext/new_allocator.h (construct, destroy): Likewise.
919	* include/bits/stl_uninitialized.h (__relocate_object_a, __relocate_a,
920	__relocate_a_1): New functions.
921	(__is_trivially_relocatable): New class.
922	* include/bits/stl_vector.h (__use_relocate): New static member.
923	* include/bits/vector.tcc (reserve, _M_realloc_insert,
924	_M_default_append): Use __relocate_a.
925	(reserve, _M_assign_aux, _M_realloc_insert, _M_fill_insert,
926	_M_default_append, _M_range_insert): Move _GLIBCXX_ASAN_ANNOTATE_REINIT
927	after _Destroy.
928	* testsuite/23_containers/vector/modifiers/push_back/49836.cc:
929	Replace CopyConsOnlyType with DelAnyAssign.
930
9312018-10-24  François Dumont  <fdumont@gcc.gnu.org>
932
933	* include/debug/safe_unordered_container.h
934	(_Safe_unordered_container<>::_M_invalidate_locals): Take lambda
935	parameter type from local end variable.
936	(_Safe_unordered_container<>::_M_invalidate_all): Likewise.
937	* include/debug/unordered_map
938	(unordered_map<>::begin()): Use C++11 direct initialization.
939	(unordered_map<>::end()): Likewise.
940	(unordered_map<>::cbegin()): Likewise.
941	(unordered_map<>::cend()): Likewise.
942	(unordered_map<>::begin(size_type)): Likewise.
943	(unordered_map<>::end(size_type)): Likewise.
944	(unordered_map<>::cbegin(size_type)): Likewise.
945	(unordered_map<>::cend(size_type)): Likewise.
946	(unordered_map<>::emplace<>(_Args&&...)): Likewise.
947	(unordered_map<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
948	(unordered_map<>::insert(const value_type&)): Likewise.
949	(unordered_map<>::insert(value_type&&)): Likewise.
950	(unordered_map<>::insert<>(_Pair&&)): Likewise.
951	(unordered_map<>::insert(const_iterator, const value_type&)): Likewise.
952	(unordered_map<>::insert(const_iterator, value_type&&)): Likewise.
953	(unordered_map<>::insert<>(const_iterator, _Pair&&)): Likewise.
954	(unordered_map<>::try_emplace<>(const key_type&, _Args&&...)): Likewise.
955	(unordered_map<>::try_emplace<>(key_type&&, _Args&&...)): Likewise.
956	(unordered_map<>::try_emplace<>(const_iterator, const key_type&,
957	_Args&&...)): Likewise.
958	(unordered_map<>::try_emplace<>(const_iterator, key_type&&,
959	_Args&&...)): Likewise.
960	(unordered_map<>::insert_or_assign<>(const key_type&, _Obj&&)): Likewise.
961	(unordered_map<>::insert_or_assign<>(key_type&&, _Obj&&)): Likewise.
962	(unordered_map<>::insert_or_assign<>(const_iterator, const key_type&,
963	_Obj&&)): Likewise.
964	(unordered_map<>::insert_or_assign<>(const_iterator, key_type&&,
965	_Obj&&)): Likewise.
966	(unordered_map<>::insert(note_type&&)): Likewise.
967	(unordered_map<>::find(const key_type&)): Likewise.
968	(unordered_map<>::equal_range(const key_type&)): Likewise.
969	(unordered_map<>::_M_extract): New.
970	(unordered_map<>::extract(const_iterator)): Use latter.
971	(unordered_map<>::extract(const key_type&)): Likewise.
972	(unordered_map<>::_M_erase): New.
973	(unordered_map<>::erase(const key_type&)): Use latter.
974	(unordered_map<>::erase(const_iterator)): Likewise.
975	(unordered_map<>::erase(iterator)): Likewise.
976	(unordered_map<>::_M_invalidate): New.
977	(unordered_map<>::erase(const_iterator, const_iterator)): Use latter.
978	(unordered_multimap<>::begin()): Use C++11 direct initialization.
979	(unordered_multimap<>::end()): Likewise.
980	(unordered_multimap<>::cbegin()): Likewise.
981	(unordered_multimap<>::cend()): Likewise.
982	(unordered_multimap<>::begin(size_type)): Likewise.
983	(unordered_multimap<>::end(size_type)): Likewise.
984	(unordered_multimap<>::cbegin(size_type)): Likewise.
985	(unordered_multimap<>::cend(size_type)): Likewise.
986	(unordered_multimap<>::emplace<>(_Args&&...)): Likewise.
987	(unordered_multimap<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
988	(unordered_multimap<>::insert(const value_type&)): Likewise.
989	(unordered_multimap<>::insert(const_iterator, const value_type&)): Likewise.
990	(unordered_multimap<>::insert(const_iterator, value_type&&)): Likewise.
991	(unordered_multimap<>::insert<>(_Pair&&)): Likewise.
992	(unordered_multimap<>::insert<>(const_iterator, _Pair&&)): Likewise.
993	(unordered_multimap<>::insert(note_type&&)): Likewise.
994	(unordered_multimap<>::insert(const_iterator, note_type&&)): Likewise.
995	(unordered_multimap<>::find(const key_type&)): Likewise.
996	(unordered_multimap<>::equal_range(const key_type&)): Likewise.
997	(unordered_multimap<>::_M_extract): New.
998	(unordered_multimap<>::extract(const_iterator)): Use latter.
999	(unordered_multimap<>::extract(const key_type&)): Likewise.
1000	(unordered_multimap<>::_M_erase): New.
1001	(unordered_multimap<>::erase(const_iterator)): Likewise.
1002	(unordered_multimap<>::erase(iterator)): Likewise.
1003	(unordered_multimap<>::_M_invalidate): New.
1004	(unordered_multimap<>::erase(const key_type&)): Use latter.
1005	(unordered_multimap<>::erase(const_iterator, const_iterator)): Likewise.
1006	* include/debug/unordered_set
1007	(unordered_set<>::begin()): Use C++11 direct initialization.
1008	(unordered_set<>::end()): Likewise.
1009	(unordered_set<>::cbegin()): Likewise.
1010	(unordered_set<>::cend()): Likewise.
1011	(unordered_set<>::begin(size_type)): Likewise.
1012	(unordered_set<>::end(size_type)): Likewise.
1013	(unordered_set<>::cbegin(size_type)): Likewise.
1014	(unordered_set<>::cend(size_type)): Likewise.
1015	(unordered_set<>::emplace<>(_Args&&...)): Likewise.
1016	(unordered_set<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
1017	(unordered_set<>::insert(const value_type&)): Likewise.
1018	(unordered_set<>::insert(value_type&&)): Likewise.
1019	(unordered_set<>::insert(const_iterator, const value_type&)): Likewise.
1020	(unordered_set<>::insert(const_iterator, value_type&&)): Likewise.
1021	(unordered_set<>::insert(note_type&&)): Likewise.
1022	(unordered_set<>::insert(const_iterator, note_type&&)): Likewise.
1023	(unordered_set<>::find(const key_type&)): Likewise.
1024	(unordered_set<>::equal_range(const key_type&)): Likewise.
1025	(unordered_set<>::_M_extract): New.
1026	(unordered_set<>::extract(const_iterator)): Use latter.
1027	(unordered_set<>::extract(const key_type&)): Likewise.
1028	(unordered_set<>::_M_erase): New.
1029	(unordered_set<>::erase(const key_type&)): Use latter.
1030	(unordered_set<>::erase(const_iterator)): Likewise.
1031	(unordered_set<>::erase(iterator)): Likewise.
1032	(unordered_set<>::_M_invalidate): New.
1033	(unordered_set<>::erase(const_iterator, const_iterator)): Use latter.
1034	(unordered_multiset<>::begin()): Use C++11 direct initialization.
1035	(unordered_multiset<>::end()): Likewise.
1036	(unordered_multiset<>::cbegin()): Likewise.
1037	(unordered_multiset<>::cend()): Likewise.
1038	(unordered_multiset<>::begin(size_type)): Likewise.
1039	(unordered_multiset<>::end(size_type)): Likewise.
1040	(unordered_multiset<>::cbegin(size_type)): Likewise.
1041	(unordered_multiset<>::cend(size_type)): Likewise.
1042	(unordered_multiset<>::emplace<>(_Args&&...)): Likewise.
1043	(unordered_multiset<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
1044	(unordered_multiset<>::insert(const value_type&)): Likewise.
1045	(unordered_multiset<>::insert(const_iterator, const value_type&)): Likewise.
1046	(unordered_multiset<>::insert(value_type&&)): Likewise.
1047	(unordered_multiset<>::insert(const_iterator, value_type&&)): Likewise.
1048	(unordered_multiset<>::insert(node_type&&)): Likewise.
1049	(unordered_multiset<>::insert(const_iterator, node_type&&)): Likewise.
1050	(unordered_multiset<>::find(const key_type&)): Likewise.
1051	(unordered_multiset<>::equal_range(const key_type&)): Likewise.
1052	(unordered_multiset<>::_M_extract): New.
1053	(unordered_multiset<>::extract(const_iterator)): Use latter.
1054	(unordered_multiset<>::extract(const key_type&)): Likewise.
1055	(unordered_multiset<>::_M_erase): New.
1056	(unordered_multiset<>::erase(const_iterator)): Likewise.
1057	(unordered_multiset<>::erase(iterator)): Likewise.
1058	(unordered_multiset<>::_M_invalidate): New.
1059	(unordered_multiset<>::erase(const key_type&)): Use latter.
1060	(unordered_multiset<>::erase(const_iterator, const_iterator)): Likewise.
1061
1062	* include/c_global/cstddef: Add versioned namespace.
1063
10642018-10-23  Jonathan Wakely  <jwakely@redhat.com>
1065
1066	PR libstdc++/87704
1067	* include/bits/unique_ptr.h (unique_ptr::unique_ptr(nullptr_t)): Do
1068	not delegate to default constructor.
1069	(unique_ptr<T[], D>::unique_ptr(nullptr_t)): Likewise.
1070	* testsuite/20_util/unique_ptr/cons/incomplete.cc: New test.
1071
10722018-10-20  François Dumont  <fdumont@gcc.gnu.org>
1073
1074	* testsuite/util/testsuite_containers.h
1075	(forward_members_unordered<>::forward_members_unordered
1076	(const value_type&)): Add local_iterator pre and post increment checks.
1077	* config/abi/pre/gnu.ver: Add GLIBCXX_3.4.26 new symbol.
1078
10792018-10-19  Jonathan Wakely  <jwakely@redhat.com>
1080
1081	* testsuite/23_containers/array/requirements/explicit_instantiation/
1082	3.cc: Skip test when compiled with a -std=c++NN strict mode.
1083	* testsuite/23_containers/deque/requirements/explicit_instantiation/
1084	3.cc: Likewise.
1085	* testsuite/23_containers/forward_list/requirements/
1086	explicit_instantiation/3.cc: Likewise.
1087	* testsuite/23_containers/list/requirements/explicit_instantiation/
1088	3.cc: Likewise.
1089	* testsuite/23_containers/map/requirements/explicit_instantiation/
1090	3.cc: Likewise.
1091	* testsuite/23_containers/multimap/requirements/explicit_instantiation/
1092	3.cc: Likewise.
1093	* testsuite/23_containers/multiset/requirements/explicit_instantiation/
1094	3.cc: Likewise.
1095	* testsuite/23_containers/set/requirements/explicit_instantiation/
1096	3.cc: Likewise.
1097	* testsuite/23_containers/unordered_map/requirements/
1098	explicit_instantiation/3.cc: Likewise.
1099	* testsuite/23_containers/unordered_multimap/requirements/
1100	explicit_instantiation/3.cc: Likewise.
1101	* testsuite/23_containers/unordered_multiset/requirements/
1102	explicit_instantiation/3.cc: Likewise.
1103	* testsuite/23_containers/unordered_set/requirements/
1104	explicit_instantiation/3.cc: Likewise.
1105	* testsuite/23_containers/vector/ext_pointer/explicit_instantiation/
1106	3.cc: Likewise.
1107	* testsuite/23_containers/vector/requirements/explicit_instantiation/
1108	3.cc: Likewise.
1109
1110	* testsuite/23_containers/deque/48101_neg.cc: Prune additional errors
1111	printed when __STRICT_ANSI__ is defined.
1112	* testsuite/23_containers/forward_list/48101_neg.cc: Likewise.
1113	* testsuite/23_containers/list/48101_neg.cc: Likewise.
1114	* testsuite/23_containers/multiset/48101_neg.cc: Likewise.
1115	* testsuite/23_containers/set/48101_neg.cc: Likewise.
1116	* testsuite/23_containers/unordered_multiset/48101_neg.cc: Likewise.
1117	* testsuite/23_containers/unordered_set/48101_neg.cc: Likewise.
1118	* testsuite/23_containers/vector/48101_neg.cc: Likewise.
1119
1120	* testsuite/23_containers/forward_list/requirements/
1121	explicit_instantiation/5.cc [__STRICT_ANSI__]: Don't test non-standard
1122	extension.
1123	* testsuite/23_containers/list/requirements/explicit_instantiation/
1124	5.cc [__STRICT_ANSI__]: Likewise.
1125	* testsuite/23_containers/map/requirements/explicit_instantiation/5.cc
1126	[__STRICT_ANSI__]: Likewise.
1127	* testsuite/23_containers/multimap/requirements/explicit_instantiation/
1128	5.cc [__STRICT_ANSI__]: Likewise.
1129	* testsuite/23_containers/multiset/requirements/explicit_instantiation/
1130	5.cc [__STRICT_ANSI__]: Likewise.
1131	* testsuite/23_containers/set/requirements/explicit_instantiation/5.cc
1132	[__STRICT_ANSI__]: Likewise.
1133	* testsuite/23_containers/unordered_map/requirements/debug_container.cc
1134	[__STRICT_ANSI__]: Likewise.
1135	* testsuite/23_containers/unordered_map/requirements/
1136	explicit_instantiation/5.cc [__STRICT_ANSI__]: Likewise.
1137	* testsuite/23_containers/unordered_multimap/requirements/
1138	explicit_instantiation/5.cc [__STRICT_ANSI__]: Likewise.
1139	* testsuite/23_containers/unordered_multiset/requirements/
1140	explicit_instantiation/5.cc [__STRICT_ANSI__]: Likewise.
1141	* testsuite/23_containers/unordered_set/requirements/
1142	explicit_instantiation/5.cc [__STRICT_ANSI__]: Likewise.
1143
1144	* testsuite/20_util/scoped_allocator/1.cc: Use allocator with correct
1145	value type for the container.
1146	* testsuite/23_containers/forward_list/cons/14.cc: Likewise.
1147	* testsuite/23_containers/map/56613.cc: Likewise.
1148	* testsuite/23_containers/unordered_map/55043.cc: Likewise.
1149	* testsuite/23_containers/unordered_map/allocator/copy.cc: Likewise.
1150	* testsuite/23_containers/unordered_map/allocator/copy_assign.cc:
1151	Likewise.
1152	* testsuite/23_containers/unordered_map/allocator/minimal.cc:
1153	Likewise.
1154	* testsuite/23_containers/unordered_map/allocator/move.cc: Likewise.
1155	* testsuite/23_containers/unordered_map/allocator/move_assign.cc:
1156	Likewise.
1157	* testsuite/23_containers/unordered_map/allocator/noexcept.cc:
1158	Likewise.
1159	* testsuite/23_containers/unordered_map/cons/81891.cc: Likewise.
1160	* testsuite/23_containers/unordered_map/requirements/exception/
1161	basic.cc: Likewise.
1162	* testsuite/23_containers/unordered_map/requirements/exception/
1163	generation_prohibited.cc: Likewise.
1164	* testsuite/23_containers/unordered_map/requirements/exception/
1165	propagation_consistent.cc: Likewise.
1166	* testsuite/23_containers/unordered_multimap/55043.cc: Likewise.
1167	* testsuite/23_containers/unordered_multimap/allocator/copy.cc:
1168	Likewise.
1169	* testsuite/23_containers/unordered_multimap/allocator/copy_assign.cc:
1170	Likewise.
1171	* testsuite/23_containers/unordered_multimap/allocator/minimal.cc:
1172	Likewise.
1173	* testsuite/23_containers/unordered_multimap/allocator/move.cc:
1174	Likewise.
1175	* testsuite/23_containers/unordered_multimap/allocator/move_assign.cc:
1176	Likewise.
1177	* testsuite/23_containers/unordered_multimap/allocator/noexcept.cc:
1178	Likewise.
1179	* testsuite/23_containers/unordered_multimap/requirements/exception/
1180	basic.cc: Likewise.
1181	* testsuite/23_containers/unordered_multimap/requirements/exception/
1182	generation_prohibited.cc: Likewise.
1183	* testsuite/23_containers/unordered_multimap/requirements/exception/
1184	propagation_consistent.cc: Likewise.
1185	* testsuite/23_containers/unordered_multimap/requirements/
1186	explicit_instantiation/5.cc: Likewise.
1187	* testsuite/ext/malloc_allocator/sanity.cc: Likewise.
1188
1189	* ext/special_functions/airy_ai/check_nan.cc: Skip test for
1190	non-standard extension when a strict -std=c++NN dialect is used.
1191	* ext/special_functions/airy_ai/check_value.cc: Likewise.
1192	* ext/special_functions/airy_ai/compile.cc: Likewise.
1193	* ext/special_functions/airy_bi/check_nan.cc: Likewise.
1194	* ext/special_functions/airy_bi/check_value.cc: Likewise.
1195	* ext/special_functions/airy_bi/compile.cc: Likewise.
1196	* ext/special_functions/conf_hyperg/check_nan.cc: Likewise.
1197	* ext/special_functions/conf_hyperg/check_value.cc: Likewise.
1198	* ext/special_functions/conf_hyperg/compile.cc: Likewise.
1199	* ext/special_functions/hyperg/check_nan.cc: Likewise.
1200	* ext/special_functions/hyperg/check_value.cc: Likewise.
1201	* ext/special_functions/hyperg/compile.cc: Likewise.
1202
1203	* testsuite/23_containers/list/requirements/explicit_instantiation/
1204	5_c++0x.cc: Remove redundant test that is functionally identical to
1205	the 5.cc test.
1206	* testsuite/23_containers/map/requirements/explicit_instantiation/
1207	5_c++0x.cc: Likewise.
1208	* testsuite/23_containers/multimap/requirements/explicit_instantiation/
1209	5_c++0x.cc: Likewise.
1210	* testsuite/23_containers/multiset/requirements/explicit_instantiation/
1211	5_c++0x.cc: Likewise.
1212	* testsuite/23_containers/set/requirements/explicit_instantiation/
1213	5_c++0x.cc: Likewise.
1214
1215	* include/bits/regex_executor.tcc (_Backref_matcher::_M_apply): Use
1216	_GLIBCXX_STD_A to refer to normal mode algorithms.
1217	* testsuite/28_regex/headers/regex/parallel_mode.cc: New test.
1218	* testsuite/28_regex/headers/regex/std_c++0x_neg.cc: Remove empty
1219	whitespace.
1220
1221	* include/debug/map.h (map::erase(iterator)): Add abi-tag so that
1222	C++11 version mangles differently from incompatible C++98 version.
1223	* include/debug/multimap.h (multimap::erase(iterator)): Likewise.
1224	* include/debug/multiset.h (multiset::erase(iterator))
1225	(multiset::erase(const_iterator, const_iterator)): Likewise.
1226	* include/debug/set.h (set::erase(iterator))
1227	(multiset::erase(const_iterator, const_iterator)): Likewise.
1228
12292018-10-18  Jonathan Wakely  <jwakely@redhat.com>
1230
1231	* testsuite/20_util/duration/cons/2.cc: Add -ffloat-store to fix
1232	failure when compiled without optimisation.
1233	* testsuite/ext/profile/mutex_extensions_neg.cc: Prune additional
1234	errors caused by C++17 std::pmr alias templates.
1235
1236	PR libstdc++/87642
1237	* config/locale/gnu/monetary_members.cc
1238	(moneypunct<char, true>::_M_initialize_moneypunct): Use
1239	__narrow_multibyte_chars to convert multibyte thousands separators
1240	to a single char.
1241	* config/locale/gnu/numeric_members.cc
1242	(numpunct<char>::_M_initialize_numpunct): Likewise.
1243	(__narrow_multibyte_chars): New function.
1244
1245	PR libstdc++/87641
1246	* include/bits/valarray_array.h (__valarray_sum): Use first element
1247	to initialize accumulator instead of value-initializing it.
1248	(__valarray_product<_Tp>): Move to ...
1249	* src/c++98/valarray.cc (__valarray_product<_Tp>): Here. Use first
1250	element to initialize accumulator.
1251	(__valarray_product(const valarray<size_t>&)): Remove const_cast made
1252	unnecessary by LWG 389.
1253	* testsuite/26_numerics/valarray/87641.cc: New test.
1254
12552018-10-18  François Dumont  <fdumont@gcc.gnu.org>
1256
1257	Partial revert.
1258	2018-10-08  François Dumont  <fdumont@gcc.gnu.org>
1259
1260	* include/debug/list (list<>::cbegin()): Use C++11 direct
1261	initialization.
1262	(list<>::cend()): Likewise.
1263	(list<>::erase(const_iterator, const_iterator)): Ensure consistent
1264	iterator comparisons.
1265	(list<>::splice(const_iterator, list&&, const_iterator,
1266	const_iterator)): Likewise.
1267
1268	Partial revert.
1269	2018-10-15  François Dumont  <fdumont@gcc.gnu.org>
1270
1271	* include/debug/vector (vector<>::cbegin()): Use C++11 direct
1272	initialization.
1273	(vector<>::cend()): Likewise.
1274	(vector<>::insert(const_iterator, const _Tp&)): Use consistent
1275	iterator comparison.
1276	(vector<>::erase(const_iterator)): Likewise.
1277	(vector<>::erase(const_iterator, const_iterator)): Likewise.
1278
12792018-10-17  Ville Voutilainen  <ville.voutilainen@gmail.com>
1280
1281	PR libstdc++/87619
1282	* include/std/variant (__select_index): Fix an off-by-one.
1283	* testsuite/20_util/variant/87619.cc: New.
1284
12852018-10-16  Jonathan Wakely  <jwakely@redhat.com>
1286
1287	* include/bits/random.h (random_device) [!_GLIBCXX_USE_DEV_RANDOM]:
1288	Fix default constructor to call correct function.
1289
1290	* testsuite/experimental/net/internet/address/v4/creation.cc: Do not
1291	declare ip in global namespace, to avoid collision with struct ip
1292	defined in <netinet/ip.h>.
1293
1294	* include/experimental/bits/net.h: Move versioned namespace macros
1295	to correct location.
1296	* include/experimental/buffer: Likewise.
1297	* include/experimental/executor: Likewise.
1298	* include/experimental/internet: Likewise.
1299	* include/experimental/io_context: Likewise.
1300	* include/experimental/netfwd: Likewise.
1301	* include/experimental/socket: Likewise.
1302	* include/experimental/timer: Likewise.
1303
1304	* config.h.in: Regenerate.
1305	* configure: Regenerate.
1306	* configure.ac: Check for headers used by Networking TS.
1307	* include/experimental/executor: Include <condition_variable>
1308	instead of <mutex>.
1309	* include/experimental/internet: Use autoconf macros for available
1310	headers.  Include <sys/socket.h> for.  Remove <cstring> and use
1311	__builtin_memcpy and __builtin_strchr.
1312	(resolver_errc) [!_GLIBCXX_HAVE_NETDB_H]: Do not define.
1313	(address_v4::to_string, address_v6::to_string)
1314	[!_GLIBCXX_HAVE_ARPA_INET_H]: Likewise.
1315	(basic_resolver_results) [!_GLIBCXX_HAVE_NETDB_H]: Make private
1316	constructors report errors.
1317	[!_GLIBCXX_HAVE_NETINET_TCP_H] (tcp::no_delay): Do not define.
1318	* include/experimental/io_context: Likewise.
1319	* include/experimental/socket: Likewise.
1320	[!_GLIBCXX_HAVE_SYS_SOCKET_H, !_GLIBCXX_HAVE_POLL_H] (socket_base): Do
1321	not define nested types when relevant header not available.
1322	(__socket_impl::native_non_blocking) [!_GLIBCXX_HAVE_FCNTL_H]: Report
1323	an error.
1324	(__basic_socket_impl::open, __basic_socket_impl::local_endpoint)
1325	(__basic_socket_impl::bind) [!_GLIBCXX_HAVE_SYS_SOCKET_H]: Likewise.
1326	(__basic_socket_impl::io_control) [!_GLIBCXX_HAVE_SYS_IOCTL_H]:
1327	Likewise.
1328	(basic_socket::at_mark, basic_socket::shutdown)
1329	(basic_socket::remote_endpoint, basic_socket::connect)
1330	(basic_socket::async_connect) [!_GLIBCXX_HAVE_SYS_SOCKET_H]: Likewise.
1331	(basic_socket::available) [_GLIBCXX_HAVE_SYS_IOCTL_H]: Check macro
1332	for <sys/ioctl.h> availability.
1333	(basic_socket::wait) [!_GLIBCXX_HAVE_POLL_H]: Likewise.
1334	(basic_datagram_socket::receive, basic_datagram_socket::async_receive)
1335	(basic_datagram_socket::receive_from)
1336	(basic_datagram_socket::async_receive_from)
1337	(basic_datagram_socket::send, basic_datagram_socket::async_send)
1338	(basic_datagram_socket::send_to, basic_datagram_socket::async_send_to)
1339	[!_GLIBCXX_HAVE_SYS_SOCKET_H]: Likewise.
1340	(basic_stream_socket::receive, basic_stream_socket::async_receive)
1341	(basic_stream_socket::send, basic_stream_socket::async_send)
1342	[!_GLIBCXX_HAVE_SYS_SOCKET_H]: Likewise.
1343	(basic_socket_acceptor::listen, basic_socket_acceptor::accept)
1344	(basic_socket_acceptor::async_accept) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
1345	Likewise.
1346	(basic_socket_acceptor::wait) [!_GLIBCXX_HAVE_POLL_H]: Likewise.
1347
1348	* testsuite/experimental/net/headers.cc: Remove dg-options.
1349	* testsuite/experimental/net/buffer/arithmetic.cc: Replace dg-options
1350	with dg-do using effective target.
1351	* testsuite/experimental/net/buffer/const.cc: Likewise.
1352	* testsuite/experimental/net/buffer/creation.cc: Likewise.
1353	* testsuite/experimental/net/buffer/mutable.cc: Likewise.
1354	* testsuite/experimental/net/buffer/size.cc: Likewise.
1355	* testsuite/experimental/net/buffer/traits.cc: Likewise.
1356	* testsuite/experimental/net/execution_context/use_service.cc:
1357	Likewise.
1358	* testsuite/experimental/net/internet/address/v4/comparisons.cc:
1359	Likewise.
1360	* testsuite/experimental/net/internet/address/v4/cons.cc: Likewise.
1361	* testsuite/experimental/net/internet/address/v4/creation.cc:
1362	Likewise.
1363	* testsuite/experimental/net/internet/address/v4/members.cc: Likewise.
1364	* testsuite/experimental/net/internet/resolver/base.cc: Likewise.
1365	* testsuite/experimental/net/internet/resolver/ops/lookup.cc:
1366	Likewise.
1367	* testsuite/experimental/net/internet/resolver/ops/reverse.cc:
1368	Likewise.
1369	* testsuite/experimental/net/timer/waitable/cons.cc: Likewise.
1370	* testsuite/experimental/net/timer/waitable/dest.cc: Likewise.
1371	* testsuite/experimental/net/timer/waitable/ops.cc: Likewise.
1372
1373	* include/experimental/socket (basic_socket::at_mark): Add missing
1374	return.
1375
1376	* acinclude.m4 (GLIBCXX_CHECK_RANDOM_TR1): Replace with ...
1377	(GLIBCXX_CHECK_DEV_RANDOM): New macro with more descriptive name.
1378	Define _GLIBCXX_USE_DEV_RANDOM as well as _GLIBCXX_USE_RANDOM_TR1.
1379	* config.h.in: Regenerate.
1380	* configure: Regenerate.
1381	* configure.ac: Use GLIBCXX_CHECK_DEV_RANDOM instead of
1382	GLIBCXX_CHECK_RANDOM_TR1.
1383	crossconfig.m4: Likewise.
1384	* include/bits/random.h (random_device): Use _GLIBCXX_USE_DEV_RANDOM
1385	instead of _GLIBCXX_USE_RANDOM_TR1.
1386	* testsuite/26_numerics/random/random_device/cons/token.cc: Likewise.
1387
13882018-10-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1389
1390	* testsuite/lib/dg-options.exp (add_options_for_net_ts): New proc.
1391	* testsuite/experimental/net/internet/address/v4/comparisons.cc:
1392	Add dg-add-options net_ts.
1393	* testsuite/experimental/net/internet/address/v4/cons.cc: Likewise.
1394	* testsuite/experimental/net/internet/address/v4/creation.cc: Likewise.
1395	* testsuite/experimental/net/internet/address/v4/members.cc: Likewise.
1396	* testsuite/experimental/net/internet/resolver/base.cc: Likewise.
1397	* testsuite/experimental/net/internet/resolver/ops/lookup.cc: Likewise.
1398	* testsuite/experimental/net/internet/resolver/ops/reverse.cc: Likewise.
1399
14002018-10-16  Jonathan Wakely  <jwakely@redhat.com>
1401
1402	* testsuite/20_util/duration/literals/range_neg.cc: Adjust pruned
1403	diagnostic to account for quotes around 'constexpr'.
1404	* testsuite/23_containers/deque/capacity/max_size.cc: Define static
1405	variable.
1406	* testsuite/23_containers/vector/capacity/max_size.cc: Likewise.
1407
1408	PR libstdc++/87618
1409	* config/abi/pre/gnu.ver: Fix typos in patterns for basic_stringbuf.
1410	* testsuite/27_io/basic_stringbuf/cons/char/default.cc: Disable
1411	optimisation to check constructor definition can be linked to.
1412	* testsuite/27_io/basic_stringbuf/cons/wchar_t/default.cc: Likewise.
1413
14142018-10-15  Jonathan Wakely  <jwakely@redhat.com>
1415
1416	* testsuite/22_locale/numpunct/members/char/3.cc: Adjust test to
1417	account for change to glibc it_IT localedata (glibc bz#10797).
1418
1419	PR libstdc++/87587
1420	* src/c++11/cxx11-shim_facets.cc: Suppress -Wabi warnings.
1421
14222018-10-15  François Dumont  <fdumont@gcc.gnu.org>
1423
1424	* include/debug/vector (vector<>::cbegin()): Use C++11 direct
1425	initialization.
1426	(vector<>::cend()): Likewise.
1427	(vector<>::emplace(const_iterator, _Args&&...)): Likewise and use
1428	consistent iterator comparison.
1429	(vector<>::insert(const_iterator, size_type, const _Tp&)): Likewise.
1430	(vector<>::insert(const_iterator, _InputIterator, _InputIterator)):
1431	Likewise.
1432	(vector<>::erase(const_iterator)): Likewise.
1433	(vector<>::erase(const_iterator, const_iterator)): Likewise.
1434
14352018-10-12  Jonathan Wakely  <jwakely@redhat.com>
1436
1437	Initial commit of Networking TS implementation.
1438	* include/Makefile.am: Add new headers.
1439	* include/Makefile.in: Regenerate.
1440	* include/experimental/bits/net.h: New header for common
1441	implementation details of Networking TS.
1442	* include/experimental/buffer: New header.
1443	* include/experimental/executor: New header.
1444	* include/experimental/internet: New header.
1445	* include/experimental/io_context: New header.
1446	* include/experimental/net: New header.
1447	* include/experimental/netfwd: New header.
1448	* include/experimental/socket: New header.
1449	* include/experimental/timer: New header.
1450	* testsuite/experimental/net/buffer/arithmetic.cc: New test.
1451	* testsuite/experimental/net/buffer/const.cc: New test.
1452	* testsuite/experimental/net/buffer/creation.cc: New test.
1453	* testsuite/experimental/net/buffer/mutable.cc: New test.
1454	* testsuite/experimental/net/buffer/size.cc: New test.
1455	* testsuite/experimental/net/buffer/traits.cc: New test.
1456	* testsuite/experimental/net/execution_context/use_service.cc: New
1457	test.
1458	* testsuite/experimental/net/headers.cc: New test.
1459	* testsuite/experimental/net/internet/address/v4/comparisons.cc: New
1460	test.
1461	* testsuite/experimental/net/internet/address/v4/cons.cc: New test.
1462	* testsuite/experimental/net/internet/address/v4/creation.cc: New
1463	test.
1464	* testsuite/experimental/net/internet/address/v4/members.cc: New
1465	test.
1466	* testsuite/experimental/net/internet/resolver/base.cc: New test.
1467	* testsuite/experimental/net/internet/resolver/ops/lookup.cc: New
1468	test.
1469	* testsuite/experimental/net/internet/resolver/ops/reverse.cc: New
1470	test.
1471	* testsuite/experimental/net/timer/waitable/cons.cc: New test.
1472	* testsuite/experimental/net/timer/waitable/dest.cc: New test.
1473	* testsuite/experimental/net/timer/waitable/ops.cc: New test.
1474
1475	PR libstdc++/77691
1476	* include/experimental/memory_resource (__resource_adaptor_imp): Do
1477	not allocate sizes smaller than alignment when relying on guaranteed
1478	alignment.
1479	* testsuite/experimental/memory_resource/new_delete_resource.cc:
1480	Adjust expected number of bytes allocated for alignof(max_align_t).
1481
14822018-10-11  François Dumont  <fdumont@gcc.gnu.org>
1483
1484	* include/debug/forward_list
1485	(forward_list<>::before_begin()): Use C++11 direct initialization.
1486	(forward_list<>::begin()): Likewise.
1487	(forward_list<>::end()): Likewise.
1488	(forward_list<>::cbefore_begin()): Likewise.
1489	(forward_list<>::cbegin()): Likewise.
1490	(forward_list<>::cend()): Likewise.
1491	(forward_list<>::emplace_after<>(const_iterator, _Args&&...)): Likewise.
1492	(forward_list<>::insert_after(const_iterator, const _Tp&)): Likewise.
1493	(forward_list<>::insert_after(const_iterator, _Tp&&)): Likewise.
1494	(forward_list<>::insert_after(const_iterator, size_type, const _Tp&)):
1495	Likewise.
1496	(forward_list<>::insert_after(const_iterator, initializer_list<>)):
1497	Likewise.
1498	(forward_list<>::erase_after(const_iterator)): Likewise.
1499	(forward_list<>::erase_after(const_iterator, const_iterator)): Likewise
1500	and ensure consistent iterator comparison.
1501
1502	* include/bits/forward_list.h
1503	(_Fwd_list_iterator<>::operator==): Replace member function with inline
1504	friend.
1505	(_Fwd_list_iterator<>::operator!=): Likewise.
1506	(_Fwd_list_const_iterator<>::operator==): Likewise.
1507	(_Fwd_list_const_iterator<>::operator!=): Likewise.
1508	(operator==(const _Fwd_list_iterator<>&,
1509	const _Fwd_list_const_iterator<>&)): Remove.
1510	(operator!=(const _Fwd_list_iterator<>&,
1511	const _Fwd_list_const_iterator<>&)): Remove.
1512	(forward_list<>::_Node): Take typedef from base type.
1513	(forward_list<>::iterator): Likewise.
1514	(forward_list<>::const_iterator): Likewise.
1515
15162018-10-11  Jonathan Wakely  <jwakely@redhat.com>
1517
1518	PR libstdc++/80538
1519	* src/c++11/thread.cc (this_thread::__sleep_for)
1520	[_GLIBCXX_HAVE_SLEEP]: Only call sleep for non-zero values.
1521	Loop while sleep call is interrupted and until steady_clock
1522	shows requested duration has elapsed.
1523	(!_GLIBCXX_HAVE_USLEEP]: Use the _GLIBCXX_HAVE_SLEEP code path, but
1524	avoiding the usleep call.
1525	* testsuite/30_threads/this_thread/60421.cc: Test repeated
1526	signal interruptions.
1527
1528	* include/bits/allocator.h
1529	(operator==(const allocator<_Tp>&, const allocator<_Tp>))
1530	(operator!=(const allocator<_Tp>&, const allocator<_Tp>)): Replace
1531	with inline friends.
1532	* include/ext/debug_allocator.h (operator==, operator!=): Replace
1533	with inline friend functions that compare to rebound allocators.
1534	* include/ext/malloc_allocator.h (operator==, operator!=): Likewise.
1535	* include/ext/new_allocator.h (operator==, operator!=): Likewise.
1536	* testsuite/ext/debug_allocator/eq.cc: New test.
1537	* testsuite/ext/ext_pointer/alloc_eq.cc: New test.
1538	* testsuite/ext/malloc_allocator/eq.cc: New test.
1539	* testsuite/ext/new_allocator/eq.cc: New test.
1540
15412018-10-10  Jonathan Wakely  <jwakely@redhat.com>
1542
1543	PR libstdc++/87544
1544	* include/bits/stl_vector.h (vector::_S_max_size): Limit size to
1545	PTRDIFF_MAX / sizeof(value_type).
1546	* include/ext/malloc_allocator.h (malloc_allocator::max_size):
1547	Likewise.
1548	* include/ext/new_allocator.h (new_allocator::max_size): Likewise.
1549	* testsuite/23_containers/vector/allocator/minimal.cc: Adjust
1550	expected value for max_size().
1551	* testsuite/23_containers/vector/capacity/87544.cc: New test.
1552
15532018-10-09  François Dumont  <fdumont@gcc.gnu.org>
1554
1555	* include/bits/stl_list.h
1556	(_List_operator<>::operator==): Replace member function with inline
1557	friend.
1558	(_List_operator<>::operator!=): Likewise.
1559	(_List_const_operator<>::operator==): Likewise.
1560	(_List_const_operator<>::operator!=): Likewise.
1561	(operator==(const _List_iterator<>&, const _List_const_iterator<>&)):
1562	Remove.
1563	(operator!=(const _List_iterator<>&, const _List_const_iterator<>&)):
1564	Remove.
1565
15662018-10-09  Jonathan Wakely  <jwakely@redhat.com>
1567
1568	* include/bits/stringfwd.h (string, wstring, u16string, u32string):
1569	Define typedefs outside of __cxx11 inline namespace.
1570	* python/libstdcxx/v6/printers.py (register_type_printers): Also
1571	register printers for typedefs in new location.
1572
15732018-10-08  Jonathan Wakely  <jwakely@redhat.com>
1574
1575	PR libstdc++/87538
1576	* testsuite/experimental/functional/87538.cc: New test.
1577
1578	PR libstdc++/87538
1579	* include/std/functional (_Not_fn::operator()): Check value of
1580	__is_nothrow_invocable as well.
1581	* testsuite/20_util/function_objects/not_fn/87538.cc: New test.
1582
15832018-10-08  François Dumont  <fdumont@gcc.gnu.org>
1584
1585	* include/debug/list (list<>::cbegin()): Use C++11 direct
1586	initialization.
1587	(list<>::cend()): Likewise.
1588	(list<>::emplace<>(const_iterator, _Args&&...)): Likewise.
1589	(list<>::insert(const_iterator, initializer_list<>)): Likewise.
1590	(list<>::insert(const_iterator, size_type, const _Tp&)): Likewise.
1591	(list<>::erase(const_iterator, const_iterator)): Ensure consistent
1592	iterator comparisons.
1593	(list<>::splice(const_iterator, list&&, const_iterator,
1594	const_iterator)): Likewise.
1595
15962018-10-05  François Dumont  <fdumont@gcc.gnu.org>
1597
1598	* include/bits/stl_tree.h
1599	(_Rb_tree_iterator<>::operator==): Make inline friend.
1600	(_Rb_tree_iterator<>::operator!=): Likewise.
1601	(_Rb_tree_const_iterator<>::operator==): Likewise.
1602	(_Rb_tree_const_iterator<>::operator!=): Likewise.
1603	(operator==(const _Rb_tree_iterator<>&,
1604	const _Rb_tree_const_iterator&)): Remove.
1605	(operator!=(const _Rb_tree_iterator<>&,
1606	const _Rb_tree_const_iterator&)): Remove.
1607	(operator==(const _Rb_tree<>&, const _Rb_tree<>&)): Make inline friend.
1608	(operator<(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise.
1609	(operator!=(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise and
1610	deprecate.
1611	(operator>(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise.
1612	(operator<=(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise.
1613	(operator>=(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise.
1614	* include/debug/map.h (map<>::erase(const_iterator, const_iterator)):
1615	Compare __victim with _Base::cend().
1616	* include/debug/multimap.h
1617	(multimap<>::erase(const_iterator, const_iterator)): Likewise.
1618	* include/debug/set.h (set<>::erase(const_iterator, const_iterator)):
1619	Compare __victim with _Base::cend().
1620	* include/debug/multiset.h
1621	(multiset<>::erase(const_iterator, const_iterator)): Likewise.
1622
16232018-10-03  Jonathan Wakely  <jwakely@redhat.com>
1624
1625	PR libstdc++/59439
1626	* src/c++98/locale.cc (locale::locale(const locale&)): Bypass
1627	reference count updates for the classic locale.
1628	(locale::~locale()): Likewise.
1629	(locale::operator=(const locale&)): Likewise.
1630	* src/c++98/locale_init.cc (locale::locale()): Likewise.
1631	(locale::global(const locale&)): Likewise.
1632
16332018-10-03  François Dumont  <fdumont@gcc.gnu.org>
1634
1635	* include/debug/map.h
1636	(map<>::emplace<>(_Args&&...)): Use C++11 direct initialization.
1637	(map<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
1638	(map<>::insert(value_type&&)): Likewise.
1639	(map<>::insert<>(_Pair&&)): Likewise.
1640	(map<>::insert<>(const_iterator, _Pair&&)): Likewise.
1641	(map<>::try_emplace): Likewise.
1642	(map<>::insert_or_assign): Likewise.
1643	(map<>::insert(node_type&&)): Likewise.
1644	(map<>::insert(const_iterator, node_type&&)): Likewise.
1645	(map<>::erase(const_iterator)): Likewise.
1646	(map<>::erase(const_iterator, const_iterator)): Likewise.
1647	* include/debug/multimap.h
1648	(multimap<>::emplace<>(_Args&&...)): Use C++11 direct initialization.
1649	(multimap<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
1650	(multimap<>::insert<>(_Pair&&)): Likewise.
1651	(multimap<>::insert<>(const_iterator, _Pair&&)): Likewise.
1652	(multimap<>::insert(node_type&&)): Likewise.
1653	(multimap<>::insert(const_iterator, node_type&&)): Likewise.
1654	(multimap<>::erase(const_iterator)): Likewise.
1655	(multimap<>::erase(const_iterator, const_iterator)): Likewise.
1656	* include/debug/set.h
1657	(set<>::emplace<>(_Args&&...)): Use C++11 direct initialization.
1658	(set<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
1659	(set<>::insert(value_type&&)): Likewise.
1660	(set<>::insert<>(const_iterator, value_type&&)): Likewise.
1661	(set<>::insert(const_iterator, node_type&&)): Likewise.
1662	(set<>::erase(const_iterator)): Likewise.
1663	(set<>::erase(const_iterator, const_iterator)): Likewise.
1664	* include/debug/multiset.h
1665	(multiset<>::emplace<>(_Args&&...)): Use C++11 direct initialization.
1666	(multiset<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
1667	(multiset<>::insert<>(value_type&&)): Likewise.
1668	(multiset<>::insert<>(const_iterator, value_type&&)): Likewise.
1669	(multiset<>::insert(node_type&&)): Likewise.
1670	(multiset<>::insert(const_iterator, node_type&&)): Likewise.
1671	(multiset<>::erase(const_iterator)): Likewise.
1672	(multiset<>::erase(const_iterator, const_iterator)): Likewise.
1673
16742018-10-02  Marc Glisse  <marc.glisse@inria.fr>
1675
1676	PR libstdc++/87258
1677	* include/bits/stl_bvector.h (vector::begin(), vector::cbegin()):
1678	Rebuild _M_start with an explicit 0 offset.
1679
16802018-10-02  Jonathan Wakely  <jwakely@redhat.com>
1681
1682	* include/std/variant (__gen_vtable_impl::__visit_invoke): Call __get
1683	directly instead of get, as caller ensures correct index is used.
1684	(holds_alternative, get, get_if): Remove redundant inline specifiers.
1685	(_VARIANT_RELATION_FUNCTION_TEMPLATE): Likewise.
1686
16872018-10-02  Joseph Myers  <joseph@codesourcery.com>
1688
1689	* testsuite/lib/libstdc++.exp (libstdc++_init): Use
1690	-fno-show-column in default cxxflags.
1691
16922018-10-01  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1693
1694	* config/os/uclibc/os_defines.h (__NO_STRING_INLINES): Delete.
1695
16962018-10-01  Gerald Pfeifer  <gerald@pfeifer.com>
1697
1698	* doc/xml/manual/allocator.xml: Adjust link to "Reconsidering
1699	Custom Memory Allocation".
1700
17012018-10-01  Jonathan Wakely  <jwakely@redhat.com>
1702
1703	* doc/html/*: Regenerate.
1704
17052018-09-30  Gerald Pfeifer  <gerald@pfeifer.com>
1706
1707	* doc/xml/manual/messages.xml: Switch link to www.oracle.com
1708	to https.
1709
17102018-09-30  Gerald Pfeifer  <gerald@pfeifer.com>
1711
1712	* doc/xml/manual/policy_data_structures_biblio.xml: Update
1713	link to Microsoft Component Model Object Technologies.
1714
17152018-09-29  Gerald Pfeifer  <gerald@pfeifer.com>
1716
1717	* doc/xml/gnu/fdl-1.3.xml: The Free Software Foundation web
1718	site now uses https. Also omit the unnecessary trailing slash.
1719	* doc/xml/gnu/gpl-3.0.xml: Ditto.
1720
17212018-09-28  François Dumont  <fdumont@gcc.gnu.org>
1722
1723	* include/debug/functions.h
1724	(__foreign_iterator_aux3(const _Safe_iterator<>&, const _InputeIter&,
1725	const _InputIter&, __true_type)): Use empty() rather than begin() ==
1726	end().
1727
17282018-09-25  Mike Crowe  <mac@mcrowe.com>
1729
1730	* include/std/condition_variable (condition_variable::wait_for): Use
1731	steady clock in overload that uses a predicate.
1732
17332018-09-25  Jonathan Wakely  <jwakely@redhat.com>
1734
1735	PR libstdc++/87431
1736	* include/std/variant (_Variant_storage<true, _Types...>::_M_valid):
1737	Avoid runtime test when all alternatives are scalars and so cannot
1738	throw during initialization.
1739
17402018-09-25  Gerald Pfeifer  <gerald@pfeifer.com>
1741
1742	* doc/xml/manual/codecvt.xml: Move link to "UTF-8 and Unicode FAQ"
1743	to https.
1744
17452018-09-24  Gerald Pfeifer  <gerald@pfeifer.com>
1746
1747	* doc/xml/manual/policy_data_structures_biblio.xml: Update link
1748	to "Priority Queues and the STL".
1749
17502018-09-23  Gerald Pfeifer  <gerald@pfeifer.com>
1751
1752	* doc/xml/manual/using_exceptions.xml: Move boost.orgs link to
1753	https.
1754
17552018-09-21  François Dumont  <fdumont@gcc.gnu.org>
1756
1757	PR libstdc++/87135
1758	* src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
1759	Use __builtin_floor to compute _M_next_resize.
1760	* testsuite/23_containers/unordered_set/hash_policy/71181.cc: Adapt.
1761	* testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc:
1762	Adapt.
1763
17642018-09-21  Jonathan Wakely  <jwakely@redhat.com>
1765
1766	* testsuite/26_numerics/headers/cmath/hypot-long-double.cc: Remove.
1767	* testsuite/26_numerics/headers/cmath/hypot.cc: Restore test for
1768	long double unconditionally, but use lower tolerance when
1769	sizeof(long double) == sizeof(double).
1770
17712018-09-20  Christophe Lyon  <christophe.lyon@linaro.org>
1772
1773	* testsuite/26_numerics/headers/cmath/hypot-long-double.cc: Skip
1774	on arm*.
1775
17762018-09-19  Jonathan Wakely  <jwakely@redhat.com>
1777
1778	* include/bits/regex_automaton.tcc (_StateSeq<_TraitsT>::_M_clone()):
1779	Remove __glibcxx_assert statements and use map::find instead of
1780	map::operator[].
1781
17822018-09-18  François Dumont  <fdumont@gcc.gnu.org>
1783
1784	PR libstdc++/87135
1785	* src/c++11/hashtable_c++0x.cc:
1786	(_Prime_rehash_policy::_M_next_bkt): Return a prime no smaller than
1787	requested size, but not necessarily greater.
1788	(_Prime_rehash_policy::_M_need_rehash): Rehash only if target size is
1789	strictly greater than next resize threshold.
1790	* testsuite/23_containers/unordered_map/modifiers/reserve.cc: Adapt test
1791	to validate that there is no rehash as long as number of insertion is
1792	lower or equal to the reserved number of elements.
1793
17942018-09-18  Jonathan Wakely  <jwakely@redhat.com>
1795
1796	* include/bits/unique_ptr.h (__uniq_ptr_impl): Remove static assertion
1797	checking invocable condition.
1798	(unique_ptr::~unique_ptr, unique_ptr::reset): Restore static assertion
1799	here, where types must be complete. Pass pointer to deleter as an
1800	rvalue.
1801	* testsuite/20_util/unique_ptr/requirements/incomplete.cc: New test.
1802
18032018-09-13  Jonathan Wakely  <jwakely@redhat.com>
1804
1805	* include/std/variant (variant) [__clang__]: Limit workaround to
1806	Clang 7 and older.
1807
18082018-09-11  Jonathan Wakely  <jwakely@redhat.com>
1809
1810	PR libstdc++/87278
1811	* include/bits/shared_ptr.h (make_shared): Use remove_cv instead of
1812	remove_const.
1813	* testsuite/20_util/shared_ptr/creation/87278.cc: New test.
1814
1815	Implement LWG 2905 changes to constrain unique_ptr constructors
1816	* include/bits/unique_ptr.h (__uniq_ptr_impl): Add assertions to
1817	check deleter type.
1818	(unique_ptr::unique_ptr(pointer, const deleter_type&)): Add copy
1819	constructible constraint.
1820	(unique_ptr::unique_ptr(pointer, deleter_type&&)): Disable for
1821	deleters of reference type and add move constructible constraint.
1822	(unique_ptr::unique_ptr(pointer, remove_reference_t<deleter_type>&&)):
1823	Disable for deleters of non-reference type. Define as deleted.
1824	(unique_ptr<T[], D>): Likewise.
1825	* testsuite/20_util/unique_ptr/assign/48635_neg.cc: Replace dg-error
1826	directives with unstable line numbers with dg-prune-output.
1827	* testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
1828	* testsuite/20_util/unique_ptr/cons/lwg2905.cc: New test.
1829	* testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
1830	Make deleter types invocable.
1831
18322018-09-05  Jonathan Wakely  <jwakely@redhat.com>
1833
1834	* libsupc++/cxxabi.h (__cxa_demangle): Clarify doxygen comment.
1835
18362018-09-03  Jonathan Wakely  <jwakely@redhat.com>
1837
1838	PR libstdc++/78179
1839	* testsuite/26_numerics/headers/cmath/hypot-long-double.cc: New test
1840	that runs the long double part of hypot.cc.
1841	* testsuite/26_numerics/headers/cmath/hypot.cc: Disable long double
1842	tests unless TEST_HYPOT_LONG_DOUBLE is defined.
1843
1844	* include/bits/stl_vector.h (vector::_Temporary_value::_M_ptr):
1845	Return raw pointer not allocator's pointer type.
1846	(vector::_Temporary_value::_M_val): Use _M_ptr.
1847
1848	PR libstdc++/87194
1849	* include/bits/stl_map.h
1850	(map::map(initializer_list<value_type>, const Compare&, const Alloc&))
1851	(map::map(initializer_list<value_type>, const Alloc&))
1852	(map::map(InputIterator, InputIterator, const Alloc&))
1853	(map::map(InputIterator, InputIterator))
1854	(map::map(InputIterator, InputIterator, const Compare&, const Alloc&))
1855	(map::insert(InputIterator, InputIterator)):
1856	Call _M_insert_range_unique instead of _M_insert_unique.
1857	* include/bits/stl_multimap.h
1858	(multimap::multimap(initializer_list<value_type>, const C&, const A&))
1859	(multimap::multimap(initializer_list<value_type>, const A&))
1860	(multimap::multimap(InputIterator, InputIterator, const A&))
1861	(multimap::multimap(InputIterator, InputIterator))
1862	(multimap::multimap(InputIterator, InputIterator, const C&, const A&))
1863	(multimap::insert(InputIterator, InputIterator)): Call
1864	_M_insert_range_equal instead of _M_insert_equal.
1865	* include/bits/stl_multiset.h
1866	(multiset::multiset(InputIterator, InputIterator))
1867	(multiset::multiset(InputIterator, InputIterator, const C&, const A&))
1868	(multiset::multiset(initializer_list<value_type>, const C&, const A&))
1869	(multiset::multiset(initializer_list<value_type>, const A&))
1870	(multiset::multiset(InputIterator, InputIterator, const A&))
1871	(multiset::insert(InputIterator, InputIterator)): Call
1872	_M_insert_range_equal instead of _M_insert_equal.
1873	* include/bits/stl_set.h
1874	(set::set(InputIterator, InputIterator))
1875	(set::set(InputIterator, InputIterator, const Compare&, const Alloc&))
1876	(set::set(initializer_list<value_type>, const Compare&, const Alloc&))
1877	(set::set(initializer_list<value_type>, const Alloc&))
1878	(set::set(InputIterator, InputIterator, const Alloc&))
1879	(set::insert(InputIterator, InputIterator)):
1880	Call _M_insert_range_unique instead of _M_insert_unique.
1881	* include/bits/stl_tree.h
1882	[__cplusplus >= 201103L] (_Rb_tree::__same_value_type): New alias
1883	template for SFINAE constraints.
1884	[__cplusplus >= 201103L] (_Rb_tree::_M_insert_range_unique): Pair of
1885	constrained overloads that either insert or emplace, depending on
1886	iterator's value_type.
1887	[__cplusplus >= 201103L] (_Rb_tree::_M_insert_range_equal): Likewise.
1888	[__cplusplus < 201103L] (_Rb_tree::_M_insert_range_unique)
1889	(_Rb_tree::_M_insert_range_equal): New functions replacing range
1890	versions of _M_insert_unique and _M_insert_equal.
1891	(_Rb_tree::_M_insert_unique(_InputIterator, _InputIterator))
1892	(_Rb_tree::_M_insert_equal(_InputIterator, _InputIterator)): Remove.
1893	* testsuite/23_containers/map/modifiers/insert/87194.cc: New test.
1894	* testsuite/23_containers/multimap/modifiers/insert/87194.cc: New test.
1895	* testsuite/23_containers/multiset/modifiers/insert/87194.cc: New test.
1896	* testsuite/23_containers/set/modifiers/insert/87194.cc: New test.
1897
1898	PR libstdc++/78595
1899	* include/bits/stl_map.h (map::insert(_Pair&&))
1900	(map::insert(const_iterator, _Pair&&)): Do emplace instead of insert.
1901	* include/bits/stl_multimap.h (multimap::insert(_Pair&&))
1902	(multimap::insert(const_iterator, _Pair&&)): Likewise.
1903	* include/bits/unordered_map.h (unordered_map::insert(_Pair&&))
1904	(unordered_map::insert(const_iterator, _Pair&&))
1905	(unordered_multimap::insert(_Pair&&))
1906	(unordered_multimap::insert(const_iterator, _Pair&&)): Likewise.
1907	* testsuite/23_containers/map/modifiers/insert/78595.cc: New test.
1908	* testsuite/23_containers/multimap/modifiers/insert/78595.cc: New test.
1909	* testsuite/23_containers/unordered_map/modifiers/78595.cc: New test.
1910	* testsuite/23_containers/unordered_multimap/modifiers/78595.cc: New
1911	test.
1912
19132018-09-02  François Dumont  <fdumont@gcc.gnu.org>
1914
1915	* include/debug/safe_iterator.h
1916	(_Safe_iterator<_It, _Seq, _Cat>::_Self): New.
1917	(_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>::_Self):
1918	New.
1919	(_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
1920	::_OtherSelf): New.
1921	(_GLIBCXX_DEBUG_VERIFY_OPERANDS, _GLIBCXX_DEBUG_VERIFY_EQ_OPERANDS)
1922	(_GLIBCXX_DEBUG_VERIFY_REL_OPERANDS)
1923	(_GLIBCXX_DEBUG_VERIFY_DIST_OPERANDS): Define macros.
1924	(_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
1925	::operator+(difference_type)): Use latters, inline as friend.
1926	(_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
1927	::operator-(difference_type)): Likewise.
1928	(operator==(const _Safe_iterator<>&, const _Safe_iterator<>&)):
1929	Likewise.
1930	(operator!=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
1931	Likewise.
1932	(operator<(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
1933	(operator<=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
1934	Likewise.
1935	(operator>(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
1936	(operator>=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
1937	Likewise.
1938	(operator-(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
1939	(operator+(difference_type, const _Safe_iterator<>&)): Likewise.
1940	(operator-(const _Safe_iterator<>&, difference_type)): Likewise.
1941	* include/debug/safe_iterator.tcc
1942	(_Safe_iterator<>::_M_can_advance(difference_type)): Take parameter by
1943	copy.
1944	* include/debug/safe_local_iterator.h
1945	(_Safe_local_iterator<_It, _Seq>::_Self): New.
1946	(_Safe_local_iterator<_It, _Seq>::_OtherSelf): New.
1947	(_GLIBCXX_DEBUG_VERIFY_OPERANDS): Define macro.
1948	(operator==(const _Safe_local_iterator<>&,
1949	const _Safe_local_iterator<>&)): Use latter, inline as friend.
1950	(operator!=(const _Safe_local_iterator<>&,
1951	const _Safe_local_iterator<>&)): Likewise.
1952	* testsuite/util/testsuite_containers.h: Include utility.
1953	(struct forward_members_unordered<_Tp, bool>): Remove 2nd template
1954	parameter.
1955	(forward_members_unordered<>::forward_members_unordered(value_type&)):
1956	Add using namespace std::rel_ops.
1957	Add iterator_concept_checks on local_iterator and const_local_iterator.
1958	Add asserts on comparison between const_local_iterator and
1959	local_iterator.
1960	(struct forward_members_unordered<_Tp, false>): Remove partial
1961	specialization.
1962	* testsuite/23_containers/forward_list/types/1.cc: New.
1963	* testsuite/23_containers/list/types/1.cc: New.
1964
19652018-09-01  Gerald Pfeifer  <gerald@pfeifer.com>
1966
1967	* doc/xml/manual/profile_mode.xml: Update three ieeexplore.ieee.org
1968	references.
1969
19702018-08-31  Sandra Loosemore  <sandra@codesourcery.com>
1971
1972	* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/10.cc:
1973	Add dg-require-fileio.
1974	* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/11.cc:
1975	Likewise.
1976	* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/5.cc:
1977	Likewise.
1978	* testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
1979	Likewise.
1980	* testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/4.cc:
1981	Likewise.
1982	* testsuite/25_algorithms/find/istreambuf_iterators/wchar_t/2.cc:
1983	Likewise.
1984	* testsuite/27_io/basic_filebuf/close/wchar_t/12790-1.cc: Likewise.
1985	* testsuite/27_io/basic_filebuf/close/wchar_t/12790-2.cc: Likewise.
1986	* testsuite/27_io/basic_filebuf/close/wchar_t/12790-3.cc: Likewise.
1987	* testsuite/27_io/basic_filebuf/close/wchar_t/12790-4.cc: Likewise.
1988	* testsuite/27_io/basic_filebuf/seekoff/wchar_t/11543.cc: Likewise.
1989	* testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-1.cc:
1990	Likewise.
1991	* testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-2.cc:
1992	Likewise.
1993	* testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-3.cc:
1994	Likewise.
1995	* testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-4.cc:
1996	Likewise.
1997	* testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-1.cc:
1998	Likewise.
1999	* testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-2.cc:
2000	Likewise.
2001	* testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-4.cc:
2002	Likewise.
2003	* testsuite/27_io/basic_filebuf/underflow/wchar_t/2.cc: Likewise.
2004	* testsuite/27_io/basic_filebuf/underflow/wchar_t/3.cc: Likewise.
2005	* testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc: Likewise.
2006	* testsuite/27_io/basic_ifstream/open/wchar_t/1.cc: Likewise.
2007	* testsuite/27_io/basic_istream/extractors_character/wchar_t/4.cc:
2008	Likewise.
2009	* testsuite/27_io/basic_istream/extractors_other/wchar_t/2.cc:
2010	Likewise.
2011	* testsuite/27_io/basic_istream/get/wchar_t/2.cc: Likewise.
2012	* testsuite/27_io/basic_istream/getline/wchar_t/5.cc: Likewise.
2013	* testsuite/27_io/basic_istream/ignore/wchar_t/2.cc: Likewise.
2014	* testsuite/27_io/basic_istream/ignore/wchar_t/3.cc: Likewise.
2015	* testsuite/27_io/basic_istream/seekg/wchar_t/sstream.cc: Likewise.
2016	* testsuite/27_io/basic_istream/tellg/wchar_t/sstream.cc: Likewise.
2017	* testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc: Likewise.
2018	* testsuite/27_io/basic_ofstream/open/wchar_t/1.cc: Likewise.
2019	* testsuite/27_io/basic_ostream/inserters_other/wchar_t/1.cc:
2020	Likewise.
2021	* testsuite/27_io/objects/wchar_t/10.cc: Likewise.
2022	* testsuite/27_io/objects/wchar_t/12048-1.cc: Likewise.
2023	* testsuite/27_io/objects/wchar_t/12048-2.cc: Likewise.
2024	* testsuite/27_io/objects/wchar_t/12048-3.cc: Likewise.
2025	* testsuite/27_io/objects/wchar_t/12048-4.cc: Likewise.
2026	* testsuite/27_io/objects/wchar_t/12048-5.cc: Likewise.
2027	* testsuite/experimental/string_view/inserters/wchar_t/2.cc:
2028	Likewise.
2029	* testsuite/ext/stdio_sync_filebuf/wchar_t/1.cc: Likewise.
2030
20312018-08-30  Sandra Loosemore  <sandra@codesourcery.com>
2032
2033	* testsuite/experimental/propagate_const/observers/1.cc: Make
2034	dependence on -fdelete-null-pointer-checks explicit.
2035
20362018-08-30  Jonathan Wakely  <jwakely@redhat.com>
2037
2038	* include/bits/hashtable_policy.h (__clp2): Fix calculation for LLP64
2039	targets where sizeof(size_t) > sizeof(long). Avoid undefined shifts
2040	of the number of bits in the type.
2041	* include/std/bit (__ceil2): Avoid undefined shifts.
2042	* testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: Test values with
2043	the most signifiant bit set.
2044
2045	* config/abi/pre/gnu.ver: Add missing exports for mingw.
2046
2047	* include/ext/pointer.h (_Pointer_adapter): Define operators for
2048	pointer arithmetic using long long offsets.
2049	* testsuite/ext/ext_pointer/1.cc: Test pointer arithmetic using
2050	long long values.
2051
20522018-08-29  Jonathan Wakely  <jwakely@redhat.com>
2053
2054	PR libstdc++/31413
2055	* testsuite/22_locale/time_get/get_date/wchar_t/4.cc: Check D_FMT
2056	string for alternative format.
2057
20582018-08-28  Jonathan Wakely  <jwakely@redhat.com>
2059
2060	PR libstdc++/87116
2061	* src/filesystem/std-path.cc (path::lexically_normal): When handling
2062	a dot-dot filename, preserve an empty final component in the iteration
2063	sequence.
2064	[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Use preferred-separator for
2065	root-directory.
2066	* testsuite/27_io/filesystem/path/generation/normal.cc: Add new tests
2067	for more than two adjacent dot-dot filenames.
2068	[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Replace slashes with
2069	preferred-separator in expected normalized strings.
2070
20712018-08-25  Iain Sandoe  <iain@sandoe.co.uk>
2072
2073	PR libstdc++/70694
2074	* configure.host (OPT_LDFLAGS): Don't append
2075	-fvisibility-inlines-hidden for newer Darwin.
2076
20772018-08-24  Marc Glisse  <marc.glisse@inria.fr>
2078
2079	PR libstdc++/86822
2080	* libsupc++/new (operator new(size_t, nothrow_t), operator
2081	new[](size_t, nothrow_t), operator new(size_t, align_val_t, nothrow_t),
2082	operator new[](size_t, align_val_t, nothrow_t)): Add malloc attribute.
2083
20842018-08-24  Jonathan Wakely  <jwakely@redhat.com>
2085
2086	* include/debug/deque (std::__debug::deque): Declare.
2087	* include/debug/forward_list (std::__debug::forward_list): Declare.
2088	* include/debug/list (std::__debug::list): Declare.
2089	* include/debug/map (std::__debug::map): Declare.
2090	* include/debug/set (std::__debug::set): Declare.
2091	* include/debug/unordered_map (std::__debug::unordered_map): Declare.
2092	* include/debug/unordered_set (std::__debug::unordered_set): Declare.
2093	* include/debug/vector (std::__debug::vector): Declare.
2094	* testsuite/23_containers/deque/types/pmr_typedefs_debug.cc: New test.
2095	* testsuite/23_containers/forward_list/pmr_typedefs_debug.cc: New
2096	test.
2097	* testsuite/23_containers/list/pmr_typedefs_debug.cc: New test.
2098	* testsuite/23_containers/map/pmr_typedefs_debug.cc: New test.
2099	* testsuite/23_containers/multimap/pmr_typedefs_debug.cc: New test.
2100	* testsuite/23_containers/multiset/pmr_typedefs_debug.cc: New test.
2101	* testsuite/23_containers/set/pmr_typedefs_debug.cc: New test.
2102	* testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc: New
2103	test.
2104	* testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
2105	New test.
2106	* testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
2107	New test.
2108	* testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc: New
2109	test.
2110	* testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
2111	Adjust dg-error lineno.
2112	* testsuite/23_containers/vector/types/pmr_typedefs_debug.cc: New
2113	test.
2114
21152018-08-23  Jonathan Wakely  <jwakely@redhat.com>
2116
2117	* testsuite/util/testsuite_allocator.h (__gnu_test::memory_resource):
2118	Only define when RTTI is enabled.
2119
2120	* include/debug/vector (__niter_base): Define for C++98.
2121
2122	* testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
2123	Fix C++98 test to not use C++11 features.
2124	* testsuite/25_algorithms/fill_n/2.cc: Likewise.
2125
2126	* scripts/check_compile: Fix comments.
2127
2128	* include/debug/string (insert(__const_iterator, _InIter, _InIter)):
2129	[!_GLIBCXX_USE_CXX11_ABI]: Replace use of C++11-only cbegin() with
2130	begin(), for C++98 compatibility.
2131
2132	* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2133	(basic_string::__const_iterator): Change access to protected.
2134	[!_GLIBCXX_USE_CXX11_ABI] (basic_string::__const_iterator): Define
2135	as typedef for iterator.
2136	* include/debug/string (__const_iterator): Use typedef from base.
2137	(insert(const_iterator, _CharT))
2138	(replace(const_iterator, const_iterator, const basic_string&))
2139	(replace(const_iterator, const_iterator, const _CharT*, size_type))
2140	(replace(const_iterator, const_iterator, const CharT*))
2141	(replace(const_iterator, const_iterator, size_type, _CharT))
2142	(replace(const_iterator, const_iterator, _InputIter, _InputIter))
2143	(replace(const_iterator, const_iterator, initializer_list<_CharT>)):
2144	Change const_iterator parameters to __const_iterator.
2145	(insert(iterator, size_type, _CharT)): Add C++98 overload.
2146	(insert(const_iterator, _InputIterator, _InputIterator)): Change
2147	const_iterator parameter to __const_iterator.
2148	[!_GLIBCXX_USE_CXX11_ABI]: Add workaround for incorrect return type
2149	of base's member function.
2150	(insert(const_iterator, size_type, _CharT)) [!_GLIBCXX_USE_CXX11_ABI]:
2151	Likewise.
2152	(insert(const_iterator, initializer_list<_CharT>))
2153	[!_GLIBCXX_USE_CXX11_ABI]: Likewise.
2154	* testsuite/21_strings/basic_string/init-list.cc: Remove effective
2155	target directive.
2156
2157	* testsuite/20_util/reference_wrapper/lwg2993.cc: Fix C++11 test to
2158	not use C++14 feature.
2159	* testsuite/23_containers/list/68222_neg.cc: Likewise.
2160
2161	* testsuite/21_strings/basic_string/init-list.cc:
2162	Require cxx11-abi.
2163	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc:
2164	Likewise.
2165	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
2166	Likewise.
2167
2168	* testsuite/23_containers/deque/capacity/max_size.cc: Fix test for
2169	C++98 mode.
2170	* testsuite/23_containers/deque/modifiers/assign/1.cc: Likewise.
2171	* testsuite/23_containers/list/modifiers/assign/1.cc: Likewise.
2172	* testsuite/23_containers/vector/bool/modifiers/assign/1.cc: Likewise.
2173	* testsuite/23_containers/vector/capacity/max_size.cc: Likewise.
2174	* testsuite/23_containers/vector/modifiers/assign/1.cc: Likewise.
2175
21762018-08-22  Jonathan Wakely  <jwakely@redhat.com>
2177
2178	PR libstdc++/87061
2179	* include/experimental/regex [!_GLIBCXX_USE_CXX11_ABI]
2180	(experimental::pmr::match_results, experimental::pmr::cmatch)
2181	(experimental::pmr::smatch, experimental::pmr::wcmatch)
2182	(experimental::pmr::wsmatch): Do not declare for gcc4-compatible ABI,
2183	because COW strings don't support C++11 allocator model.
2184	* include/experimental/string [!_GLIBCXX_USE_CXX11_ABI]
2185	(experimental::pmr::basic_string, experimental::pmr::string)
2186	(experimental::pmr::u16string, experimental::pmr::u32string)
2187	(experimental::pmr::wstring): Likewise.
2188	* include/std/regex [!_GLIBCXX_USE_CXX11_ABI] (pmr::match_results)
2189	(pmr::cmatch, pmr::smatch, pmr::wcmatch, pmr::wsmatch): Likewise.
2190	* include/std/string [!_GLIBCXX_USE_CXX11_ABI] (pmr::basic_string)
2191	(pmr::string, pmr::u16string, pmr::u32string, pmr::wstring): Likewise.
2192	* testsuite/21_strings/basic_string/types/pmr_typedefs.cc: Require
2193	cxx11-abi.
2194	* testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
2195
2196	PR libstdc++/78448
2197	* include/bits/deque.tcc (deque::_M_range_initialize): Use
2198	_S_check_init_len to check size.
2199	(deque::_M_push_back_aux, deque::_M_push_front_aux): Throw length
2200	error if size would exceed max_size().
2201	* include/bits/stl_deque.h (_Deque_base::size_type): Remove typedef.
2202	(_Deque_base(_Deque_base&&, const allocator_type&, size_t)): Use
2203	size_t instead of size_type.
2204	(deq(size_type, const allocator_type&)
2205	(deq(size_type, const value_type&, const allocator_type&)
2206	(deque::_M_initialize_dispatch): Use _S_check_init_len to check size.
2207	(deque::max_size): Call _S_max_size.
2208	(deque::_S_check_init_len, deque::_S_max_size): New functions.
2209	* include/bits/stl_vector.h (vector(size_type, const allocator_type&))
2210	(vector(size_type, const value_type&, const allocator_type&))
2211	(vector::_M_initialize_dispatch, vector::_M_range_initialize): Use
2212	_S_check_init_len to check size.
2213	(vector::max_size): Call _S_max_size.
2214	(vector::_M_check_len): Prevent max from being expanded as a
2215	function-like macro.
2216	(vector::_S_check_init_len, vector::_S_max_size): New functions.
2217	* include/bits/vector.tcc (vector::_M_assign_aux): Use
2218	_S_check_init_len to check size.
2219	* testsuite/23_containers/deque/capacity/max_size.cc: New test.
2220	* testsuite/23_containers/vector/capacity/max_size.cc: New test.
2221
22222018-08-22  François Dumont  <fdumont@gcc.gnu.org>
2223
2224	PR libstdc++/68222
2225	* include/debug/safe_iterator.h
2226	(_Safe_iterator<_It, _Sq, _Cat>): Add category template parameter.
2227	(_Safe_iterator<>::_Const_iterator): Remove.
2228	(_Safe_iterator<>::_IsConstant): New.
2229	(_Safe_iterator<>::_OtherIterator): New.
2230	(_Safe_iterator<_It, _Sq, _Cat>::_Safe_iterator<_MutIte>(
2231	const _Safe_iterator<_MutIte, _Sq, _Cat>&)): Add _IsConstant::__value in
2232	__gnu_cxx::__enable_if condition.
2233	(_Safe_iterator<_It, _Sq, _Cat>::_M_get_distance_to): New.
2234	(_Safe_iterator<_It, _Sq, _Cat>::_M_get_distance_from_begin): New.
2235	(_Safe_iterator<_It, _Sq, _Cat>::_M_get_distance_to_end): New.
2236	(_Safe_iterator<_It, _Sq, std::bidirectional_iterator_tag>): New.
2237	(_Safe_iterator<_It, _Sq, _Cat>::operator--()): Move...
2238	(_Safe_iterator<_It, _Sq, std::bidirectional_iterator_tag>
2239	::operator--()): ...here.
2240	(_Safe_iterator<_It, _Sq, _Cat>::operator--(int)): Move...
2241	(_Safe_iterator<_It, _Sq, std::bidirectional_iterator_tag>
2242	::operator--(int)): ...here.
2243	(_Safe_iterator<_It, _Sq, _Cat>::_M_decrementable()): Move...
2244	(_Safe_iterator<_It, _Sq, std::bidirectional_iterator_tag>
2245	::_M_decrementable()): ...here.
2246	(_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>): New.
2247	(_Safe_iterator<_It, _Sq, _Cat>::operator[](const difference_type&)):
2248	Move...
2249	(_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
2250	::operator[](const difference_type&)): ...here.
2251	(_Safe_iterator<_It, _Sq, _Cat>::operator+=(const difference_type&)):
2252	Move...
2253	(_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
2254	::operator+=(const difference_type&)): ...here.
2255	(_Safe_iterator<_It, _Sq, _Cat>::operator+(const difference_type&)):
2256	Move...
2257	(_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
2258	::operator+(const difference_type&)): ...here.
2259	(_Safe_iterator<_It, _Sq, _Cat>::operator-=(const difference_type&)):
2260	Move...
2261	(_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
2262	::operator-=(const difference_type&)): ...here.
2263	(_Safe_iterator<_It, _Sq, _Cat>::operator-(const difference_type&)):
2264	Move...
2265	(_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
2266	::operator-(const difference_type&)): ...here.
2267	(operator<(const _Safe_iterator<>&, const _Safe_iterator<>&)):
2268	Constraint to random access iterators.
2269	(operator<=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
2270	Likewise.
2271	(operator>(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
2272	(operator>=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
2273	Likewise.
2274	(operator-(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
2275	(operator+(const difference_type&, const _Safe_iterator<>&)): Likewise.
2276	(__check_dereferenceable(const _Safe_iterator<>&)): Remove.
2277	(__get_distance): Remove.
2278	(__get_distance_from_begin): Remove.
2279	(__get_distance_to_end): Remove.
2280	(struct __is_safe_random_iterator<_Safe_iterator<>>): Remove partial
2281	specialization.
2282	(__base(const _Safe_iterator<>&, std::input_iterator_tag)): Remove.
2283	(__base(const _Safe_iterator<>&, std::random_access_iterator_tag)): Remove.
2284	(__base(const _Safe_iterator<>&)): Constraint to random access iterator.
2285	* include/debug/safe_iterator.tcc
2286	(_Safe_iterator<>::_M_get_distance_from_begin()): New.
2287	(_Safe_iterator<>::_M_get_distance_to_end()): New.
2288	(_Safe_iterator<>::_M_get_distance_to(const _Safe_iterator<>&)): New.
2289	(_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
2290	::_M_valid_range): New.
2291	* include/debug/safe_local_iterator.h
2292	(_Safe_local_iterator<>::_Const_local_iterator): Remove.
2293	(_Safe_local_iterator<>::_IsConstant): New.
2294	(_Safe_local_iterator<>::_OtherIterator): New.
2295	(_Safe_local_iterator<_It, _Cont>::_Safe_local_iterator<_MutIte, _Cont>(
2296	const _Safe_local_iterator<_MutIte, _Seq>&)): Add _IsConstant::__value
2297	in __gnu_cxx::__enable_if condition. If singular compare base iterator
2298	with _MutIte rather than _It.
2299	(_Safe_local_iterator<>::_S_constant): Make constexpr.
2300	(_Safe_local_iterator<>::_M_get_distance_to): New.
2301	(__check_dereferenceable(const _Safe_local_iterator<>&)): Remove.
2302	(__get_distance(const _Safe_local_iterator<>&,
2303	const _Safe_local_iterator<>&, std::input_iterator_tag)): Remove.
2304	(__valid_range(const _Safe_local_iterator<>&,
2305	const _Safe_local_iterator<>&)): New.
2306	* include/debug/safe_local_iterator.tcc
2307	(_Safe_local_iterator<>::_M_get_distance_to): New.
2308	* include/debug/deque (std::__debug::deque<>): Add
2309	::__gnu_debug::_Safe_iterator<> friend declaration.
2310	* include/debug/forward_list (std::__debug::forward_list<>): Likewise.
2311	* include/debug/list (std::__debug::list<>): Likewise.
2312	* include/debug/map.h (std::__debug::map<>): Likewise.
2313	* include/debug/multimap.h (std::__debug::multimap<>): Likewise.
2314	* include/debug/set.h (std::__debug::set<>): Likewise.
2315	* include/debug/multiset.h (std::__debug::multiset<>): Likewise.
2316	* include/debug/string (std::__debug::basic_string<>): Likewise.
2317	* include/debug/unordered_map (std::__debug::unordered_map<>): Likewise
2318	and add ::__gnu_debug::_Safe_local_iterator<> friend declaration.
2319	(std::__debug::unordered_multimap<>): Likewise.
2320	* include/debug/unordered_set (std::__debug::unordered_set<>): Likewise.
2321	(std::__debug::unordered_multiset<>): Likewise.
2322	* include/debug/formatter.h: Adapt.
2323	* include/debug/helper_functions.h
2324	(__gnu_debug::_Safe_local_iterator<>): Add declaration.
2325	(__get_distance<_Ite>(_Ite, _Ite, std::random_access_iterator_tag):
2326	Pass parameter by copy.
2327	(__get_distance<_Ite>(_Ite, _Ite, std::input_iterator_tag): Likewise.
2328	(__get_distance<_Ite>(_Ite, _Ite): Likewise.
2329	(__valid_range_aux<_Integral>): Pass _Integral by copy.
2330	(__valid_range<_InputIterator>): Pass _InputIterator by copy.
2331	(__valid_range<>(const _Safe_iterator<>&,
2332	const _Safe_iterator<>&, typename _Distance_traits<>::__type&)):
2333	Declare.
2334	(__valid_range(const _Safe_local_iterator<>&,
2335	const _Safe_local_iterator<>&, typename _Distance_traits<>::__type&)):
2336	Declare.
2337	(__valid_range<>(const _Safe_iterator<>&, const _Safe_iterator<>&)):
2338	Declare.
2339	(__valid_range(const _Safe_local_iterator<>&, const _Safe_local_iterator<>&)):
2340	Declare.
2341	(__can_advance): Adapt.
2342	(struct __is_safe_random_iterator<>): Remove.
2343	(struct _SIter_base<>): Remove.
2344	* include/debug/functions.h: Include <bits/stl_iterator.h>.
2345	(__check_dereferenceable): Remove.
2346	(__foreign_iterator_aux4, __foreign_iterator_aux3): Adapt.
2347	(__foreign_iterator_aux2, __foreign_iterator_aux): Adapt.
2348	(__foreign_iterator): Adapt.
2349	* include/debug/stl_iterator.h
2350	(__is_safe_random_iterator<std::reverse_iterator<>>): Remove.
2351	(__base(const std::reverse_iterator<_Safe_iterator<_It, _Sq>)):
2352	Constraint for random access iterators.
2353	(__niter_base): Adapt.
2354	* testsuite/util/testsuite_containers.h:
2355	Include <bits/boost_concept_check.h>.
2356	(iterator_concept_checks<_It, _Mutable, _Category>): New.
2357	(citerator<_Cont>::forward_members::forward_members()): Instantiate
2358	latter for container iterator and const_iterator.
2359	* testsuite/23_containers/list/68222_neg.cc: New.
2360	* testsuite/23_containers/vector/cons/destructible_debug_neg.cc: Adapt
2361	line number.
2362	* testsuite/23_containers/unordered_set/debug/debug_functions.cc:
2363	(test01): Remove.
2364	* testsuite/23_containers/vector/debug/debug_functions.cc (test01):
2365	Remove.
2366
23672018-08-22  Jonathan Wakely  <jwakely@redhat.com>
2368
2369	PR libstdc++/77854
2370	* doc/xml/manual/status_cxx1998.xml: Document size_type and
2371	difference_type for containers.
2372	* doc/html/*: Regenerate.
2373
23742018-08-21  François Dumont  <fdumont@gcc.gnu.org>
2375
2376	P0646R1 Improving the Return Value of Erase-Like Algorithms I
2377	* include/debug/forward_list (forward_list::__remove_return_type):
2378	Define typedef as size_type or void, according to __cplusplus value.
2379	(_GLIBCXX_FWDLIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
2380	empty, according to __cplusplus value.
2381	(_GLIBCXX20_ONLY): Define macro.
2382	(forward_list::remove, forward_list::unique): Use typedef and macro
2383	to change return type and add abi-tag for C++2a. Return number of
2384	removed elements for C++2a.
2385	(forward_list::remove_if<Pred>, forward_list::unique<BinPred>): Use
2386	typedef to change return type for C++2a. Return number of removed
2387	elements for C++2a.
2388	* include/debug/list (list::__remove_return_type): Define typedef as
2389	size_type or void, according to __cplusplus value.
2390	(_GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
2391	empty, according to __cplusplus value.
2392	(_GLIBCXX20_ONLY): Define macro.
2393	(list::remove, list::unique): Use typedef and macro to change return
2394	type and add abi-tag for C++2a. Return number of removed elements for
2395	C++2a.
2396	(list::remove_if<Predicate>, list::unique<BinaryPredicate>): Use typedef
2397	to change return type for C++2a. Return number of removed elements for
2398	C++2a.
2399
24002018-08-21  David Edelsohn  <dje.gcc@gmail.com>
2401
2402	* testsuite/18_support/new_nothrow.cc: XFAIL on AIX.
2403
24042018-08-21  Jonathan Wakely  <jwakely@redhat.com>
2405
2406	* testsuite/26_numerics/bit/bitops.count/countl_one.cc: Remove
2407	redundant dg-do directive.
2408	* testsuite/26_numerics/bit/bitops.count/countl_zero.cc: Likewise.
2409	* testsuite/26_numerics/bit/bitops.count/countr_one.cc: Likewise.
2410	* testsuite/26_numerics/bit/bitops.count/countr_zero.cc: Likewise.
2411	* testsuite/26_numerics/bit/bitops.count/popcount.cc: Likewise.
2412
24132018-08-20  Jonathan Wakely  <jwakely@redhat.com>
2414
2415	PR libstdc++/86963
2416	* include/std/tuple (_Tuple_impl::operator=): Define as deleted.
2417	(_Tuple_impl::_M_assign): New functions to perform assignment instead
2418	of assignment operators.
2419	(_Tuple_impl::_M_swap): Remove exception specification.
2420	(_Tuple_impl<_Idx, _Head>): Likewise.
2421	(_TC::_NonNestedTuple, _TC::_NotSameTuple): Use __remove_cvref_t.
2422	(__tuple_base): Remove.
2423	(tuple, tuple<_T1, _T2>): Remove inheritance from __tuple_base.
2424	(tuple::operator=, tuple<_T1, _T2>::operator=): Call _M_assign.
2425	(tuple::swap, tuple<_T1, _T2>::swap): Define exception specification
2426	using __is_nothrow_swappable.
2427	(tuple<_T1, _T2>::tuple(_U1&&, _U2&&)): Use __remove_cvref_t.
2428
2429	* include/std/optional (_Optional_payload): Use variable templates
2430	for conditions in default template arguments and exception
2431	specifications.
2432	(optional): Likewise. Adjust indentation.
2433	(optional::__not_self, optional::__not_tag, optional::_Requires): New
2434	SFINAE helpers.
2435	(optional::optional): Use new helpers in constructor constraints.
2436	* include/std/type_traits (__or_v, __and_v): New variable templates.
2437	* testsuite/20_util/optional/cons/value_neg.cc: Change dg-error to
2438	dg-prune-output. Remove unused header.
2439
24402018-08-18  François Dumont  <fdumont@gcc.gnu.org>
2441
2442	* testsuite/25_algorithms/copy/86658.cc: Use dg-options to define
2443	_GLIBCXX_DEBUG.
2444
24452018-08-17  Jonathan Wakely  <jwakely@redhat.com>
2446
2447	PR libstdc++/86963
2448	* include/std/tuple (__tuple_base): New class template with deleted
2449	copy assignment operator.
2450	(tuple, tuple<_T1, _T2>): Derive from __tuple_base<tuple> so that
2451	implicit copy/move assignment operator will be deleted/suppressed.
2452	(tuple::__assignable, tuple<_T1, _T2>::__assignable): New helper
2453	functions for SFINAE constraints on assignment operators.
2454	(tuple::__nothrow_assignable, tuple<_T1, _T2>::__nothrow_assignable):
2455	New helper functions for exception specifications.
2456	(tuple::operator=(const tuple&), tuple::operator=(tuple&&))
2457	(tuple<_T1, _T2>::operator=(const tuple&))
2458	(tuple<_T1, _T2>::operator=(tuple&&)): Change parameter types to
2459	__nonesuch_no_braces when the operator should be defined implicitly.
2460	Use __nothrow_assignable for exception specifications.
2461	(tuple::operator=(const tuple<_UElements...>&))
2462	(tuple::operator=(tuple<_UElements...>&&))
2463	(tuple<_T1, _T2>::operator=(const tuple<_U1, _U2>&))
2464	(tuple<_T1, _T2>::operator=(tuple<_U1, _U2>&&))
2465	(tuple<_T1, _T2>::operator=(const pair<_U1, _U2>&))
2466	(tuple<_T1, _T2>::operator=(pair<_U1, _U2>&&)): Constrain using
2467	__assignable and use __nothrow_assignable for exception
2468	specifications.
2469	* python/libstdcxx/v6/printers.py (is_specialization_of): Accept
2470	gdb.Type as first argument, instead of a string.
2471	(StdTuplePrinter._iterator._is_nonempty_tuple): New method to check
2472	tuple for expected structure.
2473	(StdTuplePrinter._iterator.__init__): Use _is_nonempty_tuple.
2474	* testsuite/20_util/tuple/dr2729.cc: New test.
2475	* testsuite/20_util/tuple/element_access/get_neg.cc: Change dg-error
2476	to dg-prune-output.
2477
24782018-08-16  Jonathan Wakely  <jwakely@redhat.com>
2479
2480	* include/tr1/legendre_function.tcc (__sph_legendre): Avoid warning
2481	about signed/unsigned comparison.
2482
2483	* include/std/ostream (basic_ostream::sentry::~sentry): Suppress
2484	deprecation warnings for using uncaught_exception().
2485
2486	PR libstdc++/86447
2487	* src/c++11/cow-stdexcept.cc [_GLIBCXX_FULLY_DYNAMIC_STRING]
2488	(logic_error::logic_error(logic_error&&))
2489	(logic_error::operator=(logic_error&&))
2490	(runtime_error::runtime_error(runtime_error&&))
2491	(runtime_error::operator=(runtime_error&&)): Copy strings instead of
2492	moving, to avoid allocating empty reps for moved-from strings.
2493
24942018-08-15  Jonathan Wakely  <jwakely@redhat.com>
2495
2496	* include/experimental/regex: Remove begin/end macros for namespace.
2497	* include/experimental/string: Likewise.
2498	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_deque.cc:
2499	New test.
2500	* testsuite/experimental/polymorphic_allocator/
2501	pmr_typedefs_forward_list.cc: New test.
2502	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_list.cc:
2503	New test.
2504	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_map.cc:
2505	New test.
2506	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc:
2507	New test.
2508	* testsuite/experimental/polymorphic_allocator/
2509	pmr_typedefs_multimap.cc: New test.
2510	* testsuite/experimental/polymorphic_allocator/
2511	pmr_typedefs_multiset.cc: New test.
2512	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_set.cc:
2513	New test.
2514	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
2515	New test.
2516	* testsuite/experimental/polymorphic_allocator/
2517	pmr_typedefs_unordered_map.cc: New test.
2518	* testsuite/experimental/polymorphic_allocator/
2519	pmr_typedefs_unordered_multimap.cc: New test.
2520	* testsuite/experimental/polymorphic_allocator/
2521	pmr_typedefs_unordered_multiset.cc: New test.
2522	* testsuite/experimental/polymorphic_allocator/
2523	pmr_typedefs_unordered_set.cc: New test.
2524	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_vector.cc:
2525	New test.
2526
2527	* include/bits/uses_allocator.h (__uses_allocator_construct): Qualify
2528	calls to __uses_allocator_construct_impl and __use_alloc.
2529	* include/experimental/memory_resource
2530	(polymorphic_allocator::_M_construct): Remove.
2531	(polymorphic_allocator::construct): Call __uses_allocator_construct.
2532	Qualify calls to __use_alloc.
2533	* include/std/memory_resource (polymorphic_allocator::construct): Fix
2534	type in SFINAE constraint. Use constexpr if instead of tag dispatching
2535	to _S_construct overloads.
2536	(polymorphic_allocator::construct(pair<T1, T2>*, ...)): Fix order of
2537	arguments to _S_construct_p.
2538	(polymorphic_allocator::_S_construct): Remove.
2539	(polymorphic_allocator::_S_construct_p): Return allocators by value
2540	not by reference.
2541	* include/std/scoped_allocator (scoped_allocator_adaptor::construct):
2542	Qualify calls to __use_alloc.
2543	* testsuite/20_util/polymorphic_allocator/construct_pair.cc: New test,
2544	copied from testsuite/20_util/scoped_allocator/construct_pair.cc.
2545	* testsuite/experimental/polymorphic_allocator/1.cc: New test.
2546	* testsuite/experimental/polymorphic_allocator/construct_pair.cc:
2547	New test.
2548
2549	* src/c++17/memory_resource.cc [!_GLIBCXX_HAS_GTHREADS]
2550	(atomic_mem_res): Add unsynchronized definition for single-threaded.
2551
25522018-08-14  Jonathan Wakely  <jwakely@redhat.com>
2553
2554	PR libstdc++/86954
2555	* include/bits/stl_tempbuf.h (return_temporary_buffer): Use
2556	non-placement delete.
2557
2558	* include/std/chrono (__check_overflow): Simplify definition.
2559	(_Checked_integral_constant): Remove.
2560
2561	PR libstdc++/86846
2562	* src/c++17/default_resource.h: New file, defining default_res.
2563	* src/c++17/memory_resource.cc [ATOMIC_POINTER_LOCK_FREE != 2]
2564	(atomic_mem_res): Define alternative for atomic<memory_resource*>
2565	using a mutex instead of atomics.
2566
2567	PR libstdc++/85343
2568	* config/abi/pre/gnu.ver: Export new symbol.
2569	* doc/xml/manual/abi.xml: Document new versions.
2570	* include/bits/fstream.tcc (basic_filebuf<C, T>::underflow)
2571	(basic_filebuf<C, T>::xsgetn): Pass errno to __throw_ios_failure.
2572	* include/bits/functexcept.h (__throw_ios_failure(const char*, int)):
2573	Declare new overload.
2574	* src/c++11/cxx11-ios_failure.cc (__ios_failure): Add new constructor
2575	and static member function.
2576	(__throw_ios_failure(const char*, int)): Define.
2577	* src/c++98/ios_failure.cc [!_GLIBCXX_USE_DUAL_ABI]
2578	(__throw_ios_failure(const char*, int)): Define.
2579
25802018-08-14  Jeremy Sawicki  <jeremy-gcc@sawicki.us>
2581
2582	* include/ext/rope (_Rope_iterator_base(const _Rope_iterator_base&))
2583	(_Rope_const_iterator::operator=(const _Rope_const_iterator&))
2584	(_Rope_iterator::operator=(const _Rope_iterator&)): Ensure
2585	copied/assigned rope iterators don't retain pointers to the iterator
2586	they were copied/assigned from.
2587	* testsuite/ext/rope/7.cc: New.
2588
25892018-08-13  Jonathan Wakely  <jwakely@redhat.com>
2590
2591	PR libstdc++/45093
2592	* include/bits/stl_tree.h (_Rb_tree::_M_destroy_node(_Link_type)):
2593	Combine definitions to avoid --detect-odr-violations warning.
2594
2595	* libsupc++/new_opa.cc (operator new(size_t, align_val_t)): Use
2596	__is_pow2 to check for valid alignment. Avoid branching when rounding
2597	size to multiple of alignment.
2598
2599	* include/Makefile.am: Install <bit> and <version> for freestanding.
2600	* include/Makefile.in: Regenerate.
2601	* testsuite/17_intro/freestanding.cc: Check for <bit> and <version>.
2602
2603	Revert
2604	2018-08-10  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2605
2606	PR target/85904
2607	* configure.ac: Define HAVE_ALIGNED_ALLOC if building for
2608	Newlib.
2609	* configure: Regenerate.
2610
26112018-08-10  Jonathan Wakely  <jwakely@redhat.com>
2612
2613	PR libstdc++/68210
2614	* doc/xml/manual/intro.xml: Document LWG 206 change.
2615	* libsupc++/del_op.cc: Replace _GLIBCXX_USE_NOEXCEPT with noexcept.
2616	* libsupc++/del_opa.cc: Likewise.
2617	* libsupc++/del_opant.cc: Likewise.
2618	* libsupc++/del_opnt.cc: Likewise. Call operator delete(ptr) instead
2619	of free(ptr).
2620	* libsupc++/del_ops.cc: Replace _GLIBCXX_USE_NOEXCEPT with noexcept.
2621	* libsupc++/del_opsa.cc: Likewise.
2622	* libsupc++/del_opva.cc: Likewise.
2623	* libsupc++/del_opvant.cc: Likewise.
2624	* libsupc++/del_opvnt.cc: Likewise. Call operator delete[](ptr)
2625	instead of operator delete(ptr).
2626	* libsupc++/del_opvs.cc: Replace _GLIBCXX_USE_NOEXCEPT with noexcept.
2627	* libsupc++/del_opvsa.cc: Likewise.
2628	* libsupc++/new_op.cc: Use __builtin_expect in check for zero size.
2629	* libsupc++/new_opa.cc: Use nullptr instead of literal 0.
2630	* libsupc++/new_opant.cc: Likewise. Replace _GLIBCXX_USE_NOEXCEPT
2631	with noexcept.
2632	* libsupc++/new_opnt.cc: Likewise. Call operator new(sz) instead of
2633	malloc(sz).
2634	* libsupc++/new_opvant.cc: Use nullptr and noexcept.
2635	* libsupc++/new_opvnt.cc: Likewise. Call operator new[](sz) instead of
2636	operator new(sz, nothrow).
2637	* testsuite/18_support/new_nothrow.cc: New test.
2638
26392018-08-10  Martin Liska  <mliska@suse.cz>
2640
2641	* libsupc++/new_op.cc (new): Remove __builtin_expect as malloc
2642	predictor can handle that.
2643	* libsupc++/new_opa.cc: Likewise.
2644	* libsupc++/new_opnt.cc (new): Likewise.
2645
26462018-08-10  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2647
2648	PR target/85904
2649	* configure.ac: Define HAVE_ALIGNED_ALLOC if building for
2650	Newlib.
2651	* configure: Regenerate.
2652
26532018-08-10  Jonathan Wakely  <jwakely@redhat.com>
2654
2655	* include/std/deque (std::pmr::deque): Declare alias.
2656	* include/std/forward_list (std::pmr::forward_list): Likewise.
2657	* include/std/list (std::pmr::list): Likewise.
2658	* include/std/map (std::pmr::map, std::pmr::multimap): Likewise.
2659	* include/std/regex (std::pmr::match_results, std::pmr::cmatch)
2660	(std::pmr::smatch, std::pmr::wcmatch, std::pmr::wsmatch): Likewise.
2661	* include/std/set (std::pmr::set, std::pmr::multiset): Likewise.
2662	* include/std/string (std::pmr::basic_string, std::pmr::string)
2663	(std::pmr::u16string, std::pmr::u32string, std::pmr::wstring):
2664	Likewise.
2665	* include/std/unordered_map (std::pmr::unordered_map)
2666	(std::pmr::unordered_multimap): Likewise.
2667	* include/std/unordered_set (std::pmr::unordered_set)
2668	(std::pmr::unordered_multiset): Likewise.
2669	* include/std/vector (std::pmr::vector): Likewise.
2670	* testsuite/21_strings/basic_string/types/pmr_typedefs.cc: New test.
2671	* testsuite/23_containers/deque/types/pmr_typedefs.cc: New test.
2672	* testsuite/23_containers/forward_list/pmr_typedefs.cc: New test.
2673	* testsuite/23_containers/list/pmr_typedefs.cc: New test.
2674	* testsuite/23_containers/map/pmr_typedefs.cc: New test.
2675	* testsuite/23_containers/multimap/pmr_typedefs.cc: New test.
2676	* testsuite/23_containers/multiset/pmr_typedefs.cc: New test.
2677	* testsuite/23_containers/set/pmr_typedefs.cc: New test.
2678	* testsuite/23_containers/unordered_map/pmr_typedefs.cc: New test.
2679	* testsuite/23_containers/unordered_multimap/pmr_typedefs.cc: New
2680	test.
2681	* testsuite/23_containers/unordered_multiset/pmr_typedefs.cc: New
2682	test.
2683	* testsuite/23_containers/unordered_set/pmr_typedefs.cc: New test.
2684	* testsuite/23_containers/vector/pmr_typedefs.cc: New test.
2685	* testsuite/28_regex/match_results/pmr_typedefs.cc: New test.
2686
26872018-08-08  François Dumont  <fdumont@gcc.gnu.org>
2688
2689	* include/bits/stl_algo.h
2690	(__rotate(_Ite, _Ite, _Ite, forward_iterator_tag))
2691	(__rotate(_Ite, _Ite, _Ite, bidirectional_iterator_tag))
2692	(__rotate(_Ite, _Ite, _Ite, random_access_iterator_tag)): Move code
2693	duplication...
2694	(rotate(_Ite, _Ite, _Ite)): ...here.
2695	(__stable_partition_adaptive(_FIt, _FIt, _Pred, _Dist, _Pointer, _Dist)):
2696	Simplify rotate call.
2697	(__rotate_adaptive(_BIt1, _BIt1, _BIt1, _Dist, _Dist, _Bit2, _Dist)):
2698	Likewise.
2699	(__merge_without_buffer(_BIt, _BIt, _BIt, _Dist, _Dist, _Comp)):
2700	Likewise.
2701
27022018-08-08  Jonathan Wakely  <jwakely@redhat.com>
2703
2704	* libsupc++/new_opa.cc (aligned_alloc): Declare inside namespace to
2705	avoid clashing with an ::aligned_alloc function that was not detected
2706	by configure.
2707
2708	* doc/xml/manual/using.xml: Fix markup for empty table entry.
2709	* doc/html/*: Regenerate.
2710
2711	* doc/xml/manual/using.xml: Add missing header to table and fix typo.
2712	* doc/html/*: Regenerate.
2713
2714	PR libstdc++/86597
2715	* include/bits/fs_dir.h (directory_entry::_M_file_type(error_code&)):
2716	Clear error_code when cached type is used.
2717	* testsuite/27_io/filesystem/directory_entry/86597.cc: New test.
2718
27192018-08-07  Jonathan Wakely  <jwakely@redhat.com>
2720
2721	PR libstdc++/86874
2722	* include/std/variant (_Copy_ctor_base::_M_destructive_move): Define
2723	here instead of in _Move_assign_base.
2724	(_Copy_ctor_base<true, _Types...>::_M_destructive_move): Define.
2725	(_Copy_assign_base::operator=): Use _M_destructive_move when changing
2726	the contained value to another alternative.
2727	(_Move_assign_base::operator=): Likewise.
2728	(_Move_assign_base::_M_destructive_move): Remove.
2729	* testsuite/20_util/variant/86874.cc: New test.
2730
2731	PR libstdc++/86861
2732	* libsupc++/new_opa.cc [_GLIBCXX_HAVE_MEMALIGN] (aligned_alloc):
2733	Replace macro with inline function.
2734	[__sun]: Increase alignment to meet memalign precondition.
2735	[!HAVE__ALIGNED_MALLOC && !HAVE_POSIX_MEMALIGN && !HAVE_MEMALIGN]
2736	(aligned_alloc): Move check for valid alignment to operator new.
2737	Remove redundant check for non-zero size, it's enforced by the caller.
2738	(operator new): Move check for valid alignment here. Use
2739	__builtin_expect on check for zero size.
2740
2741	* config/abi/pre/gnu.ver: Export monotonic_buffer_resource members.
2742	* include/std/memory_resource (monotonic_buffer_resource::release):
2743	Call _M_release_buffers to free buffers.
2744	(monotonic_buffer_resource::do_allocate): Call _M_new_buffer to
2745	allocate a new buffer from upstream.
2746	(monotonic_buffer_resource::_M_new_buffer): Declare.
2747	(monotonic_buffer_resource::_M_release_buffers): Declare.
2748	(monotonic_buffer_resource::_Chunk): Replace definition with
2749	declaration as opaque type.
2750	* src/c++17/memory_resource.cc (monotonic_buffer_resource::_Chunk):
2751	Define.
2752	(monotonic_buffer_resource::_M_new_buffer): Define.
2753	(monotonic_buffer_resource::_M_release_buffers): Define.
2754
27552018-08-05  François Dumont  <fdumont@gcc.gnu.org>
2756
2757	* include/bits/stl_iterator.h: Fix comment.
2758
27592018-08-03  Jonathan Wakely  <jwakely@redhat.com>
2760
2761	* src/c++11/system_error.cc
2762	(system_error_category::default_error_condition): Add workaround for
2763	ENOTEMPTY and EEXIST having the same value on AIX.
2764	* testsuite/19_diagnostics/error_category/system_category.cc: Add
2765	extra testcases for EDOM, EILSEQ, ERANGE, EEXIST and ENOTEMPTY.
2766
27672018-08-01  Jonathan Wakely  <jwakely@redhat.com>
2768
2769	* configure: Regenerate.
2770	* configure.ac: Add -D_GLIBCXX_ASSERTIONS to default DEBUG_FLAGS.
2771	* src/c++11/futex.cc: Use __glibcxx_assert instead of
2772	_GLIBCXX_DEBUG_ASSERT.
2773
27742018-08-01  Mike Crowe  <mac@mcrowe.com>
2775
2776	* include/std/condition_variable (wait_for): Use steady_clock.
2777
27782018-08-01  Mike Crowe  <mac@mcrowe.com>
2779
2780	* include/std/condition_variable (wait_until): Only report timeout
2781	if we really have timed out when measured against the
2782	caller-supplied clock.
2783	* testsuite/30_threads/condition_variable/members/2.cc: Add test
2784	case to confirm above behaviour.
2785
27862018-08-01  Jonathan Wakely  <jwakely@redhat.com>
2787
2788	PR libstdc++/60555
2789	* src/c++11/system_error.cc
2790	(system_error_category::default_error_condition): New override to
2791	check for POSIX errno values.
2792	* testsuite/19_diagnostics/error_category/generic_category.cc: New
2793	* testsuite/19_diagnostics/error_category/system_category.cc: New
2794	test.
2795
27962018-07-31  Jonathan Wakely  <jwakely@redhat.com>
2797
2798	PR libstdc++/86751
2799	* include/bits/stl_pair.h (__pair_base): New class with deleted copy
2800	assignment operator.
2801	(pair): Derive from __pair_base.
2802	(pair::operator=): Remove deleted overload.
2803	* python/libstdcxx/v6/printers.py (StdPairPrinter): New pretty printer
2804	so that new base class isn't shown in GDB.
2805	* testsuite/20_util/pair/86751.cc: New test.
2806	* testsuite/20_util/pair/ref_assign.cc: New test.
2807
2808	* include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP)
2809	(_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Move definitions here.
2810	(_GLIBCXX_HAVE_BUILTIN_LAUNDER): Likewise. Use !__is_identifier
2811	instead of __has_builtin.
2812	* include/std/type_traits (_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP)
2813	(_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Remove definitions from here.
2814	* include/std/version [!_GLIBCXX_HAS_GTHREADS]
2815	(__cpp_lib_shared_timed_mutex, __cpp_lib_scoped_lock)
2816	(__cpp_lib_shared_mutex): Don't define when Gthreads not in use.
2817	[!_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP]
2818	(__cpp_lib_has_unique_object_representations): Don't define when
2819	builtin not available.
2820	[!_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE] (__cpp_lib_is_aggregate):
2821	Likewise.
2822	[!_GLIBCXX_HAVE_BUILTIN_LAUNDER] (__cpp_lib_launder): Likewise.
2823	* libsupc++/new (_GLIBCXX_HAVE_BUILTIN_LAUNDER): Remove definition
2824	from here.
2825
2826	* doc/xml/manual/test.xml: Improve documentation on writing tests for
2827	newer standards.
2828	* doc/xml/manual/using.xml: Document all headers for C++11 and later.
2829	* doc/html/*: Regenerate.
2830
2831	* include/ext/pointer.h [__cplusplus >= 201103L]
2832	(_Pointer_adapter::operator bool): Add explicit conversion operator
2833	to replace safe bool idiom.
2834
28352018-07-30  Jonathan Wakely  <jwakely@redhat.com>
2836
2837	PR libstdc++/86734
2838	* include/bits/stl_iterator.h (reverse_iterator::operator->): Call
2839	_S_to_pointer (LWG 1052, LWG 2118).
2840	(reverse_iterator::_S_to_pointer): Define overloaded helper functions.
2841	* testsuite/24_iterators/reverse_iterator/dr1052.cc: New test.
2842	* testsuite/24_iterators/reverse_iterator/dr2188.cc: New test.
2843
2844	* libsupc++/new_opa.cc (operator new(size_t, align_val_t)): Add
2845	workaround for aligned_alloc bug on AIX.
2846	* testsuite/18_support/new_aligned.cc: New test.
2847
28482018-07-26  Marek Polacek  <polacek@redhat.com>
2849
2850	* testsuite/30_threads/condition_variable_any/cond.cc: New.
2851
28522018-07-26  Marek Polacek  <polacek@redhat.com>
2853
2854	* src/c++98/locale_init.cc: Fix #ifdef condition.
2855
28562018-07-26  Jonathan Wakely  <jwakely@redhat.com>
2857
2858	* testsuite/18_support/aligned_alloc/aligned_alloc.cc: Add
2859	dg-require-cstdint directive.
2860	* testsuite/20_util/allocator/overaligned.cc: Likewise.
2861	* testsuite/20_util/any/cons/aligned.cc: Likewise.
2862	* testsuite/20_util/monotonic_buffer_resource/allocate.cc: Likewise.
2863	* testsuite/20_util/monotonic_buffer_resource/deallocate.cc: Likewise.
2864	* testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
2865	Likewise.
2866	* testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
2867	* testsuite/23_containers/list/modifiers/insert/25288.cc: Likewise.
2868	* testsuite/23_containers/set/allocator/move_assign.cc: Likewise.
2869	* testsuite/25_algorithms/make_heap/complexity.cc: Likewise.
2870	* testsuite/25_algorithms/pop_heap/complexity.cc: Require cstdint and
2871	random_device effective-target.
2872	* testsuite/25_algorithms/push_heap/complexity.cc: Likewise.
2873	* testsuite/25_algorithms/sample/1.cc: Require cstdint.
2874	* testsuite/25_algorithms/sample/2.cc: Likewise.
2875	* testsuite/25_algorithms/sort_heap/complexity.cc: Require cstdint
2876	and random_device.
2877	* testsuite/26_numerics/headers/random/types_std_c++0x.cc: Require
2878	cstdint.
2879	* testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
2880	Likewise.
2881	* testsuite/26_numerics/random/discard_block_engine/requirements/
2882	constexpr_data.cc: Likewise.
2883	* testsuite/26_numerics/random/discard_block_engine/requirements/
2884	constexpr_functions.cc: Likewise.
2885	* testsuite/26_numerics/random/independent_bits_engine/requirements/
2886	constexpr_functions.cc: Likewise.
2887	* testsuite/26_numerics/random/linear_congruential_engine/requirements/
2888	constexpr_data.cc: Likewise.
2889	* testsuite/26_numerics/random/linear_congruential_engine/requirements/
2890	constexpr_functions.cc: Likewise.
2891	* testsuite/26_numerics/random/mersenne_twister_engine/requirements/
2892	constexpr_data.cc: Likewise.
2893	* testsuite/26_numerics/random/mersenne_twister_engine/requirements/
2894	constexpr_functions.cc: Likewise.
2895	* testsuite/26_numerics/random/pr60037-neg.cc: Likewise.
2896	* testsuite/26_numerics/random/seed_seq/cons/65631.cc: Likewise.
2897	* testsuite/26_numerics/random/shuffle_order_engine/requirements/
2898	constexpr_data.cc: Add dg-require-cstdint directive.
2899	* testsuite/26_numerics/random/shuffle_order_engine/requirements/
2900	constexpr_functions.cc: Likewise.
2901	* testsuite/26_numerics/random/subtract_with_carry_engine/requirements/
2902	constexpr_data.cc: Likewise.
2903	* testsuite/26_numerics/random/subtract_with_carry_engine/requirements/
2904	constexpr_functions.cc: Likewise.
2905	* testsuite/26_numerics/random/uniform_real_distribution/operators/
2906	64351.cc: Likewise.
2907	* testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Likewise.
2908	* testsuite/experimental/algorithm/sample-2.cc: Likewise.
2909	* testsuite/experimental/algorithm/sample.cc: Likewise.
2910	* testsuite/experimental/algorithm/search.cc: Likewise.
2911	* testsuite/experimental/algorithm/shuffle.cc: Likewise.
2912	* testsuite/experimental/any/cons/aligned.cc: Likewise.
2913	* testsuite/experimental/memory_resource/new_delete_resource.cc:
2914	Likewise.
2915	* testsuite/experimental/memory_resource/resource_adaptor.cc: Likewise.
2916	* testsuite/experimental/random/randint.cc: Likewise.
2917	* testsuite/experimental/source_location/1.cc: Likewise.
2918	* testsuite/ext/bitmap_allocator/overaligned.cc: Likewise.
2919	* testsuite/ext/malloc_allocator/overaligned.cc: Likewise.
2920	* testsuite/ext/mt_allocator/overaligned.cc: Likewise.
2921	* testsuite/ext/new_allocator/overaligned.cc: Likewise.
2922	* testsuite/ext/pb_ds/regression/hash_map_rand.cc: Likewise.
2923	* testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
2924	* testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
2925	* testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
2926	* testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
2927	* testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
2928	* testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
2929	* testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
2930	* testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
2931	* testsuite/ext/pool_allocator/overaligned.cc: Likewise.
2932	* testsuite/ext/throw_allocator/check_allocate_max_size.cc: Likewise.
2933	* testsuite/ext/throw_allocator/check_deallocate_null.cc: Likewise.
2934	* testsuite/ext/throw_allocator/check_delete.cc: Likewise.
2935	* testsuite/ext/throw_allocator/check_new.cc: Likewise.
2936	* testsuite/ext/throw_allocator/deallocate_global.cc: Likewise.
2937	* testsuite/ext/throw_allocator/deallocate_local.cc: Likewise.
2938	* testsuite/ext/throw_allocator/explicit_instantiation.cc: Likewise.
2939	* testsuite/ext/throw_allocator/variadic_construct.cc: Likewise.
2940	* testsuite/tr1/8_c_compatibility/cinttypes/functions.cc: Likewise.
2941
2942	* testsuite/30_threads/recursive_mutex/cons/1.cc: Likewise.
2943	* testsuite/30_threads/recursive_mutex/cons/assign_neg.cc: Likewise.
2944	* testsuite/30_threads/recursive_mutex/cons/copy_neg.cc: Likewise.
2945	* testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc:
2946	Likewise.
2947	* testsuite/30_threads/recursive_mutex/lock/1.cc: Likewise.
2948	* testsuite/30_threads/recursive_mutex/native_handle/1.cc: Likewise.
2949	* testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc:
2950	Likewise.
2951	* testsuite/30_threads/recursive_mutex/requirements/standard_layout.cc:
2952	Likewise.
2953	* testsuite/30_threads/recursive_mutex/requirements/typedefs.cc:
2954	Likewise.
2955	* testsuite/30_threads/recursive_mutex/try_lock/1.cc: Likewise.
2956	* testsuite/30_threads/recursive_mutex/try_lock/2.cc: Likewise.
2957	* testsuite/30_threads/recursive_mutex/unlock/1.cc: Likewise.
2958	* testsuite/30_threads/recursive_mutex/unlock/2.cc: Likewise.
2959	* testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Likewise.
2960	* testsuite/30_threads/recursive_timed_mutex/cons/assign_neg.cc:
2961	Likewise.
2962	* testsuite/30_threads/recursive_timed_mutex/cons/copy_neg.cc:
2963	Likewise.
2964	* testsuite/30_threads/recursive_timed_mutex/dest/
2965	destructor_locked.cc: Likewise.
2966	* testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise.
2967	* testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise.
2968	* testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc:
2969	Likewise.
2970	* testsuite/30_threads/recursive_timed_mutex/native_handle/
2971	typesizes.cc: Likewise.
2972	* testsuite/30_threads/recursive_timed_mutex/requirements/typedefs.cc:
2973	Likewise.
2974	* testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc:
2975	Likewise.
2976	* testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc:
2977	Likewise.
2978	* testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc:
2979	Likewise.
2980	* testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc:
2981	Likewise.
2982	* testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc:
2983	Likewise.
2984	* testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc:
2985	Likewise.
2986	* testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc:
2987	Likewise.
2988	* testsuite/30_threads/recursive_timed_mutex/unlock/1.cc: Likewise.
2989	* testsuite/30_threads/recursive_timed_mutex/unlock/2.cc: Likewise.
2990	* testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
2991	* testsuite/30_threads/scoped_lock/requirements/
2992	explicit_instantiation.cc: Likewise.
2993	* testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Likewise.
2994	* testsuite/30_threads/shared_future/cons/assign.cc: Likewise.
2995	* testsuite/30_threads/shared_future/cons/constexpr.cc: Likewise.
2996	* testsuite/30_threads/shared_future/cons/copy.cc: Likewise.
2997	* testsuite/30_threads/shared_future/cons/default.cc: Likewise.
2998	* testsuite/30_threads/shared_future/cons/move.cc: Likewise.
2999	* testsuite/30_threads/shared_future/cons/move_assign.cc: Likewise.
3000	* testsuite/30_threads/shared_future/members/45133.cc: Likewise.
3001	* testsuite/30_threads/shared_future/members/get.cc: Likewise.
3002	* testsuite/30_threads/shared_future/members/get2.cc: Likewise.
3003	* testsuite/30_threads/shared_future/members/valid.cc: Likewise.
3004	* testsuite/30_threads/shared_future/members/wait.cc: Likewise.
3005	* testsuite/30_threads/shared_future/members/wait_for.cc: Likewise.
3006	* testsuite/30_threads/shared_future/members/wait_until.cc: Likewise.
3007	* testsuite/30_threads/shared_future/requirements/
3008	explicit_instantiation.cc: Likewise.
3009	* testsuite/30_threads/shared_lock/cons/1.cc: Likewise.
3010	* testsuite/30_threads/shared_lock/cons/2.cc: Likewise.
3011	* testsuite/30_threads/shared_lock/cons/3.cc: Likewise.
3012	* testsuite/30_threads/shared_lock/cons/4.cc: Likewise.
3013	* testsuite/30_threads/shared_lock/cons/5.cc: Likewise.
3014	* testsuite/30_threads/shared_lock/cons/6.cc: Likewise.
3015	* testsuite/30_threads/shared_lock/locking/1.cc: Likewise.
3016	* testsuite/30_threads/shared_lock/locking/2.cc: Likewise.
3017	* testsuite/30_threads/shared_lock/locking/3.cc: Likewise.
3018	* testsuite/30_threads/shared_lock/locking/4.cc: Likewise.
3019	* testsuite/30_threads/shared_lock/modifiers/1.cc: Likewise.
3020	* testsuite/30_threads/shared_lock/requirements/
3021	explicit_instantiation.cc: Likewise.
3022	* testsuite/30_threads/shared_lock/requirements/typedefs.cc: Likewise.
3023	* testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
3024	* testsuite/30_threads/shared_mutex/cons/assign_neg.cc: Likewise.
3025	* testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
3026	* testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
3027	Likewise.
3028	* testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
3029	* testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
3030	* testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
3031	* testsuite/30_threads/shared_timed_mutex/cons/1.cc: Likewise.
3032	* testsuite/30_threads/shared_timed_mutex/cons/assign_neg.cc: Likewise.
3033	* testsuite/30_threads/shared_timed_mutex/cons/copy_neg.cc: Likewise.
3034	* testsuite/30_threads/shared_timed_mutex/requirements/
3035	standard_layout.cc: Likewise.
3036	* testsuite/30_threads/shared_timed_mutex/try_lock/1.cc: Likewise.
3037	* testsuite/30_threads/shared_timed_mutex/try_lock/2.cc: Likewise.
3038	* testsuite/30_threads/shared_timed_mutex/try_lock/3.cc: Likewise.
3039	* testsuite/30_threads/shared_timed_mutex/unlock/1.cc: Likewise.
3040	* testsuite/30_threads/this_thread/1.cc: Likewise.
3041	* testsuite/30_threads/this_thread/2.cc: Likewise.
3042	* testsuite/30_threads/this_thread/3.cc: Likewise.
3043	* testsuite/30_threads/this_thread/4.cc: Likewise.
3044	* testsuite/30_threads/this_thread/58038.cc: Likewise.
3045	* testsuite/30_threads/thread/70503.cc: Likewise.
3046	* testsuite/30_threads/thread/84532.cc: Likewise.
3047	* testsuite/30_threads/thread/adl.cc: Likewise.
3048	* testsuite/30_threads/thread/cons/1.cc: Likewise.
3049	* testsuite/30_threads/thread/cons/2.cc: Likewise.
3050	* testsuite/30_threads/thread/cons/3.cc: Likewise.
3051	* testsuite/30_threads/thread/cons/4.cc: Likewise.
3052	* testsuite/30_threads/thread/cons/49668.cc: Likewise.
3053	* testsuite/30_threads/thread/cons/5.cc: Likewise.
3054	* testsuite/30_threads/thread/cons/6.cc: Likewise.
3055	* testsuite/30_threads/thread/cons/7.cc: Likewise.
3056	* testsuite/30_threads/thread/cons/8.cc: Likewise.
3057	* testsuite/30_threads/thread/cons/84535.cc: Likewise.
3058	* testsuite/30_threads/thread/cons/9.cc: Likewise.
3059	* testsuite/30_threads/thread/cons/assign_neg.cc: Likewise.
3060	* testsuite/30_threads/thread/cons/copy_neg.cc: Likewise.
3061	* testsuite/30_threads/thread/cons/lwg2097.cc: Likewise.
3062	* testsuite/30_threads/thread/cons/moveable.cc: Likewise.
3063	* testsuite/30_threads/thread/cons/terminate.cc: Likewise.
3064	* testsuite/30_threads/thread/id/operators.cc: Likewise.
3065	* testsuite/30_threads/thread/members/1.cc: Likewise.
3066	* testsuite/30_threads/thread/members/2.cc: Likewise.
3067	* testsuite/30_threads/thread/members/3.cc: Likewise.
3068	* testsuite/30_threads/thread/members/4.cc: Likewise.
3069	* testsuite/30_threads/thread/members/5.cc: Likewise.
3070	* testsuite/30_threads/thread/members/hardware_concurrency.cc:
3071	Likewise.
3072	* testsuite/30_threads/thread/native_handle/cancel.cc: Likewise.
3073	* testsuite/30_threads/thread/swap/1.cc: Likewise.
3074	* testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
3075	* testsuite/30_threads/timed_mutex/cons/assign_neg.cc: Likewise.
3076	* testsuite/30_threads/timed_mutex/cons/copy_neg.cc: Likewise.
3077	* testsuite/30_threads/timed_mutex/dest/destructor_locked.cc: Likewise.
3078	* testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
3079	* testsuite/30_threads/timed_mutex/native_handle/1.cc: Likewise.
3080	* testsuite/30_threads/timed_mutex/native_handle/typesizes.cc:
3081	Likewise.
3082	* testsuite/30_threads/timed_mutex/requirements/
3083	standard_layout.cc: Likewise.
3084	* testsuite/30_threads/timed_mutex/requirements/typedefs.cc: Likewise.
3085	* testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
3086	* testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
3087	* testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise.
3088	* testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise.
3089	* testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise.
3090	* testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise.
3091	* testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise.
3092	* testsuite/30_threads/timed_mutex/try_lock_until/57641.cc: Likewise.
3093	* testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
3094	* testsuite/30_threads/timed_mutex/unlock/2.cc: Likewise.
3095	* testsuite/30_threads/try_lock/1.cc: Likewise.
3096	* testsuite/30_threads/try_lock/2.cc: Likewise.
3097	* testsuite/30_threads/try_lock/3.cc: Likewise.
3098	* testsuite/30_threads/try_lock/4.cc: Likewise.
3099	* testsuite/30_threads/unique_lock/cons/1.cc: Likewise.
3100	* testsuite/30_threads/unique_lock/cons/2.cc: Likewise.
3101	* testsuite/30_threads/unique_lock/cons/3.cc: Likewise.
3102	* testsuite/30_threads/unique_lock/cons/4.cc: Likewise.
3103	* testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
3104	* testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
3105	* testsuite/30_threads/unique_lock/locking/1.cc: Likewise.
3106	* testsuite/30_threads/unique_lock/locking/2.cc: Likewise.
3107	* testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
3108	* testsuite/30_threads/unique_lock/locking/4.cc: Likewise.
3109	* testsuite/30_threads/unique_lock/modifiers/1.cc: Likewise.
3110	* testsuite/30_threads/unique_lock/requirements/
3111	explicit_instantiation.cc: Likewise.
3112	* testsuite/30_threads/unique_lock/requirements/typedefs.cc: Likewise.
3113
3114	* testsuite/30_threads/async/42819.cc: Remove dg-require-cstdint
3115	directive.
3116	* testsuite/30_threads/async/49668.cc: Likewise.
3117	* testsuite/30_threads/async/54297.cc: Likewise.
3118	* testsuite/30_threads/async/84532.cc: Likewise.
3119	* testsuite/30_threads/async/any.cc: Likewise.
3120	* testsuite/30_threads/async/async.cc: Likewise.
3121	* testsuite/30_threads/async/except.cc: Likewise.
3122	* testsuite/30_threads/async/forced_unwind.cc: Likewise.
3123	* testsuite/30_threads/async/launch.cc: Likewise.
3124	* testsuite/30_threads/async/lwg2021.cc: Likewise.
3125	* testsuite/30_threads/async/sync.cc: Likewise.
3126	* testsuite/30_threads/call_once/39909.cc: Likewise.
3127	* testsuite/30_threads/call_once/49668.cc: Likewise.
3128	* testsuite/30_threads/call_once/60497.cc: Likewise.
3129	* testsuite/30_threads/call_once/call_once1.cc: Likewise.
3130	* testsuite/30_threads/call_once/constexpr.cc: Likewise.
3131	* testsuite/30_threads/call_once/dr2442.cc: Likewise.
3132	* testsuite/30_threads/call_once/once_flag.cc: Likewise.
3133	* testsuite/30_threads/condition_variable/54185.cc: Likewise.
3134	* testsuite/30_threads/condition_variable/cons/1.cc: Likewise.
3135	* testsuite/30_threads/condition_variable/cons/assign_neg.cc:
3136	Likewise.
3137	* testsuite/30_threads/condition_variable/cons/copy_neg.cc: Likewise.
3138	* testsuite/30_threads/condition_variable/members/1.cc: Likewise.
3139	* testsuite/30_threads/condition_variable/members/2.cc: Likewise.
3140	* testsuite/30_threads/condition_variable/members/3.cc: Likewise.
3141	* testsuite/30_threads/condition_variable/members/53841.cc: Likewise.
3142	* testsuite/30_threads/condition_variable/members/68519.cc: Likewise.
3143	* testsuite/30_threads/condition_variable/native_handle/typesizes.cc:
3144	Likewise.
3145	* testsuite/30_threads/condition_variable/requirements/
3146	standard_layout.cc: Likewise.
3147	* testsuite/30_threads/condition_variable/requirements/typedefs.cc:
3148	* Likewise.
3149	* testsuite/30_threads/condition_variable_any/50862.cc: Likewise.
3150	* testsuite/30_threads/condition_variable_any/53830.cc: Likewise.
3151	* testsuite/30_threads/condition_variable_any/cons/1.cc: Likewise.
3152	* testsuite/30_threads/condition_variable_any/cons/assign_neg.cc:
3153	Likewise.
3154	* testsuite/30_threads/condition_variable_any/cons/copy_neg.cc:
3155	Likewise.
3156	* testsuite/30_threads/condition_variable_any/members/1.cc: Likewise.
3157	* testsuite/30_threads/condition_variable_any/members/2.cc: Likewise.
3158	* testsuite/30_threads/future/cons/assign_neg.cc: Likewise.
3159	* testsuite/30_threads/future/cons/constexpr.cc: Likewise.
3160	* testsuite/30_threads/future/cons/copy_neg.cc: Likewise.
3161	* testsuite/30_threads/future/cons/default.cc: Likewise.
3162	* testsuite/30_threads/future/cons/move.cc: Likewise.
3163	* testsuite/30_threads/future/cons/move_assign.cc: Likewise.
3164	* testsuite/30_threads/future/members/45133.cc: Likewise.
3165	* testsuite/30_threads/future/members/get.cc: Likewise.
3166	* testsuite/30_threads/future/members/get2.cc: Likewise.
3167	* testsuite/30_threads/future/members/share.cc: Likewise.
3168	* testsuite/30_threads/future/members/valid.cc: Likewise.
3169	* testsuite/30_threads/future/members/wait.cc: Likewise.
3170	* testsuite/30_threads/future/members/wait_for.cc: Likewise.
3171	* testsuite/30_threads/future/members/wait_until.cc: Likewise.
3172	* testsuite/30_threads/future/requirements/explicit_instantiation.cc:
3173	Likewise.
3174	* testsuite/30_threads/headers/condition_variable/types_std_c++0x.cc:
3175	Likewise.
3176	* testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
3177	* testsuite/30_threads/headers/mutex/types_std_c++0x.cc: Likewise.
3178	* testsuite/30_threads/headers/thread/std_c++0x_neg.cc: Likewise.
3179	* testsuite/30_threads/headers/thread/types_std_c++0x.cc: Likewise.
3180	* testsuite/30_threads/lock/1.cc: Likewise.
3181	* testsuite/30_threads/lock/2.cc: Likewise.
3182	* testsuite/30_threads/lock/3.cc: Likewise.
3183	* testsuite/30_threads/lock/4.cc: Likewise.
3184	* testsuite/30_threads/lock_guard/cons/1.cc: Likewise.
3185	* testsuite/30_threads/lock_guard/requirements/
3186	explicit_instantiation.cc: Likewise.
3187	* testsuite/30_threads/lock_guard/requirements/typedefs.cc: Likewise.
3188	* testsuite/30_threads/mutex/cons/1.cc: Likewise.
3189	* testsuite/30_threads/mutex/cons/assign_neg.cc: Likewise.
3190	* testsuite/30_threads/mutex/cons/constexpr.cc: Likewise.
3191	* testsuite/30_threads/mutex/cons/copy_neg.cc: Likewise.
3192	* testsuite/30_threads/mutex/dest/destructor_locked.cc: Likewise.
3193	* testsuite/30_threads/mutex/lock/1.cc: Likewise.
3194	* testsuite/30_threads/mutex/native_handle/1.cc: Likewise.
3195	* testsuite/30_threads/mutex/native_handle/typesizes.cc: Likewise.
3196	* testsuite/30_threads/mutex/requirements/standard_layout.cc::
3197	Likewise.
3198	* testsuite/30_threads/mutex/requirements/typedefs.cc: Likewise.
3199	* testsuite/30_threads/mutex/try_lock/1.cc: Likewise.
3200	* testsuite/30_threads/mutex/try_lock/2.cc: Likewise.
3201	* testsuite/30_threads/mutex/unlock/1.cc: Likewise.
3202	* testsuite/30_threads/mutex/unlock/2.cc: Likewise.
3203	* testsuite/30_threads/once_flag/cons/constexpr.cc: Likewise.
3204	* testsuite/30_threads/packaged_task/49668.cc: Likewise.
3205	* testsuite/30_threads/packaged_task/60564.cc: Likewise.
3206	* testsuite/30_threads/packaged_task/cons/1.cc: Likewise.
3207	* testsuite/30_threads/packaged_task/cons/2.cc: Likewise.
3208	* testsuite/30_threads/packaged_task/cons/3.cc: Likewise.
3209	* testsuite/30_threads/packaged_task/cons/56492.cc: Likewise.
3210	* testsuite/30_threads/packaged_task/cons/alloc.cc: Likewise.
3211	* testsuite/30_threads/packaged_task/cons/alloc2.cc: Likewise.
3212	* testsuite/30_threads/packaged_task/cons/alloc_min.cc: Likewise.
3213	* testsuite/30_threads/packaged_task/cons/assign_neg.cc: Likewise.
3214	* testsuite/30_threads/packaged_task/cons/copy_neg.cc: Likewise.
3215	* testsuite/30_threads/packaged_task/cons/move.cc: Likewise.
3216	* testsuite/30_threads/packaged_task/cons/move_assign.cc: Likewise.
3217	* testsuite/30_threads/packaged_task/members/at_thread_exit.cc:
3218	Likewise.
3219	* testsuite/30_threads/packaged_task/members/get_future.cc: Likewise.
3220	* testsuite/30_threads/packaged_task/members/get_future2.cc: Likewise.
3221	* testsuite/30_threads/packaged_task/members/invoke.cc: Likewise.
3222	* testsuite/30_threads/packaged_task/members/invoke2.cc: Likewise.
3223	* testsuite/30_threads/packaged_task/members/invoke3.cc: Likewise.
3224	* testsuite/30_threads/packaged_task/members/invoke4.cc: Likewise.
3225	* testsuite/30_threads/packaged_task/members/invoke5.cc: Likewise.
3226	* testsuite/30_threads/packaged_task/members/reset.cc: Likewise.
3227	* testsuite/30_threads/packaged_task/members/reset2.cc: Likewise.
3228	* testsuite/30_threads/packaged_task/members/swap.cc: Likewise.
3229	* testsuite/30_threads/packaged_task/members/valid.cc: Likewise.
3230	* testsuite/30_threads/packaged_task/requirements/
3231	explicit_instantiation.cc: Likewise.
3232	* testsuite/30_threads/packaged_task/uses_allocator.cc: Likewise.
3233	* testsuite/30_threads/promise/60966.cc: Likewise.
3234	* testsuite/30_threads/promise/69106.cc: Likewise.
3235	* testsuite/30_threads/promise/cons/1.cc: Likewise.
3236	* testsuite/30_threads/promise/cons/alloc.cc: Likewise.
3237	* testsuite/30_threads/promise/cons/alloc2.cc: Likewise.
3238	* testsuite/30_threads/promise/cons/alloc_min.cc: Likewise.
3239	* testsuite/30_threads/promise/cons/assign_neg.cc: Likewise.
3240	* testsuite/30_threads/promise/cons/copy_neg.cc: Likewise.
3241	* testsuite/30_threads/promise/cons/move.cc: Likewise.
3242	* testsuite/30_threads/promise/cons/move_assign.cc: Likewise.
3243	* testsuite/30_threads/promise/members/at_thread_exit.cc: Likewise.
3244	* testsuite/30_threads/promise/members/at_thread_exit2.cc: Likewise.
3245	* testsuite/30_threads/promise/members/get_future.cc: Likewise.
3246	* testsuite/30_threads/promise/members/get_future2.cc: Likewise.
3247	* testsuite/30_threads/promise/members/set_exception.cc: Likewise.
3248	* testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
3249	* testsuite/30_threads/promise/members/set_value.cc: Likewise.
3250	* testsuite/30_threads/promise/members/set_value2.cc: Likewise.
3251	* testsuite/30_threads/promise/members/set_value3.cc: Likewise.
3252	* testsuite/30_threads/promise/members/swap.cc: Likewise.
3253	* testsuite/30_threads/promise/requirements/explicit_instantiation.cc:
3254	* Likewise.
3255	* testsuite/30_threads/promise/uses_allocator.cc: Likewise.
3256
3257	* testsuite/18_support/numeric_limits/char16_32_t.cc: Qualify names
3258	from namespace std.
3259	* testsuite/20_util/align/2.cc: Remove dg-require-cstdint directive.
3260	* testsuite/20_util/duration/arithmetic/1.cc: Likewise.
3261	* testsuite/20_util/duration/arithmetic/2.cc: Likewise.
3262	* testsuite/20_util/duration/arithmetic/dr2020.cc: Likewise.
3263	* testsuite/20_util/duration/arithmetic/dr934-1.cc: Likewise.
3264	* testsuite/20_util/duration/arithmetic/dr934-2.cc: Likewise.
3265	* testsuite/20_util/duration/comparison_operators/1.cc: Likewise.
3266	* testsuite/20_util/duration/cons/1.cc: Likewise.
3267	* testsuite/20_util/duration/cons/1_neg.cc: Likewise.
3268	* testsuite/20_util/duration/cons/2.cc: Likewise.
3269	* testsuite/20_util/duration/cons/54025.cc: Likewise.
3270	* testsuite/20_util/duration/cons/dr974_neg.cc: Likewise.
3271	* testsuite/20_util/duration/requirements/explicit_instantiation/
3272	explicit_instantiation.cc: Likewise.
3273	* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
3274	* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
3275	* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
3276	* testsuite/20_util/make_signed/requirements/typedefs-4.cc: Likewise.
3277	* testsuite/20_util/ratio/comparisons/comp1.cc: Likewise.
3278	* testsuite/20_util/ratio/comparisons/comp2.cc: Likewise.
3279	* testsuite/20_util/ratio/comparisons/comp3.cc: Likewise.
3280	* testsuite/20_util/ratio/cons/cons1.cc: Likewise.
3281	* testsuite/20_util/ratio/operations/45866.cc: Likewise.
3282	* testsuite/20_util/ratio/operations/47913.cc: Likewise.
3283	* testsuite/20_util/ratio/operations/53840.cc: Likewise.
3284	* testsuite/20_util/ratio/operations/ops1.cc: Likewise.
3285	* testsuite/20_util/shared_ptr/atomic/3.cc: Likewise.
3286	* testsuite/20_util/system_clock/1.cc: Likewise.
3287	* testsuite/20_util/time_point/1.cc: Likewise.
3288	* testsuite/20_util/time_point/2.cc: Likewise.
3289	* testsuite/20_util/time_point/3.cc: Likewise.
3290	* testsuite/20_util/time_point/requirements/explicit_instantiation/
3291	explicit_instantiation.cc: Likewise.
3292	* testsuite/21_strings/basic_string/requirements/
3293	explicit_instantiation/char16_t/1.cc: Likewise.
3294	* testsuite/21_strings/basic_string/requirements/
3295	explicit_instantiation/char32_t/1.cc: Likewise.
3296	* testsuite/21_strings/basic_string_view/requirements/
3297	explicit_instantiation/char16_t/1.cc: Likewise.
3298	* testsuite/21_strings/basic_string_view/requirements/
3299	explicit_instantiation/char32_t/1.cc: Likewise.
3300	* testsuite/21_strings/char_traits/requirements/
3301	explicit_instantiation/char16_t/1.cc: Likewise.
3302	* testsuite/21_strings/char_traits/requirements/
3303	explicit_instantiation/char32_t/1.cc: Likewise.
3304	* testsuite/21_strings/headers/string/types_std_c++0x.cc: Likewise.
3305	* testsuite/22_locale/codecvt/char16_t.cc: Likewise.
3306	* testsuite/22_locale/codecvt/char32_t.cc: Likewise.
3307	* testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
3308	Likewise.
3309	* testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc:
3310	Likewise.
3311	* testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
3312	Likewise.
3313	* testsuite/22_locale/codecvt/utf8.cc: Likewise.
3314	* testsuite/23_containers/vector/bool/72847.cc: Likewise.
3315	* testsuite/23_containers/vector/debug/multithreaded_swap.cc:
3316	Likewise.
3317	* testsuite/experimental/string_view/requirements/
3318	explicit_instantiation/char16_t/1.cc: Likewise.
3319	* testsuite/experimental/string_view/requirements/
3320	explicit_instantiation/char32_t/1.cc: Likewise.
3321	* testsuite/ext/vstring/requirements/explicit_instantiation/char16_t/
3322	1.cc: Likewise.
3323	* testsuite/ext/vstring/requirements/explicit_instantiation/char32_t/
3324	1.cc: Likewise.
3325
3326	* include/ext/throw_allocator.h [!_GLIBCXX_USE_C99_STDINT_TR1]
3327	(random_condition, throw_value_random, throw_allocator_random)
3328	(std::hash<throw_value_random>): Do not define when <tr1/random> is
3329	not usable.
3330	* src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_C99_STDINT_TR1]: Do not
3331	define transactional memory support when <stdint.h> is not usable.
3332
3333	* include/bits/hashtable_policy.h (__detail::__clp2): Use faster
3334	implementation that doesn't depend on <stdint.h> types.
3335	* include/std/memory (align) [!_GLIBCXX_USE_C99_STDINT_TR1]: Use
3336	std::size_t when std::uintptr_t is not usable.
3337	[!_GLIBCXX_USE_C99_STDINT_TR1] (pointer_safety, declare_reachable)
3338	(undeclare_reachable, declare_no_pointers, undeclare_no_pointers):
3339	Define independent of _GLIBCXX_USE_C99_STDINT_TR1.
3340
3341	* include/bits/basic_string.h [!_GLIBCXX_USE_C99_STDINT_TR1]
3342	(hash<u16string>, hash<u32string>): Remove dependency on
3343	_GLIBCXX_USE_C99_STDINT_TR1.
3344	* include/bits/char_traits.h [!_GLIBCXX_USE_C99_STDINT_TR1]
3345	(char_traits<char16_t>, char_traits<char32_t>): Remove dependency on
3346	_GLIBCXX_USE_C99_STDINT_TR1. Use __UINT_LEAST16_TYPE__ and
3347	__UINT_LEAST32_TYPE__ or make_unsigned when <stdint.h> is not usable.
3348	* include/bits/codecvt.h [!_GLIBCXX_USE_C99_STDINT_TR1]
3349	(codecvt<char16_t, char, mbstate_t>)
3350	(codecvt<char32_t, char, mbstate_t>)
3351	(codecvt_byname<char16_t, char, mbstate_t>)
3352	(codecvt_byname<char32_t, char, mbstate_t>): Remove dependency
3353	on _GLIBCXX_USE_C99_STDINT_TR1.
3354	* include/bits/locale_facets.h [!_GLIBCXX_USE_C99_STDINT_TR1]
3355	(_GLIBCXX_NUM_UNICODE_FACETS): Likewise.
3356	* include/bits/stringfwd.h [!_GLIBCXX_USE_C99_STDINT_TR1]
3357	(char_traits<char16_t>, char_traits<char32_t>)
3358	(basic_string<char16_t>, basic_string<char32_t>): Remove dependency
3359	on _GLIBCXX_USE_C99_STDINT_TR1.
3360	* include/experimental/string_view [!_GLIBCXX_USE_C99_STDINT_TR1]
3361	(u16string_view, u32string_view, hash<u16string_view>)
3362	(hash<u32string_view>, operator""sv(const char16_t, size_t))
3363	(operator""sv(const char32_t, size_t)): Likewise.
3364	* include/ext/vstring.h [!_GLIBCXX_USE_C99_STDINT_TR1]
3365	(hash<__u16vstring>, hash<__u32vstring>): Likewise.
3366	* include/ext/vstring_fwd.h [!_GLIBCXX_USE_C99_STDINT_TR1]
3367	(__u16vstring, __u16sso_string, __u16rc_string, __u32vstring)
3368	(__u32sso_string, __u32rc_string): Likewise.
3369	* include/std/codecvt [!_GLIBCXX_USE_C99_STDINT_TR1] (codecvt_mode)
3370	(codecvt_utf8, codecvt_utf16, codecvt_utf8_utf16): Likewise.
3371	* include/std/string_view [!_GLIBCXX_USE_C99_STDINT_TR1]
3372	(u16string_view, u32string_view, hash<u16string_view>)
3373	(hash<u32string_view>, operator""sv(const char16_t, size_t))
3374	(operator""sv(const char32_t, size_t)): Likewise.
3375	* src/c++11/codecvt.cc: Likewise.
3376	* src/c++98/locale_init.cc: Likewise.
3377	* src/c++98/localename.cc: Likewise.
3378
3379	* include/bits/atomic_futex.h [!_GLIBCXX_USE_C99_STDINT_TR1]
3380	(__atomic_futex_unsigned_base): Remove dependency on
3381	_GLIBCXX_USE_C99_STDINT_TR1 macro.
3382	* include/bits/unique_lock.h [!_GLIBCXX_USE_C99_STDINT_TR1]
3383	(unique_lock): Remove dependency on _GLIBCXX_USE_C99_STDINT_TR1.
3384	* include/c_global/cstdint [!_GLIBCXX_USE_C99_STDINT_TR1] (intmax_t)
3385	(uintmax_t): Define using predefined macros.
3386	* include/std/chrono [!_GLIBCXX_USE_C99_STDINT_TR1] (duration)
3387	(time_point, system_clock, high_resolution_clock, steady_clock): Remove
3388	dependency on _GLIBCXX_USE_C99_STDINT_TR1 macro.
3389	(nanoseconds, microseconds, milliseconds, seconds, minutes, hours):
3390	[!_GLIBCXX_USE_C99_STDINT_TR1]: Define using __INT64_TYPE__ or
3391	long long when <stdint.h> is not usable.
3392	* include/std/condition_variable [!_GLIBCXX_USE_C99_STDINT_TR1]
3393	(condition_variable, condition_variable_any): Remove dependency on
3394	_GLIBCXX_USE_C99_STDINT_TR1.
3395	* include/std/future [!_GLIBCXX_USE_C99_STDINT_TR1] (future, promise)
3396	(packaged_task, async): Likewise.
3397	* include/std/mutex [!_GLIBCXX_USE_C99_STDINT_TR1] (recursive_mutex)
3398	(timed_mutex, recursive_timed_mutex, try_lock, lock, scoped_lock)
3399	(once_flag, call_once): Likewise.
3400	* include/std/ratio [!_GLIBCXX_USE_C99_STDINT_TR1] (ratio): Likewise.
3401	* include/std/shared_mutex [!_GLIBCXX_USE_C99_STDINT_TR1]
3402	(shared_mutex, shared_timed_mutex, shared_lock): Likewise.
3403	* include/std/thread [!_GLIBCXX_USE_C99_STDINT_TR1] (thread)
3404	(this_thread::get_id, this_thread::yield, this_thread::sleep_for)
3405	(this_thread::sleep_until): Likewise.
3406	* src/c++11/chrono.cc: Remove dependency on
3407	_GLIBCXX_USE_C99_STDINT_TR1 macro.
3408	* src/c++11/condition_variable.cc: Likewise.
3409	* src/c++11/futex.cc: Likewise.
3410	* src/c++11/future.cc: Likewise.
3411	* src/c++11/mutex.cc: Likewise.
3412	* src/c++11/thread.cc: Likewise.
3413	* testsuite/20_util/duration/literals/range_neg.cc: Adjust dg-error.
3414	* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
3415	* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
3416	* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
3417	* testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
3418	* testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
3419
34202018-07-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3421
3422	PR libstdc++/77691
3423	* testsuite/experimental/memory_resource/new_delete_resource.cc:
3424	xfail execution on 32-bit Solaris/x86.
3425
34262018-07-26  Marc Glisse  <marc.glisse@inria.fr>
3427
3428	* include/bits/stl_vector.h (_Vector_impl_data::_M_copy_data): New.
3429	(_Vector_impl_data::_M_swap_data): Use _M_copy_data.
3430	(vector::_M_move_assign): Reorder the swaps.
3431
34322018-07-26  Jonathan Wakely  <jwakely@redhat.com>
3433
3434	PR libstdc++/86676
3435	* testsuite/20_util/monotonic_buffer_resource/release.cc: Request
3436	same alignment for post-release allocation.
3437
34382018-07-25  Jonathan Wakely  <jwakely@redhat.com>
3439
3440	PR libstdc++/86676
3441	* testsuite/20_util/monotonic_buffer_resource/release.cc: Allow for
3442	buffer being misaligned and so returned pointer not being at start.
3443
3444	* include/experimental/memory_resource: Include <cstddef> header.
3445
3446	* acinclude.m4 (glibcxx_SUBDIRS): Add src/c++17.
3447	* src/Makefile.am: Add comment.
3448	* src/c++17/Makefile.in: Regenerate.
3449
3450	* include/Makefile.am: Add new <bits/unique_lock.h> header.
3451	* include/Makefile.in: Regenerate.
3452	* include/bits/std_mutex.h [!_GLIBCXX_USE_C99_STDINT_TR1] (mutex)
3453	(lock_guard): Define independent of _GLIBCXX_USE_C99_STDINT_TR1.
3454	(unique_lock): Move definition to ...
3455	* include/bits/unique_lock.h: New header.
3456	[!_GLIBCXX_USE_C99_STDINT_TR1] (unique_lock): Define unconditionally.
3457	[_GLIBCXX_USE_C99_STDINT_TR1] (unique_lock(mutex_type&, time_point))
3458	(unique_lock(mutex_type&, duration), unique_lock::try_lock_until)
3459	(unique_lock::try_lock_for): Define only when <chrono> is usable.
3460	* include/std/condition_variable: Include <bits/unique_lock.h>.
3461	* include/std/mutex: Likewise.
3462
34632018-07-24  Jonathan Wakely  <jwakely@redhat.com>
3464
3465	* config/abi/pre/gnu.ver: Export new symbols.
3466	* configure: Regenerate.
3467	* include/Makefile.am: Add new <memory_resource> header.
3468	* include/Makefile.in: Regenerate.
3469	* include/precompiled/stdc++.h: Include <memory_resource> for C++17.
3470	* include/std/memory_resource: New header.
3471	(memory_resource, polymorphic_allocator, new_delete_resource)
3472	(null_memory_resource, set_default_resource, get_default_resource)
3473	(pool_options, monotonic_buffer_resource): Define.
3474	* src/Makefile.am: Add c++17 directory.
3475	* src/Makefile.in: Regenerate.
3476	* src/c++11/Makefile.am: Fix comment.
3477	* src/c++17/Makefile.am: Add makefile for new sub-directory.
3478	* src/c++17/Makefile.in: Generate.
3479	* src/c++17/memory_resource.cc: New.
3480	(newdel_res_t, null_res_t, constant_init, newdel_res, null_res)
3481	(default_res, new_delete_resource, null_memory_resource)
3482	(set_default_resource, get_default_resource): Define.
3483	* testsuite/20_util/memory_resource/1.cc: New test.
3484	* testsuite/20_util/memory_resource/2.cc: New test.
3485	* testsuite/20_util/monotonic_buffer_resource/1.cc: New test.
3486	* testsuite/20_util/monotonic_buffer_resource/allocate.cc: New test.
3487	* testsuite/20_util/monotonic_buffer_resource/deallocate.cc: New test.
3488	* testsuite/20_util/monotonic_buffer_resource/release.cc: New test.
3489	* testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
3490	New test.
3491	* testsuite/20_util/polymorphic_allocator/1.cc: New test.
3492	* testsuite/20_util/polymorphic_allocator/resource.cc: New test.
3493	* testsuite/20_util/polymorphic_allocator/select.cc: New test.
3494	* testsuite/util/testsuite_allocator.h (__gnu_test::memory_resource):
3495	Define concrete memory resource for testing.
3496	(__gnu_test::default_resource_mgr): Define RAII helper for changing
3497	default resource.
3498
3499	PR libstdc++/86658
3500	* include/bits/stl_algobase.h (__niter_wrap<_Iterator>): Pass unused
3501	parameter by reference, to avoid copying invalid iterators.
3502	* testsuite/25_algorithms/copy/86658.cc: New test.
3503
3504	* include/std/bit (__countl_zero, __countr_zero, __popcount): Use
3505	local variables for number of digits instead of type aliases.
3506	(__log2p1): Remove redundant branch also checked in __countl_zero.
3507
3508	* include/bits/uses_allocator.h (__is_erased_or_convertible): Reorder
3509	conditions. Add comments.
3510	* testsuite/20_util/uses_allocator/69293_neg.cc: Adjust dg-error line.
3511	* testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
3512	* testsuite/20_util/scoped_allocator/69293_neg.cc: Likewise.
3513
3514	* include/bits/uses_allocator.h (__is_erased_or_convertible): Remove.
3515	(__uses_allocator_helper): Check conditions directly instead of
3516	using __is_erased_or_convertible.
3517
3518	* include/experimental/memory_resource: Adjust comments and
3519	whitespace.
3520	(__resource_adaptor_imp): Add second template parameter for type of
3521	memory resource base class.
3522	(memory_resource): Define default constructor, destructor, copy
3523	constructor and copy assignment operator as defaulted.
3524
3525	PR libstdc++/70966
3526	* include/experimental/memory_resource (__get_default_resource): Use
3527	placement new to create an object with dynamic storage duration.
3528
35292018-07-23  Jonathan Wakely  <jwakely@redhat.com>
3530
3531	PR libstdc++/70940
3532	* include/experimental/memory_resource
3533	(__resource_adaptor_common::_AlignMgr::_M_unadjust): Add assertion.
3534	(__resource_adaptor_common::__guaranteed_alignment): New helper to
3535	give maximum alignment an allocator guarantees. Specialize for known
3536	allocators using new and malloc.
3537	(__resource_adaptor_imp::do_allocate): Use __guaranteed_alignment.
3538	(__resource_adaptor_imp::do_deallocate): Likewise.
3539	* testsuite/experimental/memory_resource/new_delete_resource.cc:
3540	Check that new and delete are called with expected sizes.
3541
35422018-07-20  Jonathan Wakely  <jwakely@redhat.com>
3543
3544	PR libstdc++/86595
3545	* include/bits/fs_dir.h (directory_entry::refresh(error_code&)): Add
3546	noexcept.
3547
35482018-07-20  Fangrui Song  <maskray@google.com>
3549
3550	* include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Use
3551	_GLIBCXX_VISIBILITY(default).
3552
35532018-07-20  Jonathan Wakely  <jwakely@redhat.com>
3554
3555	PR libstdc++/86603
3556	* include/std/version: Move __cpp_lib_list_remove_return_type macro.
3557
35582018-07-19  Jonathan Wakely  <jwakely@redhat.com>
3559
3560	* include/std/type_traits (__is_member_object_pointer_helper): Use
3561	__not_<is_function<_Tp>>::type instead of integral_constant.
3562	(__is_member_function_pointer_helper): Likewise for
3563	is_function<_Tp>::type.
3564	(is_compund): Likewise for __not_<is_fundamental<_Tp>>::type.
3565	(__do_is_nt_destructible_impl): Use __bool_constant and reindent.
3566	(is_trivially_constructible): Remove redundant use of
3567	is_constructible.
3568	(__is_trivially_copy_assignable_impl): Remove redundant use of
3569	is_copy_assignable.
3570	(__is_trivially_move_assignable_impl): Remove redundant use of
3571	is_move_assignable.
3572	(is_trivially_destructible): Use __bool_constant.
3573	* testsuite/20_util/is_trivially_assignable/value.cc: Add some more
3574	tests for scalar types.
3575
35762018-07-19  Glen Joseph Fernandes  <glenjofe@gmail.com>
3577
3578	* include/bits/stl_algobase.h (__copy_move_a): Used
3579	__is_trivially_copyable.
3580	(__copy_move_backward_a): Likewise.
3581	* testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
3582	New test.
3583
35842018-07-17  Jonathan Wakely  <jwakely@redhat.com>
3585
3586	PR libstdc++/86450
3587	* acinclude.m4 (GLIBCXX_CHECK_COMPILER_FEATURES): Don't define WERROR.
3588	(GLIBCXX_EXPORT_FLAGS): Use -Wabi=2 instead of -Wabi.
3589	* configure: Regenerate.
3590	* configure.ac: Change GLIBCXX_ENABLE_WERROR default to "no".
3591	* doc/Makefile.in: Regenerate.
3592	* fragment.am: Set WERROR_FLAG to -Werror instead of $(WERROR).
3593	* include/Makefile.in: Regenerate.
3594	* libsupc++/Makefile.in: Regenerate.
3595	* po/Makefile.in: Regenerate.
3596	* python/Makefile.in: Regenerate.
3597	* src/Makefile.in: Regenerate.
3598	* src/c++11/Makefile.in: Regenerate.
3599	* src/c++11/debug.cc: Use diagnostic pragmas to suppress warnings
3600	from -Wabi=2 that don't affect exported symbols.
3601	* src/c++98/Makefile.in: Regenerate.
3602	* src/filesystem/Makefile.in: Regenerate.
3603	* testsuite/Makefile.in: Regenerate.
3604
3605	* src/c++11/compatibility-thread-c++0x.cc [_GLIBCXX_SHARED]
3606	(_Async_state_common::_M_join): Simplify use of std::call_once and
3607	corresponding explicit instantiation.
3608	(_Maybe_wrap_member_pointer, _Bind_simple, _Bind_simple_helper)
3609	(__bind_simple): Remove definitions and explicit instantiation that
3610	are not required by exported symbols.
3611
36122018-07-16  Jonathan Wakely  <jwakely@redhat.com>
3613
3614	* scripts/create_testsuite_files: Fix typo in comment.
3615
3616	PR libstdc++/86537
3617	* include/bits/shared_ptr.h (less<shared_ptr<_Tp>>): Remove
3618	non-standard partial specialization.
3619	* include/bits/shared_ptr_base.h (_Sp_less): Remove class definition.
3620	(less<__shared_ptr<_Tp, _Lp>): Remove partial specialization.
3621	* testsuite/20_util/shared_ptr/comparison/86537.cc: New test.
3622
36232018-07-16  Andreas Krebbel  <krebbel@linux.ibm.com>
3624
3625	* config/abi/post/s390-linux-gnu/baseline_symbols.txt: Update.
3626	* config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Update.
3627	* config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
3628
36292018-07-06  François Dumont  <fdumont@gcc.gnu.org>
3630
3631	* include/debug/functions.h (__gnu_debug::__check_string): Move...
3632	* include/debug/string (__gnu_debug::__check_string): ... here.
3633	(_GLIBCXX_DEBUG_VERIFY_STR_COND_AT): New.
3634	(__glibcxx_check_string_n_constructor): New.
3635	(__gnu_debug::basic_string<>(const _CharT*, size_type, const _Alloc&)):
3636	Use latter.
3637	(__glibcxx_check_string_constructor): New.
3638	(__gnu_debug::basic_string<>(const _CharT*, const _Alloc&)):
3639	Use latter.
3640	* testsuite/21_strings/basic_string/debug/1_neg.cc: New.
3641	* testsuite/21_strings/basic_string/debug/2_neg.cc: New.
3642
36432018-07-06  Jonathan Wakely  <jwakely@redhat.com>
3644
3645	PR libstdc++/84928 use std::move in <numeric> algorithms
3646	* include/bits/stl_numeric.h (_GLIBCXX_MOVE_IF_20): Define macro to
3647	conditionally move, according to __cplusplus value.
3648	(accumulate, inner_product, partial_sum, adjacent_difference): Use
3649	_GLIBCXX_MOVE_IF_20.
3650	* testsuite/26_numerics/accumulate/lwg2055.cc: New test.
3651	* testsuite/26_numerics/adjacent_difference/lwg2055.cc: New test.
3652	* testsuite/26_numerics/inner_product/lwg2055.cc: New test.
3653	* testsuite/26_numerics/partial_sum/lwg2055.cc: New test.
3654
3655	* config/abi/pre/gnu.ver: Use wildcards to combine related patterns.
3656
3657	P0935R0 Eradicating unnecessarily explicit default constructors
3658	* config/abi/pre/gnu.ver: Tighten existing patterns and export new
3659	default constructor symbols.
3660	* include/std/sstream (basic_stringbuf, basic_istringstream)
3661	(basic_ostringstream, basic_stringstream): Remove default arguments
3662	from explicit constructors taking ios_base::openmode and add separate
3663	non-explicit default constructors.
3664	* testsuite/27_io/basic_istringstream/cons/default.cc: New.
3665	* testsuite/27_io/basic_ostringstream/cons/default.cc: New.
3666	* testsuite/27_io/basic_stringstream/cons/default.cc: New.
3667	* testsuite/27_io/basic_stringbuf/cons/char/default.cc: New.
3668	* testsuite/27_io/basic_stringbuf/cons/wchar_t/default.cc: New.
3669
3670	* include/std/variant (__accepted_index): Use void_t.
3671
36722018-07-05  Jonathan Wakely  <jwakely@redhat.com>
3673
3674	PR libstdc++/85831
3675	* config/abi/pre/gnu.ver: Export move constructors and move
3676	assignment operators for std::logic_error and std::runtime_error.
3677	* include/std/stdexcept: Use _GLIBCXX_NOTHROW instead of
3678	_GLIBCXX_USE_NOEXCEPT.
3679	(logic_error, runtime_error): Declare move constructors and move
3680	assignment operators. When not declared already, define copy
3681	constructors and copy assignment operators as explicit-defaulted.
3682	(domain_error, invalid_argument, length_error, out_of_range)
3683	(overflow_error, underflow_error): Define move constructors and move
3684	assignment operators as explicitly-defaulted.
3685	* libsupc++/exception.h (exception): Likewise.
3686	* src/c++11/cow-stdexcept.cc (logic_error, runtime_error): Define
3687	move constructors and move assignment operators as defaulted.
3688	* testsuite/19_diagnostics/stdexcept.cc: Check that constructors and
3689	assignment operators are defined.
3690
3691	* testsuite/21_strings/basic_string/cons/char/deduction.cc: XFAIL for
3692	COW strings.
3693	* testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
3694	Likewise.
3695	* testsuite/21_strings/basic_string/requirements/
3696	explicit_instantiation/debug.cc: Likewise.
3697
3698	PR libstdc++/58265
3699	* include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
3700	(basic_string::assign(basic_string&&)): Add conditional noexcept
3701	depending on the allocator's is_always_equal property (LWG 2063).
3702	* testsuite/21_strings/basic_string/modifiers/assign/char/
3703	move_assign.cc: Check for non-throwing exception specification.
3704	* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/
3705	move_assign.cc: Likewise.
3706
3707	PR libstdc++/58265
3708	* include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
3709	[_GLIBCXX_FULLY_DYNAMIC_STRING==0] (basic_string::basic_string()):
3710	Add GLIBCXX_NOEXCEPT.
3711	(basic_string::operator=(basic_string&&)): Add _GLIBCXX_NOEXCEPT_IF
3712	to depend on the allocator's is_always_equal property (LWG 2063).
3713	(basic_string::swap(basic_string&)): Likewise.
3714	* include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]
3715	(basic_string::swap(basic_string&)): Likewise.
3716	* testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
3717	Check is_nothrow_move_assignable.
3718	* testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
3719	Check is_nothrow_move_assignable.
3720	* testsuite/21_strings/basic_string/cons/char/
3721	noexcept_move_construct.cc: Likewise.
3722	* testsuite/21_strings/basic_string/cons/wchar_t/
3723	noexcept_move_construct.cc: Likewise.
3724
37252018-07-04  Jonathan Wakely  <jwakely@redhat.com>
3726
3727	P0646R1 Improving the Return Value of Erase-Like Algorithms I
3728	* include/bits/forward_list.h (__cpp_lib_list_remove_return_type):
3729	Define.
3730	(forward_list::__remove_return_type): Define typedef as size_type or
3731	void, according to __cplusplus value.
3732	(_GLIBCXX_FWDLIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
3733	empty, according to __cplusplus value.
3734	(forward_list::remove, forward_list::unique): Use typedef and macro
3735	to change return type and add abi-tag for C++2a.
3736	(forward_list::remove_if<Pred>, forward_list::unique<BinPred>): Use
3737	typedef to change return type for C++2a.
3738	* include/bits/forward_list.tcc (_GLIBCXX20_ONLY): Define macro.
3739	(forward_list::remove, forward_list::remove_if<Pred>)
3740	(forward_list::unique<BinPred>): Return number of removed elements
3741	for C++2a.
3742	* include/bits/list.tcc (_GLIBCXX20_ONLY): Define macro.
3743	(list::remove, list::unique, list::remove_if<Predicate>)
3744	(list::unique<BinaryPredicate>): Return number of removed elements
3745	for C++2a.
3746	* include/bits/stl_list.h (__cpp_lib_list_remove_return_type): Define.
3747	(list::__remove_return_type): Define typedef as size_type or
3748	void, according to __cplusplus value.
3749	(_GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
3750	empty, according to __cplusplus value.
3751	(list::remove, list::unique): Use typedef and macro to change return
3752	type and add abi-tag for C++2a.
3753	(list::remove_if<Predicate>, list::unique<BinaryPredicate>): Use
3754	typedef to change return type for C++2a.
3755	* include/std/version (__cpp_lib_list_remove_return_type): Define.
3756	* testsuite/23_containers/forward_list/operations/
3757	remove_cxx20_return.cc: New.
3758	* testsuite/23_containers/forward_list/operations/
3759	unique_cxx20_return.cc: New.
3760
3761	P0458R2 Checking for Existence of an Element in Associative Containers
3762	* include/bits/stl_map.h (map::contains): Add for C++2a.
3763	* include/bits/stl_multimap.h (multimap::contains): Likewise.
3764	* include/bits/stl_multiset.h (multiset::contains): Likewise.
3765	* include/bits/stl_set.h (set::contains): Likewise.
3766	* include/bits/stl_tree.h (__has_is_transparent_t): Define alias.
3767	(_Rb_tree::_M_find_tr, _Rb_tree::_M_count_tr)
3768	(_Rb_tree::_M_lower_bound_tr, _Rb_tree::_M_upper_bound_tr)
3769	(_Rb_tree::_M_equal_range_tr): Use __has_is_transparent_t.
3770	* include/bits/unordered_map.h (unordered_map::contains)
3771	(unordered_multimap::contains): Add for C++2a.
3772	* include/bits/unordered_set.h (unordered_set::contains)
3773	(unordered_multiset::contains): Likewise.
3774	* testsuite/23_containers/map/operations/contains.cc: New.
3775	* testsuite/23_containers/multimap/operations/contains.cc: New.
3776	* testsuite/23_containers/multiset/operations/contains.cc: New.
3777	* testsuite/23_containers/set/operations/contains.cc: New.
3778	* testsuite/23_containers/unordered_map/operations/contains.cc: New.
3779	* testsuite/23_containers/unordered_multimap/operations/contains.cc:
3780	New.
3781	* testsuite/23_containers/unordered_multiset/operations/contains.cc:
3782	New.
3783	* testsuite/23_containers/unordered_set/operations/contains.cc: New.
3784
37852018-07-04  François Dumont  <fdumont@gcc.gnu.org>
3786
3787	PR libstdc++/86272
3788	* include/debug/string
3789	(__gnu_debug::basic_string<>::insert<_Ite>(const_iterator, _Ite, _Ite)):
3790	Use __glibcxx_check_insert_range.
3791	* 21_strings/basic_string/cons/char/1.cc: Adapt test to use
3792	__gnu_debug::string when _GLIBCXX_DEBUG.
3793	* 21_strings/basic_string/init-list.cc: Likewise.
3794	* 21_strings/basic_string/modifiers/insert/char/1.cc: Likewise.
3795	* 21_strings/basic_string/modifiers/insert/char/2.cc: Likewise.
3796	* 21_strings/basic_string/modifiers/insert/char/83328.cc: Likewise.
3797	* 21_strings/basic_string/types/1.cc: Likewise.
3798
37992018-07-04  Jonathan Wakely  <jwakely@redhat.com>
3800
3801	* testsuite/25_algorithms/make_heap/complexity.cc: Require effective
3802	target for std::random_device.
3803	* testsuite/26_numerics/random/random_device/cons/default.cc:
3804	Likewise.
3805	* testsuite/experimental/algorithm/sample-2.cc: Likewise.
3806	* testsuite/experimental/algorithm/shuffle.cc: Likewise.
3807	* testsuite/experimental/random/randint.cc: Likewise.
3808	* testsuite/lib/libstdc++.exp
3809	(check_effective_target_random_device): New proc.
3810
38112018-07-04  Jonathan Wakely  <jwakely@redhat.com>
3812	    Jakub Jelinek  <jakub@redhat.com>
3813
3814	* include/std/bit (__rotl, __rotr): Fix for non-power of two sizes.
3815
38162018-07-04  Jonathan Wakely  <jwakely@redhat.com>
3817
3818	PR libstdc++/86398
3819	* include/std/type_traits (is_trivially_constructible): Check
3820	is_constructible before __is_trivially_constructible.
3821	* testsuite/20_util/is_trivially_constructible/value.cc: Add more
3822	tests, including negative cases.
3823	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Use
3824	zero for dg-error lineno.
3825	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
3826	Likewise.
3827
3828	* include/std/bit (__rotl, __rotr): Avoid branch.
3829	(_If_is_unsigned_integer): Use remove_cv_t.
3830	* testsuite/26_numerics/bit/bitops.count/popcount.cc: New.
3831
38322018-07-03  Jonathan Wakely  <jwakely@redhat.com>
3833
3834	P0556R3 Integral power-of-2 operations, P0553R2 Bit operations
3835	* include/Makefile.am: Add new header.
3836	* include/Makefile.in: Regenerate.
3837	* include/precompiled/stdc++.h: Include new header.
3838	* include/std/bit: New header.
3839	(__rotl, __rotr, __countl_zero, __countl_one, __countr_zero)
3840	(__countr_one, __popcount, __ispow2, __ceil2, __floor2, __log2p1):
3841	Define for C++14.
3842	[!__STRICT_ANSI__] (rotl, rotr, countl_zero, countl_one, countr_zero)
3843	(countr_one, popcount): Define for C++2a. Also overload for std::byte.
3844	(ispow2, ceil2, floor2, log2p1): Define for C++2a.
3845	[!__STRICT_ANSI__] (ispow2, ceil2, floor2, log2p1): Overload for
3846	std::byte.
3847	* testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: New.
3848	* testsuite/26_numerics/bit/bit.pow.two/floor2.cc: New.
3849	* testsuite/26_numerics/bit/bit.pow.two/ispow2.cc: New.
3850	* testsuite/26_numerics/bit/bit.pow.two/log2p1.cc: New.
3851	* testsuite/26_numerics/bit/bitops.rot/rotl.cc: New.
3852	* testsuite/26_numerics/bit/bitops.rot/rotr.cc: New.
3853	* testsuite/26_numerics/bit/bitops.count/countl_one.cc: New.
3854	* testsuite/26_numerics/bit/bitops.count/countl_zero.cc: New.
3855	* testsuite/26_numerics/bit/bitops.count/countr_one.cc: New.
3856	* testsuite/26_numerics/bit/bitops.count/countr_zero.cc: New.
3857
3858	* include/bits/alloc_traits.h: Remove redundant preprocessor
3859	condition.
3860
38612018-07-03  François Dumont  <fdumont@gcc.gnu.org>
3862
3863	* include/bits/stl_algobase.h (__niter_wrap): New.
3864	(__copy_move_a2(_II, _II, _OI)): Use latter.
3865	(__copy_move_backward_a2(_BI1, _BI1, _BI2)): Likewise.
3866	(fill_n(_OI, _Size, const _Tp&)): Likewise.
3867	(equal(_II1, _II1, _II2)): Use __glibcxx_requires_can_increment.
3868	* include/debug/stl_iterator.h
3869	(std::__niter_base(const __gnu_cxx::_Safe_iterator<
3870	__gnu_cxx::__normal_iterator<>, _Sequence>&)): New declaration.
3871	* include/debug/vector (__niter_base(const __gnu_cxx::_Safe_iterator<
3872	__gnu_cxx::__normal_iterator<>, _Sequence>&)): New.
3873
38742018-07-02  Jonathan Wakely  <jwakely@redhat.com>
3875
3876	P0758R1 Implicit conversion traits
3877	* include/std/type_traits [__cplusplus > 201703]
3878	(__is_convertible_helper::__is_nothrow_type): Define new member.
3879	(__is_convertible_helper<_From, _To, false>::__test_aux1): Add
3880	noexcept.
3881	(__is_convertible_helper<_From, _To, false>::__test_nothrow)
3882	(__is_convertible_helper<_From, _To, false>::__is_nothrow_type): Add
3883	new members.
3884	(is_nothrow_convertible, is_nothrow_convertible_v): Define for C++2a.
3885	* testsuite/20_util/is_nothrow_convertible/value.cc: New.
3886	* testsuite/20_util/is_nothrow_convertible/requirements/
3887	explicit_instantiation.cc: New.
3888	* testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc:
3889	New.
3890
3891	P0887R1 The identity metafunction
3892	* include/std/type_traits (type_identity, type_identity_t): Define
3893	for C++2a.
3894	* testsuite/20_util/type_identity/requirements/alias_decl.cc: New.
3895	* testsuite/20_util/type_identity/requirements/
3896	explicit_instantiation.cc:New.
3897	* testsuite/20_util/type_identity/requirements/typedefs.cc: New.
3898
3899	* include/bits/regex.h (sub_match::operator string_type): Call str().
3900	(sub_match::compare): Use _M_str() instead of str().
3901	(sub_match::_M_compare): New public function.
3902	(sub_match::__string_view): New helper type.
3903	(sub_match::_M_str): New overloaded functions to avoid creating a
3904	string_type object when not needed.
3905	(operator==, operator!=, operator<, operator>, operator<=, operator>=):
3906	Use sub_match::_M_compare instead of creating string_type objects.
3907	Fix Doxygen comments.
3908	* include/bits/regex_compiler.h (__has_contiguous_iter): Remove.
3909	(__is_contiguous_normal_iter): Rename to __is_contiguous_iter and
3910	simplify.
3911	(__enable_if_contiguous_iter, __disable_if_contiguous_iter): Use
3912	__enable_if_t.
3913	* include/std/type_traits (__enable_if_t): Define for C++11.
3914	* testsuite/28_regex/sub_match/compare.cc: New.
3915	* testsuite/util/testsuite_iterators.h (remove_cv): Add transformation
3916	trait.
3917	(input_iterator_wrapper): Use remove_cv for value_type argument of
3918	std::iterator base class.
3919
39202018-06-29  Jonathan Wakely  <jwakely@redhat.com>
3921
3922	* testsuite/20_util/add_rvalue_reference/requirements/alias_decl.cc:
3923	Add whitespace to dejagnu directive.
3924	* testsuite/23_containers/array/element_access/at_neg.cc: Likewise.
3925
39262018-06-27  François Dumont  <fdumont@gcc.gnu.org>
3927
3928	* include/bits/stl_vector.h
3929	(struct _Vector_base<>::_Vector_impl_data): New.
3930	(struct _Vector_base<>::_Vector_impl): Inherit from latter.
3931	(_Vector_base<>::_Vector_impl::_M_swap_data): Move...
3932	(_Vector_base<>::_Vector_impl_data::_M_swap_data): ...here.
3933	(_Vector_base<>::_Vector_impl()): Add noexcept qualification.
3934	(_Vector_base<>::_Vector_impl(_Vector_impl&&)): New.
3935	(_Vector_base<>::_Vector_impl(_Tp_alloc_type&&, _Vector_impl&&)): New.
3936	(_Vector_base(const allocator_type&, _Vector_base&&)): New, use latter.
3937	(_Vector_base()): Default.
3938	(_Vector_base(_Vector_base&&)): Default.
3939	(_Vector_base(size_t)) [_GLIBCXX_INLINE_VERSION]: Delete.
3940	(_Vector_base(_Tp_alloc_type&&)) [_GLIBCXX_INLINE_VERSION]: Delete.
3941	(_Vector_base::_M_create_storage(size_t)): Make protected.
3942	(vector()): Default.
3943	(vector(vector&&)): Default.
3944	(vector(vector&&, const allocator_type&, true_type)): New.
3945	(vector(vector&&, const allocator_type&, false_type)): New.
3946	(vector(vector&&, const allocator_type&)): Use latters.
3947	(vector(_InputIte, _InputIte, const allocator_type&)): Call
3948	_M_range_initialize directly.
3949	* include/debug/vector
3950	(vector(vector&&, const allocator_type&)): Add noexcept qualification.
3951	* testsuite/23_containers/vector/allocator/default_init.cc: New.
3952	* testsuite/23_containers/vector/cons/noexcept_move_construct.cc: Add
3953	static assertions.
3954
39552018-06-27  Jonathan Wakely  <jwakely@redhat.com>
3956
3957	* include/bits/cpp_type_traits.h [__cplusplus >= 201703]
3958	(__is_byte<byte>): Define specialization for std::byte.
3959
3960	PR libstdc++/86138
3961	* include/bits/basic_string.tcc: [_GLIBCXX_EXTERN_TEMPLATE < 0]
3962	Declare explicit instantiations of COW empty reps and I/O functions.
3963
39642018-06-26  David Edelsohn  <dje.gcc@gmail.com>
3965
3966	* testsuite/experimental/algorithm/sample-2.cc: Add TLS DejaGNU
3967	directives.
3968	* testsuite/experimental/algorithm/shuffle.cc: Likewise.
3969
39702018-06-26  Jonathan Wakely  <jwakely@redhat.com>
3971
3972	* include/bits/regex.tcc (regex_iterator::operator==): Add missing
3973	noexcept.
3974
39752018-06-25  Jonathan Wakely  <jwakely@redhat.com>
3976
3977	PR libstdc++/86112
3978	* python/libstdcxx/v6/printers.py (add_one_template_type_printer):
3979	Replace dict comprehension.
3980
3981	PR libstdc++/81092
3982	* config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
3983
3984	PR libstdc++/86292
3985	* include/bits/stl_vector.h (vector::_M_range_initialize<InputIter>):
3986	Add try-catch block.
3987	* testsuite/23_containers/vector/cons/86292.cc: New.
3988
3989	* doc/xml/manual/status_cxx2017.xml: Document N4531 status.
3990
3991	* include/experimental/algorithm (sample, shuffle): Add new overloads
3992	using per-thread random number engine.
3993	* testsuite/experimental/algorithm/sample.cc: Simpify and reduce
3994	dependencies by using __gnu_test::test_container.
3995	* testsuite/experimental/algorithm/sample-2.cc: New.
3996	* testsuite/experimental/algorithm/shuffle.cc: New.
3997
39982018-06-22  Jonathan Wakely  <jwakely@redhat.com>
3999
4000	* config/abi/pre/gnu.ver: Fix __cxx11::basic_string patterns for
4001	different size_t mangling on 32-bit targets.
4002
4003	PR libstdc++/86280
4004	* include/experimental/memory_resource
4005	(__resource_adaptor_common::_AlignMgr::_M_token_size): Use type large
4006	enough for result of left shift.
4007
4008	PR libstdc++/86138
4009	* include/bits/basic_string.tcc:
4010	[__cplusplus > 201402 && !_GLIBCXX_USE_CXX11_ABI]
4011	(basic_string<char>::_Rep::_S_empty_rep_storage)
4012	(basic_string<wchar_t>::_Rep::_S_empty_rep_storage): Add explicit
4013	instantiation declarations.
4014	[__cplusplus > 201402] (operator>>, operator<<, getline): Re-enable
4015	explicit instantiation declarations.
4016	* testsuite/21_strings/basic_string/cons/char/86138.cc: New.
4017	* testsuite/21_strings/basic_string/cons/wchar_t/86138.cc: New.
4018
40192018-06-21  Jonathan Wakely  <jwakely@redhat.com>
4020
4021	PR libstdc++/83328
4022	* acinclude.m4 (libtool_VERSION): Bump to 6:26:0.
4023	* config/abi/pre/gnu.ver: Add GLIBCXX_3.4.26 and export new symbol.
4024	* configure: Regenerate.
4025	* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
4026	(basic_string::insert(const_iterator, initializer_list<C>)): Add.
4027	[_GLIBCXX_USE_CXX11_ABI && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS]
4028	(basic_string::insert(iterator, initializer_list<C>)): Suppress
4029	definition.
4030	* include/debug/string (basic_string::insert(iterator, C)): Change
4031	first parameter to const_iterator.
4032	(basic_string::insert(iterator, size_type, C)): Likewise. Change
4033	return type to iterator.
4034	(basic_string::insert(iterator, InputIterator, InputIterator)):
4035	Likewise.
4036	(basic_string::insert(iterator, initializer_list<C>)): Change first
4037	parameter to const_iterator and return type to iterator.
4038	* src/c++11/string-inst.cc: Extend comment.
4039	* testsuite/21_strings/basic_string/modifiers/insert/char/83328.cc:
4040	New.
4041	* testsuite/21_strings/basic_string/modifiers/insert/wchar_t/83328.cc:
4042	New.
4043	* testsuite/util/testsuite_abi.cc: Add new symbol version.
4044
4045	* config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
4046
4047	PR libstdc++/70940
4048	* include/experimental/memory_resource
4049	(__resource_adaptor_imp::do_deallocate): Add missing return.
4050	* testsuite/experimental/memory_resource/new_delete_resource.cc: New.
4051	* testsuite/experimental/memory_resource/resource_adaptor.cc: Test
4052	resource_adaptor with std::allocator, __gnu_cxx::new_allocator and
4053	__gnu_cxx::malloc_allocator.
4054
4055	PR libstdc++/70940
4056	* include/experimental/memory_resource (__resource_adaptor_common):
4057	New base class.
4058	(__resource_adaptor_common::_AlignMgr): Helper for obtaining aligned
4059	pointer from unaligned, and vice versa.
4060	(__resource_adaptor_imp::do_allocate): Use _AlignMgr to adjust
4061	allocated pointer to meet alignment request.
4062	(__resource_adaptor_imp::do_deallocate): Use _AlignMgr to retrieve
4063	original pointer for deallocation.
4064	(__resource_adaptor_imp::do_is_equal): Reformat.
4065	(__resource_adaptor_imp::_S_aligned_size): Remove.
4066	(__resource_adaptor_imp::_S_supported): Remove.
4067	(new_delete_resource): Use __gnu_cxx::new_allocator.
4068	* testsuite/experimental/memory_resource/resource_adaptor.cc: Test
4069	extended alignments and use debug_allocator to check for matching
4070	allocate/deallocate pairs.
4071
40722018-06-21  François Dumont  <fdumont@gcc.gnu.org>
4073
4074	* include/debug/safe_iterator.h
4075	(_Safe_iterator<>(const _Safe_iterator<_MutableIterator,>& __x)):
4076	Compare __x base iterator with a value-initialized iterator of the
4077	same type.
4078
40792018-06-20  Jonathan Wakely  <jwakely@redhat.com>
4080
4081	PR libstdc++/70966
4082	* include/experimental/memory_resource (__resource_adaptor_imp): Add
4083	static assertions to enforce requirements on pointer types.
4084	(__resource_adaptor_imp::get_allocator()): Add noexcept.
4085	(new_delete_resource, null_memory_resource): Return address of an
4086	object with dynamic storage duration.
4087	(__null_memory_resource): Remove.
4088	* testsuite/experimental/memory_resource/70966.cc: New.
4089
4090	* testsuite/20_util/duration/arithmetic/dr3050.cc: Add new test
4091	missed from recent commit.
4092
40932018-06-19  Jonathan Wakely  <jwakely@redhat.com>
4094
4095	* include/std/utility: Remove unused <exception> header.
4096
40972018-06-18  Jonathan Wakely  <jwakely@redhat.com>
4098
4099	LWG 2975 ensure construct(pair<T,U>*, ...) used to construct pairs
4100	* include/std/scoped_allocator (__not_pair): Define SFINAE helper.
4101	(construct(_Tp*, _Args&&...)): Remove from overload set when _Tp is
4102	a specialization of std::pair.
4103	* testsuite/20_util/scoped_allocator/construct_pair.cc: Ensure
4104	pair elements are constructed correctly.
4105
4106	LWG 2989 hide path iostream operators from normal lookup
4107	* include/bits/fs_path.h (operator<<, operator>>): Define inline as
4108	friends.
4109	* testsuite/27_io/filesystem/path/io/dr2989.cc: New.
4110
4111	LWG 3050 Fix cv-qualification of convertibility constraints
4112	* include/std/chrono (duration, operator*, operator/, operator%): Use
4113	const-qualified type as source type in is_convertible constraints.
4114	* testsuite/20_util/duration/arithmetic/dr3050.cc: New.
4115	* testsuite/20_util/duration/cons/dr3050.cc: New.
4116	* testsuite/20_util/duration/literals/range.cc: Rename to...
4117	* testsuite/20_util/duration/literals/range_neg.cc: Here. Adjust
4118	dg-error lineno.
4119
41202018-06-18  Maya Rashish  <coypu@sdf.org>
4121
4122	* crossconfig.m4: Handle OpenBSD just like NetBSD.
4123	* configure: Rebuilt.
4124
41252018-06-18  Jonathan Wakely  <jwakely@redhat.com>
4126
4127	P0754R2 <version> header
4128	* include/Makefile.am: Add new header.
4129	* include/Makefile.in: Regenerate.
4130	* include/bits/c++config: Change doxygen comment to suggest <version>
4131	instead of <iosfwd>.
4132	* include/precompiled/stdc++.h: Include <cwchar> and <cwctype>
4133	unconditionally.  Add C++17 and C++20 headers.
4134	* include/std/version: New header.
4135	* testsuite/17_intro/headers/c++2017/all_attributes.cc: New.
4136	* testsuite/17_intro/headers/c++2017/all_no_exceptions.cc: New.
4137	* testsuite/17_intro/headers/c++2017/all_no_rtti.cc: New.
4138	* testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc: New.
4139	* testsuite/17_intro/headers/c++2017/operator_names.cc: New.
4140	* testsuite/17_intro/headers/c++2017/stdc++.cc: New.
4141	* testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
4142	New.
4143	* testsuite/17_intro/headers/c++2020/all_attributes.cc: New.
4144	* testsuite/17_intro/headers/c++2020/all_no_exceptions.cc: New.
4145	* testsuite/17_intro/headers/c++2020/all_no_rtti.cc: New.
4146	* testsuite/17_intro/headers/c++2020/all_pedantic_errors.cc: New.
4147	* testsuite/17_intro/headers/c++2020/operator_names.cc: New.
4148	* testsuite/17_intro/headers/c++2020/stdc++.cc: New.
4149	* testsuite/17_intro/headers/c++2020/stdc++_multiple_inclusion.cc:
4150	New.
4151	* testsuite/18_support/headers/version/macros.cc: New.
4152	* testsuite/18_support/headers/version/macros.cc: New.
4153
4154	* acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Only check when
4155	enable_libstdcxx_filesystem_ts = yes. Check for link, readlink and
4156	symlink.
4157	* config.h.in: Regenerate.
4158	* configure: Regenerate.
4159	* configure.ac: Remove AC_CHECK_FUNCS for link, readlink and symlink.
4160
4161	LWG 3035. std::allocator's constructors should be constexpr
4162	* include/bits/allocator.h (allocator): Add constexpr to constructors
4163	for C++2a. Replace dynamic exception specifications with NOTHROW
4164	macro.
4165	(allocator, operator==, operator!=): Replace USE_NOEXCEPT macro with
4166	NOTHROW.
4167	* include/bits/c++config (_GLIBCXX20_CONSTEXPR): Define.
4168	* include/ext/malloc_allocator.h (malloc_allocator): Add constexpr
4169	to constructors for C++2a.
4170	* include/ext/new_allocator.h (new_allocator): Likewise.
4171
41722018-06-16  Jonathan Wakely  <jwakely@redhat.com>
4173
4174	LWG 3076 basic_string CTAD ambiguity
4175	* doc/xml/manual/intro.xml: Document LWG 3076 change.
4176	* include/bits/basic_string.h
4177	[__cpp_deduction_guides && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS]
4178	(basic_string(const _CharT*, const _Alloc&)): Turn into a function
4179	template constrained by _RequireAllocator.
4180	(basic_string(size_type, _CharT, const _Alloc&)): Likewise.
4181	* src/c++11/string-inst.cc (_GLIBCXX_DEFINING_STRING_INSTANTIATIONS):
4182	Define.
4183	* testsuite/21_strings/basic_string/cons/char/deduction.cc: Test
4184	deduction
4185	* testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
4186	Likewise.
4187
41882018-06-15  Jonathan Wakely  <jwakely@redhat.com>
4189
4190	PR libstdc++/86169
4191	* include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
4192	(basic_string::data()): Unshare string.
4193	* testsuite/21_strings/basic_string/operations/data/char/86169.cc:
4194	New.
4195
4196	* include/std/string_view (basic_string_view(const CharT*)): Remove
4197	check for null pointer and add nonnull attribute.
4198	(compare(const CharT*), compare(size_type, size_type, const CharT*))
4199	(find(const CharT*, size_type), rfind(const CharT*, size_type))
4200	(find_first_of(const CharT*, size_type))
4201	(find_last_of(const CharT*, size_type))
4202	(find_first_not_of(const CharT*, size_type))
4203	(find_last_not_of(const CharT*, size_type)): Add nonnull attribute.
4204	* testsuite/21_strings/basic_string_view/cons/char/nonnull.cc: New.
4205	* testsuite/21_strings/basic_string_view/operations/compare/char/
4206	nonnull.cc: New.
4207	* testsuite/21_strings/basic_string_view/operations/find/char/
4208	nonnull.cc: New.
4209	* testsuite/21_strings/basic_string_view/operations/rfind/char/
4210	nonnull.cc: New.
4211
4212	PR libstdc++/86168
4213	* include/bits/random.h (random_device(const string&)): Remove
4214	default argument.
4215
4216	* include/bits/char_traits.h (__cpp_lib_constexpr_char_traits): Only
4217	define for C++17 and above.
4218
4219	LWG 2993 reference_wrapper<T> conversion from T&&
4220	* doc/xml/manual/intro.xml: Document LWG 2993 change.
4221	* include/bits/refwrap.h (reference_wrapper(_Tp&)): Remove.
4222	(reference_wrapper(_Tp&&)): Remove.
4223	(reference_wrapper<_Up>(_Up&&)): Define new constructor as constrained
4224	template.
4225	(reference_wrapper): Add deduction guide.
4226	* testsuite/20_util/reference_wrapper/deduction.cc: New.
4227	* testsuite/20_util/reference_wrapper/lwg2993.cc: New.
4228
4229	LWG 3039 Unnecessary decay in thread and packaged_task
4230	* include/std/future (__constrain_pkgdtask): Replace with ...
4231	(packaged_task::__not_same): New alias template, using
4232	__remove_cvref_t instead of decay.
4233	* include/std/thread (thread::__not_same): Add comment.
4234
42352018-06-14  Jonathan Wakely  <jwakely@redhat.com>
4236
4237	LWG 3075 basic_string needs deduction guides from basic_string_view
4238	* testsuite/21_strings/basic_string/cons/char/deduction.cc: Test
4239	deduction from string views.
4240	* testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
4241	Likewise.
4242
4243	LWG 3074 make scalar types non-deduced in valarray non-member functions
4244	* include/bits/valarray_after.h (_DEFINE_EXPR_BINARY_FUNCTION): Change
4245	scalar parameters to be a non-deduced context.
4246	* include/std/valarray (_DEFINE_BINARY_OPERATOR): Likewise. Adjust
4247	whitespace.
4248	* testsuite/26_numerics/valarray/operators.cc: Test scalar operands.
4249	* testsuite/26_numerics/valarray/transcend.cc: New.
4250
4251	* include/std/tuple (__cpp_lib_tuple_element_t, tuple_element_t):
4252	Move back to <utility>.
4253	* include/std/utility (__cpp_lib_tuple_element_t. tuple_element_t):
4254	Restore to here.
4255
4256	P0935R0 Eradicating unnecessarily explicit default constructors
4257	* include/backward/strstream (strstreambuf): Add non-explicit default
4258	constructor.
4259	* include/bits/locale_conv.h (wbuffer_convert, wstring_convert):
4260	Likewise.
4261	* include/bits/regex.h (match_results): Likewise.
4262	* testsuite/22_locale/conversions/buffer/1.cc: Test for non-explicit
4263	default constructor.
4264	* testsuite/22_locale/conversions/string/1.cc: Likewise.
4265	* testsuite/28_regex/match_results/ctors/char/default.cc: Likewise.
4266	* testsuite/28_regex/match_results/ctors/wchar_t/default.cc: Likewise.
4267
4268	* include/std/tuple (__cpp_lib_tuple_element_t): Move feature test
4269	macro from <utility> and change type to long.
4270	* include/std/utility (__cpp_lib_tuple_element_t): Remove.
4271	* testsuite/20_util/tuple/tuple_element_t.cc: Check for feature test
4272	macro.
4273
4274	P0935R0 Eradicating unnecessarily explicit default constructors
4275	* include/bits/random.h (uniform_real_distribution::param_type)
4276	(normal_distribution::param_type, lognormal_distribution::param_type)
4277	(gamma_distribution::param_type, chi_squared_distribution::param_type)
4278	(cauchy_distribution::param_type, fisher_f_distribution::param_type)
4279	(student_t_distribution::param_type)
4280	(bernoulli_distribution::param_type)
4281	(binomial_distribution::param_type)
4282	(geometric_distribution::param_type)
4283	(negative_binomial_distribution::param_type)
4284	(poisson_distribution::param_type)
4285	(exponential_distribution::param_type)
4286	(weibull_distribution::param_type)
4287	(extreme_value_distribution::param_type): Add non-explicit default
4288	constructors. Remove default argument for first parameter of explicit
4289	constructors.
4290	* include/bits/uniform_int_dist.h
4291	(uniform_int_distribution::param_type): Likewise.
4292	* include/ext/random
4293	(beta_distribution::param_type, rice_distribution::param_type)
4294	(nakagami_distribution::param_type, pareto_distribution::param_type)
4295	(k_distribution::param_type, arcsine_distribution::param_type)
4296	(hoyt_distribution::param_type, triangular_distribution::param_type)
4297	(von_mises_distribution::param_type)
4298	(hypergeometric_distribution::param_type)
4299	(logistic_distribution::param_type)
4300	(uniform_inside_sphere_distribution::param_type): Likewise.
4301	(uniform_on_sphere_distribution::param_type): Make default constructor
4302	non-explicit.
4303	* testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc:
4304	Test param_type for non-explicit default constructor.
4305	* testsuite/26_numerics/random/binomial_distribution/cons/default.cc:
4306	Likewise.
4307	* testsuite/26_numerics/random/cauchy_distribution/cons/default.cc:
4308	Likewise.
4309	* testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc:
4310	Likewise.
4311	* testsuite/26_numerics/random/discrete_distribution/cons/default.cc:
4312	Likewise.
4313	* testsuite/26_numerics/random/exponential_distribution/cons/default.cc:
4314	Likewise.
4315	* testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc:
4316	Likewise.
4317	* testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc:
4318	Likewise.
4319	* testsuite/26_numerics/random/gamma_distribution/cons/default.cc:
4320	Likewise.
4321	* testsuite/26_numerics/random/geometric_distribution/cons/default.cc:
4322	Likewise.
4323	* testsuite/26_numerics/random/lognormal_distribution/cons/default.cc:
4324	Likewise.
4325	* testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc:
4326	Likewise.
4327	* testsuite/26_numerics/random/normal_distribution/cons/default.cc:
4328	Likewise.
4329	* testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc:
4330	Likewise.
4331	* testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc:
4332	Likewise.
4333	* testsuite/26_numerics/random/poisson_distribution/cons/default.cc:
4334	Likewise.
4335	* testsuite/26_numerics/random/student_t_distribution/cons/default.cc:
4336	Likewise.
4337	* testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc:
4338	Likewise.
4339	* testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc:
4340	Likewise.
4341	* testsuite/26_numerics/random/weibull_distribution/cons/default.cc:
4342	Likewise.
4343	* testsuite/ext/random/arcsine_distribution/cons/default.cc: Likewise.
4344	* testsuite/ext/random/beta_distribution/cons/default.cc: Likewise.
4345	* testsuite/ext/random/hoyt_distribution/cons/default.cc: Likewise.
4346	* testsuite/ext/random/hypergeometric_distribution/cons/default.cc:
4347	Likewise.
4348	* testsuite/ext/random/k_distribution/cons/default.cc: Likewise.
4349	* testsuite/ext/random/logistic_distribution/cons/default.cc: Likewise.
4350	* testsuite/ext/random/nakagami_distribution/cons/default.cc: Likewise.
4351	* testsuite/ext/random/normal_mv_distribution/cons/default.cc:
4352	Likewise.
4353	* testsuite/ext/random/pareto_distribution/cons/default.cc: Likewise.
4354	* testsuite/ext/random/rice_distribution/cons/default.cc: Likewise.
4355	* testsuite/ext/random/triangular_distribution/cons/default.cc:
4356	Likewise.
4357	* testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc:
4358	Likewise.
4359	* testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc:
4360	Likewise.
4361	* testsuite/ext/random/von_mises_distribution/cons/default.cc:
4362	Likewise.
4363
43642018-06-14  Daniel Trebbien <dtrebbien@gmail.com>
4365	    Jonathan Wakely  <jwakely@redhat.com>
4366
4367	PR libstdc++/83982
4368	* include/bits/vector.tcc (vector::_M_default_append(size_type)):
4369	Default-construct new elements before moving existing ones.
4370	* testsuite/23_containers/vector/capacity/resize/strong_guarantee.cc:
4371	New.
4372
43732018-06-13  Jonathan Wakely  <jwakely@redhat.com>
4374
4375	PR libstdc++/86127
4376	* include/bits/forward_list.h (_Fwd_list_base::_Tp_alloc_type): Remove
4377	unused typedef.
4378	(_Fwd_list_base::_M_create_node, _Fwd_list_base::_M_erase_after):
4379	Use node allocator to create and destroy elements.
4380	(forward_list::_Tp_alloc_type): Remove unused typedef.
4381	(forward_list::_Alloc_traits): Use allocator_traits instead of
4382	__gnu_cxx::__alloc_traits.
4383
43842018-06-13  François Dumont  <fdumont@gcc.gnu.org>
4385
4386	* include/debug/helper_functions.h
4387	(__gnu_debug::_Safe_iterator<>): Add declaration.
4388	(__can_advance(_Ite, _Size)): New.
4389	(__can_advance(const _Safe_iterator<>&, _Size)): Overload declaration.
4390	* include/debug/functions.h
4391	(__gnu_debug::_Safe_iterator<>): Remove declaration.
4392	* include/debug/stl_iterator.h
4393	(__can_advance(const _Safe_iterator<>&)): New definition.
4394	* include/debug/stl_iterator.h
4395	(__can_advance(const std::reverse_iterator<>&, _Size)): New.
4396	(__can_advance(const std::move_iterator<>&, _Size)): New.
4397	* include/debug/macros.h (__glibcxx_check_can_increment): New.
4398	* include/debug/debug.h (__glibcxx_requires_can_increment): New.
4399	* include/bits/stl_algobase.h (fill_n): Use latter.
4400	* testsuite/25_algorithms/fill_n/2.cc: New.
4401	* testsuite/25_algorithms/fill_n/debug/1_neg.cc: New.
4402	* testsuite/25_algorithms/fill_n/debug/2_neg.cc: New.
4403	* testsuite/25_algorithms/fill_n/debug/3_neg.cc: New.
4404	* testsuite/25_algorithms/fill_n/debug/4_neg.cc: New.
4405
4406	* include/debug/debug.h (__glibcxx_requires_can_increment_range): New.
4407	(__glibcxx_requires_can_decrement_range): New.
4408
44092018-06-12  François Dumont  <fdumont@gcc.gnu.org>
4410
4411	* include/debug/macros.h (__glibcxx_check_can_increment_range): New.
4412	(__glibcxx_check_can_decrement_range): New.
4413	* include/bits/stl_algobase.h (std::copy(_II, _II, _OI)): Use
4414	__glibcxx_requires_can_increment_range.
4415	(std::move(_II, _II, _OI)): Likewise.
4416	(std::copy_backward(_BI, _BI, _BI2)): Use
4417	__glibcxx_requires_can_decrement_range.
4418	(std::move_backward(_BI, _BI, _BI2)): Likewise.
4419	* testsuite/25_algorithms/copy_backward/debug/1_neg.cc: New.
4420	* testsuite/25_algorithms/copy_backward/debug/2_neg.cc: New.
4421	* testsuite/25_algorithms/copy_backward/debug/3_neg.cc: New.
4422	* testsuite/25_algorithms/equal/debug/1_neg.cc: New.
4423	* testsuite/25_algorithms/equal/debug/2_neg.cc: New.
4424	* testsuite/25_algorithms/equal/debug/3_neg.cc: New.
4425
44262018-06-12  Jonathan Wakely  <jwakely@redhat.com>
4427
4428	P0935R0 Eradicating unnecessarily explicit default constructors
4429	* include/bits/random.h (linear_congruential_engine)
4430	(mersenne_twister_engine, subtract_with_carry_engine, random_device)
4431	(uniform_real_distribution, normal_distribution)
4432	(lognormal_distribution, gamma_distribution, chi_squared_distribution)
4433	(cauchy_distribution, fisher_f_distribution, student_t_distribution)
4434	(bernoulli_distribution, binomial_distribution,geometric_distribution)
4435	(negative_binomial_distribution, exponential_distribution)
4436	(weibull_distribution, extreme_value_distribution): Add non-explicit
4437	default constructors. Remove default argument for first parameter of
4438	explicit constructors.
4439	(piecewise_constant_distribution, piecewise_linear_distribution):
4440	Make default constructor non-explicit.
4441	* include/bits/uniform_int_dist.h (uniform_int_distribution): Add
4442	non-explicit default constructors. Remove default argument for first
4443	parameter of explicit constructor.
4444	* include/ext/random
4445	(simd_fast_mersenne_twister_engine, beta_distribution)
4446	(rice_distribution, nakagami_distribution, pareto_distribution)
4447	(k_distribution, arcsine_distribution, hoyt_distribution)
4448	(triangular_distribution, von_mises_distribution)
4449	(hypergeometric_distribution, logistic_distribution)
4450	(uniform_inside_sphere_distribution): Likewise.
4451	(uniform_on_sphere_distribution): Make default constructor
4452	non-explicit.
4453	* testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc:
4454	Test for non-explicit default constructor. Fix references to standard.
4455	* testsuite/26_numerics/random/binomial_distribution/cons/default.cc:
4456	Likewise.
4457	* testsuite/26_numerics/random/cauchy_distribution/cons/default.cc:
4458	Likewise.
4459	* testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc:
4460	Likewise.
4461	* testsuite/26_numerics/random/discrete_distribution/cons/default.cc:
4462	Likewise.
4463	* testsuite/26_numerics/random/exponential_distribution/cons/default.cc:
4464	Likewise.
4465	* testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc:
4466	Likewise.
4467	* testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc:
4468	Likewise.
4469	* testsuite/26_numerics/random/gamma_distribution/cons/default.cc:
4470	Likewise.
4471	* testsuite/26_numerics/random/geometric_distribution/cons/default.cc:
4472	Likewise.
4473	* testsuite/26_numerics/random/lognormal_distribution/cons/default.cc:
4474	Likewise.
4475	* testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc:
4476	Likewise.
4477	* testsuite/26_numerics/random/normal_distribution/cons/default.cc:
4478	Likewise.
4479	* testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc:
4480	Likewise.
4481	* testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc:
4482	Likewise.
4483	* testsuite/26_numerics/random/poisson_distribution/cons/default.cc:
4484	Likewise.
4485	* testsuite/26_numerics/random/student_t_distribution/cons/default.cc:
4486	Likewise.
4487	* testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc:
4488	Likewise.
4489	* testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc:
4490	Likewise.
4491	* testsuite/26_numerics/random/weibull_distribution/cons/default.cc:
4492	Likewise.
4493	* testsuite/ext/random/arcsine_distribution/cons/default.cc: Likewise.
4494	* testsuite/ext/random/beta_distribution/cons/default.cc: Likewise.
4495	* testsuite/ext/random/hoyt_distribution/cons/default.cc: Likewise.
4496	* testsuite/ext/random/hypergeometric_distribution/cons/default.cc:
4497	Likewise.
4498	* testsuite/ext/random/k_distribution/cons/default.cc: Likewise.
4499	* testsuite/ext/random/logistic_distribution/cons/default.cc: Likewise.
4500	* testsuite/ext/random/nakagami_distribution/cons/default.cc: Likewise.
4501	* testsuite/ext/random/normal_mv_distribution/cons/default.cc:
4502	Likewise.
4503	* testsuite/ext/random/pareto_distribution/cons/default.cc: Likewise.
4504	* testsuite/ext/random/rice_distribution/cons/default.cc: Likewise.
4505	* testsuite/ext/random/triangular_distribution/cons/default.cc:
4506	Likewise.
4507	* testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc:
4508	Likewise.
4509	* testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc:
4510	Likewise.
4511	* testsuite/ext/random/von_mises_distribution/cons/default.cc:
4512	Likewise.
4513	* testsuite/util/testsuite_common_types.h
4514	(implicitly_default_constructible): New helper.
4515
45162018-06-08  Jonathan Wakely  <jwakely@redhat.com>
4517
4518	* include/bits/ios_base.h (ios::Init::Init(const Init&))
4519	(ios::Init::operator=): Define as defaulted.
4520	* include/bits/stl_bvector.h (_Bit_reference(const _Bit_reference&)):
4521	Likewise.
4522	* include/bits/stream_iterator.h (istream_iterator::operator=)
4523	(ostream_iterator::operator=): Likewise.
4524	* include/bits/streambuf_iterator.h (istreambuf_iterator::operator=)
4525	Likewise.
4526	* include/std/bitset (bitset::reference::reference(const reference&)):
4527	Likewise.
4528	* include/std/complex (complex<float>::complex(const complex&))
4529	(complex<double>::complex(const complex&))
4530	(complex<long double>::complex(const complex&)): Likewise.
4531
45322018-06-07  Jonathan Wakely  <jwakely@redhat.com>
4533
4534	* include/bits/regex.h (sub_match): Add noexcept to default
4535	constructor and length observer.
4536	(match_results): Add noexcept to default constructor and observers
4537	with no preconditions. Define destructor as defaulted.
4538	(operator==, operator!=, swap): Add noexcept.
4539	(regex_iterator): Add default member initializers and define default
4540	constructor and destructor as defaulted. Add noexcept to equality
4541	and dereference operators.
4542
45432018-06-07  François Dumont  <fdumont@gcc.gnu.org>
4544
4545	* src/c++11/debug.cc
4546	(_Safe_iterator_base::_M_detach()): Reset state only if needed.
4547	(_Safe_iterator_base::_M_detach_single()): Likewise.
4548	(_Safe_local_iterator_base::_M_detach()): Reset state only if needed.
4549	(_Safe_local_iterator_base::_M_detach_single()): Likewise.
4550
45512018-06-06  Jonathan Wakely  <jwakely@redhat.com>
4552
4553	* include/bits/shared_ptr_base.h (__shared_count): Remove redundant
4554	move of const value.
4555
45562018-06-06  Jakub Jelinek  <jakub@redhat.com>
4557
4558	PR c++/86068
4559	* include/bits/c++config: Check __cpp_transactional_memory >= 201500L
4560	rather than __cpp_transactional_memory >= 201505L.
4561
45622018-06-06  Jonathan Wakely  <jwakely@redhat.com>
4563
4564	PR libstdc++/86008
4565	* include/bits/quoted_string.h (_Quoted_string<basic_string_view, C>):
4566	Define new partial specialization.
4567	* include/std/iomanip (quoted(basic_string_view<C,T>, C, C)): Define
4568	new overload.
4569	(operator<<(basic_ostream<C,T>&, const _Quoted_string<S,C>&)): Use
4570	value not reference for iteration.
4571	* testsuite/27_io/manipulators/standard/char/quoted.cc: Adjust
4572	comment.
4573	* testsuite/27_io/manipulators/standard/char/quoted_sv.cc: New test.
4574	* testsuite/27_io/manipulators/standard/wchar_t/quoted.cc: Adjust
4575	comment.
4576
45772018-06-05  Jonathan Wakely  <jwakely@redhat.com>
4578
4579	* include/std/type_traits: Fix comment typos.
4580
4581	* testsuite/27_io/filesystem/operations/read_symlink.cc: XFAIL for
4582	mingw* targets.
4583	* testsuite/27_io/filesystem/operations/symlink_status.cc: Likewise.
4584	* testsuite/experimental/filesystem/operations/read_symlink.cc:
4585	Likewise.
4586
45872018-06-05  François Dumont  <fdumont@gcc.gnu.org>
4588
4589	* include/bits/stl_tempbuf.h
4590	(_Temporary_buffer(_FwdIte, _FwdIte)): Delete, replaced by...
4591	(_Temporary_buffer(_FwdIte, size_type)): ...this, new.
4592	* include/ext/memory (temporary_buffer<>(_FwdIte, _FwdIte)): Adapt.
4593	* include/bits/stl_algo.h (__stable_partition): Adapt.
4594	(__inplace_merge): Adapt.
4595	(__stable_sort): Adapt.
4596
45972018-06-04  Jonathan Wakely  <jwakely@redhat.com>
4598
4599	PR libstdc++/85930
4600	* include/bits/shared_ptr_base.h [!__cpp_rtti]: Include <typeinfo>
4601	unconditionally. Remove redundant declaration.
4602	[!__cpp_rtti] (_Sp_make_shared_tag::_S_ti): Fix location of
4603	alignment-specifier.
4604
4605	* include/bits/postypes.h (fpos): Define special members as defaulted.
4606
4607	PR libstdc++/85930
4608	* include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Align
4609	the static variable correctly.
4610
46112018-05-24  Jonathan Wakely  <jwakely@redhat.com>
4612
4613	PR libstdc++/78870 support std::filesystem on Windows
4614	* config.h.in: Regenerate.
4615	* configure: Regenerate.
4616	* configure.ac: Check for link, readlink and symlink.
4617	* include/bits/fs_path.h (path::operator/=(const path&)): Move
4618	definition out of class body.
4619	(path::is_absolute(), path::_M_append(path)): Likewise.
4620	(operator<<(basic_ostream, const path&)): Use std::quoted directly.
4621	(operator>>(basic_istream, path&)): Likewise.
4622	(u8path): Reorder definitions and fix Windows implementation.
4623	(path::is_absolute()): Define inline and fix for Windows.
4624	[!_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::operator/=(const path&)):
4625	Define POSIX version inline.
4626	(path::_M_append(path)): Define inline.
4627	* include/experimental/bits/fs_path.h (path::is_absolute()): Move
4628	definition out of class body.
4629	(operator<<(basic_ostream, const path&)): Fix type of delimiter and
4630	escape characters.
4631	(operator>>(basic_istream, path&)): Likewise.
4632	(path::is_absolute()): Define inline and fix for Windows.
4633	* src/filesystem/dir-common.h (__gnu_posix): New namespace.
4634	(__gnu_posix::char_type, __gnu_posix::DIR, __gnu_posix::dirent)
4635	(__gnu_posix::opendir, __gnu_posix::readdir, __gnu_posix::closedir):
4636	Define as adaptors for Windows functions/types or as
4637	using-declarations for POSIX functions/types.
4638	(_Dir_base, get_file_type): Qualify names to use declarations from
4639	__gnu_posix namespace.
4640	(_Dir_base::is_dor_or_dotdot): New helper functions.
4641	* src/filesystem/dir.cc (_Dir, recursive_directory_iterator): Qualify
4642	names to use declarations from __gnu_posix namespace.
4643	* src/filesystem/ops-common.h (__gnu_posix): New nested namespace.
4644	(__gnu_posix::open, __gnu_posix::close, __gnu_posix::stat_type)
4645	(__gnu_posix::stat, __gnu_posix::lstat, __gnu_posix::mode_t)
4646	(__gnu_posix::chmod, __gnu_posix::mkdir, __gnu_posix::getcwd)
4647	(__gnu_posix::chdir, __gnu_posix::utimbuf, __gnu_posix::utime)
4648	(__gnu_posix::rename, __gnu_posix::truncate, __gnu_posix::char_type):
4649	Define as adaptors for Windows functions/types or as
4650	using-declarations for POSIX functions/types.
4651	(stat_type, do_copy_file): Qualify names to use declarations from
4652	__gnu_posix namespace.
4653	(do_space): Declare new function.
4654	(make_file_type): Only use S_ISLNK if defined.
4655	* src/filesystem/ops.cc (char_ptr, filesystem::canonical): Use
4656	path::value_type not char.
4657	(filesystem::copy, create_dir, filesystem::create_directory): Qualify
4658	names to use declarations from __gnu_posix namespace.
4659	(filesystem::create_hard_link): Check HAVE_LINK autoconf macro and
4660	add implementation for Windows.
4661	(filesystem::create_symlink): Check HAVE_SYMLINK autoconf macro.
4662	(filesystem::current_path(error_code&)): Use __gnu_posix::getcwd.
4663	[!_PC_PATH_MAX]: Don't use pathconf.
4664	[PATH_MAX]: Use if defined.
4665	(filesystem::current_path(const path&, error_code&))
4666	(filesystem::equivalent, do_stat, filesystem::hard_link_count)
4667	(filesystem::last_write_time, filesystem::permissions): Use names
4668	from __gnu_posix.
4669	(filesystem::read_symlink): Check HAVE_READLINK autoconf macro.
4670	(filesystem::remove) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Add
4671	implementation for Windows.
4672	(filesystem::rename, filesystem::resize_file): Use names from
4673	__gnu_posix.
4674	(filesystem::space): Use do_space.
4675	[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Get absolute path to directory.
4676	(filesystem::status, filesystem::symlink_status): Use names from
4677	__gnu_posix.
4678	(filesystem::temp_directory_path): Add implementation for Windows.
4679	* src/filesystem/path.cc (dot): Define constant.
4680	(path::replace_extension): Use dot.
4681	(path::_M_find_extension): Likewise. Use path::string_type not
4682	std::string.
4683	(path::_M_split_cmpts): Use dot.
4684	(filesystem_error::_M_get_what): Use u8string() not native().
4685	* src/filesystem/std-dir.cc (_Dir, recursive_directory_iterator):
4686	Qualify names to use declarations from __gnu_posix namespace.
4687	* src/filesystem/std-ops.cc (filesystem::absolute(const path&)): Use
4688	correct error_code.
4689	(filesystem::absolute(const path&, error_code&)): Add implementation
4690	for Windows.
4691	(char_ptr, filesystem::canonical): Use path::value_type not char.
4692	(do_copy_file): Use names from __gnu_posix.
4693	[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Do not use fchmod, fchmodat or
4694	sendfile.
4695	(filesystem::copy, create_dir, filesystem::create_directory): Qualify
4696	names to use declarations from __gnu_posix namespace.
4697	(filesystem::create_hard_link): Check HAVE_LINK autoconf macro and
4698	add implementation for Windows.
4699	(filesystem::create_symlink): Check HAVE_SYMLINK autoconf macro.
4700	(filesystem::current_path(error_code&)): Use __gnu_posix::getcwd.
4701	[!_PC_PATH_MAX]: Don't use pathconf.
4702	[PATH_MAX]: Use if defined.
4703	(filesystem::current_path(const path&, error_code&))
4704	(filesystem::equivalent, do_stat, filesystem::hard_link_count)
4705	(filesystem::last_write_time, filesystem::permissions): Use names
4706	from __gnu_posix.
4707	(filesystem::read_symlink): Check HAVE_READLINK autoconf macro.
4708	(filesystem::remove) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Add
4709	implementation for Windows.
4710	(filesystem::rename, filesystem::resize_file): Use names from
4711	__gnu_posix.
4712	(do_space): Define.
4713	(filesystem::space): Use do_space.
4714	(filesystem::status, filesystem::symlink_status): Use names from
4715	__gnu_posix.
4716	(filesystem::temp_directory_path): Add implementation for Windows.
4717	* src/filesystem/std-path.cc
4718	[_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::operator/=(const path&)):
4719	Define for Windows.
4720	(dot): Define constant.
4721	(path::replace_extension, is_dot): Use dot.
4722	(path::lexically_normal): Check _M_type instead of calling
4723	non-existent function.
4724	(path::_M_find_extension): Use dot. Use path::string_type not
4725	std::string.
4726	(path::_M_split_cmpts): Use dot.
4727	(filesystem_error::_M_get_what): Use u8string() not native().
4728	* testsuite/27_io/filesystem/iterators/directory_iterator.cc: Do not
4729	use symlinks.
4730	* testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
4731	Likewise.
4732	* testsuite/27_io/filesystem/operations/absolute.cc: Use
4733	__gnu_test::root_path() instead of "/" and add Windows-specific tests.
4734	* testsuite/27_io/filesystem/operations/canonical.cc: Use
4735	path::string() to get narrow string, not path::native().
4736	* testsuite/27_io/filesystem/operations/copy.cc: Construct fstreams
4737	with std::filesystem::path not std::basic_string.
4738	* testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
4739	* testsuite/27_io/filesystem/operations/exists.cc: Use
4740	__gnu_test::root_path() instead of "/".
4741	* testsuite/27_io/filesystem/operations/is_empty.cc: Construct
4742	fstreams with std::filesystem::path not std::basic_string.
4743	* testsuite/27_io/filesystem/operations/last_write_time.cc: Use
4744	path::string() to get narrow string.
4745	* testsuite/27_io/filesystem/operations/space.cc: Check results for
4746	errors, expect sensible values otherwise.
4747	* testsuite/27_io/filesystem/operations/temp_directory_path.cc: Add
4748	helpers for adjusting the environment on Windows.
4749	* testsuite/27_io/filesystem/path/append/path.cc: Test
4750	Windows-specific behaviour.
4751	* testsuite/27_io/filesystem/path/construct/format.cc: Fix creation
4752	of path::string_type objects.
4753	* testsuite/27_io/filesystem/path/construct/locale.cc: Compare native
4754	string to wide string on Windows.
4755	* testsuite/27_io/filesystem/path/decompose/root_directory.cc: Allow
4756	for backslash as root-directory.
4757	* testsuite/27_io/filesystem/path/decompose/stem.cc: Use
4758	path::string() to get narrow string.
4759	* testsuite/27_io/filesystem/path/itr/traversal.cc: Test Windows-style
4760	paths.
4761	* testsuite/27_io/filesystem/path/native/string.cc: Use string_type
4762	not std::string.
4763	* testsuite/27_io/filesystem/path/query/is_absolute.cc: Adjust for
4764	different definintion of absolute paths on Windows.
4765	* testsuite/experimental/filesystem/iterators/directory_iterator.cc:
4766	Do not use symlinks.
4767	* testsuite/experimental/filesystem/operations/absolute.cc: Test
4768	Windows behaviour.
4769	* testsuite/experimental/filesystem/operations/copy.cc: Construct
4770	fstreams with NTCTS not std::basic_string.
4771	* testsuite/experimental/filesystem/operations/copy_file.cc: Likewise.
4772	* testsuite/experimental/filesystem/operations/exists.cc: Use
4773	__gnu_test::root_path() instead of "/".
4774	* testsuite/experimental/filesystem/operations/is_empty.cc: Construct
4775	fstreams with NTCTS not std::basic_string.
4776	* testsuite/experimental/filesystem/operations/last_write_time.cc:
4777	Use path::string() to get narrow string.
4778	* testsuite/experimental/filesystem/operations/space.cc: Use
4779	__gnu_test::root_path() instead of "/".
4780	* testsuite/experimental/filesystem/operations/temp_directory_path.cc:
4781	Add helpers for adjusting the environment on Windows.
4782	* testsuite/experimental/filesystem/path/append/path.cc: Use
4783	path::string() to get narrow strings for comparisons.
4784	* testsuite/experimental/filesystem/path/concat/path.cc: Likewise.
4785	* testsuite/experimental/filesystem/path/decompose/root_directory.cc:
4786	Likewise.
4787	* testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
4788	* testsuite/experimental/filesystem/path/native/string.cc: Use
4789	string_type not std::string.
4790	* testsuite/experimental/filesystem/path/query/is_absolute.cc:
4791	Adjust for different definintion of absolute paths on Windows.
4792	* testsuite/util/testsuite_fs.h (__gnu_test::root_path()): New
4793	function.
4794	(__gnu_test::scoped_file): Construct fstreams with NTCTS not
4795	std::basic_string.
4796
47972018-05-31  Jonathan Wakely  <jwakely@redhat.com>
4798
4799	PR libstdc++/85951
4800	* include/std/type_traits [_GLIBCXX_USE_C99_STDINT_TR1]: Do not define
4801	uint_least16_t and uint_least32_t.
4802	(__make_unsigned<wchar_t>): Define unconditionally.
4803	(__make_unsigned_selector<_Tp, true, false>): Remove intermediate
4804	typedefs.
4805	(__make_unsigned_selector_base): New type to provide helper templates.
4806	(__make_unsigned_selector<_Tp, false, true>): Reimplement using
4807	__make_unsigned_selector_base helpers.
4808	(__make_unsigned<char16_t>, __make_unsigned<char32_t>): Define.
4809	(__make_signed_selector<_Tp, true, false>): Remove intermediate
4810	typedefs.
4811	(__make_signed<wchar_t>, __make_signed<char16_t>)
4812	(__make_signed<char32_t>)): Define unconditionally.
4813	* testsuite/20_util/make_signed/requirements/typedefs-3.cc: Check
4814	wchar_t, char16_t and char32_t are transformed correctly.
4815	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
4816	dg-error lineno.
4817	* testsuite/20_util/make_unsigned/requirements/typedefs-3.cc: Check
4818	wchar_t, char16_t and char32_t are transformed correctly.
4819	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Adjust
4820	dg-error lineno.
4821
48222018-05-29  Jonathan Wakely  <jwakely@redhat.com>
4823
4824	* include/std/variant (__erased_dtor): Qualify call to __get.
4825
48262018-05-27  François Dumont  <fdumont@gcc.gnu.org>
4827
4828	* include/bits/stl_tree.h (_Rb_tree_impl(_Node_allocator&&)): New.
4829	(_Rb_tree(const allocator_type&)): Use latter.
4830	* include/bits/stl_map.h (map(const allocator_type&)): Likewise.
4831	(map(initializer_list<value_type>, const allocator_type&)): Likewise.
4832	(map(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
4833	* include/bits/stl_multimap.h
4834	(multimap(const allocator_type&)): Likewise.
4835	(multimap(initializer_list<value_type>, const allocator_type&)):
4836	Likewise.
4837	(multimap(_InputIterator, _InputIterator, const allocator_type&)):
4838	Likewise.
4839	* include/bits/stl_set.h (set(const allocator_type&)): Likewise.
4840	(set(initializer_list<value_type>, const allocator_type&)): Likewise.
4841	(set(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
4842	* include/bits/stl_multiset.h
4843	(multiset(const allocator_type&)): Likewise.
4844	(multiset(initializer_list<value_type>, const allocator_type&)):
4845	Likewise.
4846	(multiset(_InputIterator, _InputIterator, const allocator_type&)):
4847	Likewise.
4848
48492018-05-25  François Dumont  <fdumont@gcc.gnu.org>
4850
4851	PR libstdc++/85768
4852	* src/c++11/debug.cc: Remove backtrace usage.
4853
48542018-05-24  Maya Rashish  <coypu@sdf.org>
4855
4856	PR target/85904
4857	* crossconfig.m4: Test for aligned_alloc on netbsd.
4858	* configure: Regenerate.
4859
48602018-05-24  Jonathan Wakely  <jwakely@redhat.com>
4861
4862	PR libstdc++/69769
4863	PR libstdc++/85886
4864	* include/bits/atomic_base.h (__atomic_base::value_type)
4865	(__atomic_base::difference_type): Add new typedefs.
4866	* include/std/atomic (atomic<bool>::value_type, atomic<T>::value_type)
4867	(atomic<T*>::value_type, atomic<T*>::difference_type): Likewise.
4868	(atomic<T*>::operator++, atomic<T*>::operator--)
4869	(atomic<T*>::operator+=, atomic<T*>::operator-=)
4870	(atomic<T*>::fetch_add, atomic<T*>::fetch_sub): Add static assertion
4871	to enforce C++17 requirement on pointer arithmetic.
4872	(__atomic_val_t, __atomic_diff_t): New alias templates.
4873	(atomic_init, atomic_store_explicit, atomic_exchange_explicit)
4874	(atomic_compare_exchange_weak_explicit)
4875	(atomic_compare_exchange_strong_explicit, atomic_store)
4876	(atomic_exchange, atomic_compare_exchange_weak)
4877	(atomic_compare_exchange_strong): Use __atomic_val_t to make
4878	scalar parameters be non-deduced contexts.
4879	(atomic_fetch_add_explicit, atomic_fetch_sub_explicit)
4880	(atomic_fetch_add, atomic_fetch_sub): Change first parameter to be
4881	atomic instead of __atomic_base, and use __atomic_diff_t for scalar
4882	parameters.
4883	(atomic_fetch_and_explicit, atomic_fetch_or_explicit)
4884	(atomic_fetch_xor_explicit, atomic_fetch_and, atomic_fetch_or)
4885	(atomic_fetch_xor): Use __atomic_val_t for scalar parameters.
4886	(atomic_fetch_add_explicit, atomic_fetch_sub_explicit)
4887	(atomic_fetch_add, atomic_fetch_sub): Remove overloads for atomic
4888	address types.
4889	* testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
4890	* testsuite/29_atomics/atomic/69769.cc: New test.
4891	* testsuite/29_atomics/atomic/nonmembers.cc: New test.
4892	* testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
4893	Disable test for C++17 and later.
4894	* testsuite/29_atomics/atomic/requirements/typedefs.cc: New test.
4895	* testsuite/29_atomics/atomic_integral/nonmembers.cc: New test.
4896	* testsuite/29_atomics/atomic_integral/requirements/typedefs.cc: New
4897	test.
4898
48992018-05-23  Jonathan Wakely  <jwakely@redhat.com>
4900
4901	* include/bits/fs_path.h (path::__is_encoded_char): Change from class
4902	template to alias template.
4903	(path::__value_type_is_char): Use remove_const_t.
4904	(path:_S_string_from_iter): New helper function.
4905	(path::_S_convert(InputIter, __null_terminated))
4906	(path::_S_convert_loc(InputIter, __null_terminated, const locale&)):
4907	Use _S_string_from_iter.
4908	(path::string<_CharT, _Allocator>(const _Allocator&)): Allow sharing
4909	rep for COW strings.
4910	* include/experimental/bits/fs_path.h (path::__is_encoded_char):
4911	Change from class template to alias template.
4912	(path::__value_type_is_char): Use remove_const.
4913	(path:_S_string_from_iter): New helper function.
4914	(path::_S_convert(InputIter, __null_terminated))
4915	(path::_S_convert_loc(InputIter, __null_terminated, const locale&)):
4916	Use _S_string_from_iter.
4917	* testsuite/27_io/filesystem/path/append/source.cc: Test appending
4918	wide strings.
4919	* testsuite/27_io/filesystem/path/concat/strings.cc: Check for exact
4920	string equality, not path equivalence.
4921	* testsuite/27_io/filesystem/path/construct/format.cc: Check
4922	construction from std::string and std::wstring and input iterators.
4923	* testsuite/27_io/filesystem/path/construct/locale.cc: Check
4924	construction from iterators.
4925	* testsuite/experimental/filesystem/path/concat/strings.cc: Check for
4926	exact string equality, not path equivalence.
4927	* testsuite/experimental/filesystem/path/construct/locale.cc: Check
4928	construction from iterators.
4929
4930	* include/bits/fs_path.h (path::_M_type): Change default member
4931	initializer to _Filename.
4932	(path::begin): Create past-the-end iterator for empty path.
4933	* src/filesystem/std-path.cc (path::remove_filename()): Remove
4934	debugging check.
4935	(path::has_relative_path()): Return false for empty filenames.
4936	(path::_M_split_cmpts): Set _M_type to _Filename for empty paths.
4937	Fix offset of empty final component.
4938	* testsuite/27_io/filesystem/path/itr/components.cc: New.
4939	* testsuite/27_io/filesystem/path/itr/traversal.cc: Add new inputs.
4940
49412018-05-21  Jonathan Wakely  <jwakely@redhat.com>
4942
4943	Add support for opening file streams from wide character strings.
4944	* config/io/basic_file_stdio.cc [_GLIBCXX_HAVE__WFOPEN]
4945	(__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
4946	Define new overload.
4947	* config/io/basic_file_stdio.h [_GLIBCXX_HAVE__WFOPEN]
4948	(__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
4949	Declare new overload.
4950	* configure.ac: Check for _wfopen.
4951	* crossconfig.m4: Likewise.
4952	* configure: Regenerate.
4953	* config.h.in: Regenerate.
4954	* include/bits/fstream.tcc [_GLIBCXX_HAVE__WFOPEN]
4955	(basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
4956	Define new overload.
4957	* include/std/fstream [_GLIBCXX_HAVE__WFOPEN]
4958	(basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
4959	Declare new overload.
4960	[_GLIBCXX_HAVE__WFOPEN]
4961	(basic_ifstream<C,T>::basic_ifstream(const wchar_t*, openmode))
4962	(basic_ifstream<C,T>::basic_open(const wchar_t*, openmode))
4963	(basic_ofstream<C,T>::basic_ifstream(const wchar_t*, openmode))
4964	(basic_ofstream<C,T>::basic_open(const wchar_t*, openmode))
4965	(basic_fstream<C,T>::basic_ifstream(const wchar_t*, openmode))
4966	(basic_fstream<C,T>::basic_open(const wchar_t*, openmode)): Define
4967	new overloads.
4968	* testsuite/27_io/basic_filebuf/open/wchar_t/1.cc: New.
4969	* testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc: New.
4970	* testsuite/27_io/basic_ifstream/open/wchar_t/1.cc: New.
4971	* testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc: New.
4972	* testsuite/27_io/basic_ofstream/open/wchar_t/1.cc: New.
4973	* testsuite/27_io/basic_fstream/cons/wchar_t/1.cc: New.
4974	* testsuite/27_io/basic_fstream/open/wchar_t/1.cc: New.
4975
49762018-05-21  François Dumont  <fdumont@gcc.gnu.org>
4977
4978	PR libstdc++/85845
4979	* include/bits/stl_tree.h
4980	(_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): Fix noexcept
4981	qualification.
4982
49832018-05-21  Jonathan Wakely  <jwakely@redhat.com>
4984
4985	* src/filesystem/std-ops.cc (absolute): Report an error for empty
4986	paths.
4987	(weakly_canonical(const path&)): Do not call canonical on empty path.
4988	(weakly_canonical(const path&, error_code&)): Likewise.
4989	* testsuite/27_io/filesystem/operations/absolute.cc: Check for errors.
4990
4991	PR libstdc++/85818
4992	* testsuite/experimental/filesystem/path/preferred_separator.cc: Add
4993	dg-require-filesystem-ts.
4994
4995	PR libstdc++/85843
4996	* src/c++11/cow-stdexcept.cc (logic_error, runtime_error): Explicitly
4997	initialize base class to avoid warnings.
4998
49992018-05-19  Jonathan Wakely  <jwakely@redhat.com>
5000
5001	* src/c++11/codecvt.cc (__codecvt_utf8_base<wchar_t>::do_in)
5002	[__SIZEOF_WCHAR_T__==2 && __BYTE_ORDER__!=__ORDER_BIG_ENDIAN__]: Set
5003	little_endian element in bitmask.
5004	* testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: Run all tests.
5005	* testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc: New.
5006
50072018-05-18  François Dumont  <fdumont@gcc.gnu.org>
5008
5009	* include/bits/stl_tree.h
5010	(_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): New.
5011	(_Rb_tree(_Rb_tree&&, _Node_allocator&&, true_type)): New, use latter.
5012	(_Rb_tree(_Rb_tree&&, _Node_allocator&&, false_type)): New.
5013	(_Rb_tree(_Rb_tree&&, _Node_allocator&&)): Adapt, use latters.
5014	* include/debug/map.h
5015	(map(map&&, const_allocator_type&)): Add noexcept qualitication.
5016	* include/debug/multimap.h
5017	(multimap(multimap&&, const_allocator_type&)): Likewise.
5018	* include/debug/set.h
5019	(set(set&&, const_allocator_type&)): Likewise.
5020	* include/debug/multiset.h
5021	(multiset(multiset&&, const_allocator_type&)): Likewise.
5022	* testsuite/23_containers/map/cons/noexcept_default_construct.cc:
5023	Add checks.
5024	* testsuite/23_containers/map/cons/noexcept_move_construct.cc:
5025	Add checks.
5026	* testsuite/23_containers/multimap/cons/noexcept_default_construct.cc:
5027	Add checks.
5028	* testsuite/23_containers/multimap/cons/noexcept_move_construct.cc:
5029	Add checks.
5030	* testsuite/23_containers/multiset/cons/noexcept_default_construct.cc:
5031	Add checks.
5032	* testsuite/23_containers/multiset/cons/noexcept_move_construct.cc:
5033	Add checks.
5034	* testsuite/23_containers/set/cons/noexcept_default_construct.cc:
5035	Add checks.
5036	* testsuite/23_containers/set/cons/noexcept_move_construct.cc:
5037	Add checks.
5038
50392018-05-18  Jason Merrill  <jason@redhat.com>
5040
5041	* include/bits/stl_deque.h (_Deque_iterator): Constrain constructor
5042	for conversion to const_iterator.  Add defaulted copy ops.
5043	* libsupc++/new (bad_alloc): Add defaulted copy ops.
5044	* libsupc++/exception.h (exception): Add defaulted copy ops.
5045	* include/std/system_error (system_error): Add defaulted copy ops.
5046	* include/std/stdexcept (domain_error, invalid_argument)
5047	(length_error, out_of_range, range_error, overflow_error)
5048	(underflow_error): Add defaulted copy ops.
5049	* include/bits/stl_iterator.h (reverse_iterator): Add defaulted
5050	copy assignment.
5051	* include/bits/allocator.h (allocator): Add defaulted copy assignment.
5052	* include/ext/throw_allocator.h (condition_base): Add defaulted
5053	default and copy ctor and copy assignment.
5054
50552018-05-18  Jonathan Wakely  <jwakely@redhat.com>
5056
5057	PR libstdc++/85098
5058	* include/bits/regex.h [__cplusplus < 201703L] (basic_regex::icase)
5059	(basic_regex::nosubs, basic_regex::optimize, basic_regex::collate)
5060	(basic_regex::ECMAScript, basic_regex::basic, basic_regex::extended)
5061	(basic_regex::awk, basic_regex::grep, basic_regex::egrep): Add
5062	definitions.
5063	* include/bits/regex_automaton.h (_NFA::_M_insert_state): Adjust
5064	whitespace.
5065	* include/bits/regex_compiler.tcc (__INSERT_REGEX_MATCHER): Add
5066	braces around body of do-while.
5067	* testsuite/28_regex/basic_regex/85098.cc: New
5068
50692018-05-17  Jonathan Wakely  <jwakely@redhat.com>
5070
5071	PR libstdc++/85818
5072	* src/filesystem/path.cc (path::preferred_separator): Add used
5073	attribute.
5074	* testsuite/experimental/filesystem/path/preferred_separator.cc: New.
5075
5076	PR libstdc++/85812
5077	* libsupc++/cxxabi_init_exception.h (__cxa_free_exception): Declare.
5078	* libsupc++/exception_ptr.h (make_exception_ptr) [__cpp_exceptions]:
5079	Refactor to separate non-throwing and throwing implementations.
5080	[__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]: Deallocate the memory
5081	if constructing the object throws.
5082
50832018-05-15  Jonathan Wakely  <jwakely@redhat.com>
5084
5085	PR libstdc++/85749
5086	* include/bits/random.h (__detail::__is_seed_seq): New SFINAE helper.
5087	(linear_congruential_engine, mersenne_twister_engine)
5088	(subtract_with_carry_engine, discard_block_engine)
5089	(independent_bits_engine, shuffle_order_engine): Use __is_seed_seq to
5090	constrain function templates taking seed sequences.
5091	* include/bits/random.tcc (linear_congruential_engine::seed(_Sseq&))
5092	(mersenne_twister_engine::seed(_Sseq&))
5093	(subtract_with_carry_engine::seed(_Sseq&)): Change return types to
5094	match declarations.
5095	* include/ext/random (simd_fast_mersenne_twister_engine): Use
5096	__is_seed_seq to constrain function templates taking seed sequences.
5097	* include/ext/random.tcc (simd_fast_mersenne_twister_engine::seed):
5098	Change return type to match declaration.
5099	* testsuite/26_numerics/random/discard_block_engine/cons/seed_seq2.cc:
5100	New.
5101	* testsuite/26_numerics/random/independent_bits_engine/cons/
5102	seed_seq2.cc: New.
5103	* testsuite/26_numerics/random/linear_congruential_engine/cons/
5104	seed_seq2.cc: New.
5105	* testsuite/26_numerics/random/mersenne_twister_engine/cons/
5106	seed_seq2.cc: New.
5107	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lineno.
5108	* testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq2.cc:
5109	New.
5110	* testsuite/26_numerics/random/subtract_with_carry_engine/cons/
5111	seed_seq2.cc: New.
5112	* testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/
5113	seed_seq2.cc: New.
5114
5115	PR libstdc++/83891
5116	* include/bits/fs_path.h (path::is_absolute()): Use same definition
5117	for all operating systems.
5118	* include/experimental/bits/fs_path.h (path::is_absolute()): Likewise.
5119	* testsuite/27_io/filesystem/path/query/is_absolute.cc: New.
5120	* testsuite/27_io/filesystem/path/query/is_relative.cc: Fix comment.
5121	* testsuite/experimental/filesystem/path/query/is_absolute.cc: New.
5122
5123	* testsuite/27_io/filesystem/path/decompose/extension.cc: Remove
5124	unused <vector> header.
5125	* testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
5126	* testsuite/27_io/filesystem/path/query/has_extension.cc: Likewise.
5127	* testsuite/27_io/filesystem/path/query/has_filename.cc: Likewise.
5128	* testsuite/27_io/filesystem/path/query/has_parent_path.cc: Likewise.
5129	* testsuite/27_io/filesystem/path/query/has_relative_path.cc:
5130	Likewise.
5131	* testsuite/27_io/filesystem/path/query/has_root_directory.cc:
5132	Likewise.
5133	* testsuite/27_io/filesystem/path/query/has_root_name.cc: Likewise.
5134	* testsuite/27_io/filesystem/path/query/has_root_path.cc: Likewise.
5135	* testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
5136	* testsuite/27_io/filesystem/path/query/is_relative.cc: Likewise.
5137	* testsuite/experimental/filesystem/path/decompose/extension.cc:
5138	Likewise.
5139	* testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
5140	* testsuite/experimental/filesystem/path/query/has_extension.cc:
5141	Likewise.
5142	* testsuite/experimental/filesystem/path/query/has_filename.cc:
5143	Likewise.
5144	* testsuite/experimental/filesystem/path/query/has_parent_path.cc:
5145	Likewise.
5146	* testsuite/experimental/filesystem/path/query/has_relative_path.cc:
5147	Likewise.
5148	* testsuite/experimental/filesystem/path/query/has_root_directory.cc:
5149	Likewise.
5150	* testsuite/experimental/filesystem/path/query/has_root_name.cc:
5151	Likewise.
5152	* testsuite/experimental/filesystem/path/query/has_root_path.cc:
5153	Likewise.
5154	* testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
5155	* testsuite/experimental/filesystem/path/query/is_relative.cc:
5156	Likewise.
5157
5158	PR libstdc++/84159
5159	* include/bits/fs_path.h (path::operator/=, path::append): Construct
5160	temporary path before calling _M_append.
5161	(path::_M_append): Change parameter to path and implement C++17
5162	semantics.
5163	* testsuite/27_io/filesystem/path/append/path.cc: Add helper function
5164	and more examples from the standard.
5165	* testsuite/27_io/filesystem/path/append/source.cc: New.
5166	* testsuite/27_io/filesystem/path/decompose/filename.cc: Add comment.
5167	* testsuite/27_io/filesystem/path/nonmember/append.cc: New.
5168
5169	* include/std/variant (__gen_vtable_impl::__visit_invoke): Qualify
5170	__invoke to prevent ADL.
5171
51722018-05-14  Jonathan Wakely  <jwakely@redhat.com>
5173
5174	PR libstdc++/81256
5175	* include/bits/fstream.tcc (basic_filebuf::close): Do not swallow
5176	exceptions from _M_terminate_output().
5177	* include/std/fstream (basic_filebuf::~basic_filebuf): Swallow any
5178	exceptions from close().
5179	* testsuite/27_io/basic_filebuf/close/81256.cc: New.
5180
5181	* include/bits/valarray_array.h (__valarray_get_memory): Remove.
5182	(__valarray_get_storage): Call operator new directly. Remove ignored
5183	top-level restrict qualifier and add malloc attribute instead.
5184	(_Array<_Tp>::_Array(size_t)): Remove unused constructor.
5185
5186	PR libstdc++/67554
5187	* include/bits/valarray_array.h (_Array_copy_ctor<_Tp, true>)
5188	(_Array_copier<_Tp, true>): Do not pass null pointers to memcpy.
5189
5190	PR libstdc++/82966
5191	* include/bits/node_handle.h (_Node_handle_common::_M_swap): Use value
5192	instead of type.
5193	* testsuite/23_containers/set/modifiers/node_swap.cc: New.
5194
51952018-05-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
5196
5197	PR libstdc++/80165
5198	* testsuite/20_util/variant/80165.cc: New.
5199
52002018-05-10  Jonathan Wakely  <jwakely@redhat.com>
5201
5202	* doc/xml/faq.xml: Link to C++17 status. Add note to outdated answer.
5203	* doc/xml/manual/debug_mode.xml: Add array and forward_list to list
5204	of C++11 containers with Debug Mode support.
5205	* doc/xml/manual/using.xml: Document Dual ABI for ios_base::failure.
5206	* doc/html/*: Regenerate.
5207
52082018-05-10  Jason Merrill  <jason@redhat.com>
5209
5210	* include/bits/regex_compiler.h (_S_cache_size): Change from
5211	function to variable.
5212
52132018-05-10  Edward Smith-Rowland  <3dw4rd@verizon.net>
5214
5215	PR libstdc++/83140 - assoc_legendre returns negated value when m is odd
5216	* include/tr1/legendre_function.tcc (__assoc_legendre_p): Add __phase
5217	argument defaulted to +1.  Doxy comments on same.
5218	* testsuite/special_functions/02_assoc_legendre/
5219	check_value.cc: Regen.
5220	* testsuite/tr1/5_numerical_facilities/special_functions/
5221	02_assoc_legendre/check_value.cc: Regen.
5222
52232018-05-10  Jonathan Wakely  <jwakely@redhat.com>
5224
5225	PR libstdc++/85729
5226	* include/bits/c++config.h (__replacement_assert): Add linkage
5227	specification.
5228	* include/bits/std_abs.h: Add comment to closing brace of block.
5229	* include/c_global/cstddef: Add linkage specification.
5230	* include/c_global/cstring: Likewise.
5231	* include/c_global/cwchar: Likewise.
5232
52332018-05-09  François Dumont  <fdumont@gcc.gnu.org>
5234
5235	* include/debug/safe_iterator.h (_Safe_iterator<>::_M_constant()):
5236	Rename in...
5237	(_Safe_iterator<>::_S_constant()): ...that.
5238	* include/debug/safe_local_iterator.h
5239	(_Safe_local_iterator<>::_M_constant()): Rename in...
5240	(_Safe_local_iterator<>::_S_constant()): ...that.
5241	* include/debug/formatter.h: Remove bits/cpp_type_traits.h include.
5242	(_Iterator_state::__rbegin): New.
5243	(_Iterator_state::__rmiddle): New.
5244	(_Iterator_state::__rend): New.
5245	(_Parameter::_Parameter(const _Safe_iterator<>&, const char*,
5246	_Is_iterator)): Use _Safe_iterator<>::_S_constant. Grab normal underlying
5247	iterator type.
5248	(_Parameter::_Parameter(const _Safe_local_iterator<>&, const char*,
5249	_Is_iterator)): Likewise.
5250	(_Parameter::_S_reverse_state(_Iterator_state)): New.
5251	(_Parameter(__gnu_cxx::__normal_iterator<> const&, const char*,
5252	_Is_iterator)): New.
5253	(_Parameter(std::reverse_iterator<> const&, const char*,
5254	_Is_iterator)): New.
5255	(_Parameter(std::reverse_iterator<_Safe_iterator<>> const&,
5256	const char*, _Is_iterator)): New.
5257	(_Parameter(std::move_iterator<> const&, const char*, _Is_iterator):
5258	New.
5259	(_Parameter(std::move_iterator<_Safe_iterator<>> const&, const char*,
5260	_Is_iterator)): New.
5261	* testsuite/24_iterators/move_iterator/debug_neg.cc: New.
5262	* testsuite/24_iterators/normal_iterator/debug_neg.cc: New.
5263	* testsuite/24_iterators/reverse_iterator/debug_neg.cc: New.
5264
52652018-05-09  Jonathan Wakely  <jwakely@redhat.com>
5266
5267	* include/bits/std_function.h (_Base_manager::_M_get_pointer):
5268	Use constexpr if in C++17 mode.
5269	(_Base_manager::_M_clone(_Any_data&, const _Any_data&, true_type)):
5270	Copy from const object.
5271	* testsuite/20_util/function/cons/non_copyconstructible.cc: New.
5272
52732018-05-08  François Dumont  <fdumont@gcc.gnu.org>
5274
5275	* src/c++11/debug.cc [_GLIBCXX_HAVE_EXECINFO_H]: Include execinfo.h.
5276	[_GLIBCXX_HAVE_EXECINFO_H](_Error_formatter::_M_error): Render
5277	backtrace.
5278
5279	* include/debug/macros.h (__glibcxx_check_valid_range_at): New.
5280	* include/debug/functions.h (__check_valid_range): Use latter.
5281	* include/debug/macros.h (__glibcxx_check_valid_constructor_range): New,
5282	use latter.
5283	* include/debug/deque
5284	(deque::deque<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
5285	* include/debug/forward_list
5286	(forward_list::forward_list<_Iter>(_Iter, _Iter, const _Alloc&)):
5287	Likewise.
5288	* include/debug/list
5289	(list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
5290	* include/debug/list
5291	(list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
5292	* include/debug/map.h
5293	(map::map<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
5294	(map::map<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
5295	Likewise.
5296	* include/debug/multimap.h
5297	(multimap::multimap<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
5298	(multimap::multimap<_Iter>(_Iter, _Iter, const _Compare&,
5299	const _Alloc&)): Likewise.
5300	* include/debug/set.h
5301	(set::set<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
5302	(set::set<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
5303	Likewise.
5304	* include/debug/multiset.h
5305	(multiset::multiset<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
5306	(multiset::multiset<_Iter>(_Iter, _Iter, const _Compare&,
5307	const _Alloc&)): Likewise.
5308	* include/debug/string
5309	(basic_string::basic_string<_Iter>(_Iter, _Iter, const _Alloc&)):
5310	Likewise.
5311	* include/debug/unordered_map
5312	(unordered_map::unordered_map<_Iter>(_Iter, _Iter, const _Alloc&)):
5313	Likewise.
5314	(unordered_multimap::unordered_multimap<_Iter>(_Iter, _Iter,
5315	const _Alloc&)): Likewise.
5316	* include/debug/unordered_set
5317	(unordered_set::unordered_set<_Iter>(_Iter, _Iter, const _Alloc&)):
5318	Likewise.
5319	(unordered_multiset::unordered_multiset<_Iter>(_Iter, _Iter,
5320	const _Alloc&)): Likewise.
5321	* include/debug/vector
5322	(vector::vector<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
5323
5324	* include/debug/formatter.h (_Error_formatter::_M_function): New.
5325	(_Error_formatter(const char*, unsigned int)): Adapt.
5326	(_Error_formatter::_M_at): Rename in...
5327	(_Error_formatter::_S_at): ...that and adapt.
5328	* include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): New.
5329	(_GLIBCXX_DEBUG_VERIFY_AT, _GLIBCXX_DEBUG_VERIFY): Adapt.
5330	* src/c++11/debug.cc (_Error_formatter::_M_error): Render _M_function
5331	when available.
5332
53332018-05-08  Jonathan Wakely  <jwakely@redhat.com>
5334
5335	* include/bits/regex_automaton.h (_NFA_base::_M_paren_stack, _NFA):
5336	Use normal std::vector even in Debug Mode.
5337
5338	PR libstdc++/85672
5339	* include/Makefile.am [!ENABLE_FLOAT128]: Change c++config.h entry
5340	to #undef _GLIBCXX_USE_FLOAT128 instead of defining it to zero.
5341	* include/Makefile.in: Regenerate.
5342	* include/bits/c++config (_GLIBCXX_USE_FLOAT128): Move definition
5343	within conditional block.
5344
53452018-05-07  Jonathan Wakely  <jwakely@redhat.com>
5346
5347	* doc/xml/manual/using.xml (table.cmd_options): Document that the
5348	C++17 Filesystem implementation also needs -lstdc++fs.
5349
5350	PR libstdc++/85671
5351	* include/bits/fs_path.h (operator/): Permit copy elision.
5352	* include/experimental/bits/fs_path.h (operator/): Likewise.
5353
53542018-05-07  Edward Smith-Rowland  <3dw4rd@verizon.net>
5355
5356	Moar PR libstdc++/80506
5357	* include/bits/random.tcc (gamma_distribution::__generate_impl()):
5358	Fix magic number used in loop condition.
5359
53602018-05-04  Jonathan Wakely  <jwakely@redhat.com>
5361
5362	PR libstdc++/85642 fix is_nothrow_default_constructible<optional<T>>
5363	* include/std/optional (_Optional_payload): Add noexcept to default
5364	constructor. Re-indent.
5365	(_Optional_payload<_Tp, true, true, true>): Likewise. Add noexcept to
5366	constructor for copying disengaged payloads.
5367	(_Optional_payload<_Tp, true, false, true>): Likewise.
5368	(_Optional_payload<_Tp, true, true, false>): Likewise.
5369	(_Optional_payload<_Tp, true, false, false>): Likewise.
5370	* testsuite/20_util/optional/cons/85642.cc: New.
5371	* testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error lines.
5372
53732018-05-03  Jonathan Wakely  <jwakely@redhat.com>
5374
5375	PR libstdc++/82644
5376	* include/tr1/cmath [__STRICT_ANSI__] (hypergf, hypergl, hyperg): Use
5377	inline definitions instead of using-declarations.
5378	[__STRICT_ANSI__] (conf_hypergf, conf_hypergl, conf_hyperg): Likewise.
5379	* testsuite/tr1/5_numerical_facilities/special_functions/
5380	07_conf_hyperg/compile_cxx17.cc: New.
5381	* testsuite/tr1/5_numerical_facilities/special_functions/
5382	17_hyperg/compile_cxx17.cc: New.
5383
5384	PR libstdc++/84769
5385	* include/std/variant (visit): Qualify std::get call.
5386
5387	PR libstdc++/85632 use uintmax_t for arithmetic
5388	* src/filesystem/ops.cc (experimental::filesystem::space): Perform
5389	arithmetic in result type.
5390	* src/filesystem/std-ops.cc (filesystem::space): Likewise.
5391	* testsuite/27_io/filesystem/operations/space.cc: Check total capacity
5392	is greater than free space.
5393	* testsuite/experimental/filesystem/operations/space.cc: New.
5394
5395	* testsuite/20_util/remove_cvref/requirements/alias_decl.cc: New.
5396	* testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc:
5397	New.
5398	* testsuite/20_util/remove_cvref/value.cc: New.
5399	* testsuite/20_util/remove_cvref/value_ext.cc: New.
5400
5401	PR libstdc++/84087 LWG DR 2268 basic_string default arguments
5402	* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI=1]
5403	(append(const basic_string&, size_type, size_type)
5404	(assign(const basic_string&, size_type, size_type)
5405	(insert(size_type, const basic_string&, size_type, size_type)
5406	(replace(size_type,size_type,const basic_string&,size_type,size_type)
5407	(compare(size_type,size_type,constbasic_string&,size_type,size_type)):
5408	Add default arguments (LWG 2268).
5409	[_GLIBCXX_USE_CXX11_ABI=0]
5410	(append(const basic_string&, size_type, size_type)
5411	(assign(const basic_string&, size_type, size_type)
5412	(insert(size_type, const basic_string&, size_type, size_type)
5413	(replace(size_type,size_type,const basic_string&,size_type,size_type)
5414	(compare(size_type,size_type,constbasic_string&,size_type,size_type)):
5415	Likewise.
5416	* testsuite/21_strings/basic_string/dr2268.cc: New test.
5417
5418	PR libstdc++/84535
5419	* include/std/thread (thread::__not_same): New SFINAE helper.
5420	(thread::thread(_Callable&&, _Args&&...)): Add SFINAE constraint that
5421	first argument is not a std::thread. Add static assertion to check
5422	INVOKE expression is valid.
5423	(thread::thread(thread&), thread::thread(const thread&&)): Remove.
5424	(thread::_Invoke::_M_invoke, thread::_Invoke::operator()): Use
5425	__invoke_result for return types and remove exception specifications.
5426	* testsuite/30_threads/thread/cons/84535.cc: New.
5427
5428	* include/std/future (__async_result_of): Use __invoke_result instead
5429	of result_of.
5430
5431	* include/std/any (any_cast): Use __remove_cvref_t.
5432	* include/std/tuple (__make_tuple): Likewise.
5433	* include/std/type_traits (__remove_cvref_t): Define.
5434	(__result_of_memobj, __result_of_memfun): Use __remove_cvref_t.
5435	[__cplusplus > 201703L] (remove_cvref, remove_cvref_t): Define.
5436	* include/std/variant (__erased_hash): Use __remove_cvref_t.
5437
54382018-05-02  François Dumont  <fdumont@gcc.gnu.org>
5439
5440	* include/bits/deque.tcc (deque<>::_M_assign_aux): Cast to void to
5441	ensure overloaded comma not used.
5442	* include/bits/list.tcc (list<>::_M_assign_dispatch): Likewise.
5443	* include/bits/vector.tcc (vector<>::_M_assign_aux): Likewise.
5444	* include/bits/stl_bvector.h (vector<bool>::_M_assign_aux): Likewise.
5445	* testsuite/23_containers/deque/modifiers/assign/1.cc: New.
5446	* testsuite/23_containers/list/modifiers/assign/1.cc: New.
5447	* testsuite/23_containers/vector/bool/modifiers/assign/1.cc: New.
5448	* testsuite/23_containers/vector/modifiers/assign/1.cc: New.
5449
54502018-05-02  Jonathan Wakely  <jwakely@redhat.com>
5451
5452	PR libstdc++/68197
5453	* include/bits/ios_base.h (ios_base::iword, ios_base::pword): Cast
5454	indices to unsigned.
5455	* src/c++11/ios.cc (ios_base::_M_grow_words): Treat negative indices
5456	as failure. Refactor error handling.
5457	* testsuite/27_io/ios_base/storage/68197.cc: New.
5458
5459	PR libstdc++/57997
5460	PR libstdc++/83860
5461	* include/bits/gslice_array.h (gslice_array): Define default
5462	constructor as deleted, as per C++11 standard.
5463	* include/bits/mask_array.h (mask_array): Likewise.
5464	* include/bits/slice_array.h (slice_array): Likewise.
5465	* include/bits/valarray_after.h (_GBase, _GClos, _IBase, _IClos): Move
5466	to namespace __detail.
5467	(_GBase::_M_expr, _IBase::_M_expr): Use _ValArrayRef for type of data
5468	members.
5469	* include/bits/valarray_before.h (_ValArrayRef): New helper for type
5470	of data members in closure objects.
5471	(_FunBase, _ValFunClos, _RefFunClos, _UnBase, _UnClos, _BinBase)
5472	(_BinBase2, _BinBase1, _BinClos, _SBase, _SClos): Move to namespace
5473	__detail.
5474	(_FunBase::_M_expr, _UnBase::_M_expr, _BinBase::_M_expr1)
5475	(_BinBase::_M_expr2, _BinBase2::_M_expr1, _BinBase1::_M_expr2)
5476	(_SBase::_M_expr): Use _ValArrayRef for type of data members.
5477	* include/std/valarray (_UnClos, _BinClos, _SClos, _GClos, _IClos)
5478	(_ValFunClos, _RefFunClos): Move to namespace __detail and add
5479	using-declarations to namespace std.
5480	* testsuite/26_numerics/valarray/83860.cc: New.
5481
5482	* testsuite/backward/strstream_move.cc: Remove duplicate function
5483	call.
5484
5485	PR libstdc++/69608
5486	* include/backward/strstream (strstreambuf): Define move constructor
5487	and move assignment operator.
5488	(istrstream, ostrstream, strstream): Likewise.
5489	* testsuite/backward/strstream_move.cc: New.
5490
54912018-05-01  Tulio Magno Quites Machado Filho  <tuliom@linux.vnet.ibm.com>
5492
5493	PR libstdc++/84654
5494	* acinclude.m4: Set ENABLE_FLOAT128 instead of _GLIBCXX_USE_FLOAT128.
5495	* config.h.in: Remove references to _GLIBCXX_USE_FLOAT128.
5496	* configure: Regenerate.
5497	* include/Makefile.am: Replace the value of _GLIBCXX_USE_FLOAT128
5498	based on ENABLE_FLOAT128.
5499	* include/Makefile.in: Regenerate.
5500	* include/bits/c++config: Define _GLIBCXX_USE_FLOAT128.
5501	[!defined(__FLOAT128__) && !defined(__SIZEOF_FLOAT128__)]: Undefine
5502	_GLIBCXX_USE_FLOAT128.
5503
55042018-04-24  H.J. Lu  <hongjiu.lu@intel.com>
5505
5506	* configure: Regenerated.
5507
55082018-04-19  Jakub Jelinek  <jakub@redhat.com>
5509
5510	* configure: Regenerated.
5511
55122018-04-18  Jonathan Wakely  <jwakely@redhat.com>
5513	    Jakub Jelinek  <jakub@redhat.com>
5514
5515	PR libstdc++/85442
5516	* src/c++11/Makefile.am: Don't generate debuginfo again for
5517	cxx11-ios_failure-lt.s and cxx11-ios_failure.s files.
5518	* src/c++11/Makefile.in: Regenerate.
5519
55202018-04-18  Jonathan Wakely  <jwakely@redhat.com>
5521
5522	PR libstdc++/84442
5523	* testsuite/30_threads/thread/cons/terminate.cc
5524	[!_GLIBCXX_USE_C99_STDLIB] : Use _exit or std::exit instead of _Exit.
5525
55262018-04-18  David Malcolm  <dmalcolm@redhat.com>
5527
5528	PR jit/85384
5529	* configure: Regenerate.
5530
55312018-04-16  Jonathan Wakely  <jwakely@redhat.com>
5532
5533	* testsuite/experimental/filesystem/file_status/1.cc: Add
5534	-DUSE_FILESYSTEM_TS to dg-options.
5535	* testsuite/experimental/filesystem/iterators/directory_iterator.cc:
5536	Likewise.
5537	* testsuite/experimental/filesystem/iterators/pop.cc: Likewise.
5538	* testsuite/experimental/filesystem/iterators/
5539	recursive_directory_iterator.cc: Likewise.
5540	* testsuite/experimental/filesystem/operations/absolute.cc: Likewise.
5541	* testsuite/experimental/filesystem/operations/canonical.cc: Likewise.
5542	* testsuite/experimental/filesystem/operations/copy.cc: Likewise.
5543	* testsuite/experimental/filesystem/operations/copy_file.cc: Likewise.
5544	* testsuite/experimental/filesystem/operations/create_directories.cc:
5545	Likewise.
5546	* testsuite/experimental/filesystem/operations/create_directory.cc:
5547	Likewise.
5548	* testsuite/experimental/filesystem/operations/create_symlink.cc:
5549	Likewise.
5550	* testsuite/experimental/filesystem/operations/current_path.cc:
5551	Likewise.
5552	* testsuite/experimental/filesystem/operations/equivalent.cc: Likewise.
5553	* testsuite/experimental/filesystem/operations/exists.cc: Likewise.
5554	* testsuite/experimental/filesystem/operations/file_size.cc: Likewise.
5555	* testsuite/experimental/filesystem/operations/is_empty.cc: Likewise.
5556	* testsuite/experimental/filesystem/operations/last_write_time.cc:
5557	Likewise.
5558	* testsuite/experimental/filesystem/operations/permissions.cc:
5559	Likewise.
5560	* testsuite/experimental/filesystem/operations/read_symlink.cc:
5561	Likewise.
5562	* testsuite/experimental/filesystem/operations/remove.cc: Likewise.
5563	* testsuite/experimental/filesystem/operations/remove_all.cc: Likewise.
5564	* testsuite/experimental/filesystem/operations/status.cc: Likewise.
5565	* testsuite/experimental/filesystem/operations/temp_directory_path.cc:
5566	Likewise.
5567	* testsuite/experimental/filesystem/path/append/path.cc: Likewise.
5568	* testsuite/experimental/filesystem/path/assign/assign.cc: Likewise.
5569	* testsuite/experimental/filesystem/path/assign/copy.cc: Likewise.
5570	* testsuite/experimental/filesystem/path/compare/compare.cc: Likewise.
5571	* testsuite/experimental/filesystem/path/compare/path.cc: Likewise.
5572	* testsuite/experimental/filesystem/path/compare/strings.cc: Likewise.
5573	* testsuite/experimental/filesystem/path/concat/path.cc: Likewise.
5574	* testsuite/experimental/filesystem/path/concat/strings.cc: Likewise.
5575	* testsuite/experimental/filesystem/path/construct/copy.cc: Likewise.
5576	* testsuite/experimental/filesystem/path/construct/default.cc:
5577	Likewise.
5578	* testsuite/experimental/filesystem/path/construct/locale.cc: Likewise.
5579	* testsuite/experimental/filesystem/path/construct/range.cc: Likewise.
5580	* testsuite/experimental/filesystem/path/construct/string_view.cc:
5581	Likewise.
5582	* testsuite/experimental/filesystem/path/decompose/extension.cc:
5583	Likewise.
5584	* testsuite/experimental/filesystem/path/decompose/filename.cc:
5585	Likewise.
5586	* testsuite/experimental/filesystem/path/decompose/parent_path.cc:
5587	Likewise.
5588	* testsuite/experimental/filesystem/path/decompose/relative_path.cc:
5589	Likewise.
5590	* testsuite/experimental/filesystem/path/decompose/root_directory.cc:
5591	Likewise.
5592	* testsuite/experimental/filesystem/path/decompose/root_name.cc:
5593	Likewise.
5594	* testsuite/experimental/filesystem/path/decompose/root_path.cc:
5595	Likewise.
5596	* testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
5597	* testsuite/experimental/filesystem/path/generic/generic_string.cc:
5598	Likewise.
5599	* testsuite/experimental/filesystem/path/itr/traversal.cc: Likewise.
5600	* testsuite/experimental/filesystem/path/modifiers/clear.cc: Likewise.
5601	* testsuite/experimental/filesystem/path/modifiers/make_preferred.cc:
5602	Likewise.
5603	* testsuite/experimental/filesystem/path/modifiers/remove_filename.cc:
5604	Likewise.
5605	* testsuite/experimental/filesystem/path/modifiers/replace_extension.cc:
5606	Likewise.
5607	* testsuite/experimental/filesystem/path/modifiers/replace_filename.cc:
5608	Likewise.
5609	* testsuite/experimental/filesystem/path/modifiers/swap.cc: Likewise.
5610	* testsuite/experimental/filesystem/path/native/string.cc: Likewise.
5611	* testsuite/experimental/filesystem/path/nonmember/hash_value.cc:
5612	Likewise.
5613	* testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
5614	* testsuite/experimental/filesystem/path/query/has_extension.cc:
5615	Likewise.
5616	* testsuite/experimental/filesystem/path/query/has_filename.cc:
5617	Likewise.
5618	* testsuite/experimental/filesystem/path/query/has_parent_path.cc:
5619	Likewise.
5620	* testsuite/experimental/filesystem/path/query/has_relative_path.cc:
5621	Likewise.
5622	* testsuite/experimental/filesystem/path/query/has_root_directory.cc:
5623	Likewise.
5624	* testsuite/experimental/filesystem/path/query/has_root_name.cc:
5625	Likewise.
5626	* testsuite/experimental/filesystem/path/query/has_root_path.cc:
5627	Likewise.
5628	* testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
5629	* testsuite/experimental/filesystem/path/query/is_relative.cc:
5630	Likewise.
5631
56322018-04-13  Jonathan Wakely  <jwakely@redhat.com>
5633
5634	* src/c++11/Makefile.am: Fix sed command.
5635	* src/c++11/Makefile.in: Regenerate.
5636
5637	* src/c++11/Makefile.am: Rewrite sed rule to be less fragile and to
5638	handle mangled names starting with double underscores on darwin.
5639	* src/c++11/Makefile.in: Regenerate.
5640
56412018-04-12  Jonathan Wakely  <jwakely@redhat.com>
5642
5643	* src/c++11/Makefile.am: Fix comment.
5644	* src/c++11/Makefile.in: Regenerate.
5645	* src/c++11/cxx11-ios_failure.cc: Fix comment.
5646	* src/c++98/ios_failure.cc: Likewise.
5647
5648	* src/c++11/ios.cc: Remove redundant macro definition.
5649
56502018-04-11  Jonathan Wakely  <jwakely@redhat.com>
5651
5652	* doc/xml/manual/abi.xml: Document header locations in recent
5653	releases.
5654	* doc/xml/manual/evolution.xml: Add API changes since GCC 5.
5655	* doc/xml/manual/spine.xml: Update copyright years.
5656	* doc/xml/manual/strings.xml: Adjust tolower example to avoid
5657	undefined behaviour.
5658	* doc/xml/manual/test.xml: Update outdated notes on VERIFY in tests.
5659	* doc/html/*: Regenerate.
5660
56612018-04-10  Jonathan Wakely  <jwakely@redhat.com>
5662
5663	* doc/xml/faq.xml: Update links to archived copy of SGI STL docs.
5664	* doc/xml/manual/backwards_compatibility.xml: Likewise.
5665	* doc/xml/manual/containers.xml: Likewise.
5666	* doc/xml/manual/debug_mode.xml: Likewise.
5667	* doc/xml/manual/extensions.xml: Likewise.
5668	* doc/xml/manual/policy_data_structures_biblio.xml: Likewise.
5669	* doc/xml/manual/using.xml: Likewise.
5670	* doc/xml/manual/utilities.xml: Likewise.
5671
5672	PR libstdc++/85222
5673	* src/c++11/Makefile.am [ENABLE_DUAL_ABI]: Add special rules for
5674	cxx11-ios_failure.cc to rewrite type info for __ios_failure.
5675	* src/c++11/Makefile.in: Regenerate.
5676	* src/c++11/cxx11-ios_failure.cc (__ios_failure, __iosfail_type_info):
5677	New types.
5678	[_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
5679	* src/c++11/ios.cc (__throw_ios_failure): Remove definition.
5680	* src/c++98/ios_failure.cc (__construct_ios_failure)
5681	(__destroy_ios_failure, is_ios_failure_handler): New functions.
5682	[!_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
5683	* testsuite/27_io/ios_base/failure/dual_abi.cc: New.
5684	* testsuite/27_io/basic_ios/copyfmt/char/1.cc: Revert changes to
5685	handler types, to always catch std::ios_base::failure.
5686	* testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
5687	* testsuite/27_io/basic_istream/extractors_arithmetic/char/
5688	exceptions_failbit.cc: Likewise.
5689	* testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
5690	exceptions_failbit.cc: Likewise.
5691	* testsuite/27_io/basic_istream/extractors_other/char/
5692	exceptions_null.cc: Likewise.
5693	* testsuite/27_io/basic_istream/extractors_other/wchar_t/
5694	exceptions_null.cc: Likewise.
5695	* testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
5696	* testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
5697	* testsuite/27_io/basic_ostream/inserters_other/char/
5698	exceptions_null.cc: Likewise.
5699	* testsuite/27_io/basic_ostream/inserters_other/wchar_t/
5700	exceptions_null.cc: Likewise.
5701	* testsuite/27_io/ios_base/storage/2.cc: Likewise.
5702
57032018-04-05  Jonathan Wakely  <jwakely@redhat.com>
5704
5705	* include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Qualify
5706	__get calls to avoid ADL and avoid ambiguity due to Clang bug.
5707
57082018-04-03  Jonathan Wakely  <jwakely@redhat.com>
5709
5710	PR libstdc++/85183
5711	* include/std/variant (_Move_assign_base::operator=): Fix incorrect
5712	value categories.
5713	* testsuite/20_util/variant/85183.cc: New.
5714
57152018-03-26  Jonathan Wakely  <jwakely@redhat.com>
5716
5717	* include/std/variant (__get): Qualify calls to avoid ADL.
5718	(__select_index): Adjust whitespace.
5719	(variant): Add using-declaration to workaround Clang bug.
5720
57212018-03-22  Jonathan Wakely  <jwakely@redhat.com>
5722
5723	PR libstdc++/85040
5724	* include/bits/stl_function.h (greater::__not_overloaded)
5725	(less::__not_overloaded, greater_equal::__not_overloaded)
5726	(less_equal::__not_overloaded): Fix ambiguous specializations.
5727	* testsuite/20_util/function_objects/comparisons_pointer.cc: Add
5728	tests for type with overloaded operators.
5729
57302018-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5731
5732	PR libstdc++/77691
5733	* testsuite/experimental/memory_resource/resource_adaptor.cc:
5734	xfail execution on 32-bit Solaris/x86.
5735
57362018-03-21  Jonathan Wakely  <jwakely@redhat.com>
5737
5738	* testsuite/20_util/function_objects/comparisons_pointer.cc: Use
5739	VERIFY instead of assert.
5740	* testsuite/20_util/hash/84998.cc: New test.
5741	* testsuite/23_containers/vector/cons/destructible_debug_neg.cc: New
5742	copy of test adjusted for Debug Mode.
5743	* testsuite/23_containers/vector/cons/destructible_neg.cc: Do not run
5744	test in Debug Mode.
5745
57462018-03-20  François Dumont  <fdumont@gcc.gnu.org>
5747
5748	PR libstdc++/84998
5749	* include/bits/stl_bvector.h: Fix std::hash friend declaration.
5750	* include/std/bitset: Likewise.
5751	* include/bits/stl_map.h (std::map<>): Fix _Rb_tree_merge_helper friend
5752	declaration.
5753	* include/bits/stl_multimap.h (std::multimap<>): Likewise.
5754	* include/bits/stl_multiset.h (std::multiset<>): Likewise.
5755	* include/bits/stl_set.h (std::set<>): Likewise.
5756	* include/bits/unordered_map.h (std::unordered_map<>): Fix
5757	_Hash_merge_helper friend declaration.
5758	(std::unordered_multimap<>): Likewise.
5759	* include/bits/unordered_set.h (std::unordered_set<>): Likewise.
5760	(std::unordered_multiset<>): Likewise.
5761
57622018-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
5763
5764	* doc/xml/api.xml: www.fsf.org has moved to https. Also omit
5765	trailing slash for domain level link.
5766	* doc/xml/faq.xml: Ditto.
5767	* doc/xml/manual/appendix_free.xml (software): Ditto.
5768	* doc/xml/manual/intro.xml: Ditto.
5769	* doc/xml/manual/spine.xml: Ditto.
5770	* doc/xml/spine.xml: Ditto.
5771
57722018-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
5773
5774	* doc/xml/manual/documentation_hacking.xml: Adjust link to
5775	docbook.org.
5776
57772018-03-17  Jonathan Wakely  <jwakely@redhat.com>
5778
5779	* testsuite/20_util/function_objects/comparisons_pointer.cc: Adjust
5780	to compile as C++98.
5781
57822018-03-14  Jonathan Wakely  <jwakely@redhat.com>
5783
5784	PR libstdc++/78420
5785	* include/bits/stl_function.h (greater<_Tp*>, less<_Tp*>)
5786	(greater_equal<_Tp*>, less_equal<_Tp>*): Add partial specializations
5787	to ensure total order for pointers.
5788	(greater<void>, less<void>, greater_equal<void>, less_equal<void>):
5789	Add operator() overloads for pointer arguments and make generic
5790	overloads dispatch to new _S_cmp functions when comparisons would
5791	use built-in operators for pointers.
5792	* testsuite/20_util/function_objects/comparisons_pointer.cc: New.
5793
57942018-03-12  Jonathan Wakely  <jwakely@redhat.com>
5795
5796	PR libstdc++/84773
5797	PR libstdc++/83662
5798	* crossconfig.m4: Check for aligned_alloc etc. on freebsd and mingw32.
5799	* configure: Regenerate.
5800	* include/c_global/cstdlib [_GLIBCXX_HAVE_ALIGNED_ALLOC]
5801	(aligned_alloc): Add using-declaration.
5802	* testsuite/18_support/aligned_alloc/aligned_alloc.cc: New test.
5803
58042018-03-09  François Dumont  <fdumont@gcc.gnu.org>
5805
5806	* python/libstdcxx/v6/printers.py (build_libstdcxx_dictionary):
5807	Fix std::_Fwd_list_iterator and std::_Fwd_list_const_iterator printers
5808	registration.
5809
58102018-03-09  Jonathan Wakely  <jwakely@redhat.com>
5811
5812	PR libstdc++/84769
5813	* include/std/variant (get<_Tp, _Types...>, get_if<_Tp, _Types...>):
5814	Qualify calls to get<_Np, Types...> and get_if<_Np, _Types...>.
5815
5816	src/filesystem/ops.cc (create_dir): Pass error_code to is_directory.
5817	src/filesystem/std-ops.cc (create_dir): Likewise.
5818
58192018-03-08  François Dumont  <fdumont@gcc.gnu.org>
5820
5821	* python/libstdcxx/v6/printers.py (NodeIteratorPrinter): New.
5822	(StdListIteratorPrinter): Inherit from latter.
5823	(StdFwdListIteratorPrinter): New, inherit from latter.
5824	(StdDebugIteratorPrinter.to_string): Use non-debug iterator printer
5825	when iterator has no associated container.
5826	(build_libstdcxx_dictionary): Add __gnu_cxx::_Fwd_list_iterator and
5827	__gnu_cxx::_Fwd_list_const_iterator printers. Remove __norm namespace
5828	registrations.
5829	* testsuite/libstdc++-prettyprinters/debug.cc: Adapt.
5830	* testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Adapt.
5831
58322018-03-06  Ville Voutilainen  <ville.voutilainen@gmail.com>
5833
5834	PR libstdc++/84601
5835	* include/std/optional (_Optional_payload): Split into multiple
5836	specializations that can handle different cases of trivial or
5837	non-trivial assignment operators.
5838	* testsuite/20_util/optional/84601.cc: New.
5839	* testsuite/20_util/optional/cons/value_neg.cc: Adjust.
5840
58412018-03-02  Jonathan Wakely  <jwakely@redhat.com>
5842
5843	PR libstdc++/84671
5844	* include/bits/parse_numbers.h (_Number_help): Add partial
5845	specialization to handle digit separators. Adjust partial
5846	specialization for recursion temrination to require _Pow == 1ULL.
5847	* testsuite/20_util/duration/literals/84671.cc: New
5848
58492018-02-27  Ville Voutilainen  <ville.voutilainen@gmail.com>
5850
5851	Implement the missing bits of LWG 2769
5852	* include/std/any (any_cast(const any&)): Add static_assert.
5853	(any_cast(any&)): Likewise.
5854	(any_cast(any&&)): Likewise, and remove the handling
5855	for copyable-but-not-movable type.
5856	* testsuite/20_util/any/misc/any_cast.cc: Adjust.
5857	* testsuite/20_util/any/misc/any_cast_neg.cc: Likewise, and
5858	add new tests.
5859
58602018-02-23  Jonathan Wakely  <jwakely@redhat.com>
5861
5862	PR libstdc++/84532
5863	* include/std/thread (thread::__make_invoker): Construct tuple
5864	directly instead of using make_tuple.
5865	* testsuite/30_threads/async/84532.cc: New.
5866	* testsuite/30_threads/thread/84532.cc: New.
5867
58682018-02-20  François Dumont  <fdumont@gcc.gnu.org>
5869
5870	* include/ext/aligned_buffer.h [_GLIBCXX_INLINE_VERSION]
5871	(template<> __aligned_buffer): Define as __aligned_membuf alias.
5872
58732018-02-19  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
5874
5875	PR target/84148
5876	* configure: Regenerate.
5877
58782018-02-15  Jonathan Wakely  <jwakely@redhat.com>
5879
5880	PR libstdc++/81797
5881	* configure.ac (INCLUDE_DIR_NOTPARALLEL): Define.
5882	* configure: Regenerate.
5883	* include/Makefile.am (INCLUDE_DIR_NOTPARALLEL): Add .NOTPARALLEL when
5884	defined.
5885	* include/Makefile.in: Regenerate.
5886
58872018-01-29  Jonathan Wakely  <jwakely@redhat.com>
5888
5889	PR libstdc++/83833
5890	* testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
5891	Add -ffloat-store to options for m68k and ia32.
5892
5893	* doc/xml/faq.xml: Update copyright years.
5894	* doc/html/*: Regenerate.
5895
5896	PR libstdc++/83658
5897	* include/std/any (any::__do_emplace): Only set _M_manager after
5898	constructing the contained object.
5899	* testsuite/20_util/any/misc/any_cast_neg.cc: Adjust dg-error line.
5900	* testsuite/20_util/any/modifiers/83658.cc: New test.
5901
59022018-01-25  Jonathan Wakely  <jwakely@redhat.com>
5903
5904	PR libstdc++/81076
5905	* include/c_global/cstddef (__byte_operand): Define primary template.
5906	* testsuite/18_support/byte/81076.cc: New test.
5907
59082018-01-19  Christophe Lyon  <christophe.lyon@linaro.org>
5909
5910	* testsuite/ext/special_functions/airy_ai/check_nan.cc: Fix
5911	dg-options and dg-add-options order.
5912	* testsuite/ext/special_functions/airy_bi/check_nan.cc: Likewise.
5913	* testsuite/ext/special_functions/conf_hyperg/check_nan.cc:
5914	Likewise.
5915	* testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
5916	* testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
5917	Likewise.
5918	* testsuite/special_functions/02_assoc_legendre/check_nan.cc:
5919	Likewise.
5920	* testsuite/special_functions/03_beta/check_nan.cc: Likewise.
5921	* testsuite/special_functions/04_comp_ellint_1/check_nan.cc:
5922	Likewise.
5923	* testsuite/special_functions/05_comp_ellint_2/check_nan.cc:
5924	Likewise.
5925	* testsuite/special_functions/06_comp_ellint_3/check_nan.cc:
5926	Likewise.
5927	* testsuite/special_functions/06_comp_ellint_3/pr66689.cc:
5928	Likewise.
5929	* testsuite/special_functions/07_cyl_bessel_i/check_nan.cc:
5930	Likewise.
5931	* testsuite/special_functions/08_cyl_bessel_j/check_nan.cc:
5932	Likewise.
5933	* testsuite/special_functions/09_cyl_bessel_k/check_nan.cc:
5934	Likewise.
5935	* testsuite/special_functions/10_cyl_neumann/check_nan.cc:
5936	Likewise.
5937	* testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
5938	* testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
5939	* testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
5940	* testsuite/special_functions/13_ellint_3/pr66689.cc: Likewise.
5941	* testsuite/special_functions/14_expint/check_nan.cc: Likewise.
5942	* testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
5943	* testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
5944	* testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
5945	* testsuite/special_functions/18_riemann_zeta/check_nan.cc:
5946	Likewise.
5947	* testsuite/special_functions/19_sph_bessel/check_nan.cc:
5948	Likewise.
5949	* testsuite/special_functions/20_sph_legendre/check_nan.cc:
5950	Likewise.
5951	* testsuite/special_functions/21_sph_neumann/check_nan.cc:
5952	Likewise.
5953
59542018-01-18  Uros Bizjak  <ubizjak@gmail.com>
5955
5956	* configure.ac (AC_CHECK_HEADERS): Add linux/types.h.  Conditionally
5957	include linux/types.h when checking linux/random.h header.
5958	* config.h.in: Regenerate.
5959	* configure: Ditto.
5960	* src/c++11/random.cc: Conditionally include linux/types.h.
5961
59622018-01-16  Eric Botcazou  <ebotcazou@adacore.com>
5963
5964	* testsuite/17_intro/names.cc: Undefine 'y' on SPARC/Linux.
5965
59662018-01-16  Jonathan Wakely  <jwakely@redhat.com>
5967
5968	PR libstdc++/83834
5969	* config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace std::c[a-g]* wildcard
5970	pattern with exact match for std::cerr.
5971
59722018-01-15  Jonathan Wakely  <jwakely@redhat.com>
5973
5974	PR libstdc++/83833
5975	* include/bits/random.h (chi_squared_distribution::param): Update
5976	gamma distribution parameter.
5977	* testsuite/26_numerics/random/chi_squared_distribution/83833.cc: New
5978	test.
5979
5980	PR libstdc++/83830
5981	* include/std/type_traits (has_unique_object_representations_v): Add
5982	variable template.
5983	* testsuite/20_util/has_unique_object_representations/value.cc: Check
5984	variable template.
5985
59862018-01-15  Ville Voutilainen  <ville.voutilainen@gmail.com>
5987
5988	Make optional conditionally
5989	trivially_{copy,move}_{constructible,assignable}
5990	* include/std/optional (_Optional_payload): Fix the comment in
5991	the class head and turn into a primary and one specialization.
5992	(_Optional_payload::_M_engaged): Strike the NSDMI.
5993	(_Optional_payload<_Tp, false>::operator=(const _Optional_payload&)):
5994	New.
5995	(_Optional_payload<_Tp, false>::operator=(_Optional_payload&&)):
5996	Likewise.
5997	(_Optional_payload<_Tp, false>::_M_get): Likewise.
5998	(_Optional_payload<_Tp, false>::_M_reset): Likewise.
5999	(_Optional_base_impl): Likewise.
6000	(_Optional_base): Turn into a primary and three specializations.
6001	(optional(nullopt)): Change the base init.
6002	* testsuite/20_util/optional/assignment/8.cc: New.
6003	* testsuite/20_util/optional/cons/trivial.cc: Likewise.
6004	* testsuite/20_util/optional/cons/value_neg.cc: Adjust.
6005
60062018-01-15  Jonathan Wakely  <jwakely@redhat.com>
6007
6008	PR libstdc++/80276
6009	* python/libstdcxx/v6/printers.py (strip_inline_namespaces): New.
6010	(get_template_arg_list): New.
6011	(StdVariantPrinter._template_args): Remove, use get_template_arg_list
6012	instead.
6013	(TemplateTypePrinter): Rewrite to work with gdb.Type objects instead
6014	of strings and regular expressions.
6015	(add_one_template_type_printer): Adapt to new TemplateTypePrinter.
6016	(FilteringTypePrinter): Add docstring. Match using startswith. Use
6017	strip_inline_namespaces instead of strip_versioned_namespace.
6018	(add_one_type_printer): Prepend namespace to match argument.
6019	(register_type_printers): Add type printers for char16_t and char32_t
6020	string types and for types using cxx11 ABI. Update calls to
6021	add_one_template_type_printer to provide default argument dicts.
6022	* testsuite/libstdc++-prettyprinters/80276.cc: New test.
6023	* testsuite/libstdc++-prettyprinters/whatis.cc: Remove tests for
6024	basic_string<unsigned char> and basic_string<signed char>.
6025	* testsuite/libstdc++-prettyprinters/whatis2.cc: Duplicate whatis.cc
6026	to test local variables, without overriding _GLIBCXX_USE_CXX11_ABI.
6027
60282018-01-14  Andreas Schwab  <schwab@linux-m68k.org>
6029
6030	PR libstdc++/81092
6031	* config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
6032
60332018-01-13  Tim Shen  <timshen@google.com>
6034
6035	PR libstdc++/83601
6036	* include/bits/regex.tcc (regex_replace): Fix escaping in sed.
6037	* testsuite/28_regex/algorithms/regex_replace/char/pr83601.cc: Tests.
6038	* testsuite/28_regex/algorithms/regex_replace/wchar_t/pr83601.cc: Tests.
6039
60402018-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6041
6042	PR libstdc++/64054
6043	* testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc:
6044	Remove dg-xfail-run-if.
6045
60462018-01-10  François Dumont  <fdumont@gcc.gnu.org>
6047
6048	* include/bits/forward_list.h
6049	(_Fwd_list_node_base(_Fwd_list_node_base&&)): New.
6050	(_Fwd_list_node_base& operator=(_Fwd_list_node_base&&)): New.
6051	(_Fwd_list_node_base(const _Fwd_list_node_base&)): Explicit delete.
6052	(_Fwd_list_node_base& operator=(const _Fwd_list_node_base&)): Likewise.
6053	(_Fwd_list_impl()): Add noexcept qualification.
6054	(_Fwd_list_impl(const _Node_alloc_type&)): Delete.
6055	(_Fwd_list_impl(_Fwd_list_impl&&)): New, default.
6056	(_Fwd_list_impl(_Fwd_list_impl&&, _Node_alloc_type&&)): New.
6057	(_Fwd_list_base()): Default.
6058	(_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&, true_type)): New.
6059	(_Fwd_list_base(_Fwd_list_base&&)): Default.
6060	(forward_list<>()): Default.
6061	(forward_list<>(forward_list&&)): Default.
6062	(forward_list(forward_list&&, _Node_alloc_type&&, false_type)): New.
6063	(forward_list(forward_list&&, _Node_alloc_type&&, true_type)): New.
6064	(forward_list(forward_list&&, const _Alloc&)): Adapt to use latters.
6065	* include/bits/forward_list.tcc
6066	(_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&)): Adapt to use
6067	_M_impl._M_head move assignment.
6068	(forward_list<>::merge(forward_list<>&&, _Comp)): Likewise.
6069	* testsuite/23_containers/forward_list/allocator/default_init.cc: New.
6070
60712018-01-09  Jonathan Wakely  <jwakely@redhat.com>
6072
6073	PR libstdc++/80276
6074	* python/libstdcxx/v6/printers.py (SharedPointerPrinter)
6075	(UniquePointerPrinter): Print correct template argument, not type of
6076	the pointer.
6077	(TemplateTypePrinter._recognizer.recognize): Handle failure to lookup
6078	a type.
6079	* testsuite/libstdc++-prettyprinters/cxx11.cc: Test unique_ptr of
6080	array type.
6081	* testsuite/libstdc++-prettyprinters/cxx17.cc: Test shared_ptr and
6082	weak_ptr of array types.
6083
60842018-01-09  François Dumont  <fdumont@gcc.gnu.org>
6085
6086	PR libstdc++/83709
6087	* include/bits/hashtable_policy.h
6088	(__distance_fwd(_Iterator, _Iterator, input_iterator_tag)): Return 1 if
6089	__first != __last.
6090	(_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, true_type)): New.
6091	(_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, false_type)):
6092	Add false_type parameter.
6093	(_Insert_base::insert): Adapt.
6094	* include/bits/hashtable.h (_Hashtable::operator=(initializzr_list<>)):
6095	Adapt.
6096	(_Hashtable::_M_insert(_Arg&&, const _NodeGen&, true_type, size_t)):
6097	 Add __n_elt parameter, defaulted to 1.
6098	(_Hashtable::_M_insert_unique_node): Likewise. Use it to call rehash
6099	policy _M_need_rehash.
6100	(_Hashtable::_M_merge_unique): Pass target number of elements to add to
6101	produce only 1 rehash if necessary.
6102	* testsuite/23_containers/unordered_map/insert/83709.cc: New.
6103	* testsuite/23_containers/unordered_set/insert/83709.cc: New.
6104
61052018-01-09  Juraj Oršulić  <juraj.orsulic@fer.hr>
6106	    Jonathan Wakely  <jwakely@redhat.com>
6107
6108	PR libstdc++/59253 (partial)
6109	* python/libstdcxx/v6/printers.py (SmartPtrIterator): Common iterator
6110	type for pointer stored by shared_ptr, weak_ptr and unique_ptr.
6111	(SharedPointerPrinter, UniquePointerPrinter): Treat stored values as
6112	children.
6113	* testsuite/libstdc++-prettyprinters/cxx11.cc: Update expected output
6114	of unique_ptr printer.
6115	* testsuite/libstdc++-prettyprinters/shared_ptr.cc: Update expected
6116	output of shared_ptr printer.
6117
61182018-01-05  Jonathan Wakely  <jwakely@redhat.com>
6119
6120	PR libstdc++/83626
6121	* src/filesystem/ops.cc (remove(const path&, error_code&)): Remove
6122	unnecessary symlink_status call.
6123	(remove_all(const path&, error_code&)): Use filesystem::remove.
6124	* src/filesystem/std-ops.cc: Likewise.
6125
6126	PR libstdc++/83279
6127	* src/filesystem/std-ops.cc  (do_copy_file): Use non-null offset with
6128	sendfile.
6129
6130	PR libstdc++/83626
6131	* src/filesystem/ops.cc (remove(const path&, error_code&)): Do not
6132	report an error for ENOENT.
6133	(remove_all(const path&)): Fix type of result variable.
6134	(remove_all(const path&, error_code&)): Use non-throwing increment
6135	for directory iterator. Call POSIX remove directly to avoid redundant
6136	calls to symlink_status. Do not report errors for ENOENT.
6137	* src/filesystem/std-ops.cc: Likewise.
6138	* testsuite/27_io/filesystem/operations/remove_all.cc: Test throwing
6139	overload.
6140	* testsuite/experimental/filesystem/operations/remove_all.cc:
6141	Likewise.
6142
61432018-01-04  Jonathan Wakely  <jwakely@redhat.com>
6144
6145	PR libstdc++/83626
6146	* src/filesystem/ops.cc (remove(const path&, error_code&))): Remove
6147	redundant call to ec.clear().
6148	(remove_all(const path&, error_code&))): Do not return an error for
6149	non-existent paths.
6150	* src/filesystem/std-ops.cc: Likewise.
6151	* testsuite/27_io/filesystem/operations/remove.cc: New test.
6152	* testsuite/27_io/filesystem/operations/remove_all.cc: Fix expected
6153	results for non-existent paths.
6154	* testsuite/experimental/filesystem/operations/remove.cc: New test.
6155	* testsuite/experimental/filesystem/operations/remove_all.cc: Fix
6156	expected results for non-existent paths.
6157
6158	* include/bits/fs_ops.h (exists(const path&, error_code&))): Only
6159	check status_known once.
6160	* include/experimental/bits/fs_ops.h: Likewise.
6161
6162	PR libstdc++/83607
6163	* include/std/functional (__is_byte_like): New trait.
6164	(__is_std_equal_to): Remove.
6165	(__boyer_moore_base_t): Use __is_byte_like instead of
6166	__is_std_equal_to.
6167	* include/experimental/functional (__is_std_equal_to): Remove.
6168	(__boyer_moore_base_t): Use __is_byte_like instead of
6169	__is_std_equal_to.
6170	* testsuite/20_util/function_objects/83607.cc: New test.
6171
61722018-01-03  Ville Voutilainen  <ville.voutilainen@gmail.com>
6173
6174	Protect optional's deduction guide with the feature macro
6175	* include/std/optional: Use the feature macro.
6176
61772018-01-03  Jakub Jelinek  <jakub@redhat.com>
6178
6179	Update copyright years.
6180
6181Copyright (C) 2018 Free Software Foundation, Inc.
6182
6183Copying and distribution of this file, with or without modification,
6184are permitted in any medium without royalty provided the copyright
6185notice and this notice are preserved.
6186