Update ChangeLog and version files for release
[official-gcc.git] / libstdc++-v3 / ChangeLog
blobbcef45dd024341b8237bd0a51c6732807e90bc15
1 2018-01-25  Release Manager
3         * GCC 7.3.0 released.
5 2018-01-19  Jonathan Wakely  <jwakely@redhat.com>
7         Backport from mainline
8         2018-01-16  Jonathan Wakely  <jwakely@redhat.com>
10         PR libstdc++/83834
11         * config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace std::c[a-g]* wildcard
12         pattern with exact match for std::cerr.
14 2018-01-18  Jonathan Wakely  <jwakely@redhat.com>
16         Backport from mainline
17         2017-10-23  Jonathan Wakely  <jwakely@redhat.com>
19         * doc/xml/manual/intro.xml: Include new section.
20         * doc/xml/manual/status_cxxis29124.xml: New section on IS 29124
21         status.
22         * doc/html/*: Regenerate.
24         Backport from mainline
25         2017-10-19  Jonathan Wakely  <jwakely@redhat.com>
27         * doc/xml/manual/status_cxx2017.xml: Update references to C++17
28         section numbers.
30 2018-01-16  Eric Botcazou  <ebotcazou@adacore.com>
32         * testsuite/17_intro/names.cc: Undefine 'y' on SPARC/Linux.
34 2018-01-13  Jonathan Wakely  <jwakely@redhat.com>
36         * python/libstdcxx/v6/printers.py (register_type_printers): Remove
37         printer for experimental::any. Fix printers for experimental::optional
38         and experimental::basic_string_view.
40         Backport from mainline
41         2018-01-05  Jonathan Wakely  <jwakely@redhat.com>
43         PR libstdc++/83626
44         * src/filesystem/ops.cc (remove(const path&, error_code&)): Remove
45         unnecessary symlink_status call.
46         (remove_all(const path&, error_code&)): Use filesystem::remove.
48 2018-01-05  Jonathan Wakely  <jwakely@redhat.com>
50         Backport from mainline
51         2017-10-19  Jonathan Wakely  <jwakely@redhat.com>
53         * testsuite/experimental/filesystem/iterators/
54         recursive_directory_iterator.cc: Ensure that error_code arguments are
55         cleared when required.
56         * testsuite/experimental/filesystem/operations/create_directory.cc:
57         Remove redundant check.
58         * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
59         Ensure that error_code argument is cleared when required.
61         Backport from mainline
62         2017-12-27  Jonathan Wakely  <jwakely@redhat.com>
64         PR libstdc++/83600
65         * include/bits/regex.h (match_results::end()): Return valid iterator
66         when not ready.
67         * testsuite/28_regex/match_results/ctors/char/default.cc: Check that
68         unready objects are empty and have equal begin and end iterators.
69         * testsuite/28_regex/match_results/ctors/wchar_t/default.cc: Likewise.
71         Backport from mainline
72         2017-12-27  Jonathan Wakely  <jwakely@redhat.com>
74         PR libstdc++/83598
75         * include/bits/regex.h (basic_regex): Don't modify flags passed to
76         constructors.
77         * testsuite/28_regex/basic_regex/ctors/83598.cc: New test.
79         Backport from mainline
80         2017-12-14  Jonathan Wakely  <jwakely@redhat.com>
82         PR libstdc++/83279
83         * src/filesystem/std-ops.cc (do_copy_file): Handle sendfile not
84         copying entire file.
86         Backport from mainline
87         2018-01-04  Jonathan Wakely  <jwakely@redhat.com>
89         * include/experimental/fs_ops.h (exists(const path&, error_code&))):
90         Only check status_known once.
92         Backport from mainline
93         2018-01-05  Jonathan Wakely  <jwakely@redhat.com>
95         PR libstdc++/83626
96         * src/filesystem/ops.cc (remove(const path&, error_code&)): Do not
97         report an error for ENOENT.
98         (remove_all(const path&)): Fix type of result variable.
99         (remove_all(const path&, error_code&)): Use non-throwing increment
100         for directory iterator. Call POSIX remove directly to avoid redundant
101         calls to symlink_status. Do not report errors for ENOENT.
102         * testsuite/experimental/filesystem/operations/remove_all.cc: Test
103         throwing overload.
105         Backport from mainline
106         2018-01-04  Jonathan Wakely  <jwakely@redhat.com>
108         PR libstdc++/83626
109         * src/filesystem/ops.cc (remove(const path&, error_code&))): Remove
110         redundant call to ec.clear().
111         (remove_all(const path&, error_code&))): Do not return an error for
112         non-existent paths.
113         * testsuite/experimental/filesystem/operations/remove.cc: New test.
114         * testsuite/experimental/filesystem/operations/remove_all.cc: Fix
115         expected results for non-existent paths.
117         Backport from mainline
118         2017-10-25  Jonathan Wakely  <jwakely@redhat.com>
120         PR libstdc++/79283
121         * src/filesystem/ops.cc (read_symlink): Handle st_size being zero.
123 2018-01-04  Ville Voutilainen  <ville.voutilainen@gmail.com>
125         Backport from mainline
126         2018-01-03  Ville Voutilainen  <ville.voutilainen@gmail.com>
128         Protect optional's deduction guide with the feature macro
129         * include/std/optional: Use the feature macro.
131 2017-12-28  François Dumont  <fdumont@gcc.gnu.org>
133         Backport from mainline
134         2017-12-20  François Dumont  <fdumont@gcc.gnu.org>
136         PR libstdc++/82522
137         * include/debug/map.h (map::insert(value_type&&))
138         (map::insert(const_iterator, value_type&&)): Add overload for rvalues.
139         * include/debug/multimap.h (multimap::insert(value_type&&))
140         (multimap::insert(const_iterator, value_type&&)): Likewise.
141         * include/debug/unordered_map (unordered_map::insert(value_type&&))
142         (unordered_map::insert(const_iterator, value_type&&))
143         (unordered_multimap::insert(value_type&&))
144         (unordered_multimap::insert(const_iterator, value_type&&)): Likewise.
145         * testsuite/23_containers/map/modifiers/insert/dr2354.cc (test02): New.
146         * testsuite/23_containers/multimap/modifiers/insert/dr2354.cc (test02):
147         New.
148         * testsuite/23_containers/unordered_map/insert/dr2354.cc (test02): New.
149         * testsuite/23_containers/unordered_multimap/insert/dr2354.cc (test02):
150         New.
152 2017-12-14  Jonathan Wakely  <jwakely@redhat.com>
154         PR libstdc++/83427
155         * include/bits/refwrap.h (_Weak_result_type_impl)
156         (_Reference_wrapper_base): Deduce noexcept for function types.
157         * testsuite/20_util/bind/83427.cc: New test.
158         * testsuite/20_util/reference_wrapper/83427.cc: New test.
160         PR libstdc++/59568
161         * include/std/complex (operator>>): Only use putback if a character
162         was successfully extracted and only set the value if a number was
163         successfully extracted.
164         * testsuite/26_numerics/complex/inserters_extractors/char/59568.cc:
165         New test.
167 2017-12-12  Jonathan Wakely  <jwakely@redhat.com>
169         PR libstdc++/83395
170         * include/std/type_traits (__is_invocable_impl): Remove partial
171         specialization for INVOKE<void> and restore is_void<R> check in
172         primary template.
173         (__is_nt_invocable_impl): Likewise.
174         * testsuite/20_util/is_invocable/83395.cc: New test.
175         * testsuite/20_util/is_nothrow_invocable/83395.cc: New test.
177 2017-12-01  Jonathan Wakely  <jwakely@redhat.com>
179         Backport from mainline
180         2017-10-13  Jonathan Wakely  <jwakely@redhat.com>
182         PR libstdc++/82522
183         * doc/xml/manual/intro.xml: Document LWG 2354 changes.
184         * include/bits/stl_map.h (map::insert(value_type&&))
185         (map::insert(const_iterator, value_type&&)): Add overload for rvalues.
186         * include/bits/stl_multimap.h (multimap::insert(value_type&&))
187         (multimap::insert(const_iterator, value_type&&)): Likewise.
188         * include/bits/unordered_map.h (unordered_map::insert(value_type&&))
189         (unordered_map::insert(const_iterator, value_type&&))
190         (unordered_multimap::insert(value_type&&))
191         (unordered_multimap::insert(const_iterator, value_type&&)): Likewise.
192         * testsuite/23_containers/map/modifiers/insert/dr2354.cc: New test.
193         * testsuite/23_containers/multimap/modifiers/insert/dr2354.cc: New
194         test.
195         * testsuite/23_containers/unordered_map/insert/dr2354.cc: New test.
196         * testsuite/23_containers/unordered_multimap/insert/dr2354.cc: New
197         test.
199         Backport from mainline
200         2017-11-23  Jonathan Wakely  <jwakely@redhat.com>
202         PR libstdc++/83134
203         * include/std/type_traits (__not_): Explicitly convert to bool.
204         * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error.
205         * testsuite/20_util/logical_traits/83134.cc: New test.
206         * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
207         dg-error.
208         * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
209         Likewise.
211         Backport from mainline
212         2017-12-01  Jonathan Wakely  <jwakely@redhat.com>
214         * include/std/type_traits (integral_constant): Make member functions
215         noexcept (LWG 2346).
216         * include/std/utility (integer_sequence): Likewise.
218         Backport from mainline
219         2017-11-16  Jonathan Wakely  <jwakely@redhat.com>
221         * include/std/future (shared_future): Add noexcept to copy constructor
222         and copy-assignment operator (LWG 2799).
224         Backport from mainline
225         2017-11-15  Jonathan Wakely  <jwakely@redhat.com>
227         * include/bits/range_access.h (size, empty, data): Add conditional
228         noexcept to generic overloads.
230         Backport from mainline
231         2017-10-24  Jonathan Wakely  <jwakely@redhat.com>
233         PR libstdc++/82685
234         * include/experimental/string_view (operator""sv): Add noexcept.
235         * include/std/string_view (operator""sv): Likewise.
237         Backport from mainline
238         2017-11-30  Jonathan Wakely  <jwakely@redhat.com>
240         PR libstdc++/83226
241         * include/bits/node_handle.h (_Node_handle::__pointer): Avoid forming
242         pointer-to-reference types.
243         * testsuite/23_containers/map/modifiers/insert/83226.cc: New test.
245         Backport from mainline
246         2017-11-14  Jonathan Wakely  <jwakely@redhat.com>
248         * include/bits/locale_conv.h (wbuffer_convert::_M_conv_get): Fix typo.
249         * testsuite/22_locale/conversions/buffer/3.cc: New test.
251         Backport from mainline
252         2017-11-03  Jonathan Wakely  <jwakely@redhat.com>
254         * include/bits/node_handle.h (_Node_insert_return::get): Remove, as
255         per P0508R0.
257 2017-10-25  Jonathan Wakely  <jwakely@redhat.com>
259         * doc/xml/manual/status_cxx1998.xml: Correct statement about
260         what the doc covers.
261         * doc/xml/manual/status_cxx2011.xml: Likewise.
262         * doc/xml/manual/status_cxx2014.xml: Likewise.
263         * doc/xml/manual/status_cxx2017.xml: Update C++17 status, and
264         information on feature-test macros.
265         * doc/xml/manual/status_cxxtr1.xml: Correct statement about what
266         the doc covers.
267         * doc/xml/manual/status_cxxtr24733.xml: Likewise.
268         * doc/html/*: Regenerate.
270 2017-10-23  Jonathan Wakely  <jwakely@redhat.com>
272         Backport from mainline
273         2017-07-18  Jonathan Wakely  <jwakely@redhat.com>
275         PR libstdc++/81395
276         * include/bits/fstream.tcc (basic_filebuf::xsgetn): Don't set buffer
277         pointers for write mode after reading.
278         * testsuite/27_io/basic_filebuf/sgetn/char/81395.cc: New.
280 2017-10-21  Jonathan Wakely  <jwakely@redhat.com>
282         * testsuite/experimental/filesystem/path/itr/traversal.cc: Do not
283         increment past-the-end iterators.
285 2017-10-20  Jonathan Wakely  <jwakely@redhat.com>
287         * include/std/chrono (__cpp_lib_chrono): Update macro value to
288         indicate support for P0505R0.
289         * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: Check
290         for updated macro.
292         * include/c_global/cstddef: Define __cpp_lib_byte feature-test macro.
293         * testsuite/18_support/byte/requirements.cc: Check macro.
295         Backport from mainline
296         2017-10-13  Jonathan Wakely  <jwakely@redhat.com>
298         PR libstdc++/82481
299         * include/std/mutex (call_once): Suppress clang-tidy warnings about
300         dangling references.
302         Backport from mainline
303         2017-09-12  Jonathan Wakely  <jwakely@redhat.com>
305         PR libstdc++/79433
306         * doc/xml/manual/status_cxx2017.xml: Update feature-test macros.
307         * doc/html/*: Regenerate.
308         * include/Makefile.am: Remove <bits/c++17_warning.h>.
309         * include/Makefile.in: Regenerate.
310         * include/bits/c++17_warning.h: Remove.
311         * include/bits/string_view.tcc: Do not include <bits/c++17_warning.h>
312         for pre-C++17 modes.
313         * include/std/any: Likewise.
314         (__cpp_lib_any): Define.
315         * include/std/mutex (__cpp_lib_scoped_lock): Adjust value as per new
316         SD-6 draft.
317         * include/std/numeric (__cpp_lib_gcd_lcm): Define as per new SD-6
318         draft.
319         * include/std/optional: Do not include <bits/c++17_warning.h>.
320         (__cpp_lib_optional): Define.
321         * include/std/shared_mutex: Do not include <bits/c++14_warning.h>.
322         * include/std/string_view: Do not include <bits/c++17_warning.h>.
323         (__cpp_lib_string_view): Define.
324         * include/std/variant: Do not include <bits/c++17_warning.h>.
325         (__cpp_lib_variant): Define.
326         * testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error line
327         numbers.
328         * testsuite/26_numerics/gcd/1.cc: Test for __cpp_lib_gcd_lcm.
329         * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error line
330         numbers.
331         * testsuite/26_numerics/lcm/1.cc: Test for __cpp_lib_gcd_lcm.
332         * testsuite/26_numerics/lcm/lcm_neg.cc: Adjust dg-error line
333         numbers.
334         * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Adjust
335         expected value of __cpp_lib_scoped_lock.
337         Backport from mainline
338         2017-10-19  Jonathan Wakely  <jwakely@redhat.com>
340         * include/experimental/bits/fs_path.h (path::iterator++(int))
341         (path::iterator--(int)): Fix for paths with only one component.
342         * testsuite/experimental/filesystem/path/itr/traversal.cc: Test
343         post-increment and post-decrement.
345 2017-09-21  Jonathan Wakely  <jwakely@redhat.com>
347         * testsuite/25_algorithms/clamp/1.cc: Fix order of arguments and
348         expected results when using predicate defining reverse order.
349         * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
351 2017-09-20  Jonathan Wakely  <jwakely@redhat.com>
353         Backport from mainline
354         2017-06-14  Jonathan Wakely  <jwakely@redhat.com>
356         * doc/xml/manual/test.xml: Correct instructions on running tests.
357         * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Adjust to pass when
358         -D_GLIBCXX_USE_CXX11_ABI=0 added to RUNTESTFLAGS.
359         * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
360         * testsuite/27_io/basic_istream/extractors_arithmetic/char/
361         exceptions_failbit.cc: Likewise.
362         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
363         exceptions_failbit.cc: Likewise.
364         * testsuite/27_io/basic_istream/extractors_other/char/
365         exceptions_null.cc: Likewise.
366         * testsuite/27_io/basic_istream/extractors_other/wchar_t/
367         exceptions_null.cc: Likewise.
368         * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
369         * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
370         * testsuite/27_io/basic_ostream/inserters_other/char/
371         exceptions_null.cc: Likewise.
372         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
373         exceptions_null.cc: Likewise.
374         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
376         PR libstdc++/79162
377         * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
378         (basic_string::_If_sv): Remove from the overload set when the
379         argument is derived from basic_string.
381         PR libstdc++/79162
382         * include/bits/basic_string.h (basic_string::_If_sv): Remove from the
383         overload set when the argument is derived from basic_string.
384         * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc: New
385         test.
386         * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
387         New test.
389         * testsuite/24_iterators/range_access_cpp17.cc: Fix order of dg-do
390         and dg-options directives. Fix invalid test.
392         Backport from mainline
393         2017-09-20  Jonathan Wakely  <jwakely@redhat.com>
395         PR libstdc++/82262
396         * include/std/optional (__optional_hash_call_base): Add template
397         parameter for remove_const_t<_Tp> and use it consistently.
398         * testsuite/20_util/optional/hash.cc: Test optional<const T>.
400         Backport from mainline
401         2017-09-19  Jonathan Wakely  <jwakely@redhat.com>
403         PR libstdc++/82254
404         * include/std/type_traits (__is_invocable): Add partial specialization
405         for INVOKE<void> case and remove is_void<R> check from partial
406         specialization for INVOKE<R> case.
407         (__is_nt_invocable_impl): New helper for is_nothrow_invocable_r.
408         (is_nothrow_invocable_r): Use __is_nt_invocable_impl.
409         * testsuite/20_util/is_nothrow_invocable/value.cc: Add tests for
410         conversions that can throw or fail to convert. Use static assert
411         strings to explain negative results.
412         * testsuite/20_util/is_nothrow_invocable/value_ext.cc: Use
413         is_nothrow_constructible in is_nt_invocable_conv.
415 2017-09-13  Jonathan Wakely  <jwakely@redhat.com>
417         Backport from mainline
418         2017-09-04  Daniel Kruegler  <daniel.kruegler@gmail.com>
420         PR libstdc++/79162
421         Implement LWG 2946, LWG 2758's resolution missed further corrections
422         * include/bits/basic_string.h (basic_string::compare): Add missing
423         required noexcept specifications.
424         (basic_string): Introduce internal _S_to_string_view and __sv_wrapper
425         for implicit string_view conversion.
426         (basic_string::basic_string): Fix explicit string_view conversion by
427         implicit conversion using _S_to_string_view and __sv_wrapper.
428         (basic_string): Introduce internal basic_string(__sv_wrapper, Alloc)
429         constructor.
430         (basic_string): Fix operator=(T) template by operator=(const T&)
431         template for uncopyable types (PR 79162).
432         (basic_string::operator+=, basic_string::append, basic_string::assign)
433         (basic_string::insert, basic_string::replace, basic_string::find)
434         (basic_string::rfind, basic_string::find_first_of)
435         (basic_string::find_last_of, basic_string::find_first_not_of)
436         (basic_string::find_last_not_of, basic_string::compare): Replace
437         __sv_type argument by template const T& (LWG 2946) and correct
438         documentation describing __sv_type argument.
439         (basic_string::find, basic_string::rfind, basic_string::find_first_of)
440         (basic_string::find_last_of, basic_string::find_first_not_of)
441         (basic_string::find_last_not_of, basic_string::compare): Replace
442         unconditional noexcept specification by conditional noexcept
443         specification to partially balance the removal of noexcept by LWG 2946.
444         * testsuite/21_strings/basic_string/79162.cc: New.
445         * testsuite/21_strings/basic_string/lwg2946.cc: New.
447 2017-09-13  Jonathan Wakely  <jwakely@redhat.com>
449         PR libstdc++/81468
450         * include/std/chrono (time_point(const time_point<_Dur2>&)): Add
451         missing constraint from LWG DR 1177.
452         * testsuite/20_util/duration/cons/dr1177.cc: New.
453         * testsuite/20_util/time_point/cons/81468.cc: New.
454         * testsuite/20_util/duration/literals/range.cc: Update dg-error line.
456         * doc/doxygen/mainpage.html: Fix broken URLs.
458         PR libstdc++/81835
459         * doc/xml/manual/extensions.xml: Replace unstable URL.
460         * doc/html/manual/ext_demangling.html: Regenerate.
461         * libsupc++/cxxabi.h (__cxa_demangle): Fix broken URL.
463 2017-09-12  Jonathan Wakely  <jwakely@redhat.com>
465         Backport from mainline
466         2017-09-12  Jonathan Wakely  <jwakely@redhat.com>
468         PR libstdc++/70483
469         * include/experimental/bits/string_view.tcc (basic_string_view::find)
470         (basic_string_view::rfind, basic_string_view::find_first_of)
471         (basic_string_view::find_last_of, basic_string_view::find_first_not_of)
472         (basic_string_view::find_last_not_of): Add constexpr specifier.
473         * include/experimental/string_view (basic_string_view::remove_prefix)
474         (basic_string_view::remove_suffix, basic_string_view::swap)
475         (basic_string_view::compare, basic_string_view::find)
476         (basic_string_view::rfind, basic_string_view::find_first_of)
477         (basic_string_view::find_last_of, basic_string_view::find_first_not_of)
478         (basic_string_view::find_last_not_of, operator==, operator!=)
479         (operator<, operator>, operator<=, operator>=): Likewise.
480         * testsuite/experimental/string_view/operations/compare/char/70483.cc:
481         New.
483         Backport from mainline
484         2017-09-11  Jonathan Wakely  <jwakely@redhat.com>
486         PR libstdc++/70483
487         * include/bits/string_view.tcc (basic_string_view::find)
488         (basic_string_view::rfind, basic_string_view::find_first_of)
489         (basic_string_view::find_last_of, basic_string_view::find_first_not_of)
490         (basic_string_view::find_last_not_of): Add constexpr specifier.
491         * include/std/string_view (basic_string_view::operator=)
492         (basic_string_view::rbegin, basic_string_view::rend)
493         (basic_string_view::crbegin, basic_string_view::crend)
494         (basic_string_view::remove_prefix, basic_string_view::remove_suffix)
495         (basic_string_view::swap, basic_string_view::compare)
496         (basic_string_view::find, basic_string_view::rfind)
497         (basic_string_view::find_first_of, basic_string_view::find_last_of)
498         (basic_string_view::find_first_not_of)
499         (basic_string_view::find_last_not_of, basic_string_view::_M_check)
500         (basic_string_view::_M_limit, operator==, operator!=, operator<)
501         (operator>, operator<=, operator>=): Likewise.
502         * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
503         char/1.cc: Repeat tests in constexpr context.
504         * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
505         wchar_t/1.cc: Likewise.
506         * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
507         char/1.cc: Likewise.
508         * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
509         wchar_t/1.cc: Likewise.
510         * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
511         Likewise.
512         * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
513         Likewise.
514         * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
515         Likewise.
516         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
517         Likewise.
518         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
519         Likewise.
520         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
521         Likewise.
522         * testsuite/21_strings/basic_string_view/operators/char/2.cc:
523         Likewise.
524         * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
525         Likewise.
526         * testsuite/21_strings/basic_string_view/range_access/char/1.cc: Test
527         cbegin, cend, rbegin, rend, crbegin and crend.
528         * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
529         Likewise.
530         * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
531         Remove trailing whitespace.
532         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
533         1.cc: Likewise.
534         * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
535         New.
536         * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
537         New.
538         * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
539         New.
540         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
541         2.cc: New.
543         Backport from mainline
544         2017-06-12  Pedro Alves  <palves@redhat.com>
546         * doc/xml/manual/status_cxx2017.xml: Update C++17 constexpr
547         char_traits status.
548         * doc/html/*: Regenerate.
550         * include/bits/char_traits.h (_GLIBCXX_ALWAYS_INLINE): Define if
551         not already defined.
552         (__cpp_lib_constexpr_char_traits): Uncomment.
553         (__constant_string_p, __constant_char_array_p): New.
554         (std::char_traits<char>, std::char_traits<wchar_t>): Add
555         _GLIBCXX17_CONSTEXPR on compare, length and find and use
556         __constant_string_p, __constant_char_array_p and
557         __builtin_constant_p to defer to __gnu_cxx::char_traits at compile
558         time.
560         * testsuite/21_strings/char_traits/requirements/
561         constexpr_functions_c++17.cc: Uncomment
562         __cpp_lib_constexpr_char_traits tests.  Uncomment
563         test_compare<char>, test_length<char>, test_find<char>,
564         test_compare<wchar_t>, test_length<wchar_t> and test_find<wchar_t>
565         static_assert tests.
567 2017-09-04  Jonathan Wakely  <jwakely@redhat.com>
569         Backport from mainline
570         2017-08-31  Jonathan Wakely  <jwakely@redhat.com>
572         PR c++/82039
573         * include/ext/new_allocator.h (__gnu_cxx::new_allocator::allocate):
574         Adjust null pointer constant to avoid warning.
576         Backport from mainline
577         2017-08-21  Jonathan Wakely  <jwakely@redhat.com>
579         PR libstdc++/81912
580         * include/bits/stl_iterator_base_types.h (__iterator_category): Add
581         constexpr for C++11 and later.
582         * testsuite/24_iterators/container_access.cc: Add target selector.
583         * testsuite/24_iterators/range_access.cc: Fix clause number in
584         comment.
585         * testsuite/24_iterators/range_access_cpp14.cc: Likewise.
586         * testsuite/24_iterators/range_access_cpp17.cc: New.
588         Backport from mainline
589         2017-08-09  Jonathan Wakely  <jwakely@redhat.com>
591         * include/std/type_traits (_GLIBCXX_NO_BUILTIN_HAS_UNIQ_OBJ_REP):
592         Replace with _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP and use
593         __is_identifier to set it.
595         Backport from mainline
596         2017-08-09  Katsuhiko Nishimra  <ktns.87@gmail.com>
598         * include/std/type_traits (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Use
599         __is_identifier instead of __has_builtin.
601         Backport from mainline
602         2017-08-18  Jonathan Wakely  <jwakely@redhat.com>
604         PR libstdc++/81891
605         * include/bits/hashtable.h (_Hashtable(_InputIterator, _InputIterator,
606         size_type, const _H1&, const _H2&, const _Hash&, const _Equal&,
607         const _ExtractKey&, const allocator_type&)): Let destructor do clean
608         up if an exception is thrown.
609         * testsuite/23_containers/unordered_map/cons/81891.cc: New.
611         Backport from mainline
612         2017-07-31  Marek Polacek  <polacek@redhat.com>
614         PR libstdc++/81599
615         * include/bits/stl_stack.h: Fix typo.
617         Backport from mainline
618         2017-07-10  Jonathan Wakely  <jwakely@redhat.com>
620         PR libstdc++/81338
621         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
622         Declare basic_stringbuf to be a friend.
623         * include/bits/sstream.tcc (basic_stringbuf::overflow)
624         [_GLIBCXX_USE_CXX11_ABI]: Use unused capacity before reallocating.
625         * include/std/sstream (basic_stringbuf::__xfer_bufptrs): Update string
626         length to buffer length.
627         * testsuite/27_io/basic_stringstream/assign/81338.cc: New.
629 2017-08-20  John David Anglin  <danglin@gcc.gnu.org>
631         PR testsuite/81056
632         * testsuite/17_intro/names.cc: Undef 'd' and 'r' on __hpux__.
634 2017-08-14  Jonathan Wakely  <jwakely@redhat.com>
636         Backport from mainline
637         2017-08-09  Jonathan Wakely  <jwakely@redhat.com>
639         PR libstdc++/79820
640         PR libstdc++/81751
641         * config/io/basic_file_stdio.cc (sys_open(FILE*, ios_base::openmode)):
642         Call fflush on the stream instead of calling sync() while _M_cfile is
643         null. Restore original value of errno.
644         * testsuite/ext/stdio_filebuf/char/79820.cc: New.
645         * testsuite/ext/stdio_filebuf/char/81751.cc: New.
647         Backport from mainline
648         2017-07-25  Jonathan Wakely  <jwakely@redhat.com>
650         PR libstdc++/53984
651         * include/bits/basic_ios.h (basic_ios::_M_setstate): Adjust comment.
652         * include/bits/istream.tcc (basic_istream::sentry): Handle exceptions
653         during construction.
654         * include/std/istream: Adjust comments for formatted input functions
655         and unformatted input functions.
656         * testsuite/27_io/basic_fstream/53984.cc: New.
657         * testsuite/27_io/basic_istream/sentry/char/53984.cc: New.
659 2017-08-14  Release Manager
661         * GCC 7.2.0 released.
663 2017-07-26  Richard Biener  <rguenther@suse.de>
665         Backport from mainline
666         2017-06-02  Richard Biener  <rguenther@suse.de>
667                 Markus Eisenmann  <meisenmann.lba@fh-salzburg.ac.at>
669         PR libstdc++/80721
670         * libsupc++/eh_alloc.cc (pool::free): Keep list properly
671         sorted and add missing freelist item merging cases.
673 2017-07-25  Jonathan Wakely  <jwakely@redhat.com>
675         Backport from mainline
676         2017-06-09  Jonathan Wakely  <jwakely@redhat.com>
678         * doc/xml/manual/intro.xml: Document LWG 2802, 2873 and 2942 changes.
679         * include/bits/shared_ptr.h (shared_ptr): Use rvalues for deleters
680         (LWG 2802).
681         * include/bits/shared_ptr_base.h (_Sp_ebo_helper, _Sp_counted_deleter
682         (_Sp_counted_deleter::_Impl, __shared_count, __shared_ptr): Likewise.
683         * testsuite/20_util/shared_ptr/cons/lwg2802.cc: New.
685         Backport from mainline
686         2017-06-05  Jonathan Wakely  <jwakely@redhat.com>
688         * include/bits/shared_ptr_base.h (__shared_ptr::owner_before)
689         (__weak_ptr::owner_before, _Sp_owner_less::operator()): Add noexcept
690         specifiers as per LWG 2873 and LWG 2942.
691         * testsuite/20_util/owner_less/noexcept.cc: New.
692         * testsuite/20_util/shared_ptr/observers/owner_before.cc: Test
693         noexcept guarantees.
694         * testsuite/20_util/weak_ptr/observers/owner_before.cc: Likewise.
696         Backport from mainline
697         2017-04-28  Jonathan Wakely  <jwakely@redhat.com>
699         PR libstdc++/80553
700         * include/bits/stl_construct.h (_Destroy, _Destroy_n): Add static
701         assertions to ensure type is destructible.
702         (destroy_at, destroy, destroy_n): Move from stl_uninitialized.h.
703         * include/bits/stl_uninitialized.h (destroy_at, destroy, destroy_n):
704         Move to stl_construct.h.
705         * testsuite/20_util/specialized_algorithms/memory_management_tools/
706         destroy_neg.cc: New test.
707         * testsuite/23_containers/vector/cons/destructible_neg.cc: New test.
709         Backport from mainline
710         2017-05-16  Jonathan Wakely  <jwakely@redhat.com>
712         * configure: Regenerate.
713         * doc/xml/manual/status_cxx2017.xml: Update status table.
714         * doc/html/*: Regenerate.
715         * include/Makefile.am: Add new header.
716         * include/Makefile.in: Regenerate.
717         * include/experimental/source_location: New header implementing N4519.
718         * testsuite/experimental/source_location/1.cc: New test.
720         Backport from mainline
721         2017-07-06  Jonathan Wakely  <jwakely@redhat.com>
723         * include/bits/uses_allocator.h (__use_alloc(const _Alloc&&)): Add
724         deleted overload to prevent dangling references to rvalues.
725         * include/experimental/memory_resource
726         (polymorphic_allocator::construct): Do not call __use_alloc with
727         rvalue arguments.
729         Backport from mainline
730         2017-06-08  Jonathan Wakely  <jwakely@redhat.com>
732         PR libstdc++/81017
733         * include/bits/std_function.h (function::function(function&&))
734         (function::operator=(funtion&&)): Add noexcept.
735         * testsuite/20_util/function/assign/move.cc: Check for noexcept.
736         * testsuite/20_util/function/cons/move.cc: Likewise.
738         Backport from mainline
739         2017-07-15  Jonathan Wakely  <jwakely@redhat.com>
741         * include/std/mutex (scoped_lock): Reorder std::adopt_lock_t parameter
742         as per P0739R0.
743         * testsuite/30_threads/scoped_lock/cons/1.cc: Reorder arguments.
744         * testsuite/30_threads/scoped_lock/cons/deduction.cc: Test deduction
745         with std::adopt_lock_t.
746         * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Check
747         feature-test macro.
749         Backport from mainline
750         2017-07-14  Jason Merrill  <jason@redhat.com>
751             Jonathan Wakely  <jwakely@redhat.com>
753         * include/std/variant (variant::variant(_Tp&&)): Constrain to remove
754         the constructor for empty variants from the candidate functions
755         during class template argument deduction.
756         * testsuite/20_util/variant/deduction.cc: New.
758         Backport from mainline
759         2017-06-02  Jonathan Wakely  <jwakely@redhat.com>
761         PR libstdc++/80939
762         * include/std/variant (__erased_ctor, __erased_assign, __erased_swap)
763         (__erased_hash): Remove constexpr specifier and qualify calls to
764         __ref_cast.
765         (__erased_dtor): Remove constexpr specifier and use _Destroy.
767         Backport from mainline
768         2017-05-20  Tim Shen  <timshen@google.com>
770         PR libstdc++/80737
771         * include/std/variant(variant::variant): SFINAE on is_same first.
772         * testsuite/20_util/variant/any.cc: test case.
774 2017-07-11  Jonathan Wakely  <jwakely@redhat.com>
776         Backport from mainline
777         2017-04-21  Jonathan Wakely  <jwakely@redhat.com>
779         PR libstdc++/80316
780         * include/std/future (_State_baseV2::_Setter::operator()): Remove
781         _S_check calls that are done after the pointer to the shared state is
782         already dereferenced.
783         (_State_baseV2::_Setter<_Res, void>): Define specialization for void
784         as partial specialization so it can be defined within the definition
785         of _State_baseV2.
786         (_State_baseV2::__setter): Call _S_check.
787         (_State_baseV2::__setter(promise<void>*)): Add overload for use by
788         promise<void>::set_value and promise<void>::set_value_at_thread_exit.
789         (promise<T>, promise<T&>, promise<void>): Make _State a friend.
790         (_State_baseV2::_Setter<void, void>): Remove explicit specialization.
791         (promise<void>::set_value, promise<void>::set_value_at_thread_exit):
792         Use new __setter overload.
793         * testsuite/30_threads/promise/members/at_thread_exit2.cc: New test.
794         * testsuite/30_threads/promise/members/set_exception.cc: Test
795         promise<T&> and promise<void> specializations.
796         * testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
797         Test for no_state error condition.
798         * testsuite/30_threads/promise/members/set_value2.cc: Likewise.
800 2017-06-27  Jonathan Wakely  <jwakely@redhat.com>
802         PR libstdc++/81221
803         * include/bits/stl_algo.h (sample): Qualify with _GLIBCXX_STD_A not
804         std.
805         * testsuite/25_algorithms/sample/81221.cc: New.
807 2017-06-21  Ville Voutilainen  <ville.voutilainen@gmail.com>
809         Backport from mainline
810         2017-06-21  Ville Voutilainen  <ville.voutilainen@gmail.com>
812         PR libstdc++/80675
813         PR libstdc++/80940
814         * include/std/istream:
815         (__is_convertible_to_basic_istream_test(basic_istream<_Ch, _Up>*)): New.
816         (__do_is_convertible_to_basic_istream_impl): Likewise.
817         (__is_convertible_to_basic_istream_impl): Likewise.
818         (__is_convertible_to_basic_istream): Use the new base.
819         (__rvalue_istream_type): New.
820         (operator>>(_Istream&&, _Tp&&)): Use the new helper alias
821         for the SFINAE check, convert to the helper alias type before
822         doing the actual extraction.
823         * include/std/ostream:
824         (__is_convertible_to_basic_ostream_test(basic_ostream<_Ch, _Up>*)): New.
825         (__do_is_convertible_to_basic_ostream_impl): Likewise.
826         (__is_convertible_to_basic_ostream_impl): Likewise.
827         (__is_convertible_to_basic_ostream): Use the new base.
828         (__rvalue_ostream_type): New.
829         (operator<<(_Ostream&&, const _Tp&)): Use the new helper alias
830         for the SFINAE check, convert to the helper alias type before
831         doing the actual insertion.
832         * testsuite/27_io/rvalue_streams-2.cc: Add new tests.
834 2017-06-21  Uros Bizjak  <ubizjak@gmail.com>
836         * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
838 2017-06-21  Jonathan Wakely  <jwakely@redhat.com>
840         PR libstdc++/81092
841         * configure: Regenerate.
843 2017-06-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
845         * config/abi/post/i386-solaris2.10/baseline_symbols.txt: Regenerate.
846         * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: Likewise.
847         * config/abi/post/i386-solaris2.11/baseline_symbols.txt: Likewise.
848         * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: Likewise.
849         * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: Likewise.
850         * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
851         Likewise.
852         * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: Likewise.
853         * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
854         Likewise.
856 2017-06-18  H.J. Lu  <hongjiu.lu@intel.com>
858         PR libstdc++/81092
859         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
861 2017-06-16  Jakub Jelinek  <jakub@redhat.com>
863         PR libstdc++/81092
864         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
866 2017-06-16  Jonathan Wakely  <jwakely@redhat.com>
868         * include/bits/locale_conv.h (wbuffer_convert::sync): Fix condition.
869         * testsuite/22_locale/conversions/buffer/2.cc: New.
871         * doc/xml/manual/appendix_contributing.xml: Link to the list of bad
872         names, and link to the test docs and note higher DejaGnu version
873         requirement.
874         * doc/xml/manual/allocator.xml: Fix ViewCVS URLs.
875         * doc/xml/manual/mt_allocator.xml: Likewise.
876         * doc/xml/manual/test.xml: Correct instructions on running tests.
877         * doc/html/*: Regenerate.
879         PR libstdc++/81092
880         * acinclude.m4: Bump libtool_VERSION.
881         * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
882         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
883         * config/abi/pre/gnu.ver: Add wstring constructor symbols to new
884         GLIBCXX_3.4.24 version.
885         * doc/xml/manual/abi.xml: Document new versions.
886         * doc/html/*: Regenerate.
887         * testsuite/21_strings/basic_string/cons/char/8.cc: Use base object
888         constructors to ensure required symbols are exported.
889         * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: Likewise.
890         * testsuite/util/testsuite_abi.cc: Add new version.
892         * include/bits/locale_conv.h (wbuffer_convert::_M_put): Add missing
893         return statement.
894         * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
895         Return void.
896         * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
897         Likewise.
898         * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc: Add
899         missing return statements.
900         * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
901         Likewise.
902         * testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc:
903         Return void.
904         * testsuite/special_functions/14_expint/pr68397.cc: Likewise.
906 2017-06-07  Jonathan Wakely  <jwakely@redhat.com>
908         PR libstdc++/81002
909         * include/bits/regex_compiler.h (__compile_nfa): Add template argument
910         list to specify traits type.
911         * testsuite/28_regex/basic_regex/ctors/basic/iter.cc: New.
913 2017-05-19  Jonathan Wakely  <jwakely@redhat.com>
915         PR libstdc++/80796
916         * include/bits/stl_algo.h (search): Add new overload for C++17.
917         * testsuite/25_algorithms/search/searcher.cc: New.
919 2017-05-18  Jonathan Wakely  <jwakely@redhat.com>
921         PR libstdc++/80478
922         * include/std/functional (_Mem_fn_traits_base): Add specializations
923         for noexcept member function types.
924         * testsuite/20_util/function_objects/mem_fn/80478.cc: New test.
926 2017-05-18  Jonathan Wakely  <jwakely@redhat.com>
928         * doc/xml/manual/policy_data_structures.xml: Fix typo.
929         * doc/xml/manual/test_policy_data_structures.xml: Likewise.
930         * doc/html/*: Regenerate.
932         * doc/xml/manual/abi.xml: Document latest library versions.
933         * doc/xml/manual/build_hacking.xml: Document requirement to update
934         abi.xml when bumping library versions.
935         * doc/html/*: Regenerate.
937 2017-05-15  Jonathan Wakely  <jwakely@redhat.com>
939         PR libstdc++/80761
940         * include/bits/node_handle.h (_Node_insert_return): Reorder members.
941         (tuple_size, tuple_element): Remove partial specializations.
942         * include/bits/stl_tree.h (_Rb_tree::insert_return_type): Use
943         const_iterator for std::set.
944         * testsuite/23_containers/map/modifiers/extract.cc: New.
945         * testsuite/23_containers/set/modifiers/extract.cc: New.
946         * testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
947         * testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
949 2017-05-12  Jonathan Wakely  <jwakely@redhat.com>
951         PR libstdc++/78939
952         * include/std/utility (tuple_size<cv T>) [__cplusplus > 201402L]:
953         Only define partial specializations when tuple_size<T>::value is
954         valid.
955         * testsuite/20_util/tuple/78939.cc: New.
957 2017-05-02  Release Manager
959         * GCC 7.1.0 released.
961 2017-04-19  Jonathan Wakely  <jwakely@redhat.com>
963         * doc/xml/manual/abi.xml: Rephrase one of the references to the
964         Itanium C++ ABI.
965         * doc/xml/manual/test.xml: Document DejaGnu 1.5.3 requirement.
966         * doc/html/*: Regenerate.
968         * libsupc++/new: Update comment on #endif directive.
970         PR libstdc++/80448
971         * include/experimental/bits/fs_dir.h (directory_iterator)
972         (recursive_directory_iterator): Remove noexcept from defaulted
973         constructors.
975         PR libstdc++/80446
976         * include/std/type_traits (is_aggregate): Change __has_builtin checks.
977         * libsupc++/new (launder): Likewise.
979 2017-04-18  Jonathan Wakely  <jwakely@redhat.com>
981         * include/std/functional (default_searcher, __boyer_moore_array_base)
982         (__is_std_equal_to, __boyer_moore_base_t, boyer_moore_searcher)
983         (boyer_moore_horspool_searcher): Remove redundant namespace
984         qualification.
985         (default_searcher::operator()): Construct return value early and
986         advance second member in-place.
987         (boyer_moore_horspool_searcher::operator()): Increment random access
988         iterator directly instead of using std::next.
989         (boyer_moore_searcher::operator()): Fix return value.
990         * testsuite/20_util/function_objects/searchers.cc: Check both parts
991         of return values.
993 2017-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
995         * doc/xml/faq.xml: Update reference link to C++ ABI for Itanium.
996         * doc/xml/manual/abi.xml. Ditto (thrice).
998 2017-04-03  Jonathan Wakely  <jwakely@redhat.com>
1000         * doc/xml/manual/status_cxx2017.xml: Remove duplicate table entry.
1001         * doc/html/*: Regenerate.
1003         * testsuite/20_util/reference_wrapper/invoke.cc: Uncomment tests
1004         that no longer fail.
1006         * include/bits/ios_base.h: Correct comment.
1007         * testsuite/util/testsuite_hooks.h: Likewise.
1009         * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
1010         * doc/xml/manual/appendix_contributing.xml (contrib.organization): Add
1011         directories for debug, parallel and profile headers.
1012         * doc/html/*: Regenerate.
1014         * include/bits/char_traits.h (__gnu_cxx::char_traits): Add
1015         _GLIBCXX14_CONSTEXPR on assign, compare, find, and length.
1016         (std::char_traits<char>, std::char_traits<wchar_t>): Add
1017         _GLIBCXX17_CONSTEXPR on assign.
1018         (std::char_traits<char16_t>, std::char_traits<char32_t>): Add
1019         _GLIBCXX17_CONSTEXPR on assign, compare, find, and length.
1020         * testsuite/21_strings/char_traits/requirements/
1021         constexpr_functions_c++17.cc: New test.
1023 2017-04-03  Ville Voutilainen  <ville.voutilainen@gmail.com>
1025         PR libstdc++/79141
1026         * include/bits/stl_pair.h (__nonesuch_no_braces): New.
1027         (operator=(typename conditional<
1028         __and_<is_copy_assignable<_T1>,
1029         is_copy_assignable<_T2>>::value,
1030         const pair&, const __nonesuch&>::type)): Change __nonesuch
1031         to __nonesuch_no_braces.
1032         (operator=(typename conditional<
1033         __not_<__and_<is_copy_assignable<_T1>,
1034         is_copy_assignable<_T2>>>::value,
1035         const pair&, const __nonesuch&>::type)): Likewise.
1036         (operator=(typename conditional<
1037         __and_<is_move_assignable<_T1>,
1038         is_move_assignable<_T2>>::value,
1039         pair&&, __nonesuch&&>::type)): Likewise.
1040         * testsuite/20_util/pair/79141.cc: New.
1042 2017-04-03  Ville Voutilainen  <ville.voutilainen@gmail.com>
1044         Implement std::is_aggregate.
1045         * include/std/type_traits (is_aggregate, is_aggregate_v): New.
1046         * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
1047         New.
1048         * testsuite/20_util/is_aggregate/requirements/typedefs.cc: Likewise.
1049         * testsuite/20_util/is_aggregate/value.cc: Likewise.
1051 2017-03-29  Ville Voutilainen  <ville.voutilainen@gmail.com>
1053         Adjust optional's pretty printer for LWG 2900.
1054         * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter.__init__):
1055         Look at the nested payload in case of non-experimental optional.
1057 2017-03-29  Ville Voutilainen  <ville.voutilainen@gmail.com>
1059         Implement LWG 2900, The copy and move constructors
1060         of optional are not constexpr.
1061         * include/std/optional (_Optional_payload): New.
1062         (_Optional_base): Remove the bool parameter.
1063         (_Optional_base<_Tp, false>): Remove.
1064         (_Optional_base()): Adjust.
1065         (_Optional_base(nullopt_t)): Likewise.
1066         (_Optional_base(in_place_t, _Args&&...)): Likewise.
1067         (_Optional_base(in_place_t, initializer_list<_Up>, _Args&&...)):
1068         Likewise.
1069         (_Optional_base(const _Optional_base&)): Likewise.
1070         (_Optional_base(_Optional_base&&)): Likewise.
1071         (operator=(const _Optional_base&)): Likewise.
1072         (operator=(_Optional_base&&)): Likewise.
1073         (~_Optional_base()): Remove.
1074         (_M_is_engaged()): Adjust.
1075         (_M_get()): Likewise.
1076         (_M_construct(_Args&&...)): Likewise.
1077         (_M_destruct()): Likewise.
1078         (_M_reset()): Likewise.
1079         (_Optional_base::_Empty_byte): Remove.
1080         (_Optional_base::_M_empty): Remove.
1081         (_Optional_base::_M_payload): Adjust.
1082         * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
1083         * testsuite/20_util/optional/constexpr/cons/value.cc: Add tests.
1085 2017-03-28  Jonathan Wakely  <jwakely@redhat.com>
1087         PR libstdc++/80137
1088         * include/bits/random.tcc (generate_canonical): Use std::nextafter
1089         or numeric_limits::epsilon() to reduce out-of-range values.
1090         * testsuite/26_numerics/random/uniform_real_distribution/operators/
1091         64351.cc: Verify complexity requirement is met.
1093         * doc/xml/manual/abi.xml: Add xml:id anchor.
1094         * doc/xml/manual/using.xml (manual.intro.using.macros): Document
1095         _GLIBCXX_RELEASE. Link to new anchor for __GLIBCXX__ notes.
1096         (concurrency.io.structure): Add markup.
1097         * doc/html/*: Regenerate.
1099         PR libstdc++/80229
1100         * include/bits/shared_ptr_base.h
1101         (__shared_ptr::_M_enable_shared_from_this_with): Change parameters to
1102         non-const and then use remove_cv to get unqualified type.
1103         * testsuite/20_util/enable_shared_from_this/members/const.cc: Don't
1104         cast away constness on object created const.
1105         * testsuite/20_util/shared_ptr/cons/80229.cc: New test.
1107 2017-03-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
1109         PR libstdc++/80183
1110         * include/bits/stl_tree.h:
1111         (_Rb_tree_header::_M_move_data(_Rb_tree_header&)): Also save _M_color.
1113 2017-03-23  Jonathan Wakely  <jwakely@redhat.com>
1115         * testsuite/23_containers/array/tuple_interface/
1116         tuple_element_debug_neg.cc: Adjust dg-error.
1117         * testsuite/23_containers/list/operations/78389.cc: Fix less-than to
1118         define a valid strict weak ordering.
1119         * testsuite/23_containers/priority_queue/67085.cc: Disable test for
1120         Debug Mode, due to debug checks making extra copies of predicate.
1121         * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
1122         Likewise.
1124         * doc/xml/faq.xml: Add link.
1125         * doc/xml/manual/backwards_compatibility.xml: Remove outdated
1126         information on pre-ISO headers. Replace broken link to C++ FAQ Lite.
1127         * doc/xml/manual/io.xml: Update broken link.
1128         * doc/html/*: Regenerate.
1130 2017-03-23  Daniel Kruegler  <daniel.kruegler@gmail.com>
1132         Implement LWG 2686, Why is std::hash specialized for error_code,
1133         but not error_condition?
1134         * include/std/system_error (hash<error_condition>): Define for C++17.
1135         * testsuite/20_util/hash/operators/size_t.cc (hash<error_condition>):
1136         Instantiate test for error_condition.
1137         * testsuite/20_util/hash/requirements/explicit_instantiation.cc
1138         (hash<error_condition>): Instantiate hash<error_condition>.
1140         * include/bits/c++config (_GLIBCXX17_INLINE): Define.
1141         * include/bits/regex_constants.h (All std::regex_constants constants):
1142         Add _GLIBCXX17_INLINE as per P0607R0.
1143         * include/bits/std_mutex.h (defer_lock, try_to_lock, adopt_lock):
1144         Likewise.
1145         * include/bits/stl_pair.h (piecewise_construct): Likewise.
1146         * include/bits/uses_allocator.h (allocator_arg, uses_allocator_v)
1147         (__is_uses_allocator_constructible_v)
1148         (__is_nothrow_uses_allocator_constructible_v): Likewise.
1149         * include/std/chrono (treat_as_floating_point_v): Likewise.
1150         * include/std/functional (is_bind_expression_v, is_placeholder_v):
1151         Likewise.
1152         * include/std/optional (nullopt): Likewise.
1153         * include/std/ratio (ratio_equal_v, ratio_not_equal_v, ratio_less_v)
1154         ratio_less_equal_v, ratio_greater_v, ratio_greater_equal_v): Likewise.
1155         * include/std/system_error (is_error_code_enum_v)
1156         (is_error_condition_enum_v): Likewise.
1157         * include/std/tuple (tuple_size_v, ignore): Likewise.
1158         (ignore): Declare ignore constexpr as per LWG 2773, declare assignment
1159         constexpr as per LWG 2933.
1160         * include/std/type_traits (All variable templates): Add
1161         _GLIBCXX17_INLINE as per P0607R0.
1162         * include/std/variant (variant_size_v, variant_npos, __index_of_v)
1163         (__tuple_count_v, __exactly_once): Likewise.
1164         * testsuite/18_support/headers/new/synopsis.cc
1165         (hardware_destructive_interference_size)
1166         (hardware_constructive_interference_size): Likewise for commented-out
1167         variables.
1168         * testsuite/20_util/tuple/creation_functions/constexpr.cc: Add new
1169         test function for constexpr std::ignore (LWG 2773).
1170         * testsuite/20_util/tuple/creation_functions/constexpr_cpp14.cc: New
1171         test for LWG 2933.
1173 2017-03-22  Jonathan Wakely  <jwakely@redhat.com>
1175         * include/bits/shared_ptr.h (shared_ptr, weak_ptr): Add deduction
1176         guides for C++17.
1177         * include/bits/std_function.h (function): Likewise.
1178         * include/bits/stl_pair.h (pair): Likewise.
1179         * include/debug/array (__gnu_debug::array): Likewise.
1180         * include/std/array (array): Likewise.
1181         * include/std/functional (make_default_searcher)
1182         (make_boyer_moore_searcher, make_boyer_moore_horspool_searcher):
1183         Remove generator functions.
1184         * include/std/tuple (tuple): Add deduction guides.
1185         * include/std/valarray (valarray): Likewise.
1186         * testsuite/20_util/function_objects/searchers.cc: Adjust to use
1187         class template argument deduction instead of generator functions.
1188         * testsuite/20_util/function/cons/deduction.cc: New test.
1189         * testsuite/20_util/optional/cons/deduction_guide.cc: Rename to ...
1190         * testsuite/20_util/optional/cons/deduction.cc: ... here.
1191         * testsuite/20_util/pair/cons/deduction.cc: New test.
1192         * testsuite/20_util/shared_ptr/cons/deduction.cc: New test.
1193         * testsuite/20_util/tuple/cons/deduction.cc: New test.
1194         * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error.
1195         * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: New test.
1196         * testsuite/20_util/weak_ptr/cons/deduction.cc: New test.
1197         * testsuite/23_containers/array/cons/deduction.cc: New test.
1198         * testsuite/23_containers/array/cons/deduction_neg.cc: New test.
1199         * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc:
1200         Adjust dg-error.
1201         * testsuite/23_containers/array/tuple_interface/get_neg.cc: Likewise.
1202         * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
1203         Likewise.
1204         * testsuite/26_numerics/valarray/deduction.cc: New test.
1205         * testsuite/30_threads/lock_guard/cons/deduction.cc: New test.
1206         * testsuite/30_threads/scoped_lock/cons/deduction.cc: New test.
1207         * testsuite/30_threads/unique_lock/cons/deduction.cc: New test.
1209 2017-03-20  François Dumont  <fdumont@gcc.gnu.org>
1211         * include/bits/stl_deque.h (deque): Access allocator value_type only if
1212         concept checks are enabled.
1213         * include/bits/stl_stack.h (stack): Likewise.
1214         * include/bits/stl_vector.h (vector): Likewise.
1215         * include/bits/stl_list.h (list): Likewise and check
1216         _SGIAssignableConcept only in C++03.
1217         * include/bits/stl_map.h (map): Likewise.
1218         * include/bits/stl_set.h (set): Likewise.
1219         * include/bits/stl_multimap.h (multimap): Likewise.
1220         * include/bits/stl_multiset.h (multiset): Likewise.
1221         * include/bits/stl_queue.h (queue, priority_queue): Likewise.
1223 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
1225         * doc/xml/manual/appendix_contributing.xml: Convert link to
1226         ansi.org to https.
1227         Update link to the C++ standard at ansi.org.
1229         * doc/xml/faq.xml: Remove information redundant with the above;
1230         instead add a reference.
1232 2017-03-17  Jonathan Wakely  <jwakely@redhat.com>
1234         * src/c++11/codecvt.cc (range): Add non-type template parameter and
1235         define oerloaded operators for reading and writing code units.
1236         (range<Elem, false>): Define partial specialization for accessing
1237         wide characters in potentially unaligned byte ranges.
1238         (ucs2_span(const char16_t*, const char16_t*, ...))
1239         (ucs4_span(const char16_t*, const char16_t*, ...)): Change parameters
1240         to range<const char16_t, false> in order to avoid unaligned reads.
1241         (__codecvt_utf16_base<char16_t>::do_out)
1242         (__codecvt_utf16_base<char32_t>::do_out)
1243         (__codecvt_utf16_base<wchar_t>::do_out): Use range specialization for
1244         unaligned data to avoid unaligned writes.
1245         (__codecvt_utf16_base<char16_t>::do_in)
1246         (__codecvt_utf16_base<char32_t>::do_in)
1247         (__codecvt_utf16_base<wchar_t>::do_in): Likewise for writes. Return
1248         error if there are unprocessable trailing bytes.
1249         (__codecvt_utf16_base<char16_t>::do_length)
1250         (__codecvt_utf16_base<char32_t>::do_length)
1251         (__codecvt_utf16_base<wchar_t>::do_length): Pass arguments of type
1252         range<const char16_t, false> to span functions.
1253         * testsuite/22_locale/codecvt/codecvt_utf16/misaligned.cc: New test.
1255 2017-03-16  Jonathan Wakely  <jwakely@redhat.com>
1257         PR libstdc++/79980
1258         * src/c++11/codecvt.cc (to_integer(codecvt_mode)): Fix target type.
1260         PR libstdc++/80041
1261         * src/c++11/codecvt.cc (__codecvt_utf16_base<wchar_t>::do_out)
1262         (__codecvt_utf16_base<wchar_t>::do_in): Convert char arguments to
1263         char16_t to work with UTF-16 instead of UTF-8.
1264         * testsuite/22_locale/codecvt/codecvt_utf16/80041.cc: New test.
1266         * src/c++11/codecvt.cc (codecvt<char16_t, char, mbstate_t>)
1267         (codecvt<char32_t, char, mbstate_t>, __codecvt_utf8_base<char16_t>)
1268         (__codecvt_utf8_base<char32_t>, __codecvt_utf8_base<wchar_t>)
1269         (__codecvt_utf16_base<char16_t>, __codecvt_utf16_base<char32_t>)
1270         (__codecvt_utf16_base<wchar_t>, __codecvt_utf8_utf16_base<char16_t>)
1271         (__codecvt_utf8_utf16_base<char32_t>)
1272         (__codecvt_utf8_utf16_base<wchar_t>): Fix do_encoding() and
1273         do_max_length() return values.
1274         * testsuite/22_locale/codecvt/codecvt_utf16/members.cc: New test.
1275         * testsuite/22_locale/codecvt/codecvt_utf8/members.cc: New test.
1276         * testsuite/22_locale/codecvt/codecvt_utf8_utf16/members.cc: New test.
1278         PR libstdc++/79980
1279         * include/bits/locale_conv.h (__do_str_codecvt): Set __count on
1280         error path.
1281         * src/c++11/codecvt.cc (operator&=, operator|=, operator~): Overloads
1282         for manipulating codecvt_mode values.
1283         (read_utf16_bom): Compare input to BOM constants instead of integral
1284         constants that depend on endianness.  Take mode parameter by
1285         reference and adjust it, to distinguish between no BOM present and
1286         UTF-16BE BOM present.
1287         (ucs4_in, ucs2_span, ucs4_span): Adjust calls to read_utf16_bom.
1288         (surrogates): New enumeration type.
1289         (utf16_in, utf16_out): Add surrogates parameter to choose between
1290         UTF-16 and UCS2 behaviour.
1291         (utf16_span, ucs2_span): Use std::min not std::max.
1292         (ucs2_out): Use std::min not std::max.  Disallow surrogate pairs.
1293         (ucs2_in): Likewise. Adjust calls to read_utf16_bom.
1294         * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc: New test.
1295         * testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: New test.
1297         PR libstdc++/79511
1298         * src/c++11/codecvt.cc (write_utf16_code_point): Don't write 0xffff
1299         as a surrogate pair.
1300         (__codecvt_utf8_utf16_base<char32_t>::do_in): Use native endianness
1301         for internal representation.
1302         (__codecvt_utf8_utf16_base<wchar_t>::do_in): Likewise.
1303         * testsuite/22_locale/codecvt/codecvt_utf8_utf16/79511.cc: New test.
1305         PR libstdc++/80064
1306         * include/bits/stl_heap.h (__is_heap, push_heap, __adjust_heap)
1307         (pop_heap, make_heap, sort_heap, is_heap_until, is_heap): Cope with
1308         invalid instantiations using function types for _Compare argument.
1309         * testsuite/25_algorithms/make_heap/80064.cc: New test.
1311         PR libstdc++/67440
1312         * python/libstdcxx/v6/printers.py (find_type): Avoid gdb.Type.name
1313         for GDB 7.6 compatibility, use gdb.Type.unqualified instead.
1315 2017-03-15  Ville Voutilainen  <ville.voutilainen@gmail.com>
1317         Implement LWG 2857, {variant,optional,any}::emplace should
1318         return the constructed value.
1319         * include/std/any (emplace(_Args&&...)): Change the return type and
1320         return a reference to the constructed value.
1321         (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
1322         * include/std/optional (emplace(_Args&&...)): Likewise.
1323         (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
1324         * include/std/variant (emplace<_Tp>(_Args&&...)): Likewise.
1325         (emplace<_Tp>(initializer_list<_Up>, _Args&&...)): Likewise.
1326         (emplace<_Np>(_Args&&...)): Likewise.
1327         (emplace<_Np>(initializer_list<_Up>, _Args&&...)): Likewise.
1328         * testsuite/20_util/any/assign/emplace.cc: Add tests for
1329         checking the return value of emplace.
1330         * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
1331         * testsuite/20_util/optional/assignment/6.cc: Add tests for
1332         checking the return value of emplace.
1333         * testsuite/20_util/variant/run.cc: Likewise.
1335 2017-03-15  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
1337         PR libstdc++/62045
1338         * include/ext/pb_ds/qdetail/binary_heap_/binary_heap_.hpp
1339         (is_heap): Remove.
1340         (push_heap): Remove the wrong checking using is_heap.
1341         (make_heap): Remove the assertion using is_heap.
1342         * include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
1343         (modify): Ditto.
1344         (resize_for_insert_if_needed): Add PB_DS_ASSERT_VALID after
1345         calling make_heap.
1347 2017-03-15  Jonathan Wakely  <jwakely@redhat.com>
1349         PR libstdc++/62045
1350         * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
1351         New test.
1352         * testsuite/ext/pb_ds/regression/priority_queues.cc: Fix copy&paste
1353         error in comment.
1355 2017-03-15  Jonathan Wakely  <jwakely@redhat.com>
1357         * acinclude.m4 (GLIBCXX_CHECK_S_ISREG_OR_S_IFREG): Fix typo in
1358         comment.
1359         * config.h.in: Regenerate.
1360         * configure: Regenerate.
1361         * doc/Makefile.in: Regenerate.
1363 2017-03-14  Jonathan Wakely  <jwakely@redhat.com>
1365         PR libstdc++/79162
1366         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1367         (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Replace
1368         with a constrained template.
1369         [!_GLIBCXX_USE_CXX11_ABI]
1370         (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Likewise.
1371         * testsuite/21_strings/basic_string/cons/char/79162.cc: New test.
1372         * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: New test.
1374 2017-03-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
1376         PR libstdc++/80034
1377         * include/bits/list.tcc (merge(list&&)): Use const for the size_t
1378         in the catch-block.
1379         (merge(list&&, _StrictWeakOrdering)): Likewise.
1380         * testsuite/23_containers/list/operations/80034.cc: New.
1382 2017-03-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
1384         Implement LWG 2806, Base class of bad_optional_access.
1385         * include/std/optional (bad_optional_access):
1386         Derive from std::exception.
1387         (bad_optional_access::bad_optional_access): Adjust.
1388         (bad_optional_access::what): New.
1389         (__throw_bad_optional_access(const char*)):
1390         Remove the parameter and adjust calls.
1391         * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
1392         * testsuite/20_util/optional/typedefs.cc: Likewise.
1394 2017-03-12  Ville Voutilainen  <ville.voutilainen@gmail.com>
1396         Implement LWG 2934, optional<const T> doesn't compare with T.
1397         * include/std/optional
1398         (operator==(const optional<_Tp>&, const optional<_Tp>&)):
1399         Turn into operator==(const optional<_Tp>&, const optional<_Up>&).
1400         (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
1401         Turn into operator!=(const optional<_Tp>&, const optional<_Up>&).
1402         (operator<(const optional<_Tp>&, const optional<_Tp>&)):
1403         Turn into operator<(const optional<_Tp>&, const optional<_Up>&.
1404         (operator>(const optional<_Tp>&, const optional<_Tp>&)):
1405         Turn into operator>(const optional<_Tp>&, const optional<_Up>&.
1406         (operator<=(const optional<_Tp>&, const optional<_Tp>&)):
1407         Turn into operator<=(const optional<_Tp>&, const optional<_Up>&).
1408         (operator>=(const optional<_Tp>&, const optional<_Tp>&)):
1409         Turn into operator>=(const optional<_Tp>&, const optional<_Up>&).
1410         (operator==(const optional<_Tp>&, const _Tp&)):
1411         Turn into operator==(const optional<_Tp>&, const _Up&).
1412         (operator==(const _Tp&, const optional<_Tp>&)):
1413         Turn into operator==(const _Up&, const optional<_Tp>&).
1414         (operator!=(const optional<_Tp>&, const _Tp&)):
1415         Turn into operator!=(const optional<_Tp>&, const _Up&).
1416         (operator!=(const _Tp&, const optional<_Tp>&)):
1417         Turn into operator!=(const _Up&, const optional<_Tp>&).
1418         (operator<(const optional<_Tp>&, const _Tp&)):
1419         Turn into operator<(const optional<_Tp>&, const _Up&).
1420         (operator<(const _Tp&, const optional<_Tp>&)):
1421         Turn into operator<(const _Up&, const optional<_Tp>&).
1422         (operator>(const optional<_Tp>&, const _Tp&)):
1423         Turn into operator>(const optional<_Tp>&, const _Up&).
1424         (operator>(const _Tp&, const optional<_Tp>&)):
1425         Turn into operator>(const _Up&, const optional<_Tp>&).
1426         (operator<=(const optional<_Tp>&, const _Tp&)):
1427         Turn into operator<=(const optional<_Tp>&, const _Up&).
1428         (operator<=(const _Tp&, const optional<_Tp>&)):
1429         Turn into operator<=(const _Up&, const optional<_Tp>&).
1430         (operator>=(const optional<_Tp>&, const _Tp&)):
1431         Turn into operator>=(const optional<_Tp>&, const _Up&).
1432         (operator>=(const _Tp&, const optional<_Tp>&)):
1433         Turn into operator>=(const _Up&, const optional<_Tp>&).
1434         * testsuite/20_util/optional/relops/7.cc: New.
1436 2017-03-10  Jonathan Wakely  <jwakely@redhat.com>
1438         * testsuite/17_intro/names.cc: Undefine macros that clash with
1439         identifiers in AIX system headers.
1441         * include/bits/invoke.h (__invoke): Use __invoke_result instead of
1442         result_of, and __is_nothrow_invocable instead of
1443         __is_nothrow_callable.
1444         * include/bits/shared_ptr_base.h (__shared_ptr): Use __is_invocable
1445         instead of __is_callable.
1446         * include/std/functional (invoke): use invoke_result_t instead of
1447         result_of_t and is_nothrow_invocable instead of is_nothrow_callable.
1448         (_Not_fn): Use __invoke_result instead of result_of.
1449         * include/std/type_traits (__result_of_memobj, __result_of_memfun):
1450         Remove partial specializations for reference_wrapper types.
1451         (__result_of_impl): Use __inv_unwrap to strip reference_wrapper.
1452         (__invoke_result): Define replacement for result_of and then use it to
1453         define result_of.
1454         (__is_callable_impl, __is_callable, __is_nothrow_callable): Replace
1455         with __is_invocable_impl, __is_invocable, and __is_nothrow_invocable
1456         respectively.
1457         (invoke_result, invoke_result_t): Define for C++17.
1458         (is_callable, is_nothrow_callable): Replace with is_invocable,
1459         is_invocable_r, is_nothrow_invocable, and is_nothrow_invocable_r.
1460         (is_callable_v, is_nothrow_callable_v): Replace with is_invocable_v,
1461         is_invocable_r_v, is_nothrow_invocable_v, and is_nothrow_invocable_r_v.
1462         * include/std/variant (hash<variant<T...>>): Use is_nothrow_invocable_v
1463         instead of is_nothrow_callable_v.
1464         * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
1465         main function.
1466         * testsuite/20_util/function_objects/not_fn/1.cc: Use is_invocable
1467         instead of is_callable.
1468         * testsuite/20_util/is_callable/*: Rename directory and adjust tests
1469         to use new traits.
1470         * testsuite/20_util/is_nothrow_callable/*: Likewise.
1471         * testsuite/20_util/optional/hash.cc: Use is_invocable_v instead of
1472         is_callable.
1473         * testsuite/20_util/variant/hash.cc: Likewise.
1475 2017-03-10  George Lander  <george.lander@arm.com>
1477         * acinclude.m4 (glibcxx_cv_obsolete_isnan): Define
1478         _GLIBCXX_INCLUDE_NEXT_C_HEADERS before including math.h.
1479         * configure: Regenerate.
1481 2017-03-09  Jonathan Wakely  <jwakely@redhat.com>
1483         * include/std/functional (_Not_fn): Define macro to simplify
1484         repetitive function definitions.
1486         * doc/xml/manual/status_cxx2017.xml: Document std::byte support.
1487         * include/c_global/cstddef (std::byte): Define for C++17.
1488         * testsuite/18_support/byte/global_neg.cc: New test.
1489         * testsuite/18_support/byte/ops.cc: New test.
1490         * testsuite/18_support/byte/requirements.cc: New test.
1492 2017-03-05  Jonathan Wakely  <jwakely@redhat.com>
1494         * doc/xml/manual/status_cxx2017.xml: Document P0156R2 status.
1495         * doc/html/*: Regenerate.
1496         * include/std/mutex (scoped_lock): Implement new C++17 template.
1497         * testsuite/30_threads/scoped_lock/cons/1.cc: New test.
1498         * testsuite/30_threads/scoped_lock/requirements/
1499         explicit_instantiation.cc: New test.
1500         * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: New test.
1502 2017-03-02  Gerald Pfeifer  <gerald@pfeifer.com>
1503             François Dumont  <frs.dumont@gmail.com>
1504             Jonathan Wakely  <jwakely@redhat.com>
1506         * doc/xml/manual/debug_mode.xml: Update and simplify note
1507         on link- and run-time coexistence.
1509 2017-03-02  Jonathan Wakely  <jwakely@redhat.com>
1511         * testsuite/17_intro/headers/names.cc: Rename to ...
1512         * testsuite/17_intro/names.cc: ... here.
1514         PR libstdc++/79789
1515         * include/bits/hashtable_policy.h (__clp2): Use reserved names for
1516         parameters and local variables.
1517         * include/bits/ios_base.h (make_error_code, make_error_condition):
1518         Likewise.
1519         * include/bits/list.tcc (list::sort): Likewise.
1520         * include/bits/mask_array.h (mask_array): Likewise.
1521         * include/bits/regex.h (regex_token_iterator): Likewise.
1522         * include/bits/slice_array.h (slice_array): Likewise.
1523         * include/bits/stl_algo.h (__sample): Likewise.
1524         * include/std/memory (undeclare_no_pointers): Likewise.
1525         * include/std/type_traits (is_callable_v, is_nothrow_callable_v):
1526         Likewise.
1527         * libsupc++/exception_ptr.h (__dest_thunk): Likewise.
1528         * testsuite/17_intro/headers/names.cc: New test.
1530         PR libstdc++/79798
1531         * include/std/functional (bind::_Res_type_impl): Fix incorrect use of
1532         result_of that loses top-level cv-qualifiers.
1533         * testsuite/20_util/bind/79798.cc: New test.
1535 2017-03-01  Gerald Pfeifer  <gerald@pfeifer.com>
1537         * doc/xml/manual/documentation_hacking.xml: Tweak link to
1538         doxygen.org.
1540 2017-02-23  Jonathan Wakely  <jwakely@redhat.com>
1542         * include/experimental/iterator: Include <iterator>.
1543         * testsuite/experimental/iterator/requirements.cc: Check for contents
1544         of <iterator>.
1546 2017-02-19  Dinka Ranns  <dinka.ranns@googlemail.com>
1548         C++17 GB50 resolution
1549         * include/std/chrono (duration::operator++()): Add
1550         _GLIBCXX17_CONSTEXPR.
1551         (duration::operator++(int)): Likewise.
1552         (duration::operator--()): Likewise.
1553         (duration::operator--(int)): Likewise.
1554         (duration::operator+=(const duration&)): Likewise.
1555         (duration::operator-=(const duration&)): Likewise.
1556         (duration::operator*=(const rep&)): Likewise.
1557         (duration::operator/=(const rep&)): Likewise.
1558         (duration::operator%=(const rep&)): Likewise.
1559         (duration::operator%=(const duration&)): Likewise.
1560         (time_point::operator+=(const duration&)): Likewise.
1561         (time_point::operator-=(const duration&)): Likewise.
1562         * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: New test.
1563         * testsuite/20_util/duration/literals/range.cc: Adjust dg-error.
1564         * testsuite/20_util/time_point/arithmetic/constexpr.cc: New test.
1566 2017-02-19  Gerald Pfeifer  <gerald@pfeifer.com>
1568         * doc/xml/manual/debug.xml: Adjust link to ThreadSanitizer.
1570 2017-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
1572         * doc/xml/manual/io.xml: Update link to groups.google.com.
1573         Tweak link description.
1575 2017-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
1577         * doc/xml/manual/profile_mode.xml: Fix link.
1579 2017-02-16  Gerald Pfeifer  <gerald@pfeifer.com>
1581         * doc/xml/manual/policy_data_structures.xml: Simplify and
1582         standardize references to boost.org.
1583         * doc/xml/manual/policy_data_structures_biblio.xml: Ditto.
1584         * doc/xml/manual/shared_ptr.xml: Ditto.
1586 2017-02-16  Jonathan Wakely  <jwakely@redhat.com>
1588         PR libstdc++/60936
1589         * src/c++11/snprintf_lite.cc (__concat_size_t): Calculate length
1590         written to buffer, not length remaining in buffer.
1592 2017-02-15  Tim Shen  <timshen@google.com>
1594         PR libstdc++/78723
1595         * include/std/variant (operator<(), operator>(), operator<=(),
1596         operator>=(), operator==(), operator!=()): Implement P0393R3.
1597         * testsuite/20_util/variant/compile.cc: Adjust tests.
1598         * testsuite/20_util/variant/run.cc: Adjust tests.
1600 2017-02-15  Tim Shen  <timshen@google.com>
1602         PR libstdc++/79513
1603         * include/std/variant (visit()): Forward variant types to the return
1604         type detection code.
1605         * testsuite/20_util/variant/compile.cc: Add test cases.
1607 2017-02-13  H.J. Lu  <hongjiu.lu@intel.com>
1609         PR libstdc++/79348
1610         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
1612 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
1614         PR libstdc++/79348
1615         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
1616         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
1617         * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Likewise.
1618         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
1619         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Likewise.
1620         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Likewise.
1621         * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Likewise.
1622         * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Likewise.
1623         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
1625 2017-02-13  Jonathan Wakely  <jwakely@redhat.com>
1627         PR libstdc++/79486
1628         * include/std/future (__future_base::_Task_state::_M_run)
1629         (__future_base::_Task_state::_M_run_delayed): Use lvalue types in
1630         result_of expressions.
1631         * testsuite/30_threads/packaged_task/79486.cc: New.
1633 2017-02-11  Jonathan Wakely  <jwakely@redhat.com>
1635         PR libstdc++/79467
1636         * include/bits/shared_ptr_base.h (__shared_ptr(_Yp*, _Deleter))
1637         (__shared_ptr(_Yp*, _Deleter, _Alloc)): Use lvalue types in
1638         __is_callable check.
1639         * testsuite/20_util/shared_ptr/cons/79467.cc: New.
1641         * include/bits/atomic_base.h: Re-indent.
1643 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
1645         * doc/xml/manual/profile_mode.xml: Update a paper reference.
1647 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
1649         * src/c++11/snprintf_lite.cc (__err): Use https for bug reporting.
1651 2017-02-08  Jonathan Wakely  <jwakely@redhat.com>
1653         * doc/xml/manual/policy_data_structures.xml: Fix spelling of author's
1654         name.
1655         * doc/xml/manual/policy_data_structures_biblio.xml: Likewise. Remove
1656         broken links to texts that are no longer online.
1657         * doc/xml/manual/profile_mode.xml: Update links to CGO 2009 paper and
1658         LCPC 2006 paper.
1659         * doc/xml/manual/using.xml: Update links to memory model information.
1660         * doc/xml/manual/using_exceptions.xml: Update link to "Appendix E:
1661         Standard-Library Exception Safety".
1662         * doc/html/*: Regenerate.
1664 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
1666         * doc/xml/manual/profile_mode.xml: Unbreak link to
1667         "Optimizing Sorting with Machine Learning Algorithms".
1669 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
1671         * src/c++11/snprintf_lite.cc (__err): Update bug reporting URL.
1673 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
1675         * doc/xml/manual/abi.xml: Update link to "Sun Studio 11: C++
1676         Migration Guide".
1678 2017-02-07  Gerald Pfeifer  <gerald@pfeifer.com>
1680         * doc/html/ext/lwg-active.html: Remove.
1681         * doc/html/ext/lwg-closed.html: Ditto.
1682         * doc/html/ext/lwg-defects.html: Ditto.
1684         * doc/Makefile.am (xml_extradir): Remove.
1685         (xml_extra): Ditto.
1686         (stamp-html-docbook-lwg): Remove recipe...
1687         (stamp-html-docbook-data): ...and its use here.
1688         * doc/Makefile.in: Regenerate.
1690         * doc/xml/manual/intro.xml: Shorten two paragraphs explaining
1691         the relationship to the upstream working group.
1692         Replace a local link to ../ext/lwg-active.html by the upstream one.
1693         Replace all reference to ../ext/lwg-defects.html by a new entity
1694         &DR; which refers to the upstream address.
1696 2017-02-07  Gerald Pfeifer  <gerald@pfeifer.com>
1698         * doc/xml/manual/status_cxx2017.xml: Fix link to N4284.
1700 2017-02-06  Jonathan Wakely  <jwakely@redhat.com>
1702         PR libstdc++/79323
1703         * testsuite/20_util/duration/literals/range.cc: Prune extra output
1704         at -O0.
1706 2017-02-06  Gerald Pfeifer  <gerald@pfeifer.com>
1708         * doc/xml/manual/documentation_hacking.xml: Update URL of the
1709         DocBook Element Reference.  Use that term as link description
1710         instead of "online".
1711         epubcheck has moved to GitHub.
1712         Remove obsolete link to DocBook Publishing Tools.
1714 2017-02-03  Jonathan Wakely  <jwakely@redhat.com>
1716         PR libstdc++/66145
1717         * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Restore ABI override
1718         so new ios::failure can be caught even when old ABI is the default.
1719         * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
1720         * testsuite/27_io/basic_istream/extractors_arithmetic/char/
1721         exceptions_failbit.cc: Likewise.
1722         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
1723         exceptions_failbit.cc: Likewise.
1724         * testsuite/27_io/basic_istream/extractors_other/char/
1725         exceptions_null.cc: Likewise.
1726         * testsuite/27_io/basic_istream/extractors_other/wchar_t/
1727         exceptions_null.cc: Likewise.
1728         * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
1729         * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
1730         * testsuite/27_io/basic_ostream/inserters_other/char/
1731         exceptions_null.cc: Likewise.
1732         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
1733         exceptions_null.cc: Likewise.
1734         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
1736         PR libstdc++/60936
1737         * src/c++11/Makefile.am: Add new files.
1738         * src/c++11/Makefile.in: Regenerate.
1739         * src/c++11/cow-string-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
1740         (operator<<, operator>>, getline): Move explicit instantiations to ...
1741         * src/c++11/cow-string-io-inst.cc: ... new file.
1742         * src/c++11/cow-wstring-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
1743         (operator<<, operator>>, getline): Move explicit instantiations to ...
1744         * src/c++11/cow-wstring-io-inst.cc: ... new file.
1745         * src/c++11/functexcept.cc (__throw_ios_failure, __throw_system_error)
1746         (__throw_future_error, __throw_bad_function_call):
1747         (__throw_regex_error): Move functions for C++11 exceptions to the
1748         files that define the exception types.
1749         * src/c++11/functional.cc (__throw_bad_function_call): Move here.
1750         * src/c++11/future.cc (__throw_future_error): Likewise.
1751         * src/c++11/ios.cc (__throw_ios_failure): Likewise.
1752         * src/c++11/regex.cc (__throw_regex_error): Likewise.
1753         * src/c++11/snprintf_lite.cc (__concat_size_t): Print decimal
1754         representation directly instead of calling __int_to_char.
1755         * src/c++11/sso_string.cc (__sso_string): New file for definition
1756         of __sso_string type.
1757         * src/c++11/string-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
1758         explicit instantiations of narrow string I/O functions.
1759         * src/c++11/system_error.cc (__throw_system_error): Move here.
1760         (__sso_string): Move to new file.
1761         * src/c++11/wstring-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
1762         explicit instantiations of wide string I/O functions.
1763         * src/c++98/misc-inst.cc [_GLIBCXX_USE_CXX11_ABI] (operator<<)
1764         (operator>>, getline): Remove explicit instantiations from here.
1766 2017-02-02  H.J. Lu  <hongjiu.lu@intel.com>
1768         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
1770 2017-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1772         * configure.host: Separate Solaris/SPARC and x86 baselines.
1773         * config/abi/post/solaris2.10/baseline_symbols.txt: Move ...
1774         * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: ... here.
1775         * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Move ...
1776         * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
1777         ... here.
1778         * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Move ...
1779         * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: ... here.
1780         * config/abi/post/i386-solaris2.10/baseline_symbols.txt: New file.
1781         * config/abi/post/solaris2.11/baseline_symbols.txt: Move ...
1782         * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: ... here.
1783         * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Move ...
1784         * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
1785         ... here.
1786         * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Move ...
1787         * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: ... here.
1788         * config/abi/post/i386-solaris2.11/baseline_symbols.txt: New file.
1790         * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
1791         * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
1792         * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
1793         * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
1794         * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
1795         * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
1797 2017-02-01  Jonathan Wakely  <jwakely@redhat.com>
1799         PR libstdc++/78346
1800         * include/bits/predefined_ops.h (_Iter_equals_iter): Store iterator
1801         not its referent.
1802         (_Iter_comp_to_iter): Likewise.
1803         * testsuite/25_algorithms/search/78346.cc: New test.
1805         PR libstdc++/79254
1806         * config/abi/pre/gnu.ver: Remove recently added symbols.
1807         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1808         (basic_string::_M_copy_assign): Remove.
1809         (basic_string::operator=(const basic_string&)): Don't dispatch to
1810         _M_copy_assign. If source object is small just deallocate, otherwise
1811         perform new allocation before making any changes.
1812         * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
1813         (basic_string::_M_copy_assign(const basic_string&, true_type)):
1814         Remove.
1815         * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
1816         Test cases where the allocators are equal or the string is small.
1817         * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
1818         Likewise.
1820 2017-01-30  Ville Voutilainen  <ville.voutilainen@gmail.com>
1822         Implement LWG 2825, LWG 2756 breaks class template argument
1823         deduction for optional.
1824         * include/std/optional: Add a deduction guide.
1825         * testsuite/20_util/optional/cons/deduction_guide.cc: New.
1827 2017-01-27  Jonathan Wakely  <jwakely@redhat.com>
1829         PR libstdc++/79254
1830         * config/abi/pre/gnu.ver: Add new symbols.
1831         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1832         (basic_string::_M_copy_assign): New overloaded functions to perform
1833         copy assignment.
1834         (basic_string::operator=(const basic_string&)): Dispatch to
1835         _M_copy_assign.
1836         * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
1837         (basic_string::_M_copy_assign(const basic_string&, true_type)):
1838         Define, performing rollback on exception.
1839         * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
1840         Test exception-safety guarantee.
1841         * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
1842         Likewise.
1843         * testsuite/util/testsuite_allocator.h (uneq_allocator::swap): Make
1844         std::swap visible.
1846 2017-01-26  Jonathan Wakely  <jwakely@redhat.com>
1848         PR libstdc++/70607
1849         * include/tr1/complex (conj): Remove using-declaration and restore
1850         overloads, reverting previous change.
1852         * testsuite/23_containers/list/operations/78389.cc: Fix for C++11
1853         mode.
1854         * testsuite/23_containers/priority_queue/requirements/constructible.cc:
1855         Mark as unsupported in C++98 mode.
1856         * testsuite/23_containers/queue/requirements/constructible.cc:
1857         Likewise.
1858         * testsuite/23_containers/stack/requirements/constructible.cc:
1859         Likewise.
1860         * testsuite/25_algorithms/make_heap/movable.cc: Fix for C++11 mode.
1862         PR libstdc++/79243
1863         * include/bits/c++config (literals::string_view_literals::__7): Add.
1864         Only declare versioned namespaces for the relevant C++ dialects.
1865         * include/experimental/bits/erase_if.h (fundamentals_v2::__detail):
1866         Add versioning macros.
1867         * include/experimental/bits/lfts_config.h:
1868         (fundamentals_v1::__detail::__7, fundamentals_v2::__detail::__7): Add.
1869         * include/experimental/string_view (fundamentals_v2::__detail):
1870         Add versioning macros.
1871         (fundamentals_v2::__detail::__identity): Remove.
1872         (fundamentals_v2::__detail::__idt): Use common_type instead of
1873         __detail::__identity.
1874         * include/std/string_view (__detail::__identity, __detail::__idt):
1875         Likewise.
1876         (literals::string_view_literals): Fix nesting of versioning macros.
1878         PR libstdc++/79190
1879         * libsupc++/del_opa.cc (operator delete(void*, std::align_val_t))
1880         [!_GLIBCXX_HAVE_ALIGNED_ALLOC && !_GLIBCXX_HAVE_POSIX_MEMALIGN
1881         && !_GLIBCXX_HAVE_MEMALIGN && !_GLIBCXX_HAVE__ALIGNED_MALLOC]:
1882         Retrieve original pointer value allocated by malloc.
1883         * libsupc++/new_opa.cc [!_GLIBCXX_HAVE_ALIGNED_ALLOC
1884         && !_GLIBCXX_HAVE_POSIX_MEMALIGN && !_GLIBCXX_HAVE_MEMALIGN
1885         && !_GLIBCXX_HAVE__ALIGNED_MALLOC] (aligned_alloc(size_t, size_t)):
1886         Define, adjusting pointer value allocated by malloc and storing for
1887         retrieval by operator delete.
1889 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
1891         * libsupc++/eh_atomics.h: Update copyright years.
1892         * testsuite/20_util/unique_ptr/cons/default.cc: Update copyright years.
1894 2017-01-25  Jonathan Wakely  <jwakely@redhat.com>
1896         PR libstdc++/61791
1897         PR libstdc++/70607
1898         * include/std/complex (real(T), imag(T)): Add _GLIBCXX_CONSTEXPR.
1899         (proj(T), conj(T)): Change return types per DR 1522.
1900         * include/tr1/complex (conj): Remove overloads and use std::conj.
1901         * testsuite/26_numerics/complex/dr781_dr1137.cc: Rename to...
1902         * testsuite/26_numerics/complex/dr781.cc: ... this, and update.
1903         * testsuite/26_numerics/complex/value_operations/constexpr2.cc: Test
1904         real(T) and imag(T). Allow testing for C++11 too.
1906 2017-01-24  Jonathan Wakely  <jwakely@redhat.com>
1908         PR libstdc++/79206
1909         * include/experimental/string_view (operator==): Check sizes first.
1910         * include/std/string_view (operator==): Likewise.
1912 2017-01-23  Jonathan Wakely  <jwakely@redhat.com>
1914         * testsuite/experimental/array/make_array.cc: Restore <functional>
1915         inclusion.
1917 2017-01-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1919         * testsuite/29_atomics/atomic/69301.cc: Require atomic builtins.
1921 2017-01-23  Jonathan Wakely  <jwakely@redhat.com>
1923         PR libstdc++/79195
1924         * include/experimental/array (__make_array_elem): New class template
1925         and partial specialization.
1926         (__is_reference_wrapper): Move into __make_array_elem specialization.
1927         (make_array): Use __make_array_elem to determine element type and move
1928         static assertion into specialization. Qualify std::forward call.
1929         (to_array): Add exception specifiation.
1930         * testsuite/experimental/array/make_array.cc: Test argument types
1931         without a common type.
1932         * testsuite/experimental/array/neg.cc: Adjust expected error message.
1934 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
1936         * doc/xml/manual/debug.xml: code.google.com uses https now.
1938 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
1940         * doc/xml/manual/test.xml: Fix link into gccint online manual.
1942 2017-01-21  Ville Voutilainen  <ville.voutilainen@gmail.com>
1944         Make poisoned hashes SFINAE away the call operator of the hash.
1945         * include/bits/functional_hash.h
1946         (__poison_hash::__enable_hash_call): New.
1947         * include/std/optional (__optional_hash_call_base): New.
1948         (hash<optional<_Tp>>): Derive from the new base,
1949         move the hash function into that base.
1950         * include/std/variant (__variant_hash_call_base_impl): New.
1951         (__variant_hash_call_base): Likewise.
1952         (hash<variant<_Types...>>): Derive from the new base,
1953         move the hash function into that base.
1954         * testsuite/20_util/optional/hash.cc: Add tests for is_callable.
1955         * testsuite/20_util/variant/hash.cc: Likewise.
1957 2017-01-20  Joe Seymour  <joe.s@somniumtech.com>
1959         * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): Support uint20_t.
1960         * configure: Regenerate.
1962 2017-01-20  Jonathan Wakely  <jwakely@redhat.com>
1964         PR libstdc++/69240
1965         * include/bits/random.h (uniform_real_distribution::param_type)
1966         (normal_distribution::param_type, lognormal_distribution::param_type)
1967         (gamma_distribution::param_type, chi_squared_distribution::param_type)
1968         (cauchy_distribution::param_type, fisher_f_distribution::param_type)
1969         (student_t_distribution::param_type)
1970         (bernoulli_distribution::param_type, binomial_distribution::param_type)
1971         (geometric_distribution::param_type)
1972         (negative_binomial_distribution::param_type)
1973         (poisson_distribution::param_type)
1974         (exponential_distribution::param_type)
1975         (weibull_distribution::param_type)
1976         (extreme_value_distribution::param_type)
1977         (discrete_distribution::param_type)
1978         (piecewise_constant_distribution::param_type)
1979         (piecewise_linear_distribution::param_type): Define operator!=.
1980         * include/bits/uniform_int_dist.h
1981         (uniform_int_distribution::param_type): Likewise.
1982         * include/ext/random (beta_distribution::param_type)
1983         (rice_distribution::param_type, nakagami_distribution::param_type)
1984         (pareto_distribution::param_type, k_distribution::param_type)
1985         (arcsine_distribution::param_type, hoyt_distribution::param_type)
1986         (triangular_distribution::param_type)
1987         (von_mises_distribution::param_type)
1988         (hypergeometric_distribution::param_type)
1989         (logistic_distribution::param_type)
1990         (uniform_on_sphere_distribution::param_type)
1991         (uniform_inside_sphere_distribution::param_type): Likewise.
1992         * testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc:
1993         Test construction with param_type.
1994         * testsuite/26_numerics/random/binomial_distribution/cons/parms.cc:
1995         Likewise.
1996         * testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc:
1997         Likewise.
1998         * testsuite/26_numerics/random/chi_squared_distribution/cons/parms.cc:
1999         Likewise.
2000         * testsuite/26_numerics/random/exponential_distribution/cons/parms.cc:
2001         Likewise.
2002         * testsuite/26_numerics/random/extreme_value_distribution/cons/
2003         parms.cc: Likewise.
2004         * testsuite/26_numerics/random/fisher_f_distribution/cons/parms.cc:
2005         Likewise.
2006         * testsuite/26_numerics/random/gamma_distribution/cons/parms.cc:
2007         Likewise.
2008         * testsuite/26_numerics/random/geometric_distribution/cons/parms.cc:
2009         Likewise.
2010         * testsuite/26_numerics/random/lognormal_distribution/cons/parms.cc:
2011         Likewise.
2012         * testsuite/26_numerics/random/negative_binomial_distribution/cons/
2013         parms.cc: Likewise.
2014         * testsuite/26_numerics/random/normal_distribution/cons/parms.cc:
2015         Likewise.
2016         * testsuite/26_numerics/random/poisson_distribution/cons/parms.cc:
2017         Likewise.
2018         * testsuite/26_numerics/random/student_t_distribution/cons/parms.cc:
2019         Likewise.
2020         * testsuite/26_numerics/random/uniform_int_distribution/cons/parms.cc:
2021         Likewise.
2022         * testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc:
2023         Likewise.
2024         * testsuite/26_numerics/random/weibull_distribution/cons/parms.cc:
2025         Likewise.
2026         * testsuite/ext/random/arcsine_distribution/cons/parms.cc: Likewise.
2027         * testsuite/ext/random/beta_distribution/cons/parms.cc: Likewise.
2028         * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
2029         * testsuite/ext/random/hypergeometric_distribution/cons/parms.cc:
2030         Likewise.
2031         * testsuite/ext/random/k_distribution/cons/parms.cc: Likewise.
2032         * testsuite/ext/random/logistic_distribution/cons/parms.cc: Likewise.
2033         * testsuite/ext/random/nakagami_distribution/cons/parms.cc: Likewise.
2034         * testsuite/ext/random/normal_mv_distribution/cons/parms.cc: Likewise.
2035         * testsuite/ext/random/pareto_distribution/cons/parms.cc: Likewise.
2036         * testsuite/ext/random/rice_distribution/cons/parms.cc: Likewise.
2037         * testsuite/ext/random/triangular_distribution/cons/parms.cc:
2038         Likewise.
2039         * testsuite/ext/random/uniform_inside_sphere_distribution/cons/
2040         parms.cc: Likewise.
2041         * testsuite/ext/random/von_mises_distribution/cons/parms.cc: Likewise.
2043         PR libstdc++/72792
2044         * include/bits/alloc_traits.h (__allocator_traits_base::__diff_type)
2045         (__allocator_traits_base::__size_type): Remove.
2046         (allocator_traits::_Ptr): New class template to detect const and void
2047         pointer types without instantiating pointer_traits::rebind
2048         unnecessarily.
2049         (allocator_traits::_Diff): Likewise for detecting difference_type.
2050         (allocator_traits::_Size): New class template to detect size_type
2051         without instantiating make_unsigned unnecessarily.
2052         * include/bits/ptr_traits.h (pointer_traits::element_type): Use
2053         __detected_or_t instead of __detected_or_t_.
2054         * include/std/type_traits (__detected_or_t_): Remove.
2055         * testsuite/20_util/allocator_traits/members/pointers.cc: New test.
2057         PR libstdc++/72792
2058         PR libstdc++/72793
2059         * include/bits/alloc_traits.h (__allocator_traits_base::__rebind):
2060         Replace with class template using void_t.
2061         (__alloc_rebind): Define in terms of
2062         __allocator_traits_base::__rebind.
2063         (allocator_traits): Remove unconditional static_assert for
2064         rebind_alloc.
2065         * include/bits/ptr_traits.h (__replace_first_arg): Remove type member.
2066         (pointer_traits::__rebind): Replace with class template using void_t.
2067         (pointer_traits::rebind): Define in terms of __rebind.
2068         (pointer_traits): Remove unconditional static_assert for rebind.
2069         * testsuite/20_util/allocator_traits/members/rebind_alloc.cc: New test.
2070         * testsuite/20_util/pointer_traits/rebind.cc: New test.
2072         PR libstdc++/69321
2073         * include/experimental/any (__any_caster): Avoid instantiating
2074         manager function for types that can't be stored in any.
2075         * include/std/any (__any_caster): Likewise.
2076         * testsuite/20_util/any/misc/any_cast.cc: Test non-copyable type.
2077         * testsuite/experimental/any/misc/any_cast.cc: Likewise.
2079         PR libstdc++/64903
2080         * include/bits/stl_algo.h (is_partitioned): Use increment instead of
2081         std::advance.
2083 2017-01-19  Jonathan Wakely  <jwakely@redhat.com>
2085         PR libstdc++/79156
2086         * include/bits/shared_ptr_base.h (__enable_shared_from_this_base):
2087         Fix return type.
2088         (__enable_shared_from_this): Declare __shared_ptr as a friend.
2089         * testsuite/ext/shared_ptr/1.cc: New test.
2091         PR libstdc++/64903
2092         * include/bits/stl_algo.h (is_partitioned): Don't retest the partition
2093         point.
2094         * testsuite/25_algorithms/is_partitioned/2.cc: New test.
2096         * doc/xml/manual/abi.xml: Fix typo.
2097         * doc/html/manual/abi.html: Likewise.
2099         PR libstdc++/67085
2100         * include/bits/predefined_ops.h (_Iter_less_val, _Val_less_iter): Add
2101         converting constructors from _Iter_less_iter.
2102         (_Iter_comp_val, _Val_comp_iter): Add converting constructors from
2103         _Iter_comp_iter.
2104         (__iter_comp_val(_Iter_comp_iter<C>): Use converting constructor.
2105         (__val_comp_iter(_Iter_comp_iter<C>): Likewise.
2106         * include/bits/stl_heap.h (__is_heap_until, __push_heap, __pop_heap)
2107         (__make_heap, __sort_heap): Change _Compare parameters to references.
2108         (__is_heap, push_heap, __adjust_heap, __pop_heap, pop_heap)
2109         (__make_heap, make_heap, sort_heap, is_heap_until): Pass comparison
2110         functions as lvalues.
2111         (is_heap): Call __is_heap_until directly to avoid copying __comp.
2112         * testsuite/23_containers/priority_queue/67085.cc: Adjust test to
2113         count copies during construction with empty sequence.
2115         PR libstdc++/67085
2116         * include/bits/stl_heap.h (__is_heap): Use _GLIBCXX_MOVE.
2117         (__make_heap, __sort_heap): Don't use _GLIBCXX_MOVE inside loops.
2118         * testsuite/23_containers/priority_queue/67085.cc: Adjust expected
2119         number of copies.
2120         * testsuite/25_algorithms/make_heap/movable.cc: New test.
2122         PR libstdc++/67085
2123         * include/bits/stl_heap.h (push_heap, __adjust_heap, __pop_heap)
2124         (pop_heap, __make_heap, make_heap, __sort_heap, sort_heap): Use
2125         _GLIBCXX_MOVE when passing comparison function to other functions.
2126         (is_heap_until, is_heap): Use std::move when passing comparison
2127         function.
2128         * testsuite/23_containers/priority_queue/67085.cc: New test.
2130         PR libstdc++/78905
2131         * doc/xml/manual/abi.xml (abi.versioning.history): Add markup to
2132         macro names, filenames, and literal values. Document _GLIBCXX_RELEASE.
2133         Document that the deprecated _GLIBCXX_VERSION macro was removed for
2134         the 4.0.0 release.
2135         * doc/html/*: Regenerate.
2136         * include/Makefile.am (_GLIBCXX_RELEASE): Set value.
2137         * include/Makefile.in: Regenerate.
2138         * include/bits/c++config (_GLIBCXX_RELEASE): Add #define.
2139         * testsuite/ext/profile/mutex_extensions_neg.cc: Use lineno of 0 in
2140         dg-error.
2142 2017-01-18  Jonathan Wakely  <jwakely@redhat.com>
2144         PR libstdc++/69301
2145         * include/std/atomic (atomic<T>::load, atomic<T>::exchange): Use
2146         aligned buffer instead of default-initialized variable.
2147         * testsuite/29_atomics/atomic/69301.cc: New test.
2148         * include/experimental/memory (observer_ptr::release): Use reserved
2149         name.
2150         * include/ext/pointer.h (_Pointer_adapter::operator++(int))
2151         (_Pointer_adapter::operator--(int)): Likewise.
2153         PR libstdc++/68925
2154         * include/experimental/random (randint): Use temporary instead of
2155         thread_local static.
2157 2017-01-17  Joshua Conner  <joshconner@google.com>
2159         * crossconfig.m4: Add fuchsia OS.
2160         * configure: Regenerate.
2162 2017-01-17  Jonathan Wakely  <jwakely@redhat.com>
2164         PR libstdc++/69699
2165         * doc/xml/manual/abi.xml (abi.versioning.history): Explain why the
2166         __GLIBCXX__ macro is not useful. Remove redundant date information
2167         and link to the GCC release timeline.
2168         (abi.versioning.active): Move partial sentence into the previous
2169         paragraph.
2170         * doc/html/*: Regenerate.
2172         PR libstdc++/79114
2173         * libsupc++/nested_exception.h (throw_with_nested): Use decay instead
2174         of remove_reference.
2175         * testsuite/18_support/nested_exception/79114.cc: New test.
2177 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
2179         PR other/79046
2180         * configure.ac: Add GCC_BASE_VER.
2181         * fragment.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
2182         get version from BASE-VER file.
2183         * po/Makefile.in: Regenerated.
2184         * libsupc++/Makefile.in: Regenerated.
2185         * testsuite/Makefile.in: Regenerated.
2186         * src/Makefile.in: Regenerated.
2187         * configure: Regenerated.
2188         * Makefile.in: Regenerated.
2189         * include/Makefile.in: Regenerated.
2190         * doc/Makefile.in: Regenerated.
2191         * python/Makefile.in: Regenerated.
2192         * src/c++11/Makefile.in: Regenerated.
2193         * src/c++98/Makefile.in: Regenerated.
2194         * src/filesystem/Makefile.in: Regenerated.
2196 2017-01-16  Jonathan Wakely  <jwakely@redhat.com>
2198         PR libstdc++/66145
2199         * src/c++11/functexcept.cc: Use new ABI for std::ios_base::failure
2200         exceptions.
2201         * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Don't override ABI
2202         for test, so new ios::failure can be caught.
2203         * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
2204         * testsuite/27_io/basic_istream/extractors_arithmetic/char/
2205         exceptions_failbit.cc: Likewise.
2206         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
2207         exceptions_failbit.cc: Likewise.
2208         * testsuite/27_io/basic_istream/extractors_other/char/
2209         exceptions_null.cc: Likewise.
2210         * testsuite/27_io/basic_istream/extractors_other/wchar_t/
2211         exceptions_null.cc: Likewise.
2212         * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
2213         * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
2214         * testsuite/27_io/basic_ostream/inserters_other/char/
2215         exceptions_null.cc: Likewise.
2216         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
2217         exceptions_null.cc: Likewise.
2218         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
2220         PR libstdc++/78702
2221         * include/bits/locale_classes.h (locale::facet::__shim): Change from
2222         private to protected.
2223         * src/c++11/cxx11-shim_facets.cc (__shim_accessor): Define helper to
2224         make locale::facet::__shim accessible.
2226 2017-01-16  Ville Voutilainen  <ville.voutilainen@gmail.com>
2228         PR libstdc++/78389
2229         * include/bits/list.tcc (merge(list&&)): Fix backwards size adjustments.
2230         (merge(list&&, _StrictWeakOrdering)): Likewise.
2231         * testsuite/23_containers/list/operations/78389.cc: Add
2232         better test for the sizes.
2234 2017-01-14  Jonathan Wakely  <jwakely@redhat.com>
2236         * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
2237         Skip test when -D_GLIBCXX_PROFILE mode is included in options.
2238         * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
2239         * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
2240         Likewise.
2241         * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
2242         * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise.
2243         * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise.
2244         * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
2245         * testsuite/23_containers/unordered_map/modifiers/extract.cc:
2246         Likewise.
2247         * testsuite/23_containers/unordered_multimap/modifiers/extract.cc::
2248         Likewise.
2249         * testsuite/23_containers/unordered_multiset/modifiers/extract.cc::
2250         Likewise.
2251         * testsuite/23_containers/unordered_set/modifiers/extract.cc:
2252         Likewise.
2253         * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2254         Likewise.
2255         * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise.
2256         * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise.
2257         * testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise.
2258         * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise.
2259         * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise.
2260         * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
2261         * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
2262         * testsuite/libstdc++-prettyprinters/debug.cc: Likewise.
2263         * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise.
2264         * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
2265         * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
2266         * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
2267         * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
2269 2017-01-13  Jonathan Wakely  <jwakely@redhat.com>
2271         PR libstdc++/65411
2272         * config/io/basic_file_stdio.cc (__basic_file<char>::close()): Don't
2273         retry fclose on EINTR.
2275         * include/profile/base.h: Remove unused header that leads to header
2276         cycle in C++17 mode.
2278         PR libstdc++/79075
2279         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
2280         Make _If_sv private.
2281         [!_GLIBCXX_USE_CXX11_ABI] (basic_string): Add member functions taking
2282         basic_string_view arguments.
2284         PR libstdc++/79075
2285         * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Remove
2286         redundant option from cxxflags.
2287         (check_effective_target_cxx11-abi): Define.
2288         * testsuite/21_strings/basic_string/allocator/71964.cc: Use cxx11-abi
2289         effective target.
2290         * testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise.
2291         * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
2292         Likewise.
2293         * testsuite/21_strings/basic_string/allocator/char/minimal.cc:
2294         Likewise.
2295         * testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
2296         * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
2297         Likewise.
2298         * testsuite/21_strings/basic_string/allocator/char/noexcept.cc:
2299         Likewise.
2300         * testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
2301         * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
2302         Likewise.
2303         * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
2304         Likewise.
2305         * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
2306         Likewise.
2307         * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
2308         Likewise.
2309         * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
2310         Likewise.
2311         * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
2312         Likewise.
2313         * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
2314         Likewise.
2315         * testsuite/23_containers/list/61347.cc: Likewise.
2316         * testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
2317         * testsuite/27_io/ios_base/failure/cxx11.cc: Likewise.
2319 2017-01-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
2321         PR libstdc++/78389
2322         * include/bits/list.tcc (merge(list&&)):
2323         Adjust list sizes if the comparator throws.
2324         (merge(list&&, _StrictWeakOrdering)): Likewise.
2325         (sort()): Splice elements back from the scratch buffers
2326         if the comparator throws.
2327         (sort(_StrictWeakOrdering)): Likewise.
2328         * testsuite/23_containers/list/operations/78389.cc: New.
2330 2017-01-13  Jonathan Wakely  <jwakely@redhat.com>
2332         * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Mark
2333         XFAIL for C++17 until node reinsertion supports fancy pointers.
2335         PR libstdc++/78361
2336         * testsuite/20_util/add_pointer/value.cc: Test forming function
2337         pointers.
2339 2017-01-13  Michael Brune  <lucdanton@free.fr>
2341         PR libstdc++/78361
2342         * include/std/type_traits (__is_referenceable): Handle noexcept
2343         function types.
2345 2017-01-12  Jonathan Wakely  <jwakely@redhat.com>
2347         PR libstdc++/77528
2348         * include/bits/stl_queue.h (queue, priority_queue): Remove default
2349         member-initializers and define default constructors as templates with
2350         constraints.
2351         * include/bits/stl_stack.h (stack): Likewise.
2352         * testsuite/23_containers/priority_queue/requirements/constructible.cc:
2353         New.
2354         * testsuite/23_containers/priority_queue/requirements/
2355         explicit_instantiation/1.cc: Test more instantiations.
2356         * testsuite/23_containers/priority_queue/requirements/
2357         explicit_instantiation/1_c++98.cc: Likewise.
2358         * testsuite/23_containers/queue/requirements/constructible.cc: New.
2359         * testsuite/23_containers/stack/requirements/constructible.cc: New.
2361         PR libstdc++/66284
2362         * doc/xml/manual/intro.xml: Document LWG 2781 change.
2363         * doc/html/*: Regenerate.
2364         * include/std/functional (_Function_base::_Ref_manager): Remove.
2365         (_Function_handler): Remove partial specializations for
2366         reference_wrapper.
2367         (function::target): Remove special case for const qualification.
2368         * testsuite/20_util/function/6.cc: Adjust tests for target type.
2369         * testsuite/20_util/function/7.cc: Likewise.
2370         * testsuite/20_util/function/8.cc: Likewise.
2372 2017-01-11  Jonathan Wakely  <jwakely@redhat.com>
2374         PR libstdc++/78134
2375         * include/bits/stl_map.h (map::lower_bound, map::upper_bound)
2376         (map::equal_range): Fix return type of heterogeneous overloads.
2377         * include/bits/stl_multimap.h (multimap::lower_bound)
2378         (multimap::upper_bound, multimap::equal_range): Likewise.
2379         * include/bits/stl_multiset.h (multiset::lower_bound)
2380         (multiset::upper_bound, multiset::equal_range): Likewise.
2381         * include/bits/stl_set.h (set::lower_bound, set::upper_bound)
2382         (set::equal_range): Likewise.
2383         * testsuite/23_containers/map/operations/2.cc
2384         * testsuite/23_containers/multimap/operations/2.cc
2385         * testsuite/23_containers/multiset/operations/2.cc
2386         * testsuite/23_containers/set/operations/2.cc
2388         PR libstdc++/78273
2389         * include/bits/stl_map.h (map::count<_Kt>(const _Kt&)): Don't assume
2390         the heterogeneous comparison can only find one match.
2391         * include/bits/stl_set.h (set::count<_Kt>(const _Kt&)): Likewise.
2392         * testsuite/23_containers/map/operations/2.cc: Test count works with
2393         comparison function that just partitions rather than sorting.
2394         * testsuite/23_containers/set/operations/2.cc: Likewise.
2396 2017-01-11  Ville Voutilainen  <ville.voutilainen@gmail.com>
2398         Reduce the size of variant, it doesn't need an index of
2399         type size_t internally.
2400         * include/std/variant (parse_numbers.h): New include.
2401         (__select_index): New.
2402         (_Variant_storage<false, _Types...>::_M_reset_impl): Use
2403         _index_type for comparison with variant_npos.
2404         (_Variant_storage<false, _Types...>::__index_type): New.
2405         (_Variant_storage<false, _Types...>::_M_index): Change the
2406         type from size_t to __index_type.
2407         (_Variant_storage<true, _Types...>::__index_type): New.
2408         (_Variant_storage<true, _Types...>::_M_index): Change the
2409         type from size_t to __index_type.
2410         (_Variant_base::_M_valid): Use _Storage::__index_type
2411         for comparison with variant_npos.
2412         (variant::index): Use _Base::_Storage::__index_type
2413         for comparison with variant_npos.
2414         * testsuite/20_util/variant/index_type.cc: New.
2416 2017-01-10  Jonathan Wakely  <jwakely@redhat.com>
2418         * testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
2419         effective target selector to prevent running in C++17 mode.
2421         PR libstdc++/77528
2422         * include/bits/stl_queue.h (queue::c): Add default member initializer.
2423         (queue::queue()): Add constructor and define as defaulted.
2424         (queue::queue(_Sequence&&)): Remove default argument.
2425         (priority_queue::c, priority_queue::comp): Add default member
2426         initializers.
2427         (priority_queue::priority_queue()): Add constructor and define as
2428         defaulted.
2429         (priority_queue::priority_queue(const _Compare&, _Sequence&&)):
2430         Remove default argument for first parameter.
2431         * include/bits/stl_stack.h (stack::c): Add default member initializer.
2432         (stack::stack()): Add constructor and define as defaulted.
2433         (stack::stack(const _Sequence&)): Remove default argument.
2434         * testsuite/23_containers/priority_queue/requirements/
2435         explicit_instantiation/1.cc: Test explicit instantiation with
2436         non-DefaultConstructible sequence.
2437         * testsuite/23_containers/priority_queue/77528.cc: New test.
2438         * testsuite/23_containers/priority_queue/requirements/
2439         explicit_instantiation/1_c++0x.cc: Replace with 1_c++98.cc.
2440         * testsuite/23_containers/queue/77528.cc: New test.
2441         * testsuite/23_containers/queue/requirements/explicit_instantiation/
2442         1.cc: Test explicit instantiation with non-DefaultConstructible
2443         sequence.
2444         * testsuite/23_containers/queue/requirements/explicit_instantiation/
2445         1_c++0x.cc: Replace with 1_c++98.cc.
2446         * testsuite/23_containers/stack/77528.cc: New test.
2447         * testsuite/23_containers/stack/requirements/explicit_instantiation/
2448         1.cc: Test explicit instantiation with non-DefaultConstructible
2449         sequence.
2450         * testsuite/23_containers/stack/requirements/explicit_instantiation/
2451         1_c++0x.cc: Replace with 1_c++98.cc.
2453 2017-01-10  Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
2455         * include/bits/locale_facets_nonio.tcc
2456         (time_get::_M_extract_via_format): Avoid compilation errors with
2457         non-standard struct tm.
2459 2017-01-10  François Dumont  <fdumont@gcc.gnu.org>
2460             Jonathan Wakely  <jwakely@redhat.com>
2462         * python/libstdcxx/v6/printers.py (_versioned_namespace): Define.
2463         (is_specialization, strip_versioned_namespace): New helpers functions
2464         to work with symbols in the versioned namespace.
2465         (Printer.add_version): Add second name using versioned namespace.
2466         (add_one_template_type_printer, add_one_type_printer): Add second
2467         type printers using versioned namespace.
2468         (register_type_printers): Add template type printer for basic_string.
2469         (build_libstdcxx_dictionary): Remove dead code.
2470         * python/libstdcxx/v6/xmethods.py: Make all matchers look for
2471         versioned namespace.
2472         * testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected
2473         results.
2474         * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
2476 2017-01-09  Jonathan Wakely  <jwakely@redhat.com>
2478         PR libstdc++/79017
2479         * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Check for llrint and llround
2480         functions separately on darwin and if they're missing define
2481         _GLIBCXX_NO_C99_ROUNDING_FUNCS.
2482         * config.h.in: Regenerate.
2483         * configure: Regenerate.
2484         * include/c_global/cmath [_GLIBCXX_NO_C99_ROUNDING_FUNCS] (llrint)
2485         (llrintf, llrintl, llround, llroundf, llroundl): Do not define.
2487         * testsuite/30_threads/condition_variable/members/3.cc: Use new macro
2488         to detect correct thread_local destructors.
2489         * testsuite/util/testsuite_hooks.h (CORRECT_THREAD_LOCAL_DTORS):
2490         Define.
2492 2017-01-09  Jonathan Wakely  <jwakely@redhat.com>
2493             Aditya Kumar  <hiraditya@msn.com>
2495         PR libstdc++/66414
2496         * include/bits/basic_string.tcc
2497         (basic_string::find(const CharT*, size_type, size_type)): Optimize.
2499 2017-01-06  Jonathan Wakely  <jwakely@redhat.com>
2501         * testsuite/21_strings/basic_string/operations/find/char/6.cc: New.
2502         * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: New.
2504         * testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
2505         Include <cassert> header.
2507         PR libstdc++/78968
2508         * crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
2509         * configure: Regenerate.
2511 2017-01-06  Barrett Adair  <barrettellisadair@gmail.com>
2512             Jonathan Wakely  <jwakely@redhat.com>
2514         * include/std/variant (variant, swap): Replace __and_ usage with fold
2515         expressions.
2517 2017-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2519         PR go/78978
2520         * acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
2521         * configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
2522         GLIBCXX_CHECK_ASSEMBLER_HWCAP.
2523         * fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
2524         HWCAP_FLAGS.
2525         * aclocal.m4: Regenerate.
2526         * configure: Regenerate.
2527         * Makefile.in, doc/Makefile.in, include/Makefile.in,
2528         libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
2529         src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
2530         src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
2532 2017-01-06  Jonathan Wakely  <jwakely@redhat.com>
2534         * include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.
2536         PR libstdc++/78991
2537         * include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
2538         (_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
2539         (_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and
2540         move function objects.
2541         (__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter)
2542         (__iter_comp_val, __iter_comp_iter, __negate): Move function objects.
2543         * testsuite/25_algorithms/sort/78991.cc: New test.
2545 2017-01-05  Jonathan Wakely  <jwakely@redhat.com>
2547         * include/bits/std_function.h (function::_Signature_type): Remove.
2548         (function::function(_Functor)): Adjust.
2550 2017-01-05  Tim Shen  <timshen@google.com>
2552         PR libstdc++/78996
2553         * include/std/variant (__gen_vtable_impl): rename __unused to
2554         __dimensions to avoid naming conflict.
2556 2017-01-04  Jonathan Wakely  <jwakely@redhat.com>
2558         PR libstdc++/78968
2559         * config.h.in: Regenerate.
2560         * configure: Likewise.
2561         * configure.ac: Check for __cxa_thread_atexit.
2562         * libsupc++/atexit_thread.cc [_GLIBCXX_HAVE___CXA_THREAD_ATEXIT]:
2563         Don't define __cxa_thread_atexit if libc provides it.
2565 2017-01-04  Ville Voutilainen  <ville.voutilainen@gmail.com>
2567         Implement 2801, Default-constructibility of unique_ptr.
2568         * include/bits/unique_ptr.h (__uniq_ptr_impl::_DeleterConstraint): New.
2569         (unique_ptr::_DeleterConstraint): Likewise.
2570         (unique_ptr()): Constrain.
2571         (unique_ptr(pointer)): Likewise.
2572         (unique_ptr(nullptr_t)): Likewise.
2573         (unique_ptr<_Tp[], _Dp>::_DeleterConstraint): New.
2574         (unique_ptr<_Tp[], _Dp>::unique_ptr()): Constrain.
2575         (unique_ptr<_Tp[], _Dp>::unique_ptr(_Up)): Likewise.
2576         (unique_ptr<_Tp[], _Dp>::unique_ptr(nullptr_t)): Likewise.
2577         * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust.
2578         * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
2579         * testsuite/20_util/unique_ptr/cons/default.cc: New.
2580         * testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Adjust.
2582 2017-01-04  Pauli Nieminen  <suokkos@gmail.com>
2583             Jonathan Wakely  <jwakely@redhat.com>
2585         PR libstdc++/64735
2586         * acinclude.m4 (GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER): Define.
2587         * config.h.in: Regenerate.
2588         * config/abi/pre/gnu.ver [HAVE_EXCEPTION_PTR_SINCE_GCC46]
2589         (GLIBCXX_3.4.15, GLIBCXX_3.4.21, CXXABI_1.3.3, CXXABI_1.3.5): Make
2590         exports for exception_ptr, nested_exception, and future conditional.
2591         [HAVE_EXCEPTION_PTR_SINCE_GCC46] (GLIBCXX_3.4.23, CXXABI_1.3.11): Add
2592         exports for exception_ptr, nested_exception, and future conditional.
2593         * configure: Regenerate.
2594         * configure.ac: Use GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER.
2595         * include/std/future: Remove check for ATOMIC_INT_LOCK_FREE
2596         * libsupc++/eh_atomics.h: New file for internal use only.
2597         (__eh_atomic_inc, __eh_atomic_dec): New.
2598         * libsupc++/eh_ptr.cc (exception_ptr::_M_addref)
2599         (exception_ptr::_M_release) (__gxx_dependent_exception_cleanup)
2600         (rethrow_exception): Use eh_atomics.h reference counting helpers.
2601         * libsupc++/eh_throw.cc (__gxx_exception_cleanup): Likewise.
2602         * libsupc++/eh_tm.cc (free_any_cxa_exception): Likewise.
2603         * libsupc++/exception: Remove check for ATOMIC_INT_LOCK_FREE.
2604         * libsupc++/exception_ptr.h: Likewise.
2605         * libsupc++/guard.cc: Include header for ATOMIC_INT_LOCK_FREE macro.
2606         * libsupc++/nested_exception.cc: Remove check for
2607         ATOMIC_INT_LOCK_FREE.
2608         * libsupc++/nested_exception.h: Likewise.
2609         * src/c++11/future.cc: Likewise.
2610         * testsuite/18_support/exception_ptr/*: Remove atomic builtins checks.
2611         * testsuite/18_support/nested_exception/*: Likewise.
2612         * testsuite/30_threads/async/*: Likewise.
2613         * testsuite/30_threads/future/*: Likewise.
2614         * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
2615         * testsuite/30_threads/packaged_task/*: Likewise.
2616         * testsuite/30_threads/promise/*: Likewise.
2617         * testsuite/30_threads/shared_future/*: Likewise.
2619 2017-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
2621         * doc/xml/manual/documentation_hacking.xml: sourceforge.net now
2622         defaults to https; adjust reference.
2624 2017-01-03  Jonathan Wakely  <jwakely@redhat.com>
2626         PR libstdc++/78956
2627         * include/std/thread (thread(const thread&&)): Add deleted
2628         constructor.
2629         * testsuite/30_threads/thread/cons/lwg2097.cc: New test.
2631         * doc/xml/manual/spine.xml: Update copyright years.
2632         * doc/xml/manual/build_hacking.xml: Fix spelling of libbuilddir.
2633         * doc/xml/manual/test.xml: Likewise.
2634         * doc/html/*: Regenerate.
2636 2017-01-01  Gerald Pfeifer  <gerald@pfeifer.com>
2638         * doc/xml/faq.xml: Update address of C++ ABI link.
2639         * doc/xml/manual/abi.xml: Ditto.
2641 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
2643         Update copyright years.
2645 Copyright (C) 2017 Free Software Foundation, Inc.
2647 Copying and distribution of this file, with or without modification,
2648 are permitted in any medium without royalty provided the copyright
2649 notice and this notice are preserved.