12019-02-22  Jonathan Wakely  <jwakely@redhat.com>
2
3	PR libstdc++/89446
4	* include/bits/char_traits.h (__constant_char_array): Check index is
5	in range before dereferencing.
6	* testsuite/21_strings/basic_string_view/operators/char/89446.cc:
7	New test.
8
92018-12-24  Iain Sandoe  <iain@sandoe.co.uk>
10
11	Backport from mainline
12	2018-12-06  Iain Sandoe  <iain@sandoe.co.uk>
13
14	* scripts/make_exports.pl (check names): Don’t try to export
15	construction vtable symbols.
16
172018-12-24  Iain Sandoe  <iain@sandoe.co.uk>
18
19	Backport from mainline
20	2018-12-06  Jonathan Wakely  <jwakely@redhat.com>
21		    Iain Sandoe  <iain@sandoe.co.uk>
22
23	PR libstdc++/64883
24	* testsuite/17_intro/headers/c++1998/all_attributes.cc: Don't test
25	always_inline on Darwin.
26	* testsuite/17_intro/headers/c++2011/all_attributes.cc: Likewise.
27	* testsuite/17_intro/headers/c++2014/all_attributes.cc: Likewise.
28	* testsuite/17_intro/headers/c++2017/all_attributes.cc: Likewise.
29	* testsuite/17_intro/headers/c++2020/all_attributes.cc: Likewise.
30
312018-12-24  Iain Sandoe  <iain@sandoe.co.uk>
32
33	Backport from mainline
34	2018-08-25  Iain Sandoe  <iain@sandoe.co.uk>
35
36	PR libstdc++/70694
37	* configure.host (OPT_LDFLAGS): Don't append
38	-fvisibility-inlines-hidden for newer Darwin.
39
402018-12-06  Release Manager
41
42	* GCC 7.4.0 released.
43
442018-11-28  François Dumont  <fdumont@gcc.gnu.org>
45
46	PR libstdc++/88199
47	* include/bits/hashtable.h
48	(_Hashtable<>::_M_move_assign(_Hashtable&&, false_type)): Deallocate
49	former buckets after assignment.
50	* testsuite/23_containers/unordered_set/allocator/move_assign.cc
51	(test03): New.
52
532018-10-31  Jonathan Wakely  <jwakely@redhat.com>
54
55	Backport from mainline
56	2018-10-31  Jonathan Wakely  <jwakely@redhat.com>
57
58	PR libstdc++/87822
59	* include/bits/stl_pair.h (__pair_base): Change to class template.
60	(pair): Make base class type depend on template parameters.
61	* testsuite/20_util/pair/87822.cc: New test.
62
632018-10-25  Jonathan Wakely  <jwakely@redhat.com>
64
65	PR libstdc++/87749
66	* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
67	(basic_string::operator=(basic_string&&)): For short strings copy the
68	buffer inline. Only fall back to using assign(const basic_string&) to
69	do a deep copy when reallocation is needed.
70	* testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc:
71	New test.
72	* testsuite/21_strings/basic_string/modifiers/assign/char/
73	move_assign_optim.cc: New test.
74	* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc:
75	New test.
76	* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/
77	move_assign_optim.cc: New test.
78
792018-10-23  Jonathan Wakely  <jwakely@redhat.com>
80
81	PR libstdc++/87704
82	* include/bits/unique_ptr.h (unique_ptr::unique_ptr(nullptr_t)): Do
83	not delegate to default constructor.
84	(unique_ptr<T[], D>::unique_ptr(nullptr_t)): Likewise.
85	* testsuite/20_util/unique_ptr/cons/incomplete.cc: New test.
86
872018-10-22  Jonathan Wakely  <jwakely@redhat.com>
88
89	Backport from mainline
90	2017-09-12  Jonathan Wakely  <jwakely@redhat.com>
91
92	PR libstdc++/79433
93	* include/Makefile.am: Remove <bits/c++14_warning.h>.
94	* include/Makefile.in: Regenerate.
95	* include/bits/c++14_warning.h: Remove.
96	* include/experimental/algorithm: Do not include <c++14_warning.h>.
97	* include/experimental/any: Likewise.
98	* include/experimental/array: Likewise.
99	* include/experimental/bits/erase_if.h: Likewise.
100	* include/experimental/bits/lfts_config.h: Likewise.
101	* include/experimental/bits/shared_ptr.h: Likewise.
102	* include/experimental/bits/string_view.tcc: Likewise.
103	* include/experimental/chrono: Likewise.
104	* include/experimental/deque: Likewise.
105	* include/experimental/filesystem: Do not include <c++0x_warning.h>.
106	* include/experimental/forward_list: Do not include <c++14_warning.h>.
107	* include/experimental/functional: Likewise.
108	* include/experimental/iterator: Likewise.
109	* include/experimental/list: Likewise.
110	* include/experimental/map: Likewise.
111	* include/experimental/memory: Likewise.
112	* include/experimental/numeric: Likewise.
113	* include/experimental/optional: Likewise.
114	* include/experimental/propagate_const: Likewise.
115	* include/experimental/ratio: Likewise.
116	* include/experimental/regex: Likewise.
117	* include/experimental/set: Likewise.
118	* include/experimental/string: Likewise.
119	* include/experimental/string_view: Likewise.
120	* include/experimental/system_error: Likewise.
121	* include/experimental/tuple: Likewise.
122	* include/experimental/type_traits: Likewise.
123	* include/experimental/unordered_map: Likewise.
124	* include/experimental/unordered_set: Likewise.
125	* include/experimental/vector: Likewise.
126	* testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error
127	line number.
128	* testsuite/experimental/array/neg.cc: Likewise.
129	* testsuite/experimental/propagate_const/assignment/move_neg.cc:
130	Likewise.
131	* testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
132	* testsuite/experimental/propagate_const/requirements2.cc: Likewise.
133	* testsuite/experimental/propagate_const/requirements3.cc: Likewise.
134	* testsuite/experimental/propagate_const/requirements4.cc: Likewise.
135	* testsuite/experimental/propagate_const/requirements5.cc: Likewise.
136
1372018-10-18  Jonathan Wakely  <jwakely@redhat.com>
138
139	Backport from mainline
140	2018-10-18  Jonathan Wakely  <jwakely@redhat.com>
141
142	PR libstdc++/87641
143	* include/bits/valarray_array.h (__valarray_sum): Use first element
144	to initialize accumulator instead of value-initializing it.
145	* testsuite/26_numerics/valarray/87641.cc: New test.
146
1472018-10-15  Jonathan Wakely  <jwakely@redhat.com>
148
149	* testsuite/22_locale/numpunct/members/char/3.cc: Adjust test to
150	account for change to glibc it_IT localedata (glibc bz#10797).
151
1522018-10-12  Jonathan Wakely  <jwakely@redhat.com>
153
154	Backport from mainline
155	2018-07-31  Jonathan Wakely  <jwakely@redhat.com>
156
157	PR libstdc++/86751
158	* include/bits/stl_pair.h (__pair_base): New class with deleted copy
159	assignment operator.
160	(pair): Derive from __pair_base.
161	(pair::operator=): Remove deleted overload.
162	* python/libstdcxx/v6/printers.py (StdPairPrinter): New pretty printer
163	so that new base class isn't shown in GDB.
164	* testsuite/20_util/pair/86751.cc: New test.
165	* testsuite/20_util/pair/ref_assign.cc: New test.
166
1672018-10-12  Jonathan Wakely  <jwakely@redhat.com>
168
169	Backport from mainline
170	2018-09-03  Jonathan Wakely  <jwakely@redhat.com>
171
172	PR libstdc++/78595
173	* include/bits/stl_map.h (map::insert(_Pair&&))
174	(map::insert(const_iterator, _Pair&&)): Do emplace instead of insert.
175	* include/bits/stl_multimap.h (multimap::insert(_Pair&&))
176	(multimap::insert(const_iterator, _Pair&&)): Likewise.
177	* include/bits/unordered_map.h (unordered_map::insert(_Pair&&))
178	(unordered_map::insert(const_iterator, _Pair&&))
179	(unordered_multimap::insert(_Pair&&))
180	(unordered_multimap::insert(const_iterator, _Pair&&)): Likewise.
181	* include/std/type_traits (__enable_if_t): Define for C++11.
182	* testsuite/23_containers/map/modifiers/insert/78595.cc: New test.
183	* testsuite/23_containers/multimap/modifiers/insert/78595.cc: New test.
184	* testsuite/23_containers/unordered_map/modifiers/78595.cc: New test.
185	* testsuite/23_containers/unordered_multimap/modifiers/78595.cc: New
186	test.
187
1882018-10-12  Jonathan Wakely  <jwakely@redhat.com>
189
190	Backport from mainline
191	2018-08-30  Jonathan Wakely  <jwakely@redhat.com>
192
193	* include/ext/pointer.h (_Pointer_adapter): Define operators for
194	pointer arithmetic using long long offsets.
195	* testsuite/ext/ext_pointer/1.cc: Test pointer arithmetic using
196	long long values.
197
1982018-10-12  Jonathan Wakely  <jwakely@redhat.com>
199
200	Backport from mainline
201	2018-08-23  Jonathan Wakely  <jwakely@redhat.com>
202
203	* testsuite/21_strings/basic_string/init-list.cc:
204	Require cxx11-abi.
205	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc:
206	Likewise.
207	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
208	Likewise.
209
210	Backport from mainline
211	2018-08-22  Jonathan Wakely  <jwakely@redhat.com>
212
213	PR libstdc++/87061
214	* include/experimental/regex [!_GLIBCXX_USE_CXX11_ABI]
215	(experimental::pmr::match_results, experimental::pmr::cmatch)
216	(experimental::pmr::smatch, experimental::pmr::wcmatch)
217	(experimental::pmr::wsmatch): Do not declare for gcc4-compatible ABI,
218	because COW strings don't support C++11 allocator model.
219	* include/experimental/string [!_GLIBCXX_USE_CXX11_ABI]
220	(experimental::pmr::basic_string, experimental::pmr::string)
221	(experimental::pmr::u16string, experimental::pmr::u32string)
222	(experimental::pmr::wstring): Likewise.
223
224	Backport from mainline
225	2018-08-15  Jonathan Wakely  <jwakely@redhat.com>
226
227	* include/experimental/regex: Remove begin/end macros for namespace.
228	* include/experimental/string: Likewise.
229	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_deque.cc:
230	New test.
231	* testsuite/experimental/polymorphic_allocator/
232	pmr_typedefs_forward_list.cc: New test.
233	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_list.cc:
234	New test.
235	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_map.cc:
236	New test.
237	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc:
238	New test.
239	* testsuite/experimental/polymorphic_allocator/
240	pmr_typedefs_multimap.cc: New test.
241	* testsuite/experimental/polymorphic_allocator/
242	pmr_typedefs_multiset.cc: New test.
243	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_set.cc:
244	New test.
245	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
246	New test.
247	* testsuite/experimental/polymorphic_allocator/
248	pmr_typedefs_unordered_map.cc: New test.
249	* testsuite/experimental/polymorphic_allocator/
250	pmr_typedefs_unordered_multimap.cc: New test.
251	* testsuite/experimental/polymorphic_allocator/
252	pmr_typedefs_unordered_multiset.cc: New test.
253	* testsuite/experimental/polymorphic_allocator/
254	pmr_typedefs_unordered_set.cc: New test.
255	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_vector.cc:
256	New test.
257
2582018-10-12  Jonathan Wakely  <jwakely@redhat.com>
259
260	Backport from mainline
261	2018-07-24  Jonathan Wakely  <jwakely@redhat.com>
262
263	PR libstdc++/70966
264	* include/experimental/memory_resource (__get_default_resource): Use
265	placement new to create an object with dynamic storage duration.
266
267	Backport from mainline
268	2018-06-20  Jonathan Wakely  <jwakely@redhat.com>
269
270	PR libstdc++/70966
271	* include/experimental/memory_resource (__resource_adaptor_imp): Add
272	static assertions to enforce requirements on pointer types.
273	(__resource_adaptor_imp::get_allocator()): Add noexcept.
274	(new_delete_resource, null_memory_resource): Return address of an
275	object with dynamic storage duration.
276	(__null_memory_resource): Remove.
277	* testsuite/experimental/memory_resource/70966.cc: New.
278
2792018-10-12  Jonathan Wakely  <jwakely@redhat.com>
280
281	PR libstdc++/77854
282	* doc/xml/manual/status_cxx1998.xml: Document size_type and
283	difference_type for containers.
284	* doc/html/*: Regenerate.
285
2862018-10-08  Joseph Myers  <joseph@codesourcery.com>
287
288	Backport from mainline
289	2018-10-02  Joseph Myers  <joseph@codesourcery.com>
290
291	* testsuite/lib/libstdc++.exp (libstdc++_init): Use
292	-fno-show-column in default cxxflags.
293
2942018-10-08  Jonathan Wakely  <jwakely@redhat.com>
295
296	Backport from mainline
297	2018-10-08  Jonathan Wakely  <jwakely@redhat.com>
298
299	PR libstdc++/87538
300	* include/std/functional (_Not_fn::operator()): Check value of
301	__is_nothrow_invocable as well.
302	* testsuite/20_util/function_objects/not_fn/87538.cc: New test.
303	* testsuite/experimental/functional/87538.cc: New test.
304
3052018-08-13  Jonathan Wakely  <jwakely@redhat.com>
306
307	Revert
308	2018-08-10  Sebastian Huber  <sebastian.huber@embedded-brains.de>
309
310	PR target/85904
311	* configure.ac: Define HAVE_ALIGNED_ALLOC if building for
312	Newlib.
313	* configure: Regenerate.
314
3152018-08-10  Sebastian Huber  <sebastian.huber@embedded-brains.de>
316
317	Backport from mainline
318	2018-08-10  Sebastian Huber  <sebastian.huber@embedded-brains.de>
319
320	PR target/85904
321	* configure.ac: Define HAVE_ALIGNED_ALLOC if building for
322	Newlib.
323	* configure: Regenerate.
324
3252018-08-08  Jonathan Wakely  <jwakely@redhat.com>
326
327	* libsupc++/new_opa.cc (aligned_alloc): Declare inside namespace to
328	avoid clashing with an ::aligned_alloc function that was not detected
329	by configure.
330
331	* doc/xml/manual/using.xml: Remove empty table cell.
332	* doc/html/*: Regenerate.
333
334	* doc/xml/manual/using.xml: Add missing header to table and fix typo.
335	Remove C++17 and C++2a headers not present on gcc-7-branch.
336	* doc/html/*: Regenerate.
337
3382018-08-07  Jonathan Wakely  <jwakely@redhat.com>
339
340	Backport from mainline
341	2018-06-27  Jonathan Wakely  <jwakely@redhat.com>
342
343	PR libstdc++/86138
344	* include/bits/basic_string.tcc: [_GLIBCXX_EXTERN_TEMPLATE < 0]
345	Declare explicit instantiations of COW empty reps and I/O functions.
346
347	Backport from mainline
348	2018-05-08  Jonathan Wakely  <jwakely@redhat.com>
349
350	PR libstdc++/85672
351	* include/Makefile.am [!ENABLE_FLOAT128]: Change c++config.h entry
352	to #undef _GLIBCXX_USE_FLOAT128 instead of defining it to zero.
353	* include/Makefile.in: Regenerate.
354	* include/bits/c++config (_GLIBCXX_USE_FLOAT128): Move definition
355	within conditional block.
356
357	Backport from mainline
358	2018-05-01  Tulio Magno Quites Machado Filho  <tuliom@linux.vnet.ibm.com>
359
360	PR libstdc++/84654
361	* acinclude.m4: Set ENABLE_FLOAT128 instead of _GLIBCXX_USE_FLOAT128.
362	* config.h.in: Remove references to _GLIBCXX_USE_FLOAT128.
363	* configure: Regenerate.
364	* include/Makefile.am: Replace the value of _GLIBCXX_USE_FLOAT128
365	based on ENABLE_FLOAT128.
366	* include/Makefile.in: Regenerate.
367	* include/bits/c++config: Define _GLIBCXX_USE_FLOAT128.
368	[!defined(__FLOAT128__) && !defined(__SIZEOF_FLOAT128__)]: Undefine
369	_GLIBCXX_USE_FLOAT128.
370
371	Backport from mainline
372	2017-06-17  Jonathan Wakely  <jwakely@redhat.com>
373
374	PR libstdc++/80893
375	* testsuite/23_containers/vector/bool/80893.cc: Add { target c++11 }.
376
377	Backport from mainline
378	2017-05-31  Jonathan Wakely  <jwakely@redhat.com>
379
380	PR libstdc++/80893
381	* include/bits/stl_bvector.h (vector<bool>::_M_initialize): Avoid
382	null pointer dereference when size is zero.
383	* testsuite/23_containers/vector/bool/80893.cc: New.
384	* testsuite/util/testsuite_allocator.h (PointerBase::PointerBase):
385	Add non-explicit constructor from nullptr.
386	(PointerBase::derived() const): Add const-qualified overload.
387
388	Backport from mainline
389	2017-12-14  Jonathan Wakely  <jwakely@redhat.com>
390
391	PR libstdc++/68519
392	* include/std/condition_variable (condition_variable::wait_for):
393	Convert duration to native clock's duration before addition.
394	* testsuite/30_threads/condition_variable/members/68519.cc: New test.
395
396	Backport from mainline
397	2018-06-25  Jonathan Wakely  <jwakely@redhat.com>
398
399	PR libstdc++/86292
400	* include/bits/stl_vector.h (vector::_M_range_initialize<InputIter>):
401	Add try-catch block.
402	* testsuite/23_containers/vector/cons/86292.cc: New.
403
404	Backport from mainline
405	2018-07-31  Jonathan Wakely  <jwakely@redhat.com>
406
407	* doc/xml/manual/test.xml: Improve documentation on writing tests for
408	newer standards.
409	* doc/xml/manual/using.xml: Document all headers for C++11 and later.
410	* doc/html/*: Regenerate.
411
412	Backport from mainline
413	2018-08-03  Jonathan Wakely  <jwakely@redhat.com>
414
415	* src/c++11/system_error.cc
416	(system_error_category::default_error_condition): Add workaround for
417	ENOTEMPTY and EEXIST having the same value on AIX.
418	* testsuite/19_diagnostics/error_category/system_category.cc: Add
419	extra testcases for EDOM, EILSEQ, ERANGE, EEXIST and ENOTEMPTY.
420
421	Backport from mainline
422	2018-08-01  Jonathan Wakely  <jwakely@redhat.com>
423
424	PR libstdc++/60555
425	* src/c++11/system_error.cc
426	(system_error_category::default_error_condition): New override to
427	check for POSIX errno values.
428	* testsuite/19_diagnostics/error_category/generic_category.cc: New
429	* testsuite/19_diagnostics/error_category/system_category.cc: New
430	test.
431
432	Backport from mainline
433	2018-08-07  Jonathan Wakely  <jwakely@redhat.com>
434
435	PR libstdc++/86861
436	* libsupc++/new_opa.cc [_GLIBCXX_HAVE_MEMALIGN] (aligned_alloc):
437	Replace macro with inline function.
438	[__sun]: Increase alignment to meet memalign precondition.
439	[!HAVE__ALIGNED_MALLOC && !HAVE_POSIX_MEMALIGN && !HAVE_MEMALIGN]
440	(aligned_alloc): Move check for valid alignment to operator new.
441	Remove redundant check for non-zero size, it's enforced by the caller.
442	(operator new): Move check for valid alignment here. Use
443	__builtin_expect on check for zero size.
444
445	Backport from mainline
446	2018-07-30  Jonathan Wakely  <jwakely@redhat.com>
447
448	* libsupc++/new_opa.cc (operator new(size_t, align_val_t)): Add
449	workaround for aligned_alloc bug on AIX.
450	* testsuite/18_support/new_aligned.cc: New test.
451
452	Backport from mainline
453	2018-07-30  Jonathan Wakely  <jwakely@redhat.com>
454
455	PR libstdc++/86734
456	* include/bits/stl_iterator.h (reverse_iterator::operator->): Use
457	addressof (LWG 2188).
458	* testsuite/24_iterators/reverse_iterator/dr2188.cc: New test.
459
460	Backport from mainline
461	2018-05-19  Jonathan Wakely  <jwakely@redhat.com>
462
463	* src/c++11/codecvt.cc (__codecvt_utf8_base<wchar_t>::do_in)
464	[__SIZEOF_WCHAR_T__==2 && __BYTE_ORDER__!=__ORDER_BIG_ENDIAN__]: Set
465	little_endian element in bitmask.
466	* testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: Run all tests.
467	* testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc: New.
468
4692018-07-05  François Dumont  <fdumont@gcc.gnu.org>
470
471	Backport from mainline
472	2018-07-04  François Dumont  <fdumont@gcc.gnu.org>
473
474	PR libstdc++/86272
475	* include/debug/string
476	(__gnu_debug::basic_string<>::insert<_Ite>(const_iterator, _Ite, _Ite)):
477	Use __glibcxx_check_insert_range.
478
4792018-07-04  Jonathan Wakely  <jwakely@redhat.com>
480
481	Backport from mainline
482	2018-03-09  Jonathan Wakely  <jwakely@redhat.com>
483
484	src/filesystem/ops.cc (create_dir): Pass error_code to is_directory.
485
486	Backport from mainline
487	2018-06-18  Jonathan Wakely  <jwakely@redhat.com>
488
489	LWG 3050 Fix cv-qualification of convertibility constraints
490	* include/std/chrono (duration, operator*, operator/, operator%): Use
491	const-qualified type as source type in is_convertible constraints.
492	* testsuite/20_util/duration/arithmetic/dr3050.cc: New.
493	* testsuite/20_util/duration/cons/dr3050.cc: New.
494	* testsuite/20_util/duration/literals/range.cc: Rename to...
495	* testsuite/20_util/duration/literals/range_neg.cc: Here. Adjust
496	dg-error lineno.
497
498	Backport from mainline
499	2018-06-13  Jonathan Wakely  <jwakely@redhat.com>
500
501	PR libstdc++/86127
502	* include/bits/forward_list.h (_Fwd_list_base::_Tp_alloc_type): Remove
503	unused typedef.
504	(_Fwd_list_base::_M_create_node, _Fwd_list_base::_M_erase_after):
505	Use node allocator to create and destroy elements.
506	(forward_list::_Tp_alloc_type): Remove unused typedef.
507	(forward_list::_Alloc_traits): Use allocator_traits instead of
508	__gnu_cxx::__alloc_traits.
509	* include/bits/forward_list.tcc (_Fwd_list_base::_M_erase_after):
510	Use node allocator to create and destroy elements.
511
512	Backport from mainline
513	2018-05-29  Jonathan Wakely  <jwakely@redhat.com>
514
515	* include/std/variant (__erased_dtor): Qualify call to __get.
516
517	Backport from mainline
518	2018-05-15  Jonathan Wakely  <jwakely@redhat.com>
519
520	* include/std/variant (__gen_vtable_impl::__visit_invoke): Qualify
521	__invoke to prevent ADL.
522
523	Backport from mainline
524	2018-04-05  Jonathan Wakely  <jwakely@redhat.com>
525
526	* include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Qualify
527	__get calls to avoid ADL and avoid ambiguity due to Clang bug.
528
529	Backport from mainline
530	2018-03-26  Jonathan Wakely  <jwakely@redhat.com>
531
532	* include/std/variant (__get): Qualify calls to avoid ADL.
533	(__select_index): Adjust whitespace.
534	(variant): Add using-declaration to workaround Clang bug.
535
536	Backport from mainline
537	2018-05-24  Maya Rashish  <coypu@sdf.org>
538
539	PR target/85904
540	* crossconfig.m4: Test for aligned_alloc on netbsd.
541	* configure: Regenerate.
542
543	Backport from mainline
544	2018-05-18  Jonathan Wakely  <jwakely@redhat.com>
545
546	PR libstdc++/85098
547	* include/bits/regex.h [__cplusplus < 201703L] (basic_regex::icase)
548	(basic_regex::nosubs, basic_regex::optimize, basic_regex::collate)
549	(basic_regex::ECMAScript, basic_regex::basic, basic_regex::extended)
550	(basic_regex::awk, basic_regex::grep, basic_regex::egrep): Add
551	definitions.
552	* include/bits/regex_automaton.h (_NFA::_M_insert_state): Adjust
553	whitespace.
554	* testsuite/28_regex/basic_regex/85098.cc: New
555
556	Backport from mainline
557	2018-05-07  Jonathan Wakely  <jwakely@redhat.com>
558
559	PR libstdc++/85671
560	* include/experimental/bits/fs_path.h (operator/): Likewise.
561
562	Backport from mainline
563	2018-06-14  Daniel Trebbien <dtrebbien@gmail.com>
564		    Jonathan Wakely  <jwakely@redhat.com>
565
566	PR libstdc++/83982
567	* include/bits/vector.tcc (vector::_M_default_append(size_type)):
568	Default-construct new elements before moving existing ones.
569	* testsuite/23_containers/vector/capacity/resize/strong_guarantee.cc:
570	New.
571
572	Backport from mainline
573	2018-05-03  Jonathan Wakely  <jwakely@redhat.com>
574
575	PR libstdc++/84087 LWG DR 2268 basic_string default arguments
576	* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI=1]
577	(append(const basic_string&, size_type, size_type)
578	(assign(const basic_string&, size_type, size_type)
579	(insert(size_type, const basic_string&, size_type, size_type)
580	(replace(size_type,size_type,const basic_string&,size_type,size_type)
581	(compare(size_type,size_type,constbasic_string&,size_type,size_type)):
582	Add default arguments (LWG 2268).
583	[_GLIBCXX_USE_CXX11_ABI=0]
584	(append(const basic_string&, size_type, size_type)
585	(assign(const basic_string&, size_type, size_type)
586	(insert(size_type, const basic_string&, size_type, size_type)
587	(replace(size_type,size_type,const basic_string&,size_type,size_type)
588	(compare(size_type,size_type,constbasic_string&,size_type,size_type)):
589	Likewise.
590	* testsuite/21_strings/basic_string/dr2268.cc: New test.
591
5922018-06-22  Jakub Jelinek  <jakub@redhat.com>
593
594	Backported from mainline
595	2018-04-18  David Malcolm  <dmalcolm@redhat.com>
596
597	PR jit/85384
598	* configure: Regenerate.
599
6002018-06-22  Jonathan Wakely  <jwakely@redhat.com>
601
602	Backport from mainline
603	2018-06-22  Jonathan Wakely  <jwakely@redhat.com>
604
605	PR libstdc++/86138
606	* include/bits/basic_string.tcc:
607	[__cplusplus > 201402 && !_GLIBCXX_USE_CXX11_ABI]
608	(basic_string<char>::_Rep::_S_empty_rep_storage)
609	(basic_string<wchar_t>::_Rep::_S_empty_rep_storage): Add explicit
610	instantiation declarations.
611	[__cplusplus > 201402] (operator>>, operator<<, getline): Re-enable
612	explicit instantiation declarations.
613	* testsuite/21_strings/basic_string/cons/char/86138.cc: New.
614	* testsuite/21_strings/basic_string/cons/wchar_t/86138.cc: New.
615
6162018-06-21  Jonathan Wakely  <jwakely@redhat.com>
617
618	* config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
619
6202018-06-19  Jonathan Wakely  <jwakely@redhat.com>
621
622	* include/std/utility: Remove unused <exception> header.
623
6242018-06-15  Jonathan Wakely  <jwakely@redhat.com>
625
626	PR libstdc++/86169
627	* include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
628	(basic_string::data()): Unshare string.
629	* testsuite/21_strings/basic_string/operations/data/char/86169.cc:
630	New.
631
6322018-06-15  Jonathan Wakely  <jwakely@redhat.com>
633
634	* include/bits/char_traits.h (__cpp_lib_constexpr_char_traits): Only
635	define for C++17 and above.
636
6372018-05-17  Jonathan Wakely  <jwakely@redhat.com>
638
639	PR libstdc++/85812
640	* libsupc++/cxxabi_init_exception.h (__cxa_free_exception): Declare.
641	* libsupc++/exception_ptr.h (make_exception_ptr) [__cpp_exceptions]:
642	Refactor to separate non-throwing and throwing implementations.
643	[__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]: Deallocate the memory
644	if constructing the object throws.
645
6462018-05-14  Jonathan Wakely  <jwakely@redhat.com>
647
648	PR libstdc++/67554
649	* include/bits/valarray_array.h (_Array_copy_ctor<_Tp, true>)
650	(_Array_copier<_Tp, true>): Do not pass null pointers to memcpy.
651
652	PR libstdc++/82966
653	* include/bits/node_handle.h (_Node_handle_common::_M_swap): Use value
654	instead of type.
655	* testsuite/23_containers/set/modifiers/node_swap.cc: New.
656
6572018-05-10  Jonathan Wakely  <jwakely@redhat.com>
658
659	* doc/xml/faq.xml: Link to C++17 status. Add note to outdated answer.
660	* doc/xml/manual/debug_mode.xml: Add array and forward_list to list
661	of C++11 containers with Debug Mode support.
662	* doc/xml/manual/using.xml: Document Dual ABI for ios_base::failure.
663	* doc/html/*: Regenerate.
664
6652018-05-07  Edward Smith-Rowland  <3dw4rd@verizon.net>
666	    Jonathan Wakely  <jwakely@redhat.com>
667
668	Backport from mainline
669	2018-05-07  Edward Smith-Rowland  <3dw4rd@verizon.net>
670
671	PR libstdc++/80506
672	* include/bits/random.tcc (gamma_distribution::operator()): Fix magic
673	number used in loop condition.
674	(gamma_distribution::__generate_impl()): Ditto.
675
6762018-05-03  Jonathan Wakely  <jwakely@redhat.com>
677
678	PR libstdc++/84769
679	* include/std/variant (visit): Qualify std::get call.
680
681	PR libstdc++/85632 use uintmax_t for arithmetic
682	* src/filesystem/ops.cc (experimental::filesystem::space): Perform
683	arithmetic in result type.
684	* testsuite/experimental/filesystem/operations/space.cc: New.
685
6862018-04-30  Edward Smith-Rowland  <3dw4rd@verizon.net>
687
688	PR libstdc++/pr66689 - comp_ellint_3 and ellint_3 return garbage values
689	* include/tr1/ell_integral.tcc: Correct the nu sign convention
690	in ellint_3 and comp_ellint_3.
691	* testsuite/tr1/5_numerical_facilities/special_functions/
692	06_comp_ellint_3/check_value.cc: Regen with correct values.
693	* testsuite/tr1/5_numerical_facilities/special_functions/
694	14_ellint_3/check_value.cc: Ditto.
695	* testsuite/special_functions/06_comp_ellint_3/check_value.cc: Ditto.
696	* testsuite/special_functions/13_ellint_3/check_value.cc: Ditto.
697	* testsuite/special_functions/06_comp_ellint_3/pr66689.cc: New.
698	* testsuite/special_functions/13_ellint_3/pr66689.cc: New.
699	* testsuite/tr1/5_numerical_facilities/special_functions/
700	06_comp_ellint_3/pr66689.cc: New.
701	* testsuite/tr1/5_numerical_facilities/special_functions/
702	14_ellint_3/pr66689.cc: New.
703
7042018-04-30  Edward Smith-Rowland  <3dw4rd@verizon.net>
705
706	PR libstdc++/68397 std::tr1::expint fails ... long double arguments.
707	* include/tr1/exp_integral.tcc: Increase iteration limits.
708	* testsuite/tr1/5_numerical_facilities/special_functions/15_expint/
709	pr68397.cc: New test.
710	* testsuite/special_functions/14_expint/pr68397.cc: New test.
711
7122018-04-18  Jonathan Wakely  <jwakely@redhat.com>
713	    Jakub Jelinek  <jakub@redhat.com>
714
715	PR libstdc++/85442
716	* src/c++11/Makefile.am: Don't generate debuginfo again for
717	cxx11-ios_failure-lt.s and cxx11-ios_failure.s files.
718	* src/c++11/Makefile.in: Regenerate.
719
7202018-04-13  Jonathan Wakely  <jwakely@redhat.com>
721
722	* src/c++11/Makefile.am: Fix sed command.
723	* src/c++11/Makefile.in: Regenerate.
724
725	* src/c++11/Makefile.am: Rewrite sed rule to be less fragile and to
726	handle mangled names starting with double underscores on darwin.
727	* src/c++11/Makefile.in: Regenerate.
728
7292018-04-12  Jonathan Wakely  <jwakely@redhat.com>
730
731	* src/c++11/Makefile.am: Fix comment.
732	* src/c++11/Makefile.in: Regenerate.
733	* src/c++11/cxx11-ios_failure.cc: Fix comment.
734	* src/c++98/ios_failure.cc: Likewise.
735
736	Backport from mainline
737	2018-04-10  Jonathan Wakely  <jwakely@redhat.com>
738
739	PR libstdc++/85222
740	* src/c++11/Makefile.am [ENABLE_DUAL_ABI]: Add special rules for
741	cxx11-ios_failure.cc to rewrite type info for __ios_failure.
742	* src/c++11/Makefile.in: Regenerate.
743	* src/c++11/cxx11-ios_failure.cc (__ios_failure, __iosfail_type_info):
744	New types.
745	[_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
746	* src/c++11/ios.cc (__throw_ios_failure): Remove definition.
747	(_GLIBCXX_USE_CXX11_ABI): Don't define here.
748	* src/c++98/ios_failure.cc (__construct_ios_failure)
749	(__destroy_ios_failure, is_ios_failure_handler): New functions.
750	[!_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
751	* testsuite/27_io/ios_base/failure/dual_abi.cc: New.
752	* testsuite/27_io/basic_ios/copyfmt/char/1.cc: Revert changes to
753	handler types, to always catch std::ios_base::failure.
754	* testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
755	* testsuite/27_io/basic_istream/extractors_arithmetic/char/
756	exceptions_failbit.cc: Likewise.
757	* testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
758	exceptions_failbit.cc: Likewise.
759	* testsuite/27_io/basic_istream/extractors_other/char/
760	exceptions_null.cc: Likewise.
761	* testsuite/27_io/basic_istream/extractors_other/wchar_t/
762	exceptions_null.cc: Likewise.
763	* testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
764	* testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
765	* testsuite/27_io/basic_ostream/inserters_other/char/
766	exceptions_null.cc: Likewise.
767	* testsuite/27_io/basic_ostream/inserters_other/wchar_t/
768	exceptions_null.cc: Likewise.
769	* testsuite/27_io/ios_base/storage/2.cc: Likewise.
770
7712018-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
772
773	PR libstdc++/77691
774	* testsuite/experimental/memory_resource/resource_adaptor.cc:
775	xfail execution on 32-bit Solaris/x86.
776
7772018-03-13  Jonathan Wakely  <jwakely@redhat.com>
778
779	Backport from mainline
780	2018-03-09  Jonathan Wakely  <jwakely@redhat.com>
781
782	PR libstdc++/84769
783	* include/std/variant (get<_Tp, _Types...>, get_if<_Tp, _Types...>):
784	Qualify calls to get<_Np, Types...> and get_if<_Np, _Types...>.
785
7862018-03-12  Jonathan Wakely  <jwakely@redhat.com>
787
788	PR libstdc++/84773
789	PR libstdc++/83662
790	* crossconfig.m4: Check for aligned_alloc etc. on freebsd and mingw32.
791	* configure: Regenerate.
792	* include/c_global/cstdlib [_GLIBCXX_HAVE_ALIGNED_ALLOC]
793	(aligned_alloc): Add using-declaration.
794	* testsuite/18_support/aligned_alloc/aligned_alloc.cc: New test.
795
7962018-03-02  Jonathan Wakely  <jwakely@redhat.com>
797
798	Backport from mainline
799	2018-03-02  Jonathan Wakely  <jwakely@redhat.com>
800
801	PR libstdc++/84671
802	* include/bits/parse_numbers.h (_Number_help): Add partial
803	specialization to handle digit separators. Adjust partial
804	specialization for recursion temrination to require _Pow == 1ULL.
805	* testsuite/20_util/duration/literals/84671.cc: New
806
8072018-02-26  Jonathan Wakely  <jwakely@redhat.com>
808
809	Backport from mainline
810	2018-02-23  Jonathan Wakely  <jwakely@redhat.com>
811
812	PR libstdc++/84532
813	* include/std/thread (thread::__make_invoker): Construct tuple
814	directly instead of using make_tuple.
815	* testsuite/30_threads/async/84532.cc: New.
816	* testsuite/30_threads/thread/84532.cc: New.
817
8182018-02-19  Jonathan Wakely  <jwakely@redhat.com>
819
820	Backport from mainline
821	2018-02-15  Jonathan Wakely  <jwakely@redhat.com>
822
823	PR libstdc++/81797
824	* configure.ac (INCLUDE_DIR_NOTPARALLEL): Define.
825	* configure: Regenerate.
826	* include/Makefile.am (INCLUDE_DIR_NOTPARALLEL): Add .NOTPARALLEL when
827	defined.
828	* include/Makefile.in: Regenerate.
829
8302018-01-29  Jonathan Wakely  <jwakely@redhat.com>
831
832	PR libstdc++/83833
833	* testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
834	Add -ffloat-store to options for m68k and ia32.
835
836	PR libstdc++/83658
837	* include/std/any (any::__do_emplace): Only set _M_manager after
838	constructing the contained object.
839	* testsuite/20_util/any/misc/any_cast_neg.cc: Adjust dg-error line.
840	* testsuite/20_util/any/modifiers/83658.cc: New test.
841
842	Backport from mainline
843	2018-01-15  Jonathan Wakely  <jwakely@redhat.com>
844
845	PR libstdc++/83833
846	* include/bits/random.h (chi_squared_distribution::param): Update
847	gamma distribution parameter.
848	* testsuite/26_numerics/random/chi_squared_distribution/83833.cc: New
849	test.
850
8512018-01-25  Jonathan Wakely  <jwakely@redhat.com>
852
853	PR libstdc++/81076
854	* include/c_global/cstddef (__byte_operand): Define primary template.
855	* testsuite/18_support/byte/81076.cc: New test.
856
857	Backport from mainline
858	2018-01-15  Jonathan Wakely  <jwakely@redhat.com>
859
860	PR libstdc++/83830
861	* include/std/type_traits (has_unique_object_representations_v): Add
862	variable template.
863	* testsuite/20_util/has_unique_object_representations/value.cc: Check
864	variable template.
865
8662018-01-25  Release Manager
867
868	* GCC 7.3.0 released.
869
8702018-01-19  Jonathan Wakely  <jwakely@redhat.com>
871
872	Backport from mainline
873	2018-01-16  Jonathan Wakely  <jwakely@redhat.com>
874
875	PR libstdc++/83834
876	* config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace std::c[a-g]* wildcard
877	pattern with exact match for std::cerr.
878
8792018-01-18  Jonathan Wakely  <jwakely@redhat.com>
880
881	Backport from mainline
882	2017-10-23  Jonathan Wakely  <jwakely@redhat.com>
883
884	* doc/xml/manual/intro.xml: Include new section.
885	* doc/xml/manual/status_cxxis29124.xml: New section on IS 29124
886	status.
887	* doc/html/*: Regenerate.
888
889	Backport from mainline
890	2017-10-19  Jonathan Wakely  <jwakely@redhat.com>
891
892	* doc/xml/manual/status_cxx2017.xml: Update references to C++17
893	section numbers.
894
8952018-01-16  Eric Botcazou  <ebotcazou@adacore.com>
896
897	* testsuite/17_intro/names.cc: Undefine 'y' on SPARC/Linux.
898
8992018-01-13  Jonathan Wakely  <jwakely@redhat.com>
900
901	* python/libstdcxx/v6/printers.py (register_type_printers): Remove
902	printer for experimental::any. Fix printers for experimental::optional
903	and experimental::basic_string_view.
904
905	Backport from mainline
906	2018-01-05  Jonathan Wakely  <jwakely@redhat.com>
907
908	PR libstdc++/83626
909	* src/filesystem/ops.cc (remove(const path&, error_code&)): Remove
910	unnecessary symlink_status call.
911	(remove_all(const path&, error_code&)): Use filesystem::remove.
912
9132018-01-05  Jonathan Wakely  <jwakely@redhat.com>
914
915	Backport from mainline
916	2017-10-19  Jonathan Wakely  <jwakely@redhat.com>
917
918	* testsuite/experimental/filesystem/iterators/
919	recursive_directory_iterator.cc: Ensure that error_code arguments are
920	cleared when required.
921	* testsuite/experimental/filesystem/operations/create_directory.cc:
922	Remove redundant check.
923	* testsuite/experimental/filesystem/operations/temp_directory_path.cc:
924	Ensure that error_code argument is cleared when required.
925
926	Backport from mainline
927	2017-12-27  Jonathan Wakely  <jwakely@redhat.com>
928
929	PR libstdc++/83600
930	* include/bits/regex.h (match_results::end()): Return valid iterator
931	when not ready.
932	* testsuite/28_regex/match_results/ctors/char/default.cc: Check that
933	unready objects are empty and have equal begin and end iterators.
934	* testsuite/28_regex/match_results/ctors/wchar_t/default.cc: Likewise.
935
936	Backport from mainline
937	2017-12-27  Jonathan Wakely  <jwakely@redhat.com>
938
939	PR libstdc++/83598
940	* include/bits/regex.h (basic_regex): Don't modify flags passed to
941	constructors.
942	* testsuite/28_regex/basic_regex/ctors/83598.cc: New test.
943
944	Backport from mainline
945	2017-12-14  Jonathan Wakely  <jwakely@redhat.com>
946
947	PR libstdc++/83279
948	* src/filesystem/std-ops.cc (do_copy_file): Handle sendfile not
949	copying entire file.
950
951	Backport from mainline
952	2018-01-04  Jonathan Wakely  <jwakely@redhat.com>
953
954	* include/experimental/fs_ops.h (exists(const path&, error_code&))):
955	Only check status_known once.
956
957	Backport from mainline
958	2018-01-05  Jonathan Wakely  <jwakely@redhat.com>
959
960	PR libstdc++/83626
961	* src/filesystem/ops.cc (remove(const path&, error_code&)): Do not
962	report an error for ENOENT.
963	(remove_all(const path&)): Fix type of result variable.
964	(remove_all(const path&, error_code&)): Use non-throwing increment
965	for directory iterator. Call POSIX remove directly to avoid redundant
966	calls to symlink_status. Do not report errors for ENOENT.
967	* testsuite/experimental/filesystem/operations/remove_all.cc: Test
968	throwing overload.
969
970	Backport from mainline
971	2018-01-04  Jonathan Wakely  <jwakely@redhat.com>
972
973	PR libstdc++/83626
974	* src/filesystem/ops.cc (remove(const path&, error_code&))): Remove
975	redundant call to ec.clear().
976	(remove_all(const path&, error_code&))): Do not return an error for
977	non-existent paths.
978	* testsuite/experimental/filesystem/operations/remove.cc: New test.
979	* testsuite/experimental/filesystem/operations/remove_all.cc: Fix
980	expected results for non-existent paths.
981
982	Backport from mainline
983	2017-10-25  Jonathan Wakely  <jwakely@redhat.com>
984
985	PR libstdc++/79283
986	* src/filesystem/ops.cc (read_symlink): Handle st_size being zero.
987
9882018-01-04  Ville Voutilainen  <ville.voutilainen@gmail.com>
989
990	Backport from mainline
991	2018-01-03  Ville Voutilainen  <ville.voutilainen@gmail.com>
992
993	Protect optional's deduction guide with the feature macro
994	* include/std/optional: Use the feature macro.
995
9962017-12-28  François Dumont  <fdumont@gcc.gnu.org>
997
998	Backport from mainline
999	2017-12-20  François Dumont  <fdumont@gcc.gnu.org>
1000
1001	PR libstdc++/82522
1002	* include/debug/map.h (map::insert(value_type&&))
1003	(map::insert(const_iterator, value_type&&)): Add overload for rvalues.
1004	* include/debug/multimap.h (multimap::insert(value_type&&))
1005	(multimap::insert(const_iterator, value_type&&)): Likewise.
1006	* include/debug/unordered_map (unordered_map::insert(value_type&&))
1007	(unordered_map::insert(const_iterator, value_type&&))
1008	(unordered_multimap::insert(value_type&&))
1009	(unordered_multimap::insert(const_iterator, value_type&&)): Likewise.
1010	* testsuite/23_containers/map/modifiers/insert/dr2354.cc (test02): New.
1011	* testsuite/23_containers/multimap/modifiers/insert/dr2354.cc (test02):
1012	New.
1013	* testsuite/23_containers/unordered_map/insert/dr2354.cc (test02): New.
1014	* testsuite/23_containers/unordered_multimap/insert/dr2354.cc (test02):
1015	New.
1016
10172017-12-14  Jonathan Wakely  <jwakely@redhat.com>
1018
1019	PR libstdc++/83427
1020	* include/bits/refwrap.h (_Weak_result_type_impl)
1021	(_Reference_wrapper_base): Deduce noexcept for function types.
1022	* testsuite/20_util/bind/83427.cc: New test.
1023	* testsuite/20_util/reference_wrapper/83427.cc: New test.
1024
1025	PR libstdc++/59568
1026	* include/std/complex (operator>>): Only use putback if a character
1027	was successfully extracted and only set the value if a number was
1028	successfully extracted.
1029	* testsuite/26_numerics/complex/inserters_extractors/char/59568.cc:
1030	New test.
1031
10322017-12-12  Jonathan Wakely  <jwakely@redhat.com>
1033
1034	PR libstdc++/83395
1035	* include/std/type_traits (__is_invocable_impl): Remove partial
1036	specialization for INVOKE<void> and restore is_void<R> check in
1037	primary template.
1038	(__is_nt_invocable_impl): Likewise.
1039	* testsuite/20_util/is_invocable/83395.cc: New test.
1040	* testsuite/20_util/is_nothrow_invocable/83395.cc: New test.
1041
10422017-12-01  Jonathan Wakely  <jwakely@redhat.com>
1043
1044	Backport from mainline
1045	2017-10-13  Jonathan Wakely  <jwakely@redhat.com>
1046
1047	PR libstdc++/82522
1048	* doc/xml/manual/intro.xml: Document LWG 2354 changes.
1049	* include/bits/stl_map.h (map::insert(value_type&&))
1050	(map::insert(const_iterator, value_type&&)): Add overload for rvalues.
1051	* include/bits/stl_multimap.h (multimap::insert(value_type&&))
1052	(multimap::insert(const_iterator, value_type&&)): Likewise.
1053	* include/bits/unordered_map.h (unordered_map::insert(value_type&&))
1054	(unordered_map::insert(const_iterator, value_type&&))
1055	(unordered_multimap::insert(value_type&&))
1056	(unordered_multimap::insert(const_iterator, value_type&&)): Likewise.
1057	* testsuite/23_containers/map/modifiers/insert/dr2354.cc: New test.
1058	* testsuite/23_containers/multimap/modifiers/insert/dr2354.cc: New
1059	test.
1060	* testsuite/23_containers/unordered_map/insert/dr2354.cc: New test.
1061	* testsuite/23_containers/unordered_multimap/insert/dr2354.cc: New
1062	test.
1063
1064	Backport from mainline
1065	2017-11-23  Jonathan Wakely  <jwakely@redhat.com>
1066
1067	PR libstdc++/83134
1068	* include/std/type_traits (__not_): Explicitly convert to bool.
1069	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error.
1070	* testsuite/20_util/logical_traits/83134.cc: New test.
1071	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
1072	dg-error.
1073	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1074	Likewise.
1075
1076	Backport from mainline
1077	2017-12-01  Jonathan Wakely  <jwakely@redhat.com>
1078
1079	* include/std/type_traits (integral_constant): Make member functions
1080	noexcept (LWG 2346).
1081	* include/std/utility (integer_sequence): Likewise.
1082
1083	Backport from mainline
1084	2017-11-16  Jonathan Wakely  <jwakely@redhat.com>
1085
1086	* include/std/future (shared_future): Add noexcept to copy constructor
1087	and copy-assignment operator (LWG 2799).
1088
1089	Backport from mainline
1090	2017-11-15  Jonathan Wakely  <jwakely@redhat.com>
1091
1092	* include/bits/range_access.h (size, empty, data): Add conditional
1093	noexcept to generic overloads.
1094
1095	Backport from mainline
1096	2017-10-24  Jonathan Wakely  <jwakely@redhat.com>
1097
1098	PR libstdc++/82685
1099	* include/experimental/string_view (operator""sv): Add noexcept.
1100	* include/std/string_view (operator""sv): Likewise.
1101
1102	Backport from mainline
1103	2017-11-30  Jonathan Wakely  <jwakely@redhat.com>
1104
1105	PR libstdc++/83226
1106	* include/bits/node_handle.h (_Node_handle::__pointer): Avoid forming
1107	pointer-to-reference types.
1108	* testsuite/23_containers/map/modifiers/insert/83226.cc: New test.
1109
1110	Backport from mainline
1111	2017-11-14  Jonathan Wakely  <jwakely@redhat.com>
1112
1113	* include/bits/locale_conv.h (wbuffer_convert::_M_conv_get): Fix typo.
1114	* testsuite/22_locale/conversions/buffer/3.cc: New test.
1115
1116	Backport from mainline
1117	2017-11-03  Jonathan Wakely  <jwakely@redhat.com>
1118
1119	* include/bits/node_handle.h (_Node_insert_return::get): Remove, as
1120	per P0508R0.
1121
11222017-10-25  Jonathan Wakely  <jwakely@redhat.com>
1123
1124	* doc/xml/manual/status_cxx1998.xml: Correct statement about
1125	what the doc covers.
1126	* doc/xml/manual/status_cxx2011.xml: Likewise.
1127	* doc/xml/manual/status_cxx2014.xml: Likewise.
1128	* doc/xml/manual/status_cxx2017.xml: Update C++17 status, and
1129	information on feature-test macros.
1130	* doc/xml/manual/status_cxxtr1.xml: Correct statement about what
1131	the doc covers.
1132	* doc/xml/manual/status_cxxtr24733.xml: Likewise.
1133	* doc/html/*: Regenerate.
1134
11352017-10-23  Jonathan Wakely  <jwakely@redhat.com>
1136
1137	Backport from mainline
1138	2017-07-18  Jonathan Wakely  <jwakely@redhat.com>
1139
1140	PR libstdc++/81395
1141	* include/bits/fstream.tcc (basic_filebuf::xsgetn): Don't set buffer
1142	pointers for write mode after reading.
1143	* testsuite/27_io/basic_filebuf/sgetn/char/81395.cc: New.
1144
11452017-10-21  Jonathan Wakely  <jwakely@redhat.com>
1146
1147	* testsuite/experimental/filesystem/path/itr/traversal.cc: Do not
1148	increment past-the-end iterators.
1149
11502017-10-20  Jonathan Wakely  <jwakely@redhat.com>
1151
1152	* include/std/chrono (__cpp_lib_chrono): Update macro value to
1153	indicate support for P0505R0.
1154	* testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: Check
1155	for updated macro.
1156
1157	* include/c_global/cstddef: Define __cpp_lib_byte feature-test macro.
1158	* testsuite/18_support/byte/requirements.cc: Check macro.
1159
1160	Backport from mainline
1161	2017-10-13  Jonathan Wakely  <jwakely@redhat.com>
1162
1163	PR libstdc++/82481
1164	* include/std/mutex (call_once): Suppress clang-tidy warnings about
1165	dangling references.
1166
1167	Backport from mainline
1168	2017-09-12  Jonathan Wakely  <jwakely@redhat.com>
1169
1170	PR libstdc++/79433
1171	* doc/xml/manual/status_cxx2017.xml: Update feature-test macros.
1172	* doc/html/*: Regenerate.
1173	* include/Makefile.am: Remove <bits/c++17_warning.h>.
1174	* include/Makefile.in: Regenerate.
1175	* include/bits/c++17_warning.h: Remove.
1176	* include/bits/string_view.tcc: Do not include <bits/c++17_warning.h>
1177	for pre-C++17 modes.
1178	* include/std/any: Likewise.
1179	(__cpp_lib_any): Define.
1180	* include/std/mutex (__cpp_lib_scoped_lock): Adjust value as per new
1181	SD-6 draft.
1182	* include/std/numeric (__cpp_lib_gcd_lcm): Define as per new SD-6
1183	draft.
1184	* include/std/optional: Do not include <bits/c++17_warning.h>.
1185	(__cpp_lib_optional): Define.
1186	* include/std/shared_mutex: Do not include <bits/c++14_warning.h>.
1187	* include/std/string_view: Do not include <bits/c++17_warning.h>.
1188	(__cpp_lib_string_view): Define.
1189	* include/std/variant: Do not include <bits/c++17_warning.h>.
1190	(__cpp_lib_variant): Define.
1191	* testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error line
1192	numbers.
1193	* testsuite/26_numerics/gcd/1.cc: Test for __cpp_lib_gcd_lcm.
1194	* testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error line
1195	numbers.
1196	* testsuite/26_numerics/lcm/1.cc: Test for __cpp_lib_gcd_lcm.
1197	* testsuite/26_numerics/lcm/lcm_neg.cc: Adjust dg-error line
1198	numbers.
1199	* testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Adjust
1200	expected value of __cpp_lib_scoped_lock.
1201
1202	Backport from mainline
1203	2017-10-19  Jonathan Wakely  <jwakely@redhat.com>
1204
1205	* include/experimental/bits/fs_path.h (path::iterator++(int))
1206	(path::iterator--(int)): Fix for paths with only one component.
1207	* testsuite/experimental/filesystem/path/itr/traversal.cc: Test
1208	post-increment and post-decrement.
1209
12102017-09-21  Jonathan Wakely  <jwakely@redhat.com>
1211
1212	* testsuite/25_algorithms/clamp/1.cc: Fix order of arguments and
1213	expected results when using predicate defining reverse order.
1214	* testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
1215
12162017-09-20  Jonathan Wakely  <jwakely@redhat.com>
1217
1218	Backport from mainline
1219	2017-06-14  Jonathan Wakely  <jwakely@redhat.com>
1220
1221	* doc/xml/manual/test.xml: Correct instructions on running tests.
1222	* testsuite/27_io/basic_ios/copyfmt/char/1.cc: Adjust to pass when
1223	-D_GLIBCXX_USE_CXX11_ABI=0 added to RUNTESTFLAGS.
1224	* testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
1225	* testsuite/27_io/basic_istream/extractors_arithmetic/char/
1226	exceptions_failbit.cc: Likewise.
1227	* testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
1228	exceptions_failbit.cc: Likewise.
1229	* testsuite/27_io/basic_istream/extractors_other/char/
1230	exceptions_null.cc: Likewise.
1231	* testsuite/27_io/basic_istream/extractors_other/wchar_t/
1232	exceptions_null.cc: Likewise.
1233	* testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
1234	* testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
1235	* testsuite/27_io/basic_ostream/inserters_other/char/
1236	exceptions_null.cc: Likewise.
1237	* testsuite/27_io/basic_ostream/inserters_other/wchar_t/
1238	exceptions_null.cc: Likewise.
1239	* testsuite/27_io/ios_base/storage/2.cc: Likewise.
1240
1241	PR libstdc++/79162
1242	* include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
1243	(basic_string::_If_sv): Remove from the overload set when the
1244	argument is derived from basic_string.
1245
1246	PR libstdc++/79162
1247	* include/bits/basic_string.h (basic_string::_If_sv): Remove from the
1248	overload set when the argument is derived from basic_string.
1249	* testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc: New
1250	test.
1251	* testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
1252	New test.
1253
1254	* testsuite/24_iterators/range_access_cpp17.cc: Fix order of dg-do
1255	and dg-options directives. Fix invalid test.
1256
1257	Backport from mainline
1258	2017-09-20  Jonathan Wakely  <jwakely@redhat.com>
1259
1260	PR libstdc++/82262
1261	* include/std/optional (__optional_hash_call_base): Add template
1262	parameter for remove_const_t<_Tp> and use it consistently.
1263	* testsuite/20_util/optional/hash.cc: Test optional<const T>.
1264
1265	Backport from mainline
1266	2017-09-19  Jonathan Wakely  <jwakely@redhat.com>
1267
1268	PR libstdc++/82254
1269	* include/std/type_traits (__is_invocable): Add partial specialization
1270	for INVOKE<void> case and remove is_void<R> check from partial
1271	specialization for INVOKE<R> case.
1272	(__is_nt_invocable_impl): New helper for is_nothrow_invocable_r.
1273	(is_nothrow_invocable_r): Use __is_nt_invocable_impl.
1274	* testsuite/20_util/is_nothrow_invocable/value.cc: Add tests for
1275	conversions that can throw or fail to convert. Use static assert
1276	strings to explain negative results.
1277	* testsuite/20_util/is_nothrow_invocable/value_ext.cc: Use
1278	is_nothrow_constructible in is_nt_invocable_conv.
1279
12802017-09-13  Jonathan Wakely  <jwakely@redhat.com>
1281
1282	Backport from mainline
1283	2017-09-04  Daniel Kruegler  <daniel.kruegler@gmail.com>
1284
1285	PR libstdc++/79162
1286	Implement LWG 2946, LWG 2758's resolution missed further corrections
1287	* include/bits/basic_string.h (basic_string::compare): Add missing
1288	required noexcept specifications.
1289	(basic_string): Introduce internal _S_to_string_view and __sv_wrapper
1290	for implicit string_view conversion.
1291	(basic_string::basic_string): Fix explicit string_view conversion by
1292	implicit conversion using _S_to_string_view and __sv_wrapper.
1293	(basic_string): Introduce internal basic_string(__sv_wrapper, Alloc)
1294	constructor.
1295	(basic_string): Fix operator=(T) template by operator=(const T&)
1296	template for uncopyable types (PR 79162).
1297	(basic_string::operator+=, basic_string::append, basic_string::assign)
1298	(basic_string::insert, basic_string::replace, basic_string::find)
1299	(basic_string::rfind, basic_string::find_first_of)
1300	(basic_string::find_last_of, basic_string::find_first_not_of)
1301	(basic_string::find_last_not_of, basic_string::compare): Replace
1302	__sv_type argument by template const T& (LWG 2946) and correct
1303	documentation describing __sv_type argument.
1304	(basic_string::find, basic_string::rfind, basic_string::find_first_of)
1305	(basic_string::find_last_of, basic_string::find_first_not_of)
1306	(basic_string::find_last_not_of, basic_string::compare): Replace
1307	unconditional noexcept specification by conditional noexcept
1308	specification to partially balance the removal of noexcept by LWG 2946.
1309	* testsuite/21_strings/basic_string/79162.cc: New.
1310	* testsuite/21_strings/basic_string/lwg2946.cc: New.
1311
13122017-09-13  Jonathan Wakely  <jwakely@redhat.com>
1313
1314	PR libstdc++/81468
1315	* include/std/chrono (time_point(const time_point<_Dur2>&)): Add
1316	missing constraint from LWG DR 1177.
1317	* testsuite/20_util/duration/cons/dr1177.cc: New.
1318	* testsuite/20_util/time_point/cons/81468.cc: New.
1319	* testsuite/20_util/duration/literals/range.cc: Update dg-error line.
1320
1321	* doc/doxygen/mainpage.html: Fix broken URLs.
1322
1323	PR libstdc++/81835
1324	* doc/xml/manual/extensions.xml: Replace unstable URL.
1325	* doc/html/manual/ext_demangling.html: Regenerate.
1326	* libsupc++/cxxabi.h (__cxa_demangle): Fix broken URL.
1327
13282017-09-12  Jonathan Wakely  <jwakely@redhat.com>
1329
1330	Backport from mainline
1331	2017-09-12  Jonathan Wakely  <jwakely@redhat.com>
1332
1333	PR libstdc++/70483
1334	* include/experimental/bits/string_view.tcc (basic_string_view::find)
1335	(basic_string_view::rfind, basic_string_view::find_first_of)
1336	(basic_string_view::find_last_of, basic_string_view::find_first_not_of)
1337	(basic_string_view::find_last_not_of): Add constexpr specifier.
1338	* include/experimental/string_view (basic_string_view::remove_prefix)
1339	(basic_string_view::remove_suffix, basic_string_view::swap)
1340	(basic_string_view::compare, basic_string_view::find)
1341	(basic_string_view::rfind, basic_string_view::find_first_of)
1342	(basic_string_view::find_last_of, basic_string_view::find_first_not_of)
1343	(basic_string_view::find_last_not_of, operator==, operator!=)
1344	(operator<, operator>, operator<=, operator>=): Likewise.
1345	* testsuite/experimental/string_view/operations/compare/char/70483.cc:
1346	New.
1347
1348	Backport from mainline
1349	2017-09-11  Jonathan Wakely  <jwakely@redhat.com>
1350
1351	PR libstdc++/70483
1352	* include/bits/string_view.tcc (basic_string_view::find)
1353	(basic_string_view::rfind, basic_string_view::find_first_of)
1354	(basic_string_view::find_last_of, basic_string_view::find_first_not_of)
1355	(basic_string_view::find_last_not_of): Add constexpr specifier.
1356	* include/std/string_view (basic_string_view::operator=)
1357	(basic_string_view::rbegin, basic_string_view::rend)
1358	(basic_string_view::crbegin, basic_string_view::crend)
1359	(basic_string_view::remove_prefix, basic_string_view::remove_suffix)
1360	(basic_string_view::swap, basic_string_view::compare)
1361	(basic_string_view::find, basic_string_view::rfind)
1362	(basic_string_view::find_first_of, basic_string_view::find_last_of)
1363	(basic_string_view::find_first_not_of)
1364	(basic_string_view::find_last_not_of, basic_string_view::_M_check)
1365	(basic_string_view::_M_limit, operator==, operator!=, operator<)
1366	(operator>, operator<=, operator>=): Likewise.
1367	* testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
1368	char/1.cc: Repeat tests in constexpr context.
1369	* testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
1370	wchar_t/1.cc: Likewise.
1371	* testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
1372	char/1.cc: Likewise.
1373	* testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
1374	wchar_t/1.cc: Likewise.
1375	* testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
1376	Likewise.
1377	* testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
1378	Likewise.
1379	* testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
1380	Likewise.
1381	* testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
1382	Likewise.
1383	* testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
1384	Likewise.
1385	* testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
1386	Likewise.
1387	* testsuite/21_strings/basic_string_view/operators/char/2.cc:
1388	Likewise.
1389	* testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
1390	Likewise.
1391	* testsuite/21_strings/basic_string_view/range_access/char/1.cc: Test
1392	cbegin, cend, rbegin, rend, crbegin and crend.
1393	* testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
1394	Likewise.
1395	* testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
1396	Remove trailing whitespace.
1397	* testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
1398	1.cc: Likewise.
1399	* testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
1400	New.
1401	* testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
1402	New.
1403	* testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
1404	New.
1405	* testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
1406	2.cc: New.
1407
1408	Backport from mainline
1409	2017-06-12  Pedro Alves  <palves@redhat.com>
1410
1411	* doc/xml/manual/status_cxx2017.xml: Update C++17 constexpr
1412	char_traits status.
1413	* doc/html/*: Regenerate.
1414
1415	* include/bits/char_traits.h (_GLIBCXX_ALWAYS_INLINE): Define if
1416	not already defined.
1417	(__cpp_lib_constexpr_char_traits): Uncomment.
1418	(__constant_string_p, __constant_char_array_p): New.
1419	(std::char_traits<char>, std::char_traits<wchar_t>): Add
1420	_GLIBCXX17_CONSTEXPR on compare, length and find and use
1421	__constant_string_p, __constant_char_array_p and
1422	__builtin_constant_p to defer to __gnu_cxx::char_traits at compile
1423	time.
1424
1425	* testsuite/21_strings/char_traits/requirements/
1426	constexpr_functions_c++17.cc: Uncomment
1427	__cpp_lib_constexpr_char_traits tests.  Uncomment
1428	test_compare<char>, test_length<char>, test_find<char>,
1429	test_compare<wchar_t>, test_length<wchar_t> and test_find<wchar_t>
1430	static_assert tests.
1431
14322017-09-04  Jonathan Wakely  <jwakely@redhat.com>
1433
1434	Backport from mainline
1435	2017-08-31  Jonathan Wakely  <jwakely@redhat.com>
1436
1437	PR c++/82039
1438	* include/ext/new_allocator.h (__gnu_cxx::new_allocator::allocate):
1439	Adjust null pointer constant to avoid warning.
1440
1441	Backport from mainline
1442	2017-08-21  Jonathan Wakely  <jwakely@redhat.com>
1443
1444	PR libstdc++/81912
1445	* include/bits/stl_iterator_base_types.h (__iterator_category): Add
1446	constexpr for C++11 and later.
1447	* testsuite/24_iterators/container_access.cc: Add target selector.
1448	* testsuite/24_iterators/range_access.cc: Fix clause number in
1449	comment.
1450	* testsuite/24_iterators/range_access_cpp14.cc: Likewise.
1451	* testsuite/24_iterators/range_access_cpp17.cc: New.
1452
1453	Backport from mainline
1454	2017-08-09  Jonathan Wakely  <jwakely@redhat.com>
1455
1456	* include/std/type_traits (_GLIBCXX_NO_BUILTIN_HAS_UNIQ_OBJ_REP):
1457	Replace with _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP and use
1458	__is_identifier to set it.
1459
1460	Backport from mainline
1461	2017-08-09  Katsuhiko Nishimra  <ktns.87@gmail.com>
1462
1463	* include/std/type_traits (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Use
1464	__is_identifier instead of __has_builtin.
1465
1466	Backport from mainline
1467	2017-08-18  Jonathan Wakely  <jwakely@redhat.com>
1468
1469	PR libstdc++/81891
1470	* include/bits/hashtable.h (_Hashtable(_InputIterator, _InputIterator,
1471	size_type, const _H1&, const _H2&, const _Hash&, const _Equal&,
1472	const _ExtractKey&, const allocator_type&)): Let destructor do clean
1473	up if an exception is thrown.
1474	* testsuite/23_containers/unordered_map/cons/81891.cc: New.
1475
1476	Backport from mainline
1477	2017-07-31  Marek Polacek  <polacek@redhat.com>
1478
1479	PR libstdc++/81599
1480	* include/bits/stl_stack.h: Fix typo.
1481
1482	Backport from mainline
1483	2017-07-10  Jonathan Wakely  <jwakely@redhat.com>
1484
1485	PR libstdc++/81338
1486	* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
1487	Declare basic_stringbuf to be a friend.
1488	* include/bits/sstream.tcc (basic_stringbuf::overflow)
1489	[_GLIBCXX_USE_CXX11_ABI]: Use unused capacity before reallocating.
1490	* include/std/sstream (basic_stringbuf::__xfer_bufptrs): Update string
1491	length to buffer length.
1492	* testsuite/27_io/basic_stringstream/assign/81338.cc: New.
1493
14942017-08-20  John David Anglin  <danglin@gcc.gnu.org>
1495
1496	PR testsuite/81056
1497	* testsuite/17_intro/names.cc: Undef 'd' and 'r' on __hpux__.
1498
14992017-08-14  Jonathan Wakely  <jwakely@redhat.com>
1500
1501	Backport from mainline
1502	2017-08-09  Jonathan Wakely  <jwakely@redhat.com>
1503
1504	PR libstdc++/79820
1505	PR libstdc++/81751
1506	* config/io/basic_file_stdio.cc (sys_open(FILE*, ios_base::openmode)):
1507	Call fflush on the stream instead of calling sync() while _M_cfile is
1508	null. Restore original value of errno.
1509	* testsuite/ext/stdio_filebuf/char/79820.cc: New.
1510	* testsuite/ext/stdio_filebuf/char/81751.cc: New.
1511
1512	Backport from mainline
1513	2017-07-25  Jonathan Wakely  <jwakely@redhat.com>
1514
1515	PR libstdc++/53984
1516	* include/bits/basic_ios.h (basic_ios::_M_setstate): Adjust comment.
1517	* include/bits/istream.tcc (basic_istream::sentry): Handle exceptions
1518	during construction.
1519	* include/std/istream: Adjust comments for formatted input functions
1520	and unformatted input functions.
1521	* testsuite/27_io/basic_fstream/53984.cc: New.
1522	* testsuite/27_io/basic_istream/sentry/char/53984.cc: New.
1523
15242017-08-14  Release Manager
1525
1526	* GCC 7.2.0 released.
1527
15282017-07-26  Richard Biener  <rguenther@suse.de>
1529
1530	Backport from mainline
1531	2017-06-02  Richard Biener  <rguenther@suse.de>
1532		Markus Eisenmann  <meisenmann.lba@fh-salzburg.ac.at>
1533
1534	PR libstdc++/80721
1535	* libsupc++/eh_alloc.cc (pool::free): Keep list properly
1536	sorted and add missing freelist item merging cases.
1537
15382017-07-25  Jonathan Wakely  <jwakely@redhat.com>
1539
1540	Backport from mainline
1541	2017-06-09  Jonathan Wakely  <jwakely@redhat.com>
1542
1543	* doc/xml/manual/intro.xml: Document LWG 2802, 2873 and 2942 changes.
1544	* include/bits/shared_ptr.h (shared_ptr): Use rvalues for deleters
1545	(LWG 2802).
1546	* include/bits/shared_ptr_base.h (_Sp_ebo_helper, _Sp_counted_deleter
1547	(_Sp_counted_deleter::_Impl, __shared_count, __shared_ptr): Likewise.
1548	* testsuite/20_util/shared_ptr/cons/lwg2802.cc: New.
1549
1550	Backport from mainline
1551	2017-06-05  Jonathan Wakely  <jwakely@redhat.com>
1552
1553	* include/bits/shared_ptr_base.h (__shared_ptr::owner_before)
1554	(__weak_ptr::owner_before, _Sp_owner_less::operator()): Add noexcept
1555	specifiers as per LWG 2873 and LWG 2942.
1556	* testsuite/20_util/owner_less/noexcept.cc: New.
1557	* testsuite/20_util/shared_ptr/observers/owner_before.cc: Test
1558	noexcept guarantees.
1559	* testsuite/20_util/weak_ptr/observers/owner_before.cc: Likewise.
1560
1561	Backport from mainline
1562	2017-04-28  Jonathan Wakely  <jwakely@redhat.com>
1563
1564	PR libstdc++/80553
1565	* include/bits/stl_construct.h (_Destroy, _Destroy_n): Add static
1566	assertions to ensure type is destructible.
1567	(destroy_at, destroy, destroy_n): Move from stl_uninitialized.h.
1568	* include/bits/stl_uninitialized.h (destroy_at, destroy, destroy_n):
1569	Move to stl_construct.h.
1570	* testsuite/20_util/specialized_algorithms/memory_management_tools/
1571	destroy_neg.cc: New test.
1572	* testsuite/23_containers/vector/cons/destructible_neg.cc: New test.
1573
1574	Backport from mainline
1575	2017-05-16  Jonathan Wakely  <jwakely@redhat.com>
1576
1577	* configure: Regenerate.
1578	* doc/xml/manual/status_cxx2017.xml: Update status table.
1579	* doc/html/*: Regenerate.
1580	* include/Makefile.am: Add new header.
1581	* include/Makefile.in: Regenerate.
1582	* include/experimental/source_location: New header implementing N4519.
1583	* testsuite/experimental/source_location/1.cc: New test.
1584
1585	Backport from mainline
1586	2017-07-06  Jonathan Wakely  <jwakely@redhat.com>
1587
1588	* include/bits/uses_allocator.h (__use_alloc(const _Alloc&&)): Add
1589	deleted overload to prevent dangling references to rvalues.
1590	* include/experimental/memory_resource
1591	(polymorphic_allocator::construct): Do not call __use_alloc with
1592	rvalue arguments.
1593
1594	Backport from mainline
1595	2017-06-08  Jonathan Wakely  <jwakely@redhat.com>
1596
1597	PR libstdc++/81017
1598	* include/bits/std_function.h (function::function(function&&))
1599	(function::operator=(funtion&&)): Add noexcept.
1600	* testsuite/20_util/function/assign/move.cc: Check for noexcept.
1601	* testsuite/20_util/function/cons/move.cc: Likewise.
1602
1603	Backport from mainline
1604	2017-07-15  Jonathan Wakely  <jwakely@redhat.com>
1605
1606	* include/std/mutex (scoped_lock): Reorder std::adopt_lock_t parameter
1607	as per P0739R0.
1608	* testsuite/30_threads/scoped_lock/cons/1.cc: Reorder arguments.
1609	* testsuite/30_threads/scoped_lock/cons/deduction.cc: Test deduction
1610	with std::adopt_lock_t.
1611	* testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Check
1612	feature-test macro.
1613
1614	Backport from mainline
1615	2017-07-14  Jason Merrill  <jason@redhat.com>
1616	    Jonathan Wakely  <jwakely@redhat.com>
1617
1618	* include/std/variant (variant::variant(_Tp&&)): Constrain to remove
1619	the constructor for empty variants from the candidate functions
1620	during class template argument deduction.
1621	* testsuite/20_util/variant/deduction.cc: New.
1622
1623	Backport from mainline
1624	2017-06-02  Jonathan Wakely  <jwakely@redhat.com>
1625
1626	PR libstdc++/80939
1627	* include/std/variant (__erased_ctor, __erased_assign, __erased_swap)
1628	(__erased_hash): Remove constexpr specifier and qualify calls to
1629	__ref_cast.
1630	(__erased_dtor): Remove constexpr specifier and use _Destroy.
1631
1632	Backport from mainline
1633	2017-05-20  Tim Shen  <timshen@google.com>
1634
1635	PR libstdc++/80737
1636	* include/std/variant(variant::variant): SFINAE on is_same first.
1637	* testsuite/20_util/variant/any.cc: test case.
1638
16392017-07-11  Jonathan Wakely  <jwakely@redhat.com>
1640
1641	Backport from mainline
1642	2017-04-21  Jonathan Wakely  <jwakely@redhat.com>
1643
1644	PR libstdc++/80316
1645	* include/std/future (_State_baseV2::_Setter::operator()): Remove
1646	_S_check calls that are done after the pointer to the shared state is
1647	already dereferenced.
1648	(_State_baseV2::_Setter<_Res, void>): Define specialization for void
1649	as partial specialization so it can be defined within the definition
1650	of _State_baseV2.
1651	(_State_baseV2::__setter): Call _S_check.
1652	(_State_baseV2::__setter(promise<void>*)): Add overload for use by
1653	promise<void>::set_value and promise<void>::set_value_at_thread_exit.
1654	(promise<T>, promise<T&>, promise<void>): Make _State a friend.
1655	(_State_baseV2::_Setter<void, void>): Remove explicit specialization.
1656	(promise<void>::set_value, promise<void>::set_value_at_thread_exit):
1657	Use new __setter overload.
1658	* testsuite/30_threads/promise/members/at_thread_exit2.cc: New test.
1659	* testsuite/30_threads/promise/members/set_exception.cc: Test
1660	promise<T&> and promise<void> specializations.
1661	* testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
1662	Test for no_state error condition.
1663	* testsuite/30_threads/promise/members/set_value2.cc: Likewise.
1664
16652017-06-27  Jonathan Wakely  <jwakely@redhat.com>
1666
1667	PR libstdc++/81221
1668	* include/bits/stl_algo.h (sample): Qualify with _GLIBCXX_STD_A not
1669	std.
1670	* testsuite/25_algorithms/sample/81221.cc: New.
1671
16722017-06-21  Ville Voutilainen  <ville.voutilainen@gmail.com>
1673
1674	Backport from mainline
1675	2017-06-21  Ville Voutilainen  <ville.voutilainen@gmail.com>
1676
1677	PR libstdc++/80675
1678	PR libstdc++/80940
1679	* include/std/istream:
1680	(__is_convertible_to_basic_istream_test(basic_istream<_Ch, _Up>*)): New.
1681	(__do_is_convertible_to_basic_istream_impl): Likewise.
1682	(__is_convertible_to_basic_istream_impl): Likewise.
1683	(__is_convertible_to_basic_istream): Use the new base.
1684	(__rvalue_istream_type): New.
1685	(operator>>(_Istream&&, _Tp&&)): Use the new helper alias
1686	for the SFINAE check, convert to the helper alias type before
1687	doing the actual extraction.
1688	* include/std/ostream:
1689	(__is_convertible_to_basic_ostream_test(basic_ostream<_Ch, _Up>*)): New.
1690	(__do_is_convertible_to_basic_ostream_impl): Likewise.
1691	(__is_convertible_to_basic_ostream_impl): Likewise.
1692	(__is_convertible_to_basic_ostream): Use the new base.
1693	(__rvalue_ostream_type): New.
1694	(operator<<(_Ostream&&, const _Tp&)): Use the new helper alias
1695	for the SFINAE check, convert to the helper alias type before
1696	doing the actual insertion.
1697	* testsuite/27_io/rvalue_streams-2.cc: Add new tests.
1698
16992017-06-21  Uros Bizjak  <ubizjak@gmail.com>
1700
1701	* config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
1702
17032017-06-21  Jonathan Wakely  <jwakely@redhat.com>
1704
1705	PR libstdc++/81092
1706	* configure: Regenerate.
1707
17082017-06-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1709
1710	* config/abi/post/i386-solaris2.10/baseline_symbols.txt: Regenerate.
1711	* config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: Likewise.
1712	* config/abi/post/i386-solaris2.11/baseline_symbols.txt: Likewise.
1713	* config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: Likewise.
1714	* config/abi/post/sparc-solaris2.10/baseline_symbols.txt: Likewise.
1715	* config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
1716	Likewise.
1717	* config/abi/post/sparc-solaris2.11/baseline_symbols.txt: Likewise.
1718	* config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
1719	Likewise.
1720
17212017-06-18  H.J. Lu  <hongjiu.lu@intel.com>
1722
1723	PR libstdc++/81092
1724	* config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
1725
17262017-06-16  Jakub Jelinek  <jakub@redhat.com>
1727
1728	PR libstdc++/81092
1729	* config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
1730
17312017-06-16  Jonathan Wakely  <jwakely@redhat.com>
1732
1733	* include/bits/locale_conv.h (wbuffer_convert::sync): Fix condition.
1734	* testsuite/22_locale/conversions/buffer/2.cc: New.
1735
1736	* doc/xml/manual/appendix_contributing.xml: Link to the list of bad
1737	names, and link to the test docs and note higher DejaGnu version
1738	requirement.
1739	* doc/xml/manual/allocator.xml: Fix ViewCVS URLs.
1740	* doc/xml/manual/mt_allocator.xml: Likewise.
1741	* doc/xml/manual/test.xml: Correct instructions on running tests.
1742	* doc/html/*: Regenerate.
1743
1744	PR libstdc++/81092
1745	* acinclude.m4: Bump libtool_VERSION.
1746	* config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
1747	* config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
1748	* config/abi/pre/gnu.ver: Add wstring constructor symbols to new
1749	GLIBCXX_3.4.24 version.
1750	* doc/xml/manual/abi.xml: Document new versions.
1751	* doc/html/*: Regenerate.
1752	* testsuite/21_strings/basic_string/cons/char/8.cc: Use base object
1753	constructors to ensure required symbols are exported.
1754	* testsuite/21_strings/basic_string/cons/wchar_t/8.cc: Likewise.
1755	* testsuite/util/testsuite_abi.cc: Add new version.
1756
1757	* include/bits/locale_conv.h (wbuffer_convert::_M_put): Add missing
1758	return statement.
1759	* testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
1760	Return void.
1761	* testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
1762	Likewise.
1763	* testsuite/23_containers/map/modifiers/insert_or_assign/1.cc: Add
1764	missing return statements.
1765	* testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
1766	Likewise.
1767	* testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc:
1768	Return void.
1769	* testsuite/special_functions/14_expint/pr68397.cc: Likewise.
1770
17712017-06-07  Jonathan Wakely  <jwakely@redhat.com>
1772
1773	PR libstdc++/81002
1774	* include/bits/regex_compiler.h (__compile_nfa): Add template argument
1775	list to specify traits type.
1776	* testsuite/28_regex/basic_regex/ctors/basic/iter.cc: New.
1777
17782017-05-19  Jonathan Wakely  <jwakely@redhat.com>
1779
1780	PR libstdc++/80796
1781	* include/bits/stl_algo.h (search): Add new overload for C++17.
1782	* testsuite/25_algorithms/search/searcher.cc: New.
1783
17842017-05-18  Jonathan Wakely  <jwakely@redhat.com>
1785
1786	PR libstdc++/80478
1787	* include/std/functional (_Mem_fn_traits_base): Add specializations
1788	for noexcept member function types.
1789	* testsuite/20_util/function_objects/mem_fn/80478.cc: New test.
1790
17912017-05-18  Jonathan Wakely  <jwakely@redhat.com>
1792
1793	* doc/xml/manual/policy_data_structures.xml: Fix typo.
1794	* doc/xml/manual/test_policy_data_structures.xml: Likewise.
1795	* doc/html/*: Regenerate.
1796
1797	* doc/xml/manual/abi.xml: Document latest library versions.
1798	* doc/xml/manual/build_hacking.xml: Document requirement to update
1799	abi.xml when bumping library versions.
1800	* doc/html/*: Regenerate.
1801
18022017-05-15  Jonathan Wakely  <jwakely@redhat.com>
1803
1804	PR libstdc++/80761
1805	* include/bits/node_handle.h (_Node_insert_return): Reorder members.
1806	(tuple_size, tuple_element): Remove partial specializations.
1807	* include/bits/stl_tree.h (_Rb_tree::insert_return_type): Use
1808	const_iterator for std::set.
1809	* testsuite/23_containers/map/modifiers/extract.cc: New.
1810	* testsuite/23_containers/set/modifiers/extract.cc: New.
1811	* testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
1812	* testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
1813
18142017-05-12  Jonathan Wakely  <jwakely@redhat.com>
1815
1816	PR libstdc++/78939
1817	* include/std/utility (tuple_size<cv T>) [__cplusplus > 201402L]:
1818	Only define partial specializations when tuple_size<T>::value is
1819	valid.
1820	* testsuite/20_util/tuple/78939.cc: New.
1821
18222017-05-02  Release Manager
1823
1824	* GCC 7.1.0 released.
1825
18262017-04-19  Jonathan Wakely  <jwakely@redhat.com>
1827
1828	* doc/xml/manual/abi.xml: Rephrase one of the references to the
1829	Itanium C++ ABI.
1830	* doc/xml/manual/test.xml: Document DejaGnu 1.5.3 requirement.
1831	* doc/html/*: Regenerate.
1832
1833	* libsupc++/new: Update comment on #endif directive.
1834
1835	PR libstdc++/80448
1836	* include/experimental/bits/fs_dir.h (directory_iterator)
1837	(recursive_directory_iterator): Remove noexcept from defaulted
1838	constructors.
1839
1840	PR libstdc++/80446
1841	* include/std/type_traits (is_aggregate): Change __has_builtin checks.
1842	* libsupc++/new (launder): Likewise.
1843
18442017-04-18  Jonathan Wakely  <jwakely@redhat.com>
1845
1846	* include/std/functional (default_searcher, __boyer_moore_array_base)
1847	(__is_std_equal_to, __boyer_moore_base_t, boyer_moore_searcher)
1848	(boyer_moore_horspool_searcher): Remove redundant namespace
1849	qualification.
1850	(default_searcher::operator()): Construct return value early and
1851	advance second member in-place.
1852	(boyer_moore_horspool_searcher::operator()): Increment random access
1853	iterator directly instead of using std::next.
1854	(boyer_moore_searcher::operator()): Fix return value.
1855	* testsuite/20_util/function_objects/searchers.cc: Check both parts
1856	of return values.
1857
18582017-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
1859
1860	* doc/xml/faq.xml: Update reference link to C++ ABI for Itanium.
1861	* doc/xml/manual/abi.xml. Ditto (thrice).
1862
18632017-04-03  Jonathan Wakely  <jwakely@redhat.com>
1864
1865	* doc/xml/manual/status_cxx2017.xml: Remove duplicate table entry.
1866	* doc/html/*: Regenerate.
1867
1868	* testsuite/20_util/reference_wrapper/invoke.cc: Uncomment tests
1869	that no longer fail.
1870
1871	* include/bits/ios_base.h: Correct comment.
1872	* testsuite/util/testsuite_hooks.h: Likewise.
1873
1874	* doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
1875	* doc/xml/manual/appendix_contributing.xml (contrib.organization): Add
1876	directories for debug, parallel and profile headers.
1877	* doc/html/*: Regenerate.
1878
1879	* include/bits/char_traits.h (__gnu_cxx::char_traits): Add
1880	_GLIBCXX14_CONSTEXPR on assign, compare, find, and length.
1881	(std::char_traits<char>, std::char_traits<wchar_t>): Add
1882	_GLIBCXX17_CONSTEXPR on assign.
1883	(std::char_traits<char16_t>, std::char_traits<char32_t>): Add
1884	_GLIBCXX17_CONSTEXPR on assign, compare, find, and length.
1885	* testsuite/21_strings/char_traits/requirements/
1886	constexpr_functions_c++17.cc: New test.
1887
18882017-04-03  Ville Voutilainen  <ville.voutilainen@gmail.com>
1889
1890	PR libstdc++/79141
1891	* include/bits/stl_pair.h (__nonesuch_no_braces): New.
1892	(operator=(typename conditional<
1893	__and_<is_copy_assignable<_T1>,
1894	is_copy_assignable<_T2>>::value,
1895	const pair&, const __nonesuch&>::type)): Change __nonesuch
1896	to __nonesuch_no_braces.
1897	(operator=(typename conditional<
1898	__not_<__and_<is_copy_assignable<_T1>,
1899	is_copy_assignable<_T2>>>::value,
1900	const pair&, const __nonesuch&>::type)): Likewise.
1901	(operator=(typename conditional<
1902	__and_<is_move_assignable<_T1>,
1903	is_move_assignable<_T2>>::value,
1904	pair&&, __nonesuch&&>::type)): Likewise.
1905	* testsuite/20_util/pair/79141.cc: New.
1906
19072017-04-03  Ville Voutilainen  <ville.voutilainen@gmail.com>
1908
1909	Implement std::is_aggregate.
1910	* include/std/type_traits (is_aggregate, is_aggregate_v): New.
1911	* testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
1912	New.
1913	* testsuite/20_util/is_aggregate/requirements/typedefs.cc: Likewise.
1914	* testsuite/20_util/is_aggregate/value.cc: Likewise.
1915
19162017-03-29  Ville Voutilainen  <ville.voutilainen@gmail.com>
1917
1918	Adjust optional's pretty printer for LWG 2900.
1919	* python/libstdcxx/v6/printers.py (StdExpOptionalPrinter.__init__):
1920	Look at the nested payload in case of non-experimental optional.
1921
19222017-03-29  Ville Voutilainen  <ville.voutilainen@gmail.com>
1923
1924	Implement LWG 2900, The copy and move constructors
1925	of optional are not constexpr.
1926	* include/std/optional (_Optional_payload): New.
1927	(_Optional_base): Remove the bool parameter.
1928	(_Optional_base<_Tp, false>): Remove.
1929	(_Optional_base()): Adjust.
1930	(_Optional_base(nullopt_t)): Likewise.
1931	(_Optional_base(in_place_t, _Args&&...)): Likewise.
1932	(_Optional_base(in_place_t, initializer_list<_Up>, _Args&&...)):
1933	Likewise.
1934	(_Optional_base(const _Optional_base&)): Likewise.
1935	(_Optional_base(_Optional_base&&)): Likewise.
1936	(operator=(const _Optional_base&)): Likewise.
1937	(operator=(_Optional_base&&)): Likewise.
1938	(~_Optional_base()): Remove.
1939	(_M_is_engaged()): Adjust.
1940	(_M_get()): Likewise.
1941	(_M_construct(_Args&&...)): Likewise.
1942	(_M_destruct()): Likewise.
1943	(_M_reset()): Likewise.
1944	(_Optional_base::_Empty_byte): Remove.
1945	(_Optional_base::_M_empty): Remove.
1946	(_Optional_base::_M_payload): Adjust.
1947	* testsuite/20_util/optional/cons/value_neg.cc: Adjust.
1948	* testsuite/20_util/optional/constexpr/cons/value.cc: Add tests.
1949
19502017-03-28  Jonathan Wakely  <jwakely@redhat.com>
1951
1952	PR libstdc++/80137
1953	* include/bits/random.tcc (generate_canonical): Use std::nextafter
1954	or numeric_limits::epsilon() to reduce out-of-range values.
1955	* testsuite/26_numerics/random/uniform_real_distribution/operators/
1956	64351.cc: Verify complexity requirement is met.
1957
1958	* doc/xml/manual/abi.xml: Add xml:id anchor.
1959	* doc/xml/manual/using.xml (manual.intro.using.macros): Document
1960	_GLIBCXX_RELEASE. Link to new anchor for __GLIBCXX__ notes.
1961	(concurrency.io.structure): Add markup.
1962	* doc/html/*: Regenerate.
1963
1964	PR libstdc++/80229
1965	* include/bits/shared_ptr_base.h
1966	(__shared_ptr::_M_enable_shared_from_this_with): Change parameters to
1967	non-const and then use remove_cv to get unqualified type.
1968	* testsuite/20_util/enable_shared_from_this/members/const.cc: Don't
1969	cast away constness on object created const.
1970	* testsuite/20_util/shared_ptr/cons/80229.cc: New test.
1971
19722017-03-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
1973
1974	PR libstdc++/80183
1975	* include/bits/stl_tree.h:
1976	(_Rb_tree_header::_M_move_data(_Rb_tree_header&)): Also save _M_color.
1977
19782017-03-23  Jonathan Wakely  <jwakely@redhat.com>
1979
1980	* testsuite/23_containers/array/tuple_interface/
1981	tuple_element_debug_neg.cc: Adjust dg-error.
1982	* testsuite/23_containers/list/operations/78389.cc: Fix less-than to
1983	define a valid strict weak ordering.
1984	* testsuite/23_containers/priority_queue/67085.cc: Disable test for
1985	Debug Mode, due to debug checks making extra copies of predicate.
1986	* testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
1987	Likewise.
1988
1989	* doc/xml/faq.xml: Add link.
1990	* doc/xml/manual/backwards_compatibility.xml: Remove outdated
1991	information on pre-ISO headers. Replace broken link to C++ FAQ Lite.
1992	* doc/xml/manual/io.xml: Update broken link.
1993	* doc/html/*: Regenerate.
1994
19952017-03-23  Daniel Kruegler  <daniel.kruegler@gmail.com>
1996
1997	Implement LWG 2686, Why is std::hash specialized for error_code,
1998	but not error_condition?
1999	* include/std/system_error (hash<error_condition>): Define for C++17.
2000	* testsuite/20_util/hash/operators/size_t.cc (hash<error_condition>):
2001	Instantiate test for error_condition.
2002	* testsuite/20_util/hash/requirements/explicit_instantiation.cc
2003	(hash<error_condition>): Instantiate hash<error_condition>.
2004
2005	* include/bits/c++config (_GLIBCXX17_INLINE): Define.
2006	* include/bits/regex_constants.h (All std::regex_constants constants):
2007	Add _GLIBCXX17_INLINE as per P0607R0.
2008	* include/bits/std_mutex.h (defer_lock, try_to_lock, adopt_lock):
2009	Likewise.
2010	* include/bits/stl_pair.h (piecewise_construct): Likewise.
2011	* include/bits/uses_allocator.h (allocator_arg, uses_allocator_v)
2012	(__is_uses_allocator_constructible_v)
2013	(__is_nothrow_uses_allocator_constructible_v): Likewise.
2014	* include/std/chrono (treat_as_floating_point_v): Likewise.
2015	* include/std/functional (is_bind_expression_v, is_placeholder_v):
2016	Likewise.
2017	* include/std/optional (nullopt): Likewise.
2018	* include/std/ratio (ratio_equal_v, ratio_not_equal_v, ratio_less_v)
2019	ratio_less_equal_v, ratio_greater_v, ratio_greater_equal_v): Likewise.
2020	* include/std/system_error (is_error_code_enum_v)
2021	(is_error_condition_enum_v): Likewise.
2022	* include/std/tuple (tuple_size_v, ignore): Likewise.
2023	(ignore): Declare ignore constexpr as per LWG 2773, declare assignment
2024	constexpr as per LWG 2933.
2025	* include/std/type_traits (All variable templates): Add
2026	_GLIBCXX17_INLINE as per P0607R0.
2027	* include/std/variant (variant_size_v, variant_npos, __index_of_v)
2028	(__tuple_count_v, __exactly_once): Likewise.
2029	* testsuite/18_support/headers/new/synopsis.cc
2030	(hardware_destructive_interference_size)
2031	(hardware_constructive_interference_size): Likewise for commented-out
2032	variables.
2033	* testsuite/20_util/tuple/creation_functions/constexpr.cc: Add new
2034	test function for constexpr std::ignore (LWG 2773).
2035	* testsuite/20_util/tuple/creation_functions/constexpr_cpp14.cc: New
2036	test for LWG 2933.
2037
20382017-03-22  Jonathan Wakely  <jwakely@redhat.com>
2039
2040	* include/bits/shared_ptr.h (shared_ptr, weak_ptr): Add deduction
2041	guides for C++17.
2042	* include/bits/std_function.h (function): Likewise.
2043	* include/bits/stl_pair.h (pair): Likewise.
2044	* include/debug/array (__gnu_debug::array): Likewise.
2045	* include/std/array (array): Likewise.
2046	* include/std/functional (make_default_searcher)
2047	(make_boyer_moore_searcher, make_boyer_moore_horspool_searcher):
2048	Remove generator functions.
2049	* include/std/tuple (tuple): Add deduction guides.
2050	* include/std/valarray (valarray): Likewise.
2051	* testsuite/20_util/function_objects/searchers.cc: Adjust to use
2052	class template argument deduction instead of generator functions.
2053	* testsuite/20_util/function/cons/deduction.cc: New test.
2054	* testsuite/20_util/optional/cons/deduction_guide.cc: Rename to ...
2055	* testsuite/20_util/optional/cons/deduction.cc: ... here.
2056	* testsuite/20_util/pair/cons/deduction.cc: New test.
2057	* testsuite/20_util/shared_ptr/cons/deduction.cc: New test.
2058	* testsuite/20_util/tuple/cons/deduction.cc: New test.
2059	* testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error.
2060	* testsuite/20_util/unique_ptr/cons/deduction_neg.cc: New test.
2061	* testsuite/20_util/weak_ptr/cons/deduction.cc: New test.
2062	* testsuite/23_containers/array/cons/deduction.cc: New test.
2063	* testsuite/23_containers/array/cons/deduction_neg.cc: New test.
2064	* testsuite/23_containers/array/tuple_interface/get_debug_neg.cc:
2065	Adjust dg-error.
2066	* testsuite/23_containers/array/tuple_interface/get_neg.cc: Likewise.
2067	* testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
2068	Likewise.
2069	* testsuite/26_numerics/valarray/deduction.cc: New test.
2070	* testsuite/30_threads/lock_guard/cons/deduction.cc: New test.
2071	* testsuite/30_threads/scoped_lock/cons/deduction.cc: New test.
2072	* testsuite/30_threads/unique_lock/cons/deduction.cc: New test.
2073
20742017-03-20  François Dumont  <fdumont@gcc.gnu.org>
2075
2076	* include/bits/stl_deque.h (deque): Access allocator value_type only if
2077	concept checks are enabled.
2078	* include/bits/stl_stack.h (stack): Likewise.
2079	* include/bits/stl_vector.h (vector): Likewise.
2080	* include/bits/stl_list.h (list): Likewise and check
2081	_SGIAssignableConcept only in C++03.
2082	* include/bits/stl_map.h (map): Likewise.
2083	* include/bits/stl_set.h (set): Likewise.
2084	* include/bits/stl_multimap.h (multimap): Likewise.
2085	* include/bits/stl_multiset.h (multiset): Likewise.
2086	* include/bits/stl_queue.h (queue, priority_queue): Likewise.
2087
20882017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
2089
2090	* doc/xml/manual/appendix_contributing.xml: Convert link to
2091	ansi.org to https.
2092	Update link to the C++ standard at ansi.org.
2093
2094	* doc/xml/faq.xml: Remove information redundant with the above;
2095	instead add a reference.
2096
20972017-03-17  Jonathan Wakely  <jwakely@redhat.com>
2098
2099	* src/c++11/codecvt.cc (range): Add non-type template parameter and
2100	define oerloaded operators for reading and writing code units.
2101	(range<Elem, false>): Define partial specialization for accessing
2102	wide characters in potentially unaligned byte ranges.
2103	(ucs2_span(const char16_t*, const char16_t*, ...))
2104	(ucs4_span(const char16_t*, const char16_t*, ...)): Change parameters
2105	to range<const char16_t, false> in order to avoid unaligned reads.
2106	(__codecvt_utf16_base<char16_t>::do_out)
2107	(__codecvt_utf16_base<char32_t>::do_out)
2108	(__codecvt_utf16_base<wchar_t>::do_out): Use range specialization for
2109	unaligned data to avoid unaligned writes.
2110	(__codecvt_utf16_base<char16_t>::do_in)
2111	(__codecvt_utf16_base<char32_t>::do_in)
2112	(__codecvt_utf16_base<wchar_t>::do_in): Likewise for writes. Return
2113	error if there are unprocessable trailing bytes.
2114	(__codecvt_utf16_base<char16_t>::do_length)
2115	(__codecvt_utf16_base<char32_t>::do_length)
2116	(__codecvt_utf16_base<wchar_t>::do_length): Pass arguments of type
2117	range<const char16_t, false> to span functions.
2118	* testsuite/22_locale/codecvt/codecvt_utf16/misaligned.cc: New test.
2119
21202017-03-16  Jonathan Wakely  <jwakely@redhat.com>
2121
2122	PR libstdc++/79980
2123	* src/c++11/codecvt.cc (to_integer(codecvt_mode)): Fix target type.
2124
2125	PR libstdc++/80041
2126	* src/c++11/codecvt.cc (__codecvt_utf16_base<wchar_t>::do_out)
2127	(__codecvt_utf16_base<wchar_t>::do_in): Convert char arguments to
2128	char16_t to work with UTF-16 instead of UTF-8.
2129	* testsuite/22_locale/codecvt/codecvt_utf16/80041.cc: New test.
2130
2131	* src/c++11/codecvt.cc (codecvt<char16_t, char, mbstate_t>)
2132	(codecvt<char32_t, char, mbstate_t>, __codecvt_utf8_base<char16_t>)
2133	(__codecvt_utf8_base<char32_t>, __codecvt_utf8_base<wchar_t>)
2134	(__codecvt_utf16_base<char16_t>, __codecvt_utf16_base<char32_t>)
2135	(__codecvt_utf16_base<wchar_t>, __codecvt_utf8_utf16_base<char16_t>)
2136	(__codecvt_utf8_utf16_base<char32_t>)
2137	(__codecvt_utf8_utf16_base<wchar_t>): Fix do_encoding() and
2138	do_max_length() return values.
2139	* testsuite/22_locale/codecvt/codecvt_utf16/members.cc: New test.
2140	* testsuite/22_locale/codecvt/codecvt_utf8/members.cc: New test.
2141	* testsuite/22_locale/codecvt/codecvt_utf8_utf16/members.cc: New test.
2142
2143	PR libstdc++/79980
2144	* include/bits/locale_conv.h (__do_str_codecvt): Set __count on
2145	error path.
2146	* src/c++11/codecvt.cc (operator&=, operator|=, operator~): Overloads
2147	for manipulating codecvt_mode values.
2148	(read_utf16_bom): Compare input to BOM constants instead of integral
2149	constants that depend on endianness.  Take mode parameter by
2150	reference and adjust it, to distinguish between no BOM present and
2151	UTF-16BE BOM present.
2152	(ucs4_in, ucs2_span, ucs4_span): Adjust calls to read_utf16_bom.
2153	(surrogates): New enumeration type.
2154	(utf16_in, utf16_out): Add surrogates parameter to choose between
2155	UTF-16 and UCS2 behaviour.
2156	(utf16_span, ucs2_span): Use std::min not std::max.
2157	(ucs2_out): Use std::min not std::max.  Disallow surrogate pairs.
2158	(ucs2_in): Likewise. Adjust calls to read_utf16_bom.
2159	* testsuite/22_locale/codecvt/codecvt_utf16/79980.cc: New test.
2160	* testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: New test.
2161
2162	PR libstdc++/79511
2163	* src/c++11/codecvt.cc (write_utf16_code_point): Don't write 0xffff
2164	as a surrogate pair.
2165	(__codecvt_utf8_utf16_base<char32_t>::do_in): Use native endianness
2166	for internal representation.
2167	(__codecvt_utf8_utf16_base<wchar_t>::do_in): Likewise.
2168	* testsuite/22_locale/codecvt/codecvt_utf8_utf16/79511.cc: New test.
2169
2170	PR libstdc++/80064
2171	* include/bits/stl_heap.h (__is_heap, push_heap, __adjust_heap)
2172	(pop_heap, make_heap, sort_heap, is_heap_until, is_heap): Cope with
2173	invalid instantiations using function types for _Compare argument.
2174	* testsuite/25_algorithms/make_heap/80064.cc: New test.
2175
2176	PR libstdc++/67440
2177	* python/libstdcxx/v6/printers.py (find_type): Avoid gdb.Type.name
2178	for GDB 7.6 compatibility, use gdb.Type.unqualified instead.
2179
21802017-03-15  Ville Voutilainen  <ville.voutilainen@gmail.com>
2181
2182	Implement LWG 2857, {variant,optional,any}::emplace should
2183	return the constructed value.
2184	* include/std/any (emplace(_Args&&...)): Change the return type and
2185	return a reference to the constructed value.
2186	(emplace(initializer_list<_Up>, _Args&&...)): Likewise.
2187	* include/std/optional (emplace(_Args&&...)): Likewise.
2188	(emplace(initializer_list<_Up>, _Args&&...)): Likewise.
2189	* include/std/variant (emplace<_Tp>(_Args&&...)): Likewise.
2190	(emplace<_Tp>(initializer_list<_Up>, _Args&&...)): Likewise.
2191	(emplace<_Np>(_Args&&...)): Likewise.
2192	(emplace<_Np>(initializer_list<_Up>, _Args&&...)): Likewise.
2193	* testsuite/20_util/any/assign/emplace.cc: Add tests for
2194	checking the return value of emplace.
2195	* testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
2196	* testsuite/20_util/optional/assignment/6.cc: Add tests for
2197	checking the return value of emplace.
2198	* testsuite/20_util/variant/run.cc: Likewise.
2199
22002017-03-15  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
2201
2202	PR libstdc++/62045
2203	* include/ext/pb_ds/qdetail/binary_heap_/binary_heap_.hpp
2204	(is_heap): Remove.
2205	(push_heap): Remove the wrong checking using is_heap.
2206	(make_heap): Remove the assertion using is_heap.
2207	* include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
2208	(modify): Ditto.
2209	(resize_for_insert_if_needed): Add PB_DS_ASSERT_VALID after
2210	calling make_heap.
2211
22122017-03-15  Jonathan Wakely  <jwakely@redhat.com>
2213
2214	PR libstdc++/62045
2215	* testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
2216	New test.
2217	* testsuite/ext/pb_ds/regression/priority_queues.cc: Fix copy&paste
2218	error in comment.
2219
22202017-03-15  Jonathan Wakely  <jwakely@redhat.com>
2221
2222	* acinclude.m4 (GLIBCXX_CHECK_S_ISREG_OR_S_IFREG): Fix typo in
2223	comment.
2224	* config.h.in: Regenerate.
2225	* configure: Regenerate.
2226	* doc/Makefile.in: Regenerate.
2227
22282017-03-14  Jonathan Wakely  <jwakely@redhat.com>
2229
2230	PR libstdc++/79162
2231	* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2232	(basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Replace
2233	with a constrained template.
2234	[!_GLIBCXX_USE_CXX11_ABI]
2235	(basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Likewise.
2236	* testsuite/21_strings/basic_string/cons/char/79162.cc: New test.
2237	* testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: New test.
2238
22392017-03-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
2240
2241	PR libstdc++/80034
2242	* include/bits/list.tcc (merge(list&&)): Use const for the size_t
2243	in the catch-block.
2244	(merge(list&&, _StrictWeakOrdering)): Likewise.
2245	* testsuite/23_containers/list/operations/80034.cc: New.
2246
22472017-03-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
2248
2249	Implement LWG 2806, Base class of bad_optional_access.
2250	* include/std/optional (bad_optional_access):
2251	Derive from std::exception.
2252	(bad_optional_access::bad_optional_access): Adjust.
2253	(bad_optional_access::what): New.
2254	(__throw_bad_optional_access(const char*)):
2255	Remove the parameter and adjust calls.
2256	* testsuite/20_util/optional/cons/value_neg.cc: Adjust.
2257	* testsuite/20_util/optional/typedefs.cc: Likewise.
2258
22592017-03-12  Ville Voutilainen  <ville.voutilainen@gmail.com>
2260
2261	Implement LWG 2934, optional<const T> doesn't compare with T.
2262	* include/std/optional
2263	(operator==(const optional<_Tp>&, const optional<_Tp>&)):
2264	Turn into operator==(const optional<_Tp>&, const optional<_Up>&).
2265	(operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2266	Turn into operator!=(const optional<_Tp>&, const optional<_Up>&).
2267	(operator<(const optional<_Tp>&, const optional<_Tp>&)):
2268	Turn into operator<(const optional<_Tp>&, const optional<_Up>&.
2269	(operator>(const optional<_Tp>&, const optional<_Tp>&)):
2270	Turn into operator>(const optional<_Tp>&, const optional<_Up>&.
2271	(operator<=(const optional<_Tp>&, const optional<_Tp>&)):
2272	Turn into operator<=(const optional<_Tp>&, const optional<_Up>&).
2273	(operator>=(const optional<_Tp>&, const optional<_Tp>&)):
2274	Turn into operator>=(const optional<_Tp>&, const optional<_Up>&).
2275	(operator==(const optional<_Tp>&, const _Tp&)):
2276	Turn into operator==(const optional<_Tp>&, const _Up&).
2277	(operator==(const _Tp&, const optional<_Tp>&)):
2278	Turn into operator==(const _Up&, const optional<_Tp>&).
2279	(operator!=(const optional<_Tp>&, const _Tp&)):
2280	Turn into operator!=(const optional<_Tp>&, const _Up&).
2281	(operator!=(const _Tp&, const optional<_Tp>&)):
2282	Turn into operator!=(const _Up&, const optional<_Tp>&).
2283	(operator<(const optional<_Tp>&, const _Tp&)):
2284	Turn into operator<(const optional<_Tp>&, const _Up&).
2285	(operator<(const _Tp&, const optional<_Tp>&)):
2286	Turn into operator<(const _Up&, const optional<_Tp>&).
2287	(operator>(const optional<_Tp>&, const _Tp&)):
2288	Turn into operator>(const optional<_Tp>&, const _Up&).
2289	(operator>(const _Tp&, const optional<_Tp>&)):
2290	Turn into operator>(const _Up&, const optional<_Tp>&).
2291	(operator<=(const optional<_Tp>&, const _Tp&)):
2292	Turn into operator<=(const optional<_Tp>&, const _Up&).
2293	(operator<=(const _Tp&, const optional<_Tp>&)):
2294	Turn into operator<=(const _Up&, const optional<_Tp>&).
2295	(operator>=(const optional<_Tp>&, const _Tp&)):
2296	Turn into operator>=(const optional<_Tp>&, const _Up&).
2297	(operator>=(const _Tp&, const optional<_Tp>&)):
2298	Turn into operator>=(const _Up&, const optional<_Tp>&).
2299	* testsuite/20_util/optional/relops/7.cc: New.
2300
23012017-03-10  Jonathan Wakely  <jwakely@redhat.com>
2302
2303	* testsuite/17_intro/names.cc: Undefine macros that clash with
2304	identifiers in AIX system headers.
2305
2306	* include/bits/invoke.h (__invoke): Use __invoke_result instead of
2307	result_of, and __is_nothrow_invocable instead of
2308	__is_nothrow_callable.
2309	* include/bits/shared_ptr_base.h (__shared_ptr): Use __is_invocable
2310	instead of __is_callable.
2311	* include/std/functional (invoke): use invoke_result_t instead of
2312	result_of_t and is_nothrow_invocable instead of is_nothrow_callable.
2313	(_Not_fn): Use __invoke_result instead of result_of.
2314	* include/std/type_traits (__result_of_memobj, __result_of_memfun):
2315	Remove partial specializations for reference_wrapper types.
2316	(__result_of_impl): Use __inv_unwrap to strip reference_wrapper.
2317	(__invoke_result): Define replacement for result_of and then use it to
2318	define result_of.
2319	(__is_callable_impl, __is_callable, __is_nothrow_callable): Replace
2320	with __is_invocable_impl, __is_invocable, and __is_nothrow_invocable
2321	respectively.
2322	(invoke_result, invoke_result_t): Define for C++17.
2323	(is_callable, is_nothrow_callable): Replace with is_invocable,
2324	is_invocable_r, is_nothrow_invocable, and is_nothrow_invocable_r.
2325	(is_callable_v, is_nothrow_callable_v): Replace with is_invocable_v,
2326	is_invocable_r_v, is_nothrow_invocable_v, and is_nothrow_invocable_r_v.
2327	* include/std/variant (hash<variant<T...>>): Use is_nothrow_invocable_v
2328	instead of is_nothrow_callable_v.
2329	* testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
2330	main function.
2331	* testsuite/20_util/function_objects/not_fn/1.cc: Use is_invocable
2332	instead of is_callable.
2333	* testsuite/20_util/is_callable/*: Rename directory and adjust tests
2334	to use new traits.
2335	* testsuite/20_util/is_nothrow_callable/*: Likewise.
2336	* testsuite/20_util/optional/hash.cc: Use is_invocable_v instead of
2337	is_callable.
2338	* testsuite/20_util/variant/hash.cc: Likewise.
2339
23402017-03-10  George Lander  <george.lander@arm.com>
2341
2342	* acinclude.m4 (glibcxx_cv_obsolete_isnan): Define
2343	_GLIBCXX_INCLUDE_NEXT_C_HEADERS before including math.h.
2344	* configure: Regenerate.
2345
23462017-03-09  Jonathan Wakely  <jwakely@redhat.com>
2347
2348	* include/std/functional (_Not_fn): Define macro to simplify
2349	repetitive function definitions.
2350
2351	* doc/xml/manual/status_cxx2017.xml: Document std::byte support.
2352	* include/c_global/cstddef (std::byte): Define for C++17.
2353	* testsuite/18_support/byte/global_neg.cc: New test.
2354	* testsuite/18_support/byte/ops.cc: New test.
2355	* testsuite/18_support/byte/requirements.cc: New test.
2356
23572017-03-05  Jonathan Wakely  <jwakely@redhat.com>
2358
2359	* doc/xml/manual/status_cxx2017.xml: Document P0156R2 status.
2360	* doc/html/*: Regenerate.
2361	* include/std/mutex (scoped_lock): Implement new C++17 template.
2362	* testsuite/30_threads/scoped_lock/cons/1.cc: New test.
2363	* testsuite/30_threads/scoped_lock/requirements/
2364	explicit_instantiation.cc: New test.
2365	* testsuite/30_threads/scoped_lock/requirements/typedefs.cc: New test.
2366
23672017-03-02  Gerald Pfeifer  <gerald@pfeifer.com>
2368	    François Dumont  <frs.dumont@gmail.com>
2369	    Jonathan Wakely  <jwakely@redhat.com>
2370
2371	* doc/xml/manual/debug_mode.xml: Update and simplify note
2372	on link- and run-time coexistence.
2373
23742017-03-02  Jonathan Wakely  <jwakely@redhat.com>
2375
2376	* testsuite/17_intro/headers/names.cc: Rename to ...
2377	* testsuite/17_intro/names.cc: ... here.
2378
2379	PR libstdc++/79789
2380	* include/bits/hashtable_policy.h (__clp2): Use reserved names for
2381	parameters and local variables.
2382	* include/bits/ios_base.h (make_error_code, make_error_condition):
2383	Likewise.
2384	* include/bits/list.tcc (list::sort): Likewise.
2385	* include/bits/mask_array.h (mask_array): Likewise.
2386	* include/bits/regex.h (regex_token_iterator): Likewise.
2387	* include/bits/slice_array.h (slice_array): Likewise.
2388	* include/bits/stl_algo.h (__sample): Likewise.
2389	* include/std/memory (undeclare_no_pointers): Likewise.
2390	* include/std/type_traits (is_callable_v, is_nothrow_callable_v):
2391	Likewise.
2392	* libsupc++/exception_ptr.h (__dest_thunk): Likewise.
2393	* testsuite/17_intro/headers/names.cc: New test.
2394
2395	PR libstdc++/79798
2396	* include/std/functional (bind::_Res_type_impl): Fix incorrect use of
2397	result_of that loses top-level cv-qualifiers.
2398	* testsuite/20_util/bind/79798.cc: New test.
2399
24002017-03-01  Gerald Pfeifer  <gerald@pfeifer.com>
2401
2402	* doc/xml/manual/documentation_hacking.xml: Tweak link to
2403	doxygen.org.
2404
24052017-02-23  Jonathan Wakely  <jwakely@redhat.com>
2406
2407	* include/experimental/iterator: Include <iterator>.
2408	* testsuite/experimental/iterator/requirements.cc: Check for contents
2409	of <iterator>.
2410
24112017-02-19  Dinka Ranns  <dinka.ranns@googlemail.com>
2412
2413	C++17 GB50 resolution
2414	* include/std/chrono (duration::operator++()): Add
2415	_GLIBCXX17_CONSTEXPR.
2416	(duration::operator++(int)): Likewise.
2417	(duration::operator--()): Likewise.
2418	(duration::operator--(int)): Likewise.
2419	(duration::operator+=(const duration&)): Likewise.
2420	(duration::operator-=(const duration&)): Likewise.
2421	(duration::operator*=(const rep&)): Likewise.
2422	(duration::operator/=(const rep&)): Likewise.
2423	(duration::operator%=(const rep&)): Likewise.
2424	(duration::operator%=(const duration&)): Likewise.
2425	(time_point::operator+=(const duration&)): Likewise.
2426	(time_point::operator-=(const duration&)): Likewise.
2427	* testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: New test.
2428	* testsuite/20_util/duration/literals/range.cc: Adjust dg-error.
2429	* testsuite/20_util/time_point/arithmetic/constexpr.cc: New test.
2430
24312017-02-19  Gerald Pfeifer  <gerald@pfeifer.com>
2432
2433	* doc/xml/manual/debug.xml: Adjust link to ThreadSanitizer.
2434
24352017-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
2436
2437	* doc/xml/manual/io.xml: Update link to groups.google.com.
2438	Tweak link description.
2439
24402017-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
2441
2442	* doc/xml/manual/profile_mode.xml: Fix link.
2443
24442017-02-16  Gerald Pfeifer  <gerald@pfeifer.com>
2445
2446	* doc/xml/manual/policy_data_structures.xml: Simplify and
2447	standardize references to boost.org.
2448	* doc/xml/manual/policy_data_structures_biblio.xml: Ditto.
2449	* doc/xml/manual/shared_ptr.xml: Ditto.
2450
24512017-02-16  Jonathan Wakely  <jwakely@redhat.com>
2452
2453	PR libstdc++/60936
2454	* src/c++11/snprintf_lite.cc (__concat_size_t): Calculate length
2455	written to buffer, not length remaining in buffer.
2456
24572017-02-15  Tim Shen  <timshen@google.com>
2458
2459	PR libstdc++/78723
2460	* include/std/variant (operator<(), operator>(), operator<=(),
2461	operator>=(), operator==(), operator!=()): Implement P0393R3.
2462	* testsuite/20_util/variant/compile.cc: Adjust tests.
2463	* testsuite/20_util/variant/run.cc: Adjust tests.
2464
24652017-02-15  Tim Shen  <timshen@google.com>
2466
2467	PR libstdc++/79513
2468	* include/std/variant (visit()): Forward variant types to the return
2469	type detection code.
2470	* testsuite/20_util/variant/compile.cc: Add test cases.
2471
24722017-02-13  H.J. Lu  <hongjiu.lu@intel.com>
2473
2474	PR libstdc++/79348
2475	* config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
2476
24772017-02-13  Jakub Jelinek  <jakub@redhat.com>
2478
2479	PR libstdc++/79348
2480	* config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
2481	* config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
2482	* config/abi/post/i386-linux-gnu/baseline_symbols.txt: Likewise.
2483	* config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
2484	* config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Likewise.
2485	* config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Likewise.
2486	* config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Likewise.
2487	* config/abi/post/s390-linux-gnu/baseline_symbols.txt: Likewise.
2488	* config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
2489
24902017-02-13  Jonathan Wakely  <jwakely@redhat.com>
2491
2492	PR libstdc++/79486
2493	* include/std/future (__future_base::_Task_state::_M_run)
2494	(__future_base::_Task_state::_M_run_delayed): Use lvalue types in
2495	result_of expressions.
2496	* testsuite/30_threads/packaged_task/79486.cc: New.
2497
24982017-02-11  Jonathan Wakely  <jwakely@redhat.com>
2499
2500	PR libstdc++/79467
2501	* include/bits/shared_ptr_base.h (__shared_ptr(_Yp*, _Deleter))
2502	(__shared_ptr(_Yp*, _Deleter, _Alloc)): Use lvalue types in
2503	__is_callable check.
2504	* testsuite/20_util/shared_ptr/cons/79467.cc: New.
2505
2506	* include/bits/atomic_base.h: Re-indent.
2507
25082017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
2509
2510	* doc/xml/manual/profile_mode.xml: Update a paper reference.
2511
25122017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
2513
2514	* src/c++11/snprintf_lite.cc (__err): Use https for bug reporting.
2515
25162017-02-08  Jonathan Wakely  <jwakely@redhat.com>
2517
2518	* doc/xml/manual/policy_data_structures.xml: Fix spelling of author's
2519	name.
2520	* doc/xml/manual/policy_data_structures_biblio.xml: Likewise. Remove
2521	broken links to texts that are no longer online.
2522	* doc/xml/manual/profile_mode.xml: Update links to CGO 2009 paper and
2523	LCPC 2006 paper.
2524	* doc/xml/manual/using.xml: Update links to memory model information.
2525	* doc/xml/manual/using_exceptions.xml: Update link to "Appendix E:
2526	Standard-Library Exception Safety".
2527	* doc/html/*: Regenerate.
2528
25292017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
2530
2531	* doc/xml/manual/profile_mode.xml: Unbreak link to
2532	"Optimizing Sorting with Machine Learning Algorithms".
2533
25342017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
2535
2536	* src/c++11/snprintf_lite.cc (__err): Update bug reporting URL.
2537
25382017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
2539
2540	* doc/xml/manual/abi.xml: Update link to "Sun Studio 11: C++
2541	Migration Guide".
2542
25432017-02-07  Gerald Pfeifer  <gerald@pfeifer.com>
2544
2545	* doc/html/ext/lwg-active.html: Remove.
2546	* doc/html/ext/lwg-closed.html: Ditto.
2547	* doc/html/ext/lwg-defects.html: Ditto.
2548
2549	* doc/Makefile.am (xml_extradir): Remove.
2550	(xml_extra): Ditto.
2551	(stamp-html-docbook-lwg): Remove recipe...
2552	(stamp-html-docbook-data): ...and its use here.
2553	* doc/Makefile.in: Regenerate.
2554
2555	* doc/xml/manual/intro.xml: Shorten two paragraphs explaining
2556	the relationship to the upstream working group.
2557	Replace a local link to ../ext/lwg-active.html by the upstream one.
2558	Replace all reference to ../ext/lwg-defects.html by a new entity
2559	&DR; which refers to the upstream address.
2560
25612017-02-07  Gerald Pfeifer  <gerald@pfeifer.com>
2562
2563	* doc/xml/manual/status_cxx2017.xml: Fix link to N4284.
2564
25652017-02-06  Jonathan Wakely  <jwakely@redhat.com>
2566
2567	PR libstdc++/79323
2568	* testsuite/20_util/duration/literals/range.cc: Prune extra output
2569	at -O0.
2570
25712017-02-06  Gerald Pfeifer  <gerald@pfeifer.com>
2572
2573	* doc/xml/manual/documentation_hacking.xml: Update URL of the
2574	DocBook Element Reference.  Use that term as link description
2575	instead of "online".
2576	epubcheck has moved to GitHub.
2577	Remove obsolete link to DocBook Publishing Tools.
2578
25792017-02-03  Jonathan Wakely  <jwakely@redhat.com>
2580
2581	PR libstdc++/66145
2582	* testsuite/27_io/basic_ios/copyfmt/char/1.cc: Restore ABI override
2583	so new ios::failure can be caught even when old ABI is the default.
2584	* testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
2585	* testsuite/27_io/basic_istream/extractors_arithmetic/char/
2586	exceptions_failbit.cc: Likewise.
2587	* testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
2588	exceptions_failbit.cc: Likewise.
2589	* testsuite/27_io/basic_istream/extractors_other/char/
2590	exceptions_null.cc: Likewise.
2591	* testsuite/27_io/basic_istream/extractors_other/wchar_t/
2592	exceptions_null.cc: Likewise.
2593	* testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
2594	* testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
2595	* testsuite/27_io/basic_ostream/inserters_other/char/
2596	exceptions_null.cc: Likewise.
2597	* testsuite/27_io/basic_ostream/inserters_other/wchar_t/
2598	exceptions_null.cc: Likewise.
2599	* testsuite/27_io/ios_base/storage/2.cc: Likewise.
2600
2601	PR libstdc++/60936
2602	* src/c++11/Makefile.am: Add new files.
2603	* src/c++11/Makefile.in: Regenerate.
2604	* src/c++11/cow-string-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
2605	(operator<<, operator>>, getline): Move explicit instantiations to ...
2606	* src/c++11/cow-string-io-inst.cc: ... new file.
2607	* src/c++11/cow-wstring-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
2608	(operator<<, operator>>, getline): Move explicit instantiations to ...
2609	* src/c++11/cow-wstring-io-inst.cc: ... new file.
2610	* src/c++11/functexcept.cc (__throw_ios_failure, __throw_system_error)
2611	(__throw_future_error, __throw_bad_function_call):
2612	(__throw_regex_error): Move functions for C++11 exceptions to the
2613	files that define the exception types.
2614	* src/c++11/functional.cc (__throw_bad_function_call): Move here.
2615	* src/c++11/future.cc (__throw_future_error): Likewise.
2616	* src/c++11/ios.cc (__throw_ios_failure): Likewise.
2617	* src/c++11/regex.cc (__throw_regex_error): Likewise.
2618	* src/c++11/snprintf_lite.cc (__concat_size_t): Print decimal
2619	representation directly instead of calling __int_to_char.
2620	* src/c++11/sso_string.cc (__sso_string): New file for definition
2621	of __sso_string type.
2622	* src/c++11/string-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
2623	explicit instantiations of narrow string I/O functions.
2624	* src/c++11/system_error.cc (__throw_system_error): Move here.
2625	(__sso_string): Move to new file.
2626	* src/c++11/wstring-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
2627	explicit instantiations of wide string I/O functions.
2628	* src/c++98/misc-inst.cc [_GLIBCXX_USE_CXX11_ABI] (operator<<)
2629	(operator>>, getline): Remove explicit instantiations from here.
2630
26312017-02-02  H.J. Lu  <hongjiu.lu@intel.com>
2632
2633	* config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
2634
26352017-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2636
2637	* configure.host: Separate Solaris/SPARC and x86 baselines.
2638	* config/abi/post/solaris2.10/baseline_symbols.txt: Move ...
2639	* config/abi/post/sparc-solaris2.10/baseline_symbols.txt: ... here.
2640	* config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Move ...
2641	* config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
2642	... here.
2643	* config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Move ...
2644	* config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: ... here.
2645	* config/abi/post/i386-solaris2.10/baseline_symbols.txt: New file.
2646	* config/abi/post/solaris2.11/baseline_symbols.txt: Move ...
2647	* config/abi/post/sparc-solaris2.11/baseline_symbols.txt: ... here.
2648	* config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Move ...
2649	* config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
2650	... here.
2651	* config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Move ...
2652	* config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: ... here.
2653	* config/abi/post/i386-solaris2.11/baseline_symbols.txt: New file.
2654
2655	* config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
2656	* config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
2657	* config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
2658	* config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
2659	* config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
2660	* config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
2661
26622017-02-01  Jonathan Wakely  <jwakely@redhat.com>
2663
2664	PR libstdc++/78346
2665	* include/bits/predefined_ops.h (_Iter_equals_iter): Store iterator
2666	not its referent.
2667	(_Iter_comp_to_iter): Likewise.
2668	* testsuite/25_algorithms/search/78346.cc: New test.
2669
2670	PR libstdc++/79254
2671	* config/abi/pre/gnu.ver: Remove recently added symbols.
2672	* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2673	(basic_string::_M_copy_assign): Remove.
2674	(basic_string::operator=(const basic_string&)): Don't dispatch to
2675	_M_copy_assign. If source object is small just deallocate, otherwise
2676	perform new allocation before making any changes.
2677	* include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
2678	(basic_string::_M_copy_assign(const basic_string&, true_type)):
2679	Remove.
2680	* testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
2681	Test cases where the allocators are equal or the string is small.
2682	* testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
2683	Likewise.
2684
26852017-01-30  Ville Voutilainen  <ville.voutilainen@gmail.com>
2686
2687	Implement LWG 2825, LWG 2756 breaks class template argument
2688	deduction for optional.
2689	* include/std/optional: Add a deduction guide.
2690	* testsuite/20_util/optional/cons/deduction_guide.cc: New.
2691
26922017-01-27  Jonathan Wakely  <jwakely@redhat.com>
2693
2694	PR libstdc++/79254
2695	* config/abi/pre/gnu.ver: Add new symbols.
2696	* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2697	(basic_string::_M_copy_assign): New overloaded functions to perform
2698	copy assignment.
2699	(basic_string::operator=(const basic_string&)): Dispatch to
2700	_M_copy_assign.
2701	* include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
2702	(basic_string::_M_copy_assign(const basic_string&, true_type)):
2703	Define, performing rollback on exception.
2704	* testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
2705	Test exception-safety guarantee.
2706	* testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
2707	Likewise.
2708	* testsuite/util/testsuite_allocator.h (uneq_allocator::swap): Make
2709	std::swap visible.
2710
27112017-01-26  Jonathan Wakely  <jwakely@redhat.com>
2712
2713	PR libstdc++/70607
2714	* include/tr1/complex (conj): Remove using-declaration and restore
2715	overloads, reverting previous change.
2716
2717	* testsuite/23_containers/list/operations/78389.cc: Fix for C++11
2718	mode.
2719	* testsuite/23_containers/priority_queue/requirements/constructible.cc:
2720	Mark as unsupported in C++98 mode.
2721	* testsuite/23_containers/queue/requirements/constructible.cc:
2722	Likewise.
2723	* testsuite/23_containers/stack/requirements/constructible.cc:
2724	Likewise.
2725	* testsuite/25_algorithms/make_heap/movable.cc: Fix for C++11 mode.
2726
2727	PR libstdc++/79243
2728	* include/bits/c++config (literals::string_view_literals::__7): Add.
2729	Only declare versioned namespaces for the relevant C++ dialects.
2730	* include/experimental/bits/erase_if.h (fundamentals_v2::__detail):
2731	Add versioning macros.
2732	* include/experimental/bits/lfts_config.h:
2733	(fundamentals_v1::__detail::__7, fundamentals_v2::__detail::__7): Add.
2734	* include/experimental/string_view (fundamentals_v2::__detail):
2735	Add versioning macros.
2736	(fundamentals_v2::__detail::__identity): Remove.
2737	(fundamentals_v2::__detail::__idt): Use common_type instead of
2738	__detail::__identity.
2739	* include/std/string_view (__detail::__identity, __detail::__idt):
2740	Likewise.
2741	(literals::string_view_literals): Fix nesting of versioning macros.
2742
2743	PR libstdc++/79190
2744	* libsupc++/del_opa.cc (operator delete(void*, std::align_val_t))
2745	[!_GLIBCXX_HAVE_ALIGNED_ALLOC && !_GLIBCXX_HAVE_POSIX_MEMALIGN
2746	&& !_GLIBCXX_HAVE_MEMALIGN && !_GLIBCXX_HAVE__ALIGNED_MALLOC]:
2747	Retrieve original pointer value allocated by malloc.
2748	* libsupc++/new_opa.cc [!_GLIBCXX_HAVE_ALIGNED_ALLOC
2749	&& !_GLIBCXX_HAVE_POSIX_MEMALIGN && !_GLIBCXX_HAVE_MEMALIGN
2750	&& !_GLIBCXX_HAVE__ALIGNED_MALLOC] (aligned_alloc(size_t, size_t)):
2751	Define, adjusting pointer value allocated by malloc and storing for
2752	retrieval by operator delete.
2753
27542017-01-26  Jakub Jelinek  <jakub@redhat.com>
2755
2756	* libsupc++/eh_atomics.h: Update copyright years.
2757	* testsuite/20_util/unique_ptr/cons/default.cc: Update copyright years.
2758
27592017-01-25  Jonathan Wakely  <jwakely@redhat.com>
2760
2761	PR libstdc++/61791
2762	PR libstdc++/70607
2763	* include/std/complex (real(T), imag(T)): Add _GLIBCXX_CONSTEXPR.
2764	(proj(T), conj(T)): Change return types per DR 1522.
2765	* include/tr1/complex (conj): Remove overloads and use std::conj.
2766	* testsuite/26_numerics/complex/dr781_dr1137.cc: Rename to...
2767	* testsuite/26_numerics/complex/dr781.cc: ... this, and update.
2768	* testsuite/26_numerics/complex/value_operations/constexpr2.cc: Test
2769	real(T) and imag(T). Allow testing for C++11 too.
2770
27712017-01-24  Jonathan Wakely  <jwakely@redhat.com>
2772
2773	PR libstdc++/79206
2774	* include/experimental/string_view (operator==): Check sizes first.
2775	* include/std/string_view (operator==): Likewise.
2776
27772017-01-23  Jonathan Wakely  <jwakely@redhat.com>
2778
2779	* testsuite/experimental/array/make_array.cc: Restore <functional>
2780	inclusion.
2781
27822017-01-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2783
2784	* testsuite/29_atomics/atomic/69301.cc: Require atomic builtins.
2785
27862017-01-23  Jonathan Wakely  <jwakely@redhat.com>
2787
2788	PR libstdc++/79195
2789	* include/experimental/array (__make_array_elem): New class template
2790	and partial specialization.
2791	(__is_reference_wrapper): Move into __make_array_elem specialization.
2792	(make_array): Use __make_array_elem to determine element type and move
2793	static assertion into specialization. Qualify std::forward call.
2794	(to_array): Add exception specifiation.
2795	* testsuite/experimental/array/make_array.cc: Test argument types
2796	without a common type.
2797	* testsuite/experimental/array/neg.cc: Adjust expected error message.
2798
27992017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
2800
2801	* doc/xml/manual/debug.xml: code.google.com uses https now.
2802
28032017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
2804
2805	* doc/xml/manual/test.xml: Fix link into gccint online manual.
2806
28072017-01-21  Ville Voutilainen  <ville.voutilainen@gmail.com>
2808
2809	Make poisoned hashes SFINAE away the call operator of the hash.
2810	* include/bits/functional_hash.h
2811	(__poison_hash::__enable_hash_call): New.
2812	* include/std/optional (__optional_hash_call_base): New.
2813	(hash<optional<_Tp>>): Derive from the new base,
2814	move the hash function into that base.
2815	* include/std/variant (__variant_hash_call_base_impl): New.
2816	(__variant_hash_call_base): Likewise.
2817	(hash<variant<_Types...>>): Derive from the new base,
2818	move the hash function into that base.
2819	* testsuite/20_util/optional/hash.cc: Add tests for is_callable.
2820	* testsuite/20_util/variant/hash.cc: Likewise.
2821
28222017-01-20  Joe Seymour  <joe.s@somniumtech.com>
2823
2824	* acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): Support uint20_t.
2825	* configure: Regenerate.
2826
28272017-01-20  Jonathan Wakely  <jwakely@redhat.com>
2828
2829	PR libstdc++/69240
2830	* include/bits/random.h (uniform_real_distribution::param_type)
2831	(normal_distribution::param_type, lognormal_distribution::param_type)
2832	(gamma_distribution::param_type, chi_squared_distribution::param_type)
2833	(cauchy_distribution::param_type, fisher_f_distribution::param_type)
2834	(student_t_distribution::param_type)
2835	(bernoulli_distribution::param_type, binomial_distribution::param_type)
2836	(geometric_distribution::param_type)
2837	(negative_binomial_distribution::param_type)
2838	(poisson_distribution::param_type)
2839	(exponential_distribution::param_type)
2840	(weibull_distribution::param_type)
2841	(extreme_value_distribution::param_type)
2842	(discrete_distribution::param_type)
2843	(piecewise_constant_distribution::param_type)
2844	(piecewise_linear_distribution::param_type): Define operator!=.
2845	* include/bits/uniform_int_dist.h
2846	(uniform_int_distribution::param_type): Likewise.
2847	* include/ext/random (beta_distribution::param_type)
2848	(rice_distribution::param_type, nakagami_distribution::param_type)
2849	(pareto_distribution::param_type, k_distribution::param_type)
2850	(arcsine_distribution::param_type, hoyt_distribution::param_type)
2851	(triangular_distribution::param_type)
2852	(von_mises_distribution::param_type)
2853	(hypergeometric_distribution::param_type)
2854	(logistic_distribution::param_type)
2855	(uniform_on_sphere_distribution::param_type)
2856	(uniform_inside_sphere_distribution::param_type): Likewise.
2857	* testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc:
2858	Test construction with param_type.
2859	* testsuite/26_numerics/random/binomial_distribution/cons/parms.cc:
2860	Likewise.
2861	* testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc:
2862	Likewise.
2863	* testsuite/26_numerics/random/chi_squared_distribution/cons/parms.cc:
2864	Likewise.
2865	* testsuite/26_numerics/random/exponential_distribution/cons/parms.cc:
2866	Likewise.
2867	* testsuite/26_numerics/random/extreme_value_distribution/cons/
2868	parms.cc: Likewise.
2869	* testsuite/26_numerics/random/fisher_f_distribution/cons/parms.cc:
2870	Likewise.
2871	* testsuite/26_numerics/random/gamma_distribution/cons/parms.cc:
2872	Likewise.
2873	* testsuite/26_numerics/random/geometric_distribution/cons/parms.cc:
2874	Likewise.
2875	* testsuite/26_numerics/random/lognormal_distribution/cons/parms.cc:
2876	Likewise.
2877	* testsuite/26_numerics/random/negative_binomial_distribution/cons/
2878	parms.cc: Likewise.
2879	* testsuite/26_numerics/random/normal_distribution/cons/parms.cc:
2880	Likewise.
2881	* testsuite/26_numerics/random/poisson_distribution/cons/parms.cc:
2882	Likewise.
2883	* testsuite/26_numerics/random/student_t_distribution/cons/parms.cc:
2884	Likewise.
2885	* testsuite/26_numerics/random/uniform_int_distribution/cons/parms.cc:
2886	Likewise.
2887	* testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc:
2888	Likewise.
2889	* testsuite/26_numerics/random/weibull_distribution/cons/parms.cc:
2890	Likewise.
2891	* testsuite/ext/random/arcsine_distribution/cons/parms.cc: Likewise.
2892	* testsuite/ext/random/beta_distribution/cons/parms.cc: Likewise.
2893	* testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
2894	* testsuite/ext/random/hypergeometric_distribution/cons/parms.cc:
2895	Likewise.
2896	* testsuite/ext/random/k_distribution/cons/parms.cc: Likewise.
2897	* testsuite/ext/random/logistic_distribution/cons/parms.cc: Likewise.
2898	* testsuite/ext/random/nakagami_distribution/cons/parms.cc: Likewise.
2899	* testsuite/ext/random/normal_mv_distribution/cons/parms.cc: Likewise.
2900	* testsuite/ext/random/pareto_distribution/cons/parms.cc: Likewise.
2901	* testsuite/ext/random/rice_distribution/cons/parms.cc: Likewise.
2902	* testsuite/ext/random/triangular_distribution/cons/parms.cc:
2903	Likewise.
2904	* testsuite/ext/random/uniform_inside_sphere_distribution/cons/
2905	parms.cc: Likewise.
2906	* testsuite/ext/random/von_mises_distribution/cons/parms.cc: Likewise.
2907
2908	PR libstdc++/72792
2909	* include/bits/alloc_traits.h (__allocator_traits_base::__diff_type)
2910	(__allocator_traits_base::__size_type): Remove.
2911	(allocator_traits::_Ptr): New class template to detect const and void
2912	pointer types without instantiating pointer_traits::rebind
2913	unnecessarily.
2914	(allocator_traits::_Diff): Likewise for detecting difference_type.
2915	(allocator_traits::_Size): New class template to detect size_type
2916	without instantiating make_unsigned unnecessarily.
2917	* include/bits/ptr_traits.h (pointer_traits::element_type): Use
2918	__detected_or_t instead of __detected_or_t_.
2919	* include/std/type_traits (__detected_or_t_): Remove.
2920	* testsuite/20_util/allocator_traits/members/pointers.cc: New test.
2921
2922	PR libstdc++/72792
2923	PR libstdc++/72793
2924	* include/bits/alloc_traits.h (__allocator_traits_base::__rebind):
2925	Replace with class template using void_t.
2926	(__alloc_rebind): Define in terms of
2927	__allocator_traits_base::__rebind.
2928	(allocator_traits): Remove unconditional static_assert for
2929	rebind_alloc.
2930	* include/bits/ptr_traits.h (__replace_first_arg): Remove type member.
2931	(pointer_traits::__rebind): Replace with class template using void_t.
2932	(pointer_traits::rebind): Define in terms of __rebind.
2933	(pointer_traits): Remove unconditional static_assert for rebind.
2934	* testsuite/20_util/allocator_traits/members/rebind_alloc.cc: New test.
2935	* testsuite/20_util/pointer_traits/rebind.cc: New test.
2936
2937	PR libstdc++/69321
2938	* include/experimental/any (__any_caster): Avoid instantiating
2939	manager function for types that can't be stored in any.
2940	* include/std/any (__any_caster): Likewise.
2941	* testsuite/20_util/any/misc/any_cast.cc: Test non-copyable type.
2942	* testsuite/experimental/any/misc/any_cast.cc: Likewise.
2943
2944	PR libstdc++/64903
2945	* include/bits/stl_algo.h (is_partitioned): Use increment instead of
2946	std::advance.
2947
29482017-01-19  Jonathan Wakely  <jwakely@redhat.com>
2949
2950	PR libstdc++/79156
2951	* include/bits/shared_ptr_base.h (__enable_shared_from_this_base):
2952	Fix return type.
2953	(__enable_shared_from_this): Declare __shared_ptr as a friend.
2954	* testsuite/ext/shared_ptr/1.cc: New test.
2955
2956	PR libstdc++/64903
2957	* include/bits/stl_algo.h (is_partitioned): Don't retest the partition
2958	point.
2959	* testsuite/25_algorithms/is_partitioned/2.cc: New test.
2960
2961	* doc/xml/manual/abi.xml: Fix typo.
2962	* doc/html/manual/abi.html: Likewise.
2963
2964	PR libstdc++/67085
2965	* include/bits/predefined_ops.h (_Iter_less_val, _Val_less_iter): Add
2966	converting constructors from _Iter_less_iter.
2967	(_Iter_comp_val, _Val_comp_iter): Add converting constructors from
2968	_Iter_comp_iter.
2969	(__iter_comp_val(_Iter_comp_iter<C>): Use converting constructor.
2970	(__val_comp_iter(_Iter_comp_iter<C>): Likewise.
2971	* include/bits/stl_heap.h (__is_heap_until, __push_heap, __pop_heap)
2972	(__make_heap, __sort_heap): Change _Compare parameters to references.
2973	(__is_heap, push_heap, __adjust_heap, __pop_heap, pop_heap)
2974	(__make_heap, make_heap, sort_heap, is_heap_until): Pass comparison
2975	functions as lvalues.
2976	(is_heap): Call __is_heap_until directly to avoid copying __comp.
2977	* testsuite/23_containers/priority_queue/67085.cc: Adjust test to
2978	count copies during construction with empty sequence.
2979
2980	PR libstdc++/67085
2981	* include/bits/stl_heap.h (__is_heap): Use _GLIBCXX_MOVE.
2982	(__make_heap, __sort_heap): Don't use _GLIBCXX_MOVE inside loops.
2983	* testsuite/23_containers/priority_queue/67085.cc: Adjust expected
2984	number of copies.
2985	* testsuite/25_algorithms/make_heap/movable.cc: New test.
2986
2987	PR libstdc++/67085
2988	* include/bits/stl_heap.h (push_heap, __adjust_heap, __pop_heap)
2989	(pop_heap, __make_heap, make_heap, __sort_heap, sort_heap): Use
2990	_GLIBCXX_MOVE when passing comparison function to other functions.
2991	(is_heap_until, is_heap): Use std::move when passing comparison
2992	function.
2993	* testsuite/23_containers/priority_queue/67085.cc: New test.
2994
2995	PR libstdc++/78905
2996	* doc/xml/manual/abi.xml (abi.versioning.history): Add markup to
2997	macro names, filenames, and literal values. Document _GLIBCXX_RELEASE.
2998	Document that the deprecated _GLIBCXX_VERSION macro was removed for
2999	the 4.0.0 release.
3000	* doc/html/*: Regenerate.
3001	* include/Makefile.am (_GLIBCXX_RELEASE): Set value.
3002	* include/Makefile.in: Regenerate.
3003	* include/bits/c++config (_GLIBCXX_RELEASE): Add #define.
3004	* testsuite/ext/profile/mutex_extensions_neg.cc: Use lineno of 0 in
3005	dg-error.
3006
30072017-01-18  Jonathan Wakely  <jwakely@redhat.com>
3008
3009	PR libstdc++/69301
3010	* include/std/atomic (atomic<T>::load, atomic<T>::exchange): Use
3011	aligned buffer instead of default-initialized variable.
3012	* testsuite/29_atomics/atomic/69301.cc: New test.
3013	* include/experimental/memory (observer_ptr::release): Use reserved
3014	name.
3015	* include/ext/pointer.h (_Pointer_adapter::operator++(int))
3016	(_Pointer_adapter::operator--(int)): Likewise.
3017
3018	PR libstdc++/68925
3019	* include/experimental/random (randint): Use temporary instead of
3020	thread_local static.
3021
30222017-01-17  Joshua Conner  <joshconner@google.com>
3023
3024	* crossconfig.m4: Add fuchsia OS.
3025	* configure: Regenerate.
3026
30272017-01-17  Jonathan Wakely  <jwakely@redhat.com>
3028
3029	PR libstdc++/69699
3030	* doc/xml/manual/abi.xml (abi.versioning.history): Explain why the
3031	__GLIBCXX__ macro is not useful. Remove redundant date information
3032	and link to the GCC release timeline.
3033	(abi.versioning.active): Move partial sentence into the previous
3034	paragraph.
3035	* doc/html/*: Regenerate.
3036
3037	PR libstdc++/79114
3038	* libsupc++/nested_exception.h (throw_with_nested): Use decay instead
3039	of remove_reference.
3040	* testsuite/18_support/nested_exception/79114.cc: New test.
3041
30422017-01-17  Jakub Jelinek  <jakub@redhat.com>
3043
3044	PR other/79046
3045	* configure.ac: Add GCC_BASE_VER.
3046	* fragment.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
3047	get version from BASE-VER file.
3048	* po/Makefile.in: Regenerated.
3049	* libsupc++/Makefile.in: Regenerated.
3050	* testsuite/Makefile.in: Regenerated.
3051	* src/Makefile.in: Regenerated.
3052	* configure: Regenerated.
3053	* Makefile.in: Regenerated.
3054	* include/Makefile.in: Regenerated.
3055	* doc/Makefile.in: Regenerated.
3056	* python/Makefile.in: Regenerated.
3057	* src/c++11/Makefile.in: Regenerated.
3058	* src/c++98/Makefile.in: Regenerated.
3059	* src/filesystem/Makefile.in: Regenerated.
3060
30612017-01-16  Jonathan Wakely  <jwakely@redhat.com>
3062
3063	PR libstdc++/66145
3064	* src/c++11/functexcept.cc: Use new ABI for std::ios_base::failure
3065	exceptions.
3066	* testsuite/27_io/basic_ios/copyfmt/char/1.cc: Don't override ABI
3067	for test, so new ios::failure can be caught.
3068	* testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
3069	* testsuite/27_io/basic_istream/extractors_arithmetic/char/
3070	exceptions_failbit.cc: Likewise.
3071	* testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
3072	exceptions_failbit.cc: Likewise.
3073	* testsuite/27_io/basic_istream/extractors_other/char/
3074	exceptions_null.cc: Likewise.
3075	* testsuite/27_io/basic_istream/extractors_other/wchar_t/
3076	exceptions_null.cc: Likewise.
3077	* testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
3078	* testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
3079	* testsuite/27_io/basic_ostream/inserters_other/char/
3080	exceptions_null.cc: Likewise.
3081	* testsuite/27_io/basic_ostream/inserters_other/wchar_t/
3082	exceptions_null.cc: Likewise.
3083	* testsuite/27_io/ios_base/storage/2.cc: Likewise.
3084
3085	PR libstdc++/78702
3086	* include/bits/locale_classes.h (locale::facet::__shim): Change from
3087	private to protected.
3088	* src/c++11/cxx11-shim_facets.cc (__shim_accessor): Define helper to
3089	make locale::facet::__shim accessible.
3090
30912017-01-16  Ville Voutilainen  <ville.voutilainen@gmail.com>
3092
3093	PR libstdc++/78389
3094	* include/bits/list.tcc (merge(list&&)): Fix backwards size adjustments.
3095	(merge(list&&, _StrictWeakOrdering)): Likewise.
3096	* testsuite/23_containers/list/operations/78389.cc: Add
3097	better test for the sizes.
3098
30992017-01-14  Jonathan Wakely  <jwakely@redhat.com>
3100
3101	* testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
3102	Skip test when -D_GLIBCXX_PROFILE mode is included in options.
3103	* testsuite/23_containers/map/modifiers/extract.cc: Likewise.
3104	* testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
3105	Likewise.
3106	* testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
3107	* testsuite/23_containers/multimap/modifiers/extract.cc: Likewise.
3108	* testsuite/23_containers/multiset/modifiers/extract.cc: Likewise.
3109	* testsuite/23_containers/set/modifiers/extract.cc: Likewise.
3110	* testsuite/23_containers/unordered_map/modifiers/extract.cc:
3111	Likewise.
3112	* testsuite/23_containers/unordered_multimap/modifiers/extract.cc::
3113	Likewise.
3114	* testsuite/23_containers/unordered_multiset/modifiers/extract.cc::
3115	Likewise.
3116	* testsuite/23_containers/unordered_set/modifiers/extract.cc:
3117	Likewise.
3118	* testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
3119	Likewise.
3120	* testsuite/25_algorithms/binary_search/partitioned.cc: Likewise.
3121	* testsuite/25_algorithms/equal_range/partitioned.cc: Likewise.
3122	* testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise.
3123	* testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise.
3124	* testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise.
3125	* testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
3126	* testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
3127	* testsuite/libstdc++-prettyprinters/debug.cc: Likewise.
3128	* testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise.
3129	* testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
3130	* testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
3131	* testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
3132	* testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
3133
31342017-01-13  Jonathan Wakely  <jwakely@redhat.com>
3135
3136	PR libstdc++/65411
3137	* config/io/basic_file_stdio.cc (__basic_file<char>::close()): Don't
3138	retry fclose on EINTR.
3139
3140	* include/profile/base.h: Remove unused header that leads to header
3141	cycle in C++17 mode.
3142
3143	PR libstdc++/79075
3144	* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
3145	Make _If_sv private.
3146	[!_GLIBCXX_USE_CXX11_ABI] (basic_string): Add member functions taking
3147	basic_string_view arguments.
3148
3149	PR libstdc++/79075
3150	* testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Remove
3151	redundant option from cxxflags.
3152	(check_effective_target_cxx11-abi): Define.
3153	* testsuite/21_strings/basic_string/allocator/71964.cc: Use cxx11-abi
3154	effective target.
3155	* testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise.
3156	* testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
3157	Likewise.
3158	* testsuite/21_strings/basic_string/allocator/char/minimal.cc:
3159	Likewise.
3160	* testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
3161	* testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
3162	Likewise.
3163	* testsuite/21_strings/basic_string/allocator/char/noexcept.cc:
3164	Likewise.
3165	* testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
3166	* testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
3167	Likewise.
3168	* testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
3169	Likewise.
3170	* testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
3171	Likewise.
3172	* testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
3173	Likewise.
3174	* testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
3175	Likewise.
3176	* testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
3177	Likewise.
3178	* testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
3179	Likewise.
3180	* testsuite/23_containers/list/61347.cc: Likewise.
3181	* testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
3182	* testsuite/27_io/ios_base/failure/cxx11.cc: Likewise.
3183
31842017-01-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
3185
3186	PR libstdc++/78389
3187	* include/bits/list.tcc (merge(list&&)):
3188	Adjust list sizes if the comparator throws.
3189	(merge(list&&, _StrictWeakOrdering)): Likewise.
3190	(sort()): Splice elements back from the scratch buffers
3191	if the comparator throws.
3192	(sort(_StrictWeakOrdering)): Likewise.
3193	* testsuite/23_containers/list/operations/78389.cc: New.
3194
31952017-01-13  Jonathan Wakely  <jwakely@redhat.com>
3196
3197	* testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Mark
3198	XFAIL for C++17 until node reinsertion supports fancy pointers.
3199
3200	PR libstdc++/78361
3201	* testsuite/20_util/add_pointer/value.cc: Test forming function
3202	pointers.
3203
32042017-01-13  Michael Brune  <lucdanton@free.fr>
3205
3206	PR libstdc++/78361
3207	* include/std/type_traits (__is_referenceable): Handle noexcept
3208	function types.
3209
32102017-01-12  Jonathan Wakely  <jwakely@redhat.com>
3211
3212	PR libstdc++/77528
3213	* include/bits/stl_queue.h (queue, priority_queue): Remove default
3214	member-initializers and define default constructors as templates with
3215	constraints.
3216	* include/bits/stl_stack.h (stack): Likewise.
3217	* testsuite/23_containers/priority_queue/requirements/constructible.cc:
3218	New.
3219	* testsuite/23_containers/priority_queue/requirements/
3220	explicit_instantiation/1.cc: Test more instantiations.
3221	* testsuite/23_containers/priority_queue/requirements/
3222	explicit_instantiation/1_c++98.cc: Likewise.
3223	* testsuite/23_containers/queue/requirements/constructible.cc: New.
3224	* testsuite/23_containers/stack/requirements/constructible.cc: New.
3225
3226	PR libstdc++/66284
3227	* doc/xml/manual/intro.xml: Document LWG 2781 change.
3228	* doc/html/*: Regenerate.
3229	* include/std/functional (_Function_base::_Ref_manager): Remove.
3230	(_Function_handler): Remove partial specializations for
3231	reference_wrapper.
3232	(function::target): Remove special case for const qualification.
3233	* testsuite/20_util/function/6.cc: Adjust tests for target type.
3234	* testsuite/20_util/function/7.cc: Likewise.
3235	* testsuite/20_util/function/8.cc: Likewise.
3236
32372017-01-11  Jonathan Wakely  <jwakely@redhat.com>
3238
3239	PR libstdc++/78134
3240	* include/bits/stl_map.h (map::lower_bound, map::upper_bound)
3241	(map::equal_range): Fix return type of heterogeneous overloads.
3242	* include/bits/stl_multimap.h (multimap::lower_bound)
3243	(multimap::upper_bound, multimap::equal_range): Likewise.
3244	* include/bits/stl_multiset.h (multiset::lower_bound)
3245	(multiset::upper_bound, multiset::equal_range): Likewise.
3246	* include/bits/stl_set.h (set::lower_bound, set::upper_bound)
3247	(set::equal_range): Likewise.
3248	* testsuite/23_containers/map/operations/2.cc
3249	* testsuite/23_containers/multimap/operations/2.cc
3250	* testsuite/23_containers/multiset/operations/2.cc
3251	* testsuite/23_containers/set/operations/2.cc
3252
3253	PR libstdc++/78273
3254	* include/bits/stl_map.h (map::count<_Kt>(const _Kt&)): Don't assume
3255	the heterogeneous comparison can only find one match.
3256	* include/bits/stl_set.h (set::count<_Kt>(const _Kt&)): Likewise.
3257	* testsuite/23_containers/map/operations/2.cc: Test count works with
3258	comparison function that just partitions rather than sorting.
3259	* testsuite/23_containers/set/operations/2.cc: Likewise.
3260
32612017-01-11  Ville Voutilainen  <ville.voutilainen@gmail.com>
3262
3263	Reduce the size of variant, it doesn't need an index of
3264	type size_t internally.
3265	* include/std/variant (parse_numbers.h): New include.
3266	(__select_index): New.
3267	(_Variant_storage<false, _Types...>::_M_reset_impl): Use
3268	_index_type for comparison with variant_npos.
3269	(_Variant_storage<false, _Types...>::__index_type): New.
3270	(_Variant_storage<false, _Types...>::_M_index): Change the
3271	type from size_t to __index_type.
3272	(_Variant_storage<true, _Types...>::__index_type): New.
3273	(_Variant_storage<true, _Types...>::_M_index): Change the
3274	type from size_t to __index_type.
3275	(_Variant_base::_M_valid): Use _Storage::__index_type
3276	for comparison with variant_npos.
3277	(variant::index): Use _Base::_Storage::__index_type
3278	for comparison with variant_npos.
3279	* testsuite/20_util/variant/index_type.cc: New.
3280
32812017-01-10  Jonathan Wakely  <jwakely@redhat.com>
3282
3283	* testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
3284	effective target selector to prevent running in C++17 mode.
3285
3286	PR libstdc++/77528
3287	* include/bits/stl_queue.h (queue::c): Add default member initializer.
3288	(queue::queue()): Add constructor and define as defaulted.
3289	(queue::queue(_Sequence&&)): Remove default argument.
3290	(priority_queue::c, priority_queue::comp): Add default member
3291	initializers.
3292	(priority_queue::priority_queue()): Add constructor and define as
3293	defaulted.
3294	(priority_queue::priority_queue(const _Compare&, _Sequence&&)):
3295	Remove default argument for first parameter.
3296	* include/bits/stl_stack.h (stack::c): Add default member initializer.
3297	(stack::stack()): Add constructor and define as defaulted.
3298	(stack::stack(const _Sequence&)): Remove default argument.
3299	* testsuite/23_containers/priority_queue/requirements/
3300	explicit_instantiation/1.cc: Test explicit instantiation with
3301	non-DefaultConstructible sequence.
3302	* testsuite/23_containers/priority_queue/77528.cc: New test.
3303	* testsuite/23_containers/priority_queue/requirements/
3304	explicit_instantiation/1_c++0x.cc: Replace with 1_c++98.cc.
3305	* testsuite/23_containers/queue/77528.cc: New test.
3306	* testsuite/23_containers/queue/requirements/explicit_instantiation/
3307	1.cc: Test explicit instantiation with non-DefaultConstructible
3308	sequence.
3309	* testsuite/23_containers/queue/requirements/explicit_instantiation/
3310	1_c++0x.cc: Replace with 1_c++98.cc.
3311	* testsuite/23_containers/stack/77528.cc: New test.
3312	* testsuite/23_containers/stack/requirements/explicit_instantiation/
3313	1.cc: Test explicit instantiation with non-DefaultConstructible
3314	sequence.
3315	* testsuite/23_containers/stack/requirements/explicit_instantiation/
3316	1_c++0x.cc: Replace with 1_c++98.cc.
3317
33182017-01-10  Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
3319
3320	* include/bits/locale_facets_nonio.tcc
3321	(time_get::_M_extract_via_format): Avoid compilation errors with
3322	non-standard struct tm.
3323
33242017-01-10  François Dumont  <fdumont@gcc.gnu.org>
3325	    Jonathan Wakely  <jwakely@redhat.com>
3326
3327	* python/libstdcxx/v6/printers.py (_versioned_namespace): Define.
3328	(is_specialization, strip_versioned_namespace): New helpers functions
3329	to work with symbols in the versioned namespace.
3330	(Printer.add_version): Add second name using versioned namespace.
3331	(add_one_template_type_printer, add_one_type_printer): Add second
3332	type printers using versioned namespace.
3333	(register_type_printers): Add template type printer for basic_string.
3334	(build_libstdcxx_dictionary): Remove dead code.
3335	* python/libstdcxx/v6/xmethods.py: Make all matchers look for
3336	versioned namespace.
3337	* testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected
3338	results.
3339	* testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
3340
33412017-01-09  Jonathan Wakely  <jwakely@redhat.com>
3342
3343	PR libstdc++/79017
3344	* acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Check for llrint and llround
3345	functions separately on darwin and if they're missing define
3346	_GLIBCXX_NO_C99_ROUNDING_FUNCS.
3347	* config.h.in: Regenerate.
3348	* configure: Regenerate.
3349	* include/c_global/cmath [_GLIBCXX_NO_C99_ROUNDING_FUNCS] (llrint)
3350	(llrintf, llrintl, llround, llroundf, llroundl): Do not define.
3351
3352	* testsuite/30_threads/condition_variable/members/3.cc: Use new macro
3353	to detect correct thread_local destructors.
3354	* testsuite/util/testsuite_hooks.h (CORRECT_THREAD_LOCAL_DTORS):
3355	Define.
3356
33572017-01-09  Jonathan Wakely  <jwakely@redhat.com>
3358	    Aditya Kumar  <hiraditya@msn.com>
3359
3360	PR libstdc++/66414
3361	* include/bits/basic_string.tcc
3362	(basic_string::find(const CharT*, size_type, size_type)): Optimize.
3363
33642017-01-06  Jonathan Wakely  <jwakely@redhat.com>
3365
3366	* testsuite/21_strings/basic_string/operations/find/char/6.cc: New.
3367	* testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: New.
3368
3369	* testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
3370	Include <cassert> header.
3371
3372	PR libstdc++/78968
3373	* crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
3374	* configure: Regenerate.
3375
33762017-01-06  Barrett Adair  <barrettellisadair@gmail.com>
3377	    Jonathan Wakely  <jwakely@redhat.com>
3378
3379	* include/std/variant (variant, swap): Replace __and_ usage with fold
3380	expressions.
3381
33822017-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3383
3384	PR go/78978
3385	* acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
3386	* configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
3387	GLIBCXX_CHECK_ASSEMBLER_HWCAP.
3388	* fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
3389	HWCAP_FLAGS.
3390	* aclocal.m4: Regenerate.
3391	* configure: Regenerate.
3392	* Makefile.in, doc/Makefile.in, include/Makefile.in,
3393	libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
3394	src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
3395	src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
3396
33972017-01-06  Jonathan Wakely  <jwakely@redhat.com>
3398
3399	* include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.
3400
3401	PR libstdc++/78991
3402	* include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
3403	(_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
3404	(_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and
3405	move function objects.
3406	(__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter)
3407	(__iter_comp_val, __iter_comp_iter, __negate): Move function objects.
3408	* testsuite/25_algorithms/sort/78991.cc: New test.
3409
34102017-01-05  Jonathan Wakely  <jwakely@redhat.com>
3411
3412	* include/bits/std_function.h (function::_Signature_type): Remove.
3413	(function::function(_Functor)): Adjust.
3414
34152017-01-05  Tim Shen  <timshen@google.com>
3416
3417	PR libstdc++/78996
3418	* include/std/variant (__gen_vtable_impl): rename __unused to
3419	__dimensions to avoid naming conflict.
3420
34212017-01-04  Jonathan Wakely  <jwakely@redhat.com>
3422
3423	PR libstdc++/78968
3424	* config.h.in: Regenerate.
3425	* configure: Likewise.
3426	* configure.ac: Check for __cxa_thread_atexit.
3427	* libsupc++/atexit_thread.cc [_GLIBCXX_HAVE___CXA_THREAD_ATEXIT]:
3428	Don't define __cxa_thread_atexit if libc provides it.
3429
34302017-01-04  Ville Voutilainen  <ville.voutilainen@gmail.com>
3431
3432	Implement 2801, Default-constructibility of unique_ptr.
3433	* include/bits/unique_ptr.h (__uniq_ptr_impl::_DeleterConstraint): New.
3434	(unique_ptr::_DeleterConstraint): Likewise.
3435	(unique_ptr()): Constrain.
3436	(unique_ptr(pointer)): Likewise.
3437	(unique_ptr(nullptr_t)): Likewise.
3438	(unique_ptr<_Tp[], _Dp>::_DeleterConstraint): New.
3439	(unique_ptr<_Tp[], _Dp>::unique_ptr()): Constrain.
3440	(unique_ptr<_Tp[], _Dp>::unique_ptr(_Up)): Likewise.
3441	(unique_ptr<_Tp[], _Dp>::unique_ptr(nullptr_t)): Likewise.
3442	* testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust.
3443	* testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
3444	* testsuite/20_util/unique_ptr/cons/default.cc: New.
3445	* testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Adjust.
3446
34472017-01-04  Pauli Nieminen  <suokkos@gmail.com>
3448	    Jonathan Wakely  <jwakely@redhat.com>
3449
3450	PR libstdc++/64735
3451	* acinclude.m4 (GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER): Define.
3452	* config.h.in: Regenerate.
3453	* config/abi/pre/gnu.ver [HAVE_EXCEPTION_PTR_SINCE_GCC46]
3454	(GLIBCXX_3.4.15, GLIBCXX_3.4.21, CXXABI_1.3.3, CXXABI_1.3.5): Make
3455	exports for exception_ptr, nested_exception, and future conditional.
3456	[HAVE_EXCEPTION_PTR_SINCE_GCC46] (GLIBCXX_3.4.23, CXXABI_1.3.11): Add
3457	exports for exception_ptr, nested_exception, and future conditional.
3458	* configure: Regenerate.
3459	* configure.ac: Use GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER.
3460	* include/std/future: Remove check for ATOMIC_INT_LOCK_FREE
3461	* libsupc++/eh_atomics.h: New file for internal use only.
3462	(__eh_atomic_inc, __eh_atomic_dec): New.
3463	* libsupc++/eh_ptr.cc (exception_ptr::_M_addref)
3464	(exception_ptr::_M_release) (__gxx_dependent_exception_cleanup)
3465	(rethrow_exception): Use eh_atomics.h reference counting helpers.
3466	* libsupc++/eh_throw.cc (__gxx_exception_cleanup): Likewise.
3467	* libsupc++/eh_tm.cc (free_any_cxa_exception): Likewise.
3468	* libsupc++/exception: Remove check for ATOMIC_INT_LOCK_FREE.
3469	* libsupc++/exception_ptr.h: Likewise.
3470	* libsupc++/guard.cc: Include header for ATOMIC_INT_LOCK_FREE macro.
3471	* libsupc++/nested_exception.cc: Remove check for
3472	ATOMIC_INT_LOCK_FREE.
3473	* libsupc++/nested_exception.h: Likewise.
3474	* src/c++11/future.cc: Likewise.
3475	* testsuite/18_support/exception_ptr/*: Remove atomic builtins checks.
3476	* testsuite/18_support/nested_exception/*: Likewise.
3477	* testsuite/30_threads/async/*: Likewise.
3478	* testsuite/30_threads/future/*: Likewise.
3479	* testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
3480	* testsuite/30_threads/packaged_task/*: Likewise.
3481	* testsuite/30_threads/promise/*: Likewise.
3482	* testsuite/30_threads/shared_future/*: Likewise.
3483
34842017-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
3485
3486	* doc/xml/manual/documentation_hacking.xml: sourceforge.net now
3487	defaults to https; adjust reference.
3488
34892017-01-03  Jonathan Wakely  <jwakely@redhat.com>
3490
3491	PR libstdc++/78956
3492	* include/std/thread (thread(const thread&&)): Add deleted
3493	constructor.
3494	* testsuite/30_threads/thread/cons/lwg2097.cc: New test.
3495
3496	* doc/xml/manual/spine.xml: Update copyright years.
3497	* doc/xml/manual/build_hacking.xml: Fix spelling of libbuilddir.
3498	* doc/xml/manual/test.xml: Likewise.
3499	* doc/html/*: Regenerate.
3500
35012017-01-01  Gerald Pfeifer  <gerald@pfeifer.com>
3502
3503	* doc/xml/faq.xml: Update address of C++ ABI link.
3504	* doc/xml/manual/abi.xml: Ditto.
3505
35062017-01-01  Jakub Jelinek  <jakub@redhat.com>
3507
3508	Update copyright years.
3509
3510Copyright (C) 2017 Free Software Foundation, Inc.
3511
3512Copying and distribution of this file, with or without modification,
3513are permitted in any medium without royalty provided the copyright
3514notice and this notice are preserved.
3515