2017-11-20 François Dumont <fdumont@gcc.gnu.org>
[official-gcc.git] / libstdc++-v3 / ChangeLog
blob2a99643feec527b0690c7c123c16cbf86235c15f
1 2017-11-20  François Dumont  <fdumont@gcc.gnu.org>
3         PR libstdc++/80761
4         * include/debug/map.h
5         (std::__debug::map<>::insert_return_type): Define using
6         _Node_insert_return.
7         * include/debug/set.h (std::__debug::set<>::insert_return_type):
8         Likewise.
9         * include/debug/unordered_map:
10         (std::__debug::unordered_map<>::insert_return_type): Likewise.
11         * include/debug/unordered_set:
12         (std::__debug::unordered_set<>::insert_return_type): Likewise.
14 2017-12-18  Ville Voutilainen  <ville.voutilainen@gmail.com>
16         PR libstdc++/68430
17         * testsuite/20_util/is_constructible/68430.cc: New.
19 2017-12-16  Martin Sebor  <msebor@redhat.com>
21         PR tree-optimization/83239
22         * include/bits/vector.tcc (vector::_M_default_append): Assert
23         invariant to generate better code.
25 2017-12-14  Jonathan Wakely  <jwakely@redhat.com>
27         PR libstdc++/83279
28         * src/filesystem/std-ops.cc (do_copy_file): Handle sendfile not
29         copying entire file.
31         PR libstdc++/68519
32         * include/std/condition_variable (condition_variable::wait_for):
33         Convert duration to native clock's duration before addition.
34         * testsuite/30_threads/condition_variable/members/68519.cc: New test.
36         PR libstdc++/83427
37         * include/bits/refwrap.h (_Maybe_unary_or_binary_function): Move here
38         from <bits/std_function.h>.
39         (_Mem_fn_traits_base, _Mem_fn_traits): Move here, from <functional>.
40         (_Weak_result_type_impl, _Reference_wrapper_base): Deduce noexcept
41         for function types. Remove partial specializations for member
42         functions.
43         (_Weak_result_type_impl): Remove unused partial specializations for
44         non-referenceable function types and for references to functions.
45         (_Weak_result_type_memfun, _Reference_wrapper_base_memfun): New
46         helpers to handle member functions via _Mem_fn_traits.
47         (_Weak_result_type, reference_wrapper): Derive from new helpers.
48         * include/bits/std_function.h (_Maybe_unary_or_binary_function): Move
49         to <bits/refwrap.h>.
50         * include/std/functional (_Pack, _AllConvertible, _NotSame): Remove.
51         (_Mem_fn_traits_base, _Mem_fn_traits): Move to <bits/refwrap.h>.
52         * testsuite/20_util/bind/83427.cc: New test.
53         * testsuite/20_util/bind/refqual.cc: Add noexcept to functions and
54         check for weak result types.
55         * testsuite/20_util/reference_wrapper/83427.cc: New test.
57         * testsuite/26_numerics/complex/inserters_extractors/char/dr2714.cc:
58         Add tests using noskipws.
60         * testsuite/26_numerics/complex/dr2714.cc: Move to ...
61         * testsuite/26_numerics/complex/inserters_extractors/char/dr2714.cc:
62         ... Here. Remove duplicate header and dg-options. Check first invalid
63         character gets putback. Remove wchar_t test.
65 2017-12-13  Jonathan Wakely  <jwakely@redhat.com>
67         PR libstdc++/59568
68         * include/std/complex (operator>>): Implement proposed resolution to
69         LWG 2714. Use putback if and only if a character has been successfully
70         extracted but isn't a delimiter. Use ctype::widen and traits::eq when
71         testing if extracted characters match delimiters.
72         * testsuite/26_numerics/complex/dr2714.cc: New test.
74 2017-12-12  Jonathan Wakely  <jwakely@redhat.com>
76         PR libstdc++/83395
77         * include/std/type_traits (__is_invocable_impl): Remove partial
78         specialization for INVOKE<void> and restore is_void<R> check in
79         primary template.
80         (__is_nt_invocable_impl): Likewise.
81         * testsuite/20_util/is_invocable/83395.cc: New test.
82         * testsuite/20_util/is_nothrow_invocable/83395.cc: New test.
84 2017-12-07  David Edelsohn  <dje.gcc@gmail.com>
86         PR libstdc++/83120
87         * testsuite/ext/special_functions/hyperg/check_value.cc: Add
88         -ffp-contract=off. Add -ffloat-store for m68* and ia32.
89         * testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/check_value.cc: Same.
91 2017-12-07  Martin Sebor  <msebor@redhat.com>
93         PR c/81544
94         * include/ext/mt_allocator.h (_M_destroy_thread_key): Remove
95         attribute const.
97 2017-12-05  Jason Merrill  <jason@redhat.com>
98             Jonathan Wakely  <jwakely@redhat.com>
100         * include/bits/fs_fwd.h (copy, copy_file): Remove noexcept.
101         (permissions): Add noexcept.
102         * include/bits/fs_ops.h (permissions): Add noexcept.
103         * libsupc++/eh_throw.cc (__cxa_init_primary_exception): Add
104         _GLIBCXX_NOTHROW.
106 2017-12-04  Jonathan Wakely  <jwakely@redhat.com>
108         * include/bits/regex_compiler.tcc: Use C-style comment to work around
109         PR preprocessor/61638.
110         (__INSERT_REGEX_MATCHER): Replace GNU extension with __VA_ARGS__.
112         * config/io/basic_file_stdio.h (__basic_file): Remove name of unused
113         parameter.
114         * include/bits/boost_concept_check.h: Add pragmas to disable
115         -Wunused-local-typedef warnings.
116         * include/bits/codecvt.h (codecvt_byname<char16_t, char, mbstate_t>)
117         (codecvt_byname<char32_t, char, mbstate_t>): Remove name of unused
118         parameter.
119         * include/bits/locale_facets_nonio.tcc (time_get::do_get_weekday)
120         (time_get::do_get_monthname, time_get::do_get_year): Remove unused
121         variables.
122         * include/std/bitset (_Base_bitset<0>::_M_getword): Remove name of
123         unused parameter.
124         * include/std/streambuf (_IsUnused): Define.
125         (basic_streambuf::imbue, basic_streambuf::pbackfail)
126         (basic_streambuf::overflow): Add macro to unused parameters.
127         * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error.
129 2017-12-01  Jonathan Wakely  <jwakely@redhat.com>
131         * include/experimental/string_view (basic_string_view::_S_compare):
132         Use value-init so narrowing conversions are not ill-formed.
133         * include/std/string_view (basic_string_view::_S_compare): Likewise.
135         * include/bits/basic_string.h (operator""s): Add pragmas to disable
136         -Wliteral-suffix warnings.
137         * include/experimental/string_view (operator""sv): Likewise.
138         * include/std/chrono (operator""h, operator""min, operator""s)
139         (operator""ms, operator""us, operator""ns): Likewise.
140         * include/std/complex (operator""if, operator""i, operator""il):
141         Likewise.
142         * include/std/string_view (operator""sv): Likewise.
143         * testsuite/20_util/duration/literals/range.cc: Adjust dg-error.
145         * include/bits/locale_facets_nonio.tcc (money_get::_M_extract): Add
146         fallthrough comment.
148         * include/bits/node_handle.h (_Node_handle_common::operator=)
149         (_Node_handle_common::_M_swap): Add braces around debug assertions.
151         * include/ext/ropeimpl.h (rope::_S_dump): Use const char*.
153         * libsupc++/nested_exception.h (__throw_with_nested_impl): Add
154         noreturn attribute.
156         * include/bits/regex_executor.tcc (_Executor::_M_rep_once_more):
157         Remove semi-colon after function body.
158         * include/bits/uniform_int_dist.h (_Power_of_2): Likewise.
160         * include/tr1/modified_bessel_func.tcc (__airy): Use value-init not
161         list-init.
163         * include/std/type_traits (integral_constant): Make member functions
164         noexcept (LWG 2346).
165         * include/std/utility (integer_sequence): Likewise.
167 2017-11-30  Jonathan Wakely  <jwakely@redhat.com>
169         PR libstdc++/65927
170         * include/bits/locale_facets_nonio.h (__timepunct::_M_am_pm_format):
171         Remove statement with no effect.
173 2017-11-30  Glen Joseph Fernandes  <glenjofe@gmail.com>
175         * include/bits/ptr_traits.h (__to_address, to_address): Move static
176         assertion.
177         * testsuite/20_util/to_address/1_neg.cc: New test.
179 2017-11-30  Jonathan Wakely  <jwakely@redhat.com>
181         PR libstdc++/83226
182         * include/bits/node_handle.h (_Node_handle::__pointer): Avoid forming
183         pointer-to-reference types.
184         * testsuite/23_containers/map/modifiers/insert/83226.cc: New test.
186 2017-11-29  John David Anglin  <danglin@gcc.gnu.org>
188         * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
190 2017-11-29  David Malcolm  <dmalcolm@redhat.com>
192         * testsuite/20_util/duration/literals/range.cc: Update expected
193         line of a static_assert failure.
195 2017-11-28  Glen Joseph Fernandes  <glenjofe@gmail.com>
197         * include/bits/ptr_traits.h (to_address): Implement to_address.
198         * testsuite/20_util/to_address/1.cc: New test.
200 2017-11-27  Stephan Bergmann  <sbergman@redhat.com>
202         * include/std/string_view (basic_string_view::find_first_of): Add
203         missing noexcept.
205         * include/bits/unordered_map.h (unordered_map): Fix deduction guide.
206         * include/debug/unordered_map (unordered_map): Likewise.
208 2017-11-23  Jonathan Wakely  <jwakely@redhat.com>
210         * libsupc++/new (launder): Add nodiscard attribute.
211         * testsuite/18_support/launder/nodiscard.cc: New test.
213         * include/bits/fs_path.h (path::empty): Add nodiscard attribute.
214         * include/bits/range_access.h (empty): Likewise.
215         * include/std/string_view (basic_string_view::empty): Likewise.
216         * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc: New
217         test.
218         * testsuite/24_iterators/range_access_cpp17_neg.cc: New test.
219         * testsuite/27_io/filesystem/path/query/empty_neg.cc: New test.
221         PR libstdc++/83134
222         * include/std/type_traits (__not_): Explicitly convert to bool.
223         * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error.
224         * testsuite/20_util/logical_traits/83134.cc: New test.
225         * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
226         dg-error.
227         * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
228         Likewise.
230 2017-11-22  Jonathan Wakely  <jwakely@redhat.com>
232         PR go/83102
233         * include/bits/stl_tree.h (_Rb_tree): Relax invocable checks for
234         comparison object pre-C++17.
236 2017-11-21  Jonathan Wakely  <jwakely@redhat.com>
238         PR libstdc++/48101
239         * include/bits/allocator.h (allocator<const _Tp>)
240         (allocator<volatile _Tp>, allocator<const volatile _Tp>): Add partial
241         specializations.
242         * include/bits/forward_list.h (forward_list): Add static assertions.
243         * include/bits/hashtable.h (__cache_default): Use
244         __is_nothrow_invocable instead of __is_noexcept_hash.
245         (_Hashtable): Add static assertions.
246         * include/bits/hashtable_policy.h (__is_noexcept_hash): Remove.
247         * include/bits/stl_deque.h (deque): Add static assertions.
248         * include/bits/stl_function.h (_Identity<const _Tp>): Add partial
249         specialization.
250         * include/bits/stl_list.h (list): Add static assertions.
251         * include/bits/stl_map.h (map): Likewise.
252         * include/bits/stl_multimap.h (multimap): Likewise.
253         * include/bits/stl_multiset.h (multiset): Likewise.
254         * include/bits/stl_set.h (set): Likewise.
255         * include/bits/stl_tree.h (_Rb_tree): Likewise.
256         * include/bits/stl_vector.h (vector): Likewise.
257         * include/bits/unordered_map.h (unordered_map, unordered_multimap):
258         Use typename instead of class in template-parameter-list and remove
259         spaces.
260         * include/bits/unordered_set.h (unordered_set, unordered_multiset):
261         Likewise.
262         * testsuite/23_containers/deque/48101-2_neg.cc: New test.
263         * testsuite/23_containers/deque/48101_neg.cc: New test.
264         * testsuite/23_containers/forward_list/48101-2_neg.cc: New test.
265         * testsuite/23_containers/forward_list/48101_neg.cc: New test.
266         * testsuite/23_containers/list/48101-2_neg.cc: New test.
267         * testsuite/23_containers/list/48101_neg.cc: New test.
268         * testsuite/23_containers/map/48101-2_neg.cc: New test.
269         * testsuite/23_containers/map/48101_neg.cc: New test.
270         * testsuite/23_containers/map/operations/31440.cc: Fix comparison
271         object to have const-qualified call operator.
272         * testsuite/23_containers/multimap/48101-2_neg.cc: New test.
273         * testsuite/23_containers/multimap/48101_neg.cc: New test.
274         * testsuite/23_containers/multiset/48101-2_neg.cc: New test.
275         * testsuite/23_containers/multiset/48101_neg.cc: New test.
276         * testsuite/23_containers/set/48101-2_neg.cc: New test.
277         * testsuite/23_containers/set/48101_neg.cc: New test.
278         * testsuite/23_containers/unordered_map/48101-2_neg.cc: New test.
279         * testsuite/23_containers/unordered_map/48101_neg.cc: New test.
280         * testsuite/23_containers/unordered_multimap/48101-2_neg.cc: New test.
281         * testsuite/23_containers/unordered_multimap/48101_neg.cc: New test.
282         * testsuite/23_containers/unordered_multiset/48101-2_neg.cc: New test.
283         * testsuite/23_containers/unordered_multiset/48101_neg.cc: New test.
284         * testsuite/23_containers/unordered_set/48101-2_neg.cc: New test.
285         * testsuite/23_containers/unordered_set/48101_neg.cc: New test.
286         * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
287         dg-error line number.
288         * testsuite/23_containers/vector/48101-2_neg.cc: New test.
289         * testsuite/23_containers/vector/48101_neg.cc: New test.
291 2017-11-21  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
293         * doc/xml/manual/using.xml (manual.intro.using.macros): Move
294         variablelist element at the end of its list.
296 2017-11-21  Sebastian Huber  <sebastian.huber@embedded-brains.de>
298         * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Add rtems*.
299         (GLIBCXX_ENABLE_FILESYSTEM_TS): Likewise.
300         * configure: Regenerate.
302 2017-11-20  François Dumont  <fdumont@gcc.gnu.org>
304         * include/bits/streambuf_iterator.h (istreambuf_iterator<>): Declare
305         std::advance for istreambuf_iterator of char types to be friend.
306         (std::advance(istreambuf_iterator&, _Distance)): New overload.
307         * include/std/streambuf (basic_streambuf<>): Declare std::advance for
308         istreambuf_iterator of char types to be friend.
309         * testsuite/22_locale/money_get/get/char/9.cc: Have
310         istreambuf_iterator created on the fly when calling money_get<>::get.
311         * testsuite/22_locale/money_get/get/wchar_t/9.cc: Likewise.
312         * testsuite/24_iterators/istreambuf_iterator/debug/1_neg.cc: New.
313         * testsuite/24_iterators/istreambuf_iterator/debug/2_neg.cc: New.
314         * testsuite/25_algorithms/advance/istreambuf_iterators/char/1.cc: New.
315         * testsuite/25_algorithms/advance/istreambuf_iterators/char/1_neg.cc:
316         New.
317         * testsuite/25_algorithms/advance/istreambuf_iterators/char/2.cc: New.
318         * testsuite/25_algorithms/advance/istreambuf_iterators/char/2_neg.cc:
319         New.
320         * testsuite/25_algorithms/advance/istreambuf_iterators/char/3_neg.cc:
321         New.
322         * testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/1.cc:
323         New.
324         * testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/1_neg.cc:
325         New.
326         * testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/2.cc:
327         New.
328         * testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/2_neg.cc:
329         New.
330         * testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/3_neg.cc:
331         New.
332         * testsuite/25_algorithms/find/istreambuf_iterators/char/2.cc: Leverage
333         on std::advance overload.
334         * testsuite/25_algorithms/find/istreambuf_iterators/wchar_t/2.cc:
335         Likewise.
337 2017-11-20  Jonathan Wakely  <jwakely@redhat.com>
339         * testsuite/special_functions/18_riemann_zeta/check_value.cc: Fix
340         duplicate dg-options directive.
341         * testsuite/tr1/5_numerical_facilities/special_functions/
342         20_riemann_zeta/check_value_neg.cc: Likewise.
344 2017-11-20  Ville Voutilainen  <ville.voutilainen@gmail.com>
346         Implement LWG 2353
347         * include/bits/stl_iterator_base_funcs.h (next):
348         Use InputIterator instead of ForwardIterator.
349         * testsuite/24_iterators/operations/lwg2353.cc: New.
350         * testsuite/24_iterators/operations/next_neg.cc: Remove.
352 2017-11-18  Edward Smith-Rowland  <3dw4rd@verizon.net>
354         PR libstdc++/pr66689 - comp_ellint_3 and ellint_3 return garbage values
355         * include/tr1/ell_integral.tcc: Correct the nu sign convention
356         in ellint_3 and comp_ellint_3.
357         * testsuite/tr1/5_numerical_facilities/special_functions/
358         06_comp_ellint_3/check_value.cc: Regen with correct values.
359         * testsuite/tr1/5_numerical_facilities/special_functions/
360         14_ellint_3/check_value.cc: Ditto.
361         * testsuite/special_functions/06_comp_ellint_3/check_value.cc: Ditto.
362         * testsuite/special_functions/13_ellint_3/check_value.cc: Ditto.
363         * testsuite/tr1/5_numerical_facilities/special_functions/
364         01_assoc_laguerre/check_value.cc: Regen.
365         * testsuite/tr1/5_numerical_facilities/special_functions/
366         02_assoc_legendre/check_value.cc: Regen.
367         * testsuite/tr1/5_numerical_facilities/special_functions/
368         03_beta/check_value.cc: Regen.
369         * testsuite/tr1/5_numerical_facilities/special_functions/
370         04_comp_ellint_1/check_value.cc: Regen.
371         * testsuite/tr1/5_numerical_facilities/special_functions/
372         05_comp_ellint_2/check_value.cc: Regen.
373         * testsuite/tr1/5_numerical_facilities/special_functions/
374         07_conf_hyperg/check_value.cc: Regen.
375         * testsuite/tr1/5_numerical_facilities/special_functions/
376         08_cyl_bessel_i/check_value.cc: Regen.
377         * testsuite/tr1/5_numerical_facilities/special_functions/
378         09_cyl_bessel_j/check_value.cc: Regen.
379         * testsuite/tr1/5_numerical_facilities/special_functions/
380         10_cyl_bessel_k/check_value.cc: Regen.
381         * testsuite/tr1/5_numerical_facilities/special_functions/
382         11_cyl_neumann/check_value.cc: Regen.
383         * testsuite/tr1/5_numerical_facilities/special_functions/
384         12_ellint_1/check_value.cc: Regen.
385         * testsuite/tr1/5_numerical_facilities/special_functions/
386         13_ellint_2/check_value.cc: Regen.
387         * testsuite/tr1/5_numerical_facilities/special_functions/
388         15_expint/check_value_neg.cc: Regen.
389         * testsuite/tr1/5_numerical_facilities/special_functions/
390         16_hermite/check_value.cc: Regen.
391         * testsuite/tr1/5_numerical_facilities/special_functions/
392         17_hyperg/check_value.cc: Regen.
393         * testsuite/tr1/5_numerical_facilities/special_functions/
394         18_laguerre/check_value.cc: Regen.
395         * testsuite/tr1/5_numerical_facilities/special_functions/
396         19_legendre/check_value.cc: Regen.
397         * testsuite/tr1/5_numerical_facilities/special_functions/
398         20_riemann_zeta/check_value_neg.cc: Regen.
399         * testsuite/tr1/5_numerical_facilities/special_functions/
400         21_sph_bessel/check_value.cc: Regen.
401         * testsuite/tr1/5_numerical_facilities/special_functions/
402         22_sph_legendre/check_value.cc: Regen.
403         * testsuite/tr1/5_numerical_facilities/special_functions/
404         23_sph_neumann/check_value.cc: Regen.
405         * testsuite/ext/special_functions/conf_hyperg/check_value.cc: Regen.
406         * testsuite/ext/special_functions/hyperg/check_value.cc: Regen.
407         * testsuite/special_functions/01_assoc_laguerre/check_value.cc: Regen.
408         * testsuite/special_functions/02_assoc_legendre/check_value.cc: Regen.
409         * testsuite/special_functions/03_beta/check_value.cc: Regen.
410         * testsuite/special_functions/04_comp_ellint_1/check_value.cc: Regen.
411         * testsuite/special_functions/05_comp_ellint_2/check_value.cc: Regen.
412         * testsuite/special_functions/07_cyl_bessel_i/check_value.cc: Regen.
413         * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: Regen.
414         * testsuite/special_functions/09_cyl_bessel_k/check_value.cc: Regen.
415         * testsuite/special_functions/10_cyl_neumann/check_value.cc: Regen.
416         * testsuite/special_functions/11_ellint_1/check_value.cc: Regen.
417         * testsuite/special_functions/12_ellint_2/check_value.cc: Regen.
418         * testsuite/special_functions/14_expint/check_value.cc: Regen.
419         * testsuite/special_functions/15_hermite/check_value.cc: Regen.
420         * testsuite/special_functions/16_laguerre/check_value.cc: Regen.
421         * testsuite/special_functions/17_legendre/check_value.cc: Regen.
422         * testsuite/special_functions/18_riemann_zeta/check_value.cc: Regen.
423         * testsuite/special_functions/19_sph_bessel/check_value.cc: Regen.
424         * testsuite/special_functions/20_sph_legendre/check_value.cc: Regen.
425         * testsuite/special_functions/21_sph_neumann/check_value.cc: Regen.
426         * testsuite/tr1/5_numerical_facilities/special_functions/
427         06_comp_ellint_3/pr66689.cc: New.
428         * testsuite/tr1/5_numerical_facilities/special_functions/
429         14_ellint_3/pr66689.cc: New.
430         * testsuite/special_functions/06_comp_ellint_3/pr66689.cc: New.
431         * testsuite/special_functions/13_ellint_3/pr66689.cc: New.
433 2017-11-18  Edward Smith-Rowland  <3dw4rd@verizon.net>
434         Expose Airy functions as an extenaion.
435         * include/bits/specfun.h: Expose airy_ai and airy_bi.
436         * include/tr1/modified_bessel_func.tcc: Treat NaN and inf arg, return.
437         * testsuite/ext/special_functions/airy_ai/check_nan.cc: New.
438         * testsuite/ext/special_functions/airy_ai/check_value.cc: New.
439         * testsuite/ext/special_functions/airy_ai/compile.cc: New.
440         * testsuite/ext/special_functions/airy_bi/check_nan.cc: New.
441         * testsuite/ext/special_functions/airy_bi/check_value.cc: New.
442         * testsuite/ext/special_functions/airy_bi/compile.cc: New.
444 2017-11-17  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
446         * acinclude.m4: Add cet.m4.
447         * configure.ac: Set CET_FLAGS. Update EXTRA_CFLAGS,
448         EXTRA_CXX_FLAGS.
449         * libsupc++/Makefile.am: Use Add EXTRA_CFLAGS.
450         * Makefile.in: Regenerate.
451         * configure: Likewise.
452         * doc/Makefile.in: Likewise.
453         * include/Makefile.in: Likewise.
454         * libsupc++/Makefile.in: Likewise.
455         * po/Makefile.in: Likewise.
456         * python/Makefile.in: Likewise.
457         * src/Makefile.in: Likewise.
458         * src/c++11/Makefile.in: Likewise.
459         * src/c++98/Makefile.in: Likewise.
460         * src/filesystem/Makefile.in: Likewise.
461         * testsuite/Makefile.in: Likewise.
463 2017-11-17  Jonathan Wakely  <jwakely@redhat.com>
465         PR libstdc++/83025
466         * include/std/fstream (basic_filebuf::_If_path): Move to
467         namespace-scope and rename to _If_fs_path.
468         (basic_filebuf::open): Use new name.
469         (basic_ifstream(_Path, ios::openmode))
470         (basic_ifstream::open(_Path, ios::openmode))
471         (basic_ofstream(_Path, ios::openmode))
472         (basic_ofstream::open(_Path, ios::openmode))
473         (basic_fstream(_Path, ios::openmode))
474         (basic_fstream::open(_Path, ios::openmode)): Use _If_fs_path.
475         * testsuite/27_io/basic_filebuf/open/char/path.cc: Test with filename
476         as non-const char*.
477         * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
478         * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
479         * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
480         * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
481         * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
482         * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
485 2017-11-17  Marc Glisse  <marc.glisse@inria.fr>
487         * include/bits/vector.tcc (vector::_M_realloc_insert): Cache old
488         values before the allocation.
490 2017-11-16  Jonathan Wakely  <jwakely@redhat.com>
492         * include/std/future (shared_future): Add noexcept to copy constructor
493         and copy-assignment operator (LWG 2799).
495 2017-11-15  Ville Voutilainen  <ville.voutilainen@gmail.com>
497         Fix gcd breakage.
498         * include/std/numeric (gcd): Use remove_cv_t, not remove_cv.
500 2017-11-15  Jonathan Wakely  <jwakely@redhat.com>
502         * testsuite/27_io/filesystem/iterators/directory_iterator.cc: Leave
503         error_code unset.
504         * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
505         Check for past-the-end before dereferencing.
506         * testsuite/experimental/filesystem/iterators/
507         recursive_directory_iterator.cc: Likewise.
509         * include/bits/range_access.h (size, empty, data): Add conditional
510         noexcept to generic overloads.
512 2017-11-14  Ville Voutilainen  <ville.voutilainen@gmail.com>
514         Implement LWG 2733 and LWG 2759
515         * include/experimental/numeric (gcd): Reject cv-qualified bool.
516         (lcm): Likewise.
517         * include/std/numeric (gcd): Likewise.
518         (lcm): Likewise.
519         * testsuite/26_numerics/gcd/gcd_neg.cc: Add tests and adjust.
520         * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
522 2017-11-14  Jonathan Wakely  <jwakely@redhat.com>
524         * include/bits/locale_conv.h (wbuffer_convert::_M_conv_get): Fix typo.
525         * testsuite/22_locale/conversions/buffer/3.cc: New test.
527 2017-11-10  Jonathan Wakely  <jwakely@redhat.com>
529         * testsuite/util/testsuite_tr1.h (ThrowMoveConsClass): Use noexcept.
531         PR libstdc++/82917
532         * include/std/fstream (basic_ifstream::open, basic_ofstream::open)
533         (basic_fstream::open): Fix missing return.
535 2017-11-07  Jonathan Wakely  <jwakely@redhat.com>
537         * src/filesystem/ops-common.h (make_file_type) [S_ISSOCK]: Only use
538         S_ISSOCK when defined.
540 2017-11-06  François Dumont  <fdumont@gcc.gnu.org>
542         * testsuite/libstdc++-prettyprinters/tr1.cc:  Compile with -O0.
544 2017-11-06  Martin Liska  <mliska@suse.cz>
546         * testsuite/27_io/basic_fstream/cons/char/path.cc (main):
547           Return a value for functions with non-void return type,
548           or change type to void, or add -Wno-return-type for test.
549         * testsuite/27_io/basic_ifstream/cons/char/path.cc (main):
550         Likewise.
551         * testsuite/27_io/basic_ofstream/open/char/path.cc (main):
552         Likewise.
554 2017-11-06  Paolo Carlini  <paolo.carlini@oracle.com>
556         * testsuite/20_util/optional/cons/deduction.cc: Avoid -Wreturn-type
557         warnings.
558         * testsuite/20_util/pair/cons/deduction.cc: Likewise.
559         * testsuite/20_util/pair/traits.cc: Likewise.
560         * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
561         * testsuite/20_util/variant/compile.cc: Likewise.
562         * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
563         * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
564         Likewise.
566 2017-11-05  Gerald Pfeifer  <gerald@pfeifer.com>
568         * doc/xml/manual/abi.xml: Move docs.oracle.com references to https.
570 2017-11-03  Jonathan Wakely  <jwakely@redhat.com>
572         * include/std/type_traits (endian): Define new enumeration type.
573         * testsuite/20_util/endian/1.cc: New test.
575         * include/bits/node_handle.h (_Node_insert_return::get): Remove, as
576         per P0508R0.
578 2017-11-01  François Dumont  <fdumont@gcc.gnu.org>
580         * python/libstdcxx/v6/printers.py (StdExpAnyPrinter.__init__): Strip
581         typename versioned namespace before the substitution.
582         (StdExpOptionalPrinter.__init__): Likewise.
583         (StdVariantPrinter.__init__): Likewise.
584         (Printer.add_version): Inject versioned namespace after std or
585         __gnu_cxx.
586         (build_libstdcxx_dictionary): Adapt add_version usages, always pass
587         namespace first and symbol second.
589 2017-11-01  Jonathan Wakely  <jwakely@redhat.com>
591         PR libstdc++/82777
592         * src/filesystem/std-path.cc (path::lexically_normal): Remove dot-dot
593         elements correctly.
594         * testsuite/27_io/filesystem/path/generation/normal.cc: Add testcase.
595         * testsuite/util/testsuite_fs.h (compare_paths): Improve exception
596         text.
598 2017-10-30  Jonathan Wakely  <jwakely@redhat.com>
600         * include/Makefile.am (stamp-bits-sup): Do not create broken symlink
601         to stamp-bits.
602         * include/Makefile.in: Regenerate.
604         * include/std/fstream (basic_ifstream, basic_ofstream, basic_fstream):
605         Remove outdated comments about calling c_str() to create a file stream
606         from a std::string.
607         (basic_ofstream::basic_ofstream, basic_ofstream::open): Remove
608         redundant ios_mode::trunc bits from default arguments and comments.
610         * doc/xml/faq.xml: Adjust "What is libstdc++?" answer slightly.
612         * include/bits/hashtable_policy.h: Include <tuple>.
613         * include/std/unordered_map: Only include <bits/stl_pair.h> instead
614         of <utility> and <tuple>.
615         * include/std/unordered_set: Likewise.
617 2017-10-30  Ville Voutilainen  <ville.voutilainen@gmail.com>
619         Implement LWG 2485
620         * include/debug/array (get(const array<_Tp, _Nm>&&)): New.
621         * include/std/array (get(const array<_Tp, _Nm>&&)): Likewise.
622         * include/std/tuple (get(const tuple<_Elements...>&&)): Likewise.
623         (get(const tuple<_Types...>&&)): Likewise.
624         * include/std/utility
625         (__pair_get::__const_move_get(const std::pair<_Tp1, _Tp2>&&)):
626         Likewise.
627         (get(const std::pair<_Tp1, _Tp2>&&)): Likewise.
628         (get(const pair<_Tp, _Up>&&)): Likewise.
629         (get(const pair<_Up, _Tp>&&)): Likewise.
630         * testsuite/20_util/pair/astuple/get.cc: Add tests for
631         new overloads.
632         * testsuite/20_util/pair/astuple/get_by_type.cc: Likewise.
633         * testsuite/20_util/tuple/element_access/get2.cc: Likewise.
634         * testsuite/20_util/tuple/element_access/get2_by_type.cc: Likewise.
635         * testsuite/23_containers/array/tuple_interface/get.cc: Likewise.
636         * testsuite/23_containers/array/tuple_interface/tuple_element_debug_neg.cc:
637         Adjust.
638         * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
639         Likewise.
641 2017-10-27  Jonathan Wakely  <jwakely@redhat.com>
643         * include/bits/node_handle.h (_Node_insert_return::get): Avoid
644         use of std::tie and std::get.
646         * include/Makefile.am: Put headers in alphabetical order.
647         * include/Makefile.in: Regenerate.
649         * include/bits/fs_dir.h (directory_iterator): Remove noexcept from
650         constructors and increment member (LWG 3013).
651         (recursive_directory_iterator): Likewise.
652         * include/bits/fs_ops.h (copy, copy_file, create_directories)
653         (is_empty, remove_all): Remove noexcept (LWG 3013 and LWG 3014).
654         * src/filesystem/std-dir.cc (directory_iterator::increment)
655         (recursive_directory_iterator::increment): Remove noexcept.
656         * src/filesystem/std-ops.cc (copy, copy_file, create_directories)
657         (is_empty, remove_all): Remove noexcept
659         * include/bits/fs_dir.h (file_status): Make default constructor
660         non-explicit (LWG 2787).
661         * testsuite/27_io/filesystem/file_status/1.cc: New test.
662         * testsuite/experimental/filesystem/file_status/1.cc: New test.
664         * include/std/fstream (basic_filebuf::_If_path): New SFINAE helper.
665         (basic_filebuf::open<Path>(const Path&, const ios_base::openmode&))
666         (basic_ifstream<Path>(const Path&, const ios_base::openmode&))
667         (basic_ifstream::open<Path>(const Path&, const ios_base::openmode&))
668         (basic_ofstream<Path>(const Path&, const ios_base::openmode&))
669         (basic_ofstream::open<Path>(const Path&, const ios_base::openmode&))
670         (basic_fstream<Path>(const Path&, const ios_base::openmode&))
671         (basic_fstream::open<Path>(const Path&, const ios_base::openmode&)):
672         New constructors and member functions.
673         * testsuite/27_io/basic_filebuf/open/char/path.cc: New test.
674         * testsuite/27_io/basic_fstream/cons/char/path.cc: New test.
675         * testsuite/27_io/basic_fstream/open/char/path.cc: New test.
676         * testsuite/27_io/basic_ifstream/cons/char/path.cc: New test.
677         * testsuite/27_io/basic_ifstream/open/char/path.cc: New test.
678         * testsuite/27_io/basic_ofstream/cons/char/path.cc: New test.
679         * testsuite/27_io/basic_ofstream/open/char/path.cc: New test.
681         * include/bits/fs_path.h (path::format): Define new enumeration type.
682         (path(string_type&&), path<Source>(const Source&))
683         (path<InputIterator>(InputIterator, InputIterator))
684         (path<Source>(const Source&, const locale&))
685         (path<InputIterator>(InputIterator, InputIterator, const locale&)):
686         Add format parameter.
687         * testsuite/27_io/filesystem/path/construct/format.cc: New test.
689         * include/bits/stl_algo.h (__find_if_not_n, generate_n): Cast to void
690         to ensure overloaded comma not used.
691         * include/bits/stl_algobase.h (__fill_n_a, equal): Likewise.
692         * include/bits/stl_uninitialized.h (__uninitialized_fill_n)
693         (__uninitialized_fill_n_a, __uninitialized_default_n_1)
694         (__uninitialized_default_n_a, __uninitialized_copy_n)
695         (__uninitialized_copy_n_pair): Likewise
696         * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
697         Use test iterator wrappers with overloaded comma operator.
698         * testsuite/25_algorithms/fill_n/1.cc: Likewise.
699         * testsuite/25_algorithms/generate_n/1.cc: New test.
700         * testsuite/25_algorithms/stable_partition/1.cc: New test.
701         * testsuite/util/testsuite_iterators.h (operator,): Add deleted
702         non-member comma operator with iterator wrappers as right operand.
704 2017-10-26  Ville Voutilainen  <ville.voutilainen@gmail.com>
706         Deduction guides for associative containers, debug mode deduction
707         guide fixes.
708         * include/bits/stl_iterator.h (__iter_key_t)
709         (__iter_val_t, __iter_to_alloc_t): New.
710         * include/bits/stl_map.h: Add deduction guides.
711         * include/bits/stl_multimap.h: Likewise.
712         * include/bits/stl_multiset.h: Likewise.
713         * include/bits/stl_set.h: Likewise.
714         * include/bits/unordered_map.h: Likewise.
715         * include/bits/unordered_set.h: Likewise.
716         * include/debug/deque: Likewise.
717         * include/debug/forward_list: Likewise.
718         * include/debug/list: Likewise.
719         * include/debug/map.h: Likewise.
720         * include/debug/multimap.h: Likewise.
721         * include/debug/multiset.h: Likewise.
722         * include/debug/set.h: Likewise.
723         * include/debug/unordered_map: Likewise.
724         * include/debug/unordered_set: Likewise.
725         * include/debug/vector: Likewise.
726         * testsuite/23_containers/map/cons/deduction.cc: New.
727         * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
728         * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
729         * testsuite/23_containers/set/cons/deduction.cc: Likewise.
730         * testsuite/23_containers/unordered_map/cons/deduction.cc: Likewise.
731         * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
732         Likewise.
733         * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
734         Likewise.
735         * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
737 2017-10-25  Jonathan Wakely  <jwakely@redhat.com>
739         * doc/xml/manual/status_cxx2017.xml: Update C++17 status, and
740         information on feature-test macros.
741         * doc/html/*: Regenerate.
743         PR libstdc++/82716
744         * include/std/array (tuple_size, tuple_element): Change class-key
745         from class to struct, to avoid annoying Clang warnings.
747         PR libstdc++/79283
748         * src/filesystem/ops.cc (read_symlink): Handle st_size being zero.
749         * src/filesystem/std-ops.cc (read_symlink): Likewise.
750         (do_copy_file) [!NEED_DO_COPY_FILE]: Avoid multiple definitions.
752         * src/filesystem/std-path.cc (path::lexically_normal): Add missing
753         step to algorithm, for removing dot-dot elements after root-directory.
754         * testsuite/27_io/filesystem/operations/canonical.cc: Use
755         compare_paths for more exhaustive checks.
756         * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
757         * testsuite/27_io/filesystem/path/append/path.cc: Likewise.
758         * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
759         * testsuite/27_io/filesystem/path/concat/strings.cc: Fix comment.
760         * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
761         * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
762         Likewise.
763         * testsuite/27_io/filesystem/path/generation/normal.cc: Use
764         compare_paths for more exhaustive checks. Add extra testcases.
765         * testsuite/27_io/filesystem/path/generation/proximate.cc: Use
766         compare_paths for more exhaustive checks.
767         * testsuite/27_io/filesystem/path/generation/relative.cc: Likewise.
768         * testsuite/27_io/filesystem/path/generic/generic_string.cc: Remove
769         unused header.
770         * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc: Fix
771         comment.
772         * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc: Use
773         compare_paths for more exhaustive checks.
774         * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
775         Likewise.
776         * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
777         Likewise.
778         * testsuite/util/testsuite_fs.h (compare_paths): Also compare native
779         strings.
781         PR libstdc++/82706
782         * testsuite/27_io/filesystem/operations/permissions.cc: Fix test.
784 2017-10-24  François Dumont  <fdumont@gcc.gnu.org>
786         * testsuite/lib/libstdc++.exp (check_v3_target_normal_mode): Add
787         c++config.h include.
788         (check_v3_target_normal_namespace): New.
789         * testsuite/lib/dg-options.exp (dg-require-normal-namespace): New.
790         * testsuite/18_support/headers/limits/synopsis.cc: Add latter.
791         * testsuite/20_util/from_chars/requirements.cc: Likewise.
792         * testsuite/20_util/headers/functional/synopsis.cc: Likewise.
793         * testsuite/20_util/headers/memory/synopsis.cc: Likewise.
794         * testsuite/20_util/headers/utility/synopsis.cc: Likewise.
795         * testsuite/20_util/to_chars/requirements.cc: Likewise.
796         * testsuite/21_strings/headers/string/synopsis.cc: Likewise.
797         * testsuite/22_locale/headers/locale/synopsis.cc: Likewise.
798         * testsuite/23_containers/headers/bitset/synopsis.cc: Likewise.
799         * testsuite/23_containers/headers/deque/synopsis.cc: Likewise.
800         * testsuite/23_containers/headers/forward_list/synopsis.cc: Likewise.
801         * testsuite/23_containers/headers/list/synopsis.cc: Likewise.
802         * testsuite/23_containers/headers/map/synopsis.cc: Likewise.
803         * testsuite/23_containers/headers/queue/synopsis.cc: Likewise.
804         * testsuite/23_containers/headers/set/synopsis.cc: Likewise.
805         * testsuite/23_containers/headers/stack/synopsis.cc: Likewise.
806         * testsuite/23_containers/headers/vector/synopsis.cc: Likewise.
807         * testsuite/23_containers/map/modifiers/erase/abi_tag.cc: Likewise.
808         * testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc: Likewise.
809         * testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc: Likewise.
810         * testsuite/23_containers/set/modifiers/erase/abi_tag.cc: Likewise.
811         * testsuite/24_iterators/headers/iterator/synopsis.cc: Likewise.
812         * testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: Likewise.
813         * testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: Likewise.
814         * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: Likewise.
815         * testsuite/26_numerics/complex/abi_tag.cc: Likewise.
816         * testsuite/26_numerics/headers/complex/synopsis.cc: Likewise.
817         * testsuite/26_numerics/headers/valarray/synopsis.cc: Likewise.
818         * testsuite/27_io/headers/fstream/synopsis.cc: Likewise.
819         * testsuite/27_io/headers/ios/synopsis.cc: Likewise.
820         * testsuite/27_io/headers/istream/synopsis.cc: Likewise.
821         * testsuite/27_io/headers/ostream/synopsis.cc: Likewise.
822         * testsuite/27_io/headers/sstream/synopsis.cc: Likewise.
823         * testsuite/27_io/headers/streambuf/synopsis.cc: Likewise.
825 2017-10-24  Jonathan Wakely  <jwakely@redhat.com>
827         * config/locale/gnu/c_locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Ignore
828         -Wattribute-alias warnings.
829         * src/c++11/istream-inst.cc: Likewise.
830         * src/c++11/locale-inst.cc: Likewise.
831         * src/c++11/ostream-inst.cc: Likewise.
832         * src/c++11/wlocale-inst.cc: Likewise.
833         * src/c++98/hash-long-double-tr1-aux.cc: Likewise.
835         * include/bits/string_view.tcc (find_first_of, find_last_of)
836         (find_first_not_of, find_last_not_of): Add noexcept.
837         * include/std/string_view (basic_string_view(const _CharT*))
838         (basic_string_view(const _CharT*, size_type))
839         (front, back, remove_prefix, remove_suffix, find, rfind)
840         (find_first_of, find_first_not_of): Add noexcept.
841         (at(size_type), _S_compare(size_type, size_type)): Replace conditional
842         expressions with if statements.
843         (copy(_CharT*, size_type, size_type), substr(size_type, size_type)):
844         Use _M_check for length checks.
845         (compare(basic_string_view)): Reformat.
846         (_M_check(size_type, const char)): Add noexcept(false).
847         (_M_limit(size_type, size_type)): Use noexcept not _GLIBCXX_NOEXCEPT.
849         PR libstdc++/82685
850         * include/experimental/string_view (operator""sv): Add noexcept.
851         * include/std/string_view (operator""sv): Likewise.
853 2017-10-23  Jonathan Wakely  <jwakely@redhat.com>
855         * include/Makefile.am: Add new headers for C++17 filesystem library.
856         * include/Makefile.in: Regenerate.
857         * include/bits/fs_dir.h: New header, based on Filesystem TS code in
858         include/experimental/bits directory.
859         * include/bits/fs_fwd.h: Likewise.
860         * include/bits/fs_ops.h: Likewise.
861         * include/bits/fs_path.h: Likewise.
862         * include/experimental/bits/fs_dir.h: Rename Doxygen group.
863         * include/experimental/bits/fs_fwd.h: Likewise.
864         * include/experimental/bits/fs_ops.h: Likewise.
865         * include/experimental/bits/fs_path.h: Likewise.
866         * include/experimental/filesystem (filesystem_error::_M_gen_what):
867         Remove inline definition.
868         * include/precompiled/stdc++.h: Add <filesystem> to precompiled
869         header.
870         * include/std/filesystem: New header.
871         * python/libstdcxx/v6/printers.py: Enable printer for std::filesystem
872         paths.
873         * src/filesystem/Makefile.am: Add new files. Compile as C++17.
874         * src/filesystem/Makefile.in: Regenerate.
875         * src/filesystem/cow-dir.cc: Update comment.
876         * src/filesystem/cow-ops.cc: Likewise.
877         * src/filesystem/cow-path.cc: Likewise.
878         * src/filesystem/cow-std-dir.cc: New file.
879         * src/filesystem/cow-std-ops.cc: New file.
880         * src/filesystem/cow-std-path.cc: New file.
881         * src/filesystem/dir-common.h (_Dir_base, get_file_type): New header
882         for common code.
883         * src/filesystem/dir.cc (_Dir): Derive from _Dir_base.
884         (open_dir): Move to _Dir_base constructor.
885         (get_file_type): Move to dir-common.h.
886         (recurse): Move to _Dir_base::should_recurse.
887         * src/filesystem/ops-common.h: New header for common code.
888         * src/filesystem/ops.cc (is_set, make_file_type, make_file_status)
889         (is_not_found_errno, file_time, do_copy_file): Move to ops-common.h.
890         * src/filesystem/path.cc (filesystem_error::_M_gen_what): Define.
891         * src/filesystem/std-dir.cc: New file, based on Filesystem TS code.
892         * src/filesystem/std-ops.cc: Likewise.
893         * src/filesystem/std-dir.cc: Likewise.
894         * testsuite/27_io/filesystem/iterators/directory_iterator.cc: New
895         test.
896         * testsuite/27_io/filesystem/iterators/pop.cc: New test.
897         * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
898         New test.
899         * testsuite/27_io/filesystem/operations/absolute.cc: New test.
900         * testsuite/27_io/filesystem/operations/canonical.cc: New test.
901         * testsuite/27_io/filesystem/operations/copy.cc: New test.
902         * testsuite/27_io/filesystem/operations/copy_file.cc: New test.
903         * testsuite/27_io/filesystem/operations/create_directories.cc: New
904         test.
905         * testsuite/27_io/filesystem/operations/create_directory.cc: New test.
906         * testsuite/27_io/filesystem/operations/create_symlink.cc: New test.
907         * testsuite/27_io/filesystem/operations/current_path.cc: New test.
908         * testsuite/27_io/filesystem/operations/equivalent.cc: New test.
909         * testsuite/27_io/filesystem/operations/exists.cc: New test.
910         * testsuite/27_io/filesystem/operations/file_size.cc: New test.
911         * testsuite/27_io/filesystem/operations/is_empty.cc: New test.
912         * testsuite/27_io/filesystem/operations/last_write_time.cc: New test.
913         * testsuite/27_io/filesystem/operations/permissions.cc: New test.
914         * testsuite/27_io/filesystem/operations/proximate.cc: New test.
915         * testsuite/27_io/filesystem/operations/read_symlink.cc: New test.
916         * testsuite/27_io/filesystem/operations/relative.cc: New test.
917         * testsuite/27_io/filesystem/operations/remove_all.cc: New test.
918         * testsuite/27_io/filesystem/operations/space.cc: New test.
919         * testsuite/27_io/filesystem/operations/status.cc: New test.
920         * testsuite/27_io/filesystem/operations/symlink_status.cc: New test.
921         * testsuite/27_io/filesystem/operations/temp_directory_path.cc: New
922         test.
923         * testsuite/27_io/filesystem/operations/weakly_canonical.cc: New test.
924         * testsuite/27_io/filesystem/path/append/path.cc: New test.
925         * testsuite/27_io/filesystem/path/assign/assign.cc: New test.
926         * testsuite/27_io/filesystem/path/assign/copy.cc: New test.
927         * testsuite/27_io/filesystem/path/compare/compare.cc: New test.
928         * testsuite/27_io/filesystem/path/compare/path.cc: New test.
929         * testsuite/27_io/filesystem/path/compare/strings.cc: New test.
930         * testsuite/27_io/filesystem/path/concat/path.cc: New test.
931         * testsuite/27_io/filesystem/path/concat/strings.cc: New test.
932         * testsuite/27_io/filesystem/path/construct/copy.cc: New test.
933         * testsuite/27_io/filesystem/path/construct/default.cc: New test.
934         * testsuite/27_io/filesystem/path/construct/locale.cc: New test.
935         * testsuite/27_io/filesystem/path/construct/range.cc: New test.
936         * testsuite/27_io/filesystem/path/construct/string_view.cc: New test.
937         * testsuite/27_io/filesystem/path/decompose/extension.cc: New test.
938         * testsuite/27_io/filesystem/path/decompose/filename.cc: New test.
939         * testsuite/27_io/filesystem/path/decompose/parent_path.cc: New test.
940         * testsuite/27_io/filesystem/path/decompose/relative_path.cc: New
941         test.
942         * testsuite/27_io/filesystem/path/decompose/root_directory.cc: New
943         test.
944         * testsuite/27_io/filesystem/path/decompose/root_name.cc: New test.
945         * testsuite/27_io/filesystem/path/decompose/root_path.cc: New test.
946         * testsuite/27_io/filesystem/path/decompose/stem.cc: New test.
947         * testsuite/27_io/filesystem/path/generation/normal.cc: New test.
948         * testsuite/27_io/filesystem/path/generation/proximate.cc: New test.
949         * testsuite/27_io/filesystem/path/generation/relative.cc: New test.
950         * testsuite/27_io/filesystem/path/generic/generic_string.cc: New test.
951         * testsuite/27_io/filesystem/path/itr/traversal.cc: New test.
952         * testsuite/27_io/filesystem/path/modifiers/clear.cc: New test.
953         * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc: New
954         test.
955         * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc: New
956         test.
957         * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc: New
958         test.
959         * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc: New
960         test.
961         * testsuite/27_io/filesystem/path/modifiers/swap.cc: New test.
962         * testsuite/27_io/filesystem/path/native/string.cc: New test.
963         * testsuite/27_io/filesystem/path/nonmember/hash_value.cc: New test.
964         * testsuite/27_io/filesystem/path/query/empty.cc: New test.
965         * testsuite/27_io/filesystem/path/query/has_extension.cc: New test.
966         * testsuite/27_io/filesystem/path/query/has_filename.cc: New test.
967         * testsuite/27_io/filesystem/path/query/has_parent_path.cc: New test.
968         * testsuite/27_io/filesystem/path/query/has_relative_path.cc: New
969         test.
970         * testsuite/27_io/filesystem/path/query/has_root_directory.cc: New
971         test.
972         * testsuite/27_io/filesystem/path/query/has_root_name.cc: New test.
973         * testsuite/27_io/filesystem/path/query/has_root_path.cc: New test.
974         * testsuite/27_io/filesystem/path/query/has_stem.cc: New test.
975         * testsuite/27_io/filesystem/path/query/is_relative.cc: New test.
976         * testsuite/experimental/filesystem/path/construct/string_view.cc:
977         Define USE_FILESYSTEM_TS.
978         * testsuite/util/testsuite_fs.h: Allow use with C++17 paths as well
979         as Filesystem TS.
981         PR libstdc++/82644
982         * doc/xml/manual/intro.xml: Include new section.
983         * doc/xml/manual/status_cxxis29124.xml: New section on IS 29124
984         status.
985         * include/bits/specfun.h [__STRICT_ANSI__] (hyperg, hypergf, hypergl)
986         (conf_hyperg, conf_hypergf, conf_hypergl): Don't declare.
987         * include/c_compatibility/math.h: Import special functions into
988         global namespace for C++17.
989         * testsuite/26_numerics/headers/cmath/82644.cc: New test.
990         * testsuite/26_numerics/headers/cmath/functions_global_c++17.cc: New
991         test.
993 2017-10-21  Jonathan Wakely  <jwakely@redhat.com>
995         * testsuite/experimental/filesystem/path/itr/traversal.cc: Do not
996         increment past-the-end iterators.
998 2017-10-20  Jonathan Wakely  <jwakely@redhat.com>
1000         * include/std/chrono (__cpp_lib_chrono): Update macro value to
1001         indicate support for P0505R0.
1002         * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: Check
1003         for updated macro.
1005         * include/c_global/cstddef: Define __cpp_lib_byte feature-test macro.
1006         * testsuite/18_support/byte/requirements.cc: Check macro.
1008 2017-10-19  Jonathan Wakely  <jwakely@redhat.com>
1010         * testsuite/experimental/filesystem/iterators/
1011         recursive_directory_iterator.cc: Ensure that error_code arguments are
1012         cleared when required.
1013         * testsuite/experimental/filesystem/operations/create_directory.cc:
1014         Remove redundant check.
1015         * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
1016         Ensure that error_code argument is cleared when required.
1018         * include/experimental/bits/fs_path.h (path::iterator++(int))
1019         (path::iterator--(int)): Fix for paths with only one component.
1020         * testsuite/experimental/filesystem/path/itr/traversal.cc: Test
1021         post-increment and post-decrement.
1023         * doc/xml/manual/status_cxx2017.xml: Update references to C++17
1024         section numbers.
1026         * testsuite/decimal/conversion-to-integral.cc: Use predefined macro
1027         instead of non-standard glibc one.
1029 2017-10-16  François Dumont  <fdumont@gcc.gnu.org>
1031         PR libstdc++/82558
1032         * include/bits/stl_bvector.h (fill): Add iterator offset check.
1033         * testsuite/23_containers/vector/bool/82558.cc: New.
1035 2017-10-13  Jonathan Wakely  <jwakely@redhat.com>
1037         PR libstdc++/82522
1038         * doc/xml/manual/intro.xml: Document LWG 2354 changes.
1039         * include/bits/stl_map.h (map::insert(value_type&&))
1040         (map::insert(const_iterator, value_type&&)): Add overload for rvalues.
1041         * include/bits/stl_multimap.h (multimap::insert(value_type&&))
1042         (multimap::insert(const_iterator, value_type&&)): Likewise.
1043         * include/bits/unordered_map.h (unordered_map::insert(value_type&&))
1044         (unordered_map::insert(const_iterator, value_type&&))
1045         (unordered_multimap::insert(value_type&&))
1046         (unordered_multimap::insert(const_iterator, value_type&&)): Likewise.
1047         * testsuite/23_containers/map/modifiers/insert/dr2354.cc: New test.
1048         * testsuite/23_containers/multimap/modifiers/insert/dr2354.cc: New
1049         test.
1050         * testsuite/23_containers/unordered_map/insert/dr2354.cc: New test.
1051         * testsuite/23_containers/unordered_multimap/insert/dr2354.cc: New
1052         test.
1054         PR libstdc++/82481
1055         * include/std/mutex (call_once): Suppress clang-tidy warnings about
1056         dangling references.
1058 2017-10-10  Jonathan Wakely  <jwakely@redhat.com>
1060         * include/bits/streambuf_iterator.h (istreambuf_iterator::equal):
1061         Update comment about NAD issue.
1063         PR libstdc++/59087
1064         PR libstdc++/82417
1065         * include/c_compatibility/complex.h [!C++98 && __STRICT_ANSI__]: Do
1066         not include C library's <complex.h>.
1067         * testsuite/26_numerics/complex/c99.cc: Depend on __STRICT_ANSI__.
1068         * testsuite/26_numerics/headers/complex.h/std_c++11.h: New test.
1069         * testsuite/26_numerics/headers/complex.h/std_gnu++11.h: New test.
1070         * testsuite/26_numerics/headers/complex.h/std_c++98.h: New test.
1072 2017-10-05  Jonathan Wakely  <jwakely@redhat.com>
1074         * testsuite/20_util/to_chars/1.cc: Add dg-require-string-conversions.
1076 2017-10-04  Petr Ovtchenkov  <ptr@void-ptr.info>
1077             François Dumont  <fdumont@gcc.gnu.org>
1079         * include/bits/streambuf_iterator.h
1080         (istreambuf_iterator<>::operator*()): Do not capture iterator state
1081         in Debug assertion.
1082         (istreambuf_iterator<>::operator++()): Likewise and remove _M_sbuf check.
1083         (istreambuf_iterator<>::operator++(int)): Likewise.
1084         (istreambuf_iterator<>::_M_get()): Remove _M_c assignment.
1085         (istreambuf_iterator<>::_S_is_eof()): New.
1086         (istreambuf_iterator<>::_M_at_eof()): Adapt, use latter.
1087         (find(istreambuf_iterator<>, istreambuf_iterator<>, _CharT)):
1088         Return an iterator with _M_c set to eof to capture streambuf state
1089         on evaluation.
1090         (testsuite/24_iterators/istreambuf_iterator/2.cc): Add checks.
1092 2017-10-03  Jakub Jelinek  <jakub@redhat.com>
1094         * include/std/charconv (__unsigned_least_t): Fix number of closing >s for
1095         !_GLIBCXX_USE_INT128.
1097 2017-10-02  Jonathan Wakely  <jwakely@redhat.com>
1099         * include/Makefile.am: Add new <charconv> header.
1100         * include/Makefile.in: Regenerate.
1101         * include/precompiled/stdc++.h: Include <charconv>.
1102         * include/std/charconv: New file.
1103         (to_chars_result, to_chars, from_chars_result, from_chars): Define.
1104         * testsuite/20_util/from_chars/1.cc: New test.
1105         * testsuite/20_util/from_chars/1_neg.cc: New test.
1106         * testsuite/20_util/from_chars/2.cc: New test.
1107         * testsuite/20_util/from_chars/requirements.cc: New test.
1108         * testsuite/20_util/to_chars/1.cc: New test.
1109         * testsuite/20_util/to_chars/1_neg.cc: New test.
1110         * testsuite/20_util/to_chars/2.cc: New test.
1111         * testsuite/20_util/to_chars/requirements.cc: New test.
1113 2017-09-27  François Dumont  <fdumont@gcc.gnu.org>
1115         * testsuite/22_locale/money_get/get/char/22131.cc: Make test less
1116         istreambuf_iterator implementation dependent.
1117         * testsuite/22_locale/money_get/get/wchar_t/22131.cc: Likewise.
1119 2017-09-25  Uros Bizjak  <ubizjak@gmail.com>
1121         PR c/81854
1122         * src/c++98/complex_io.cc (_GLIBCXX_LDBL_COMPAT): Declare alias
1123         target as a C++ function with no prototype.
1125 2017-09-21  Jonathan Wakely  <jwakely@redhat.com>
1127         * testsuite/25_algorithms/clamp/1.cc: Fix order of arguments and
1128         expected results when using predicate defining reverse order.
1129         * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
1131 2017-09-20  Jonathan Wakely  <jwakely@redhat.com>
1133         PR libstdc++/79162
1134         * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
1135         (basic_string::_If_sv): Remove from the overload set when the
1136         argument is derived from basic_string.
1138         PR libstdc++/79162
1139         * include/bits/basic_string.h (basic_string::_If_sv): Remove from the
1140         overload set when the argument is derived from basic_string.
1141         * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc: New
1142         test.
1143         * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
1144         New test.
1146         * testsuite/24_iterators/range_access_cpp17.cc: Fix order of dg-do
1147         and dg-options directives. Fix invalid test.
1149         PR libstdc++/81469
1150         * libsupc++/exception (uncaught_exception): Deprecate for C++17.
1151         * testsuite/18_support/exception_ptr/62258.cc: Add -Wno-deprecated.
1152         * testsuite/18_support/uncaught_exception/14026.cc: Likewise.
1154         * include/bits/c++config (_GLIBCXX17_DEPRECATED): Define.
1155         * include/bits/functional_hash.h (__hash_base::result_type)
1156         (__hash_base::argument_type): Add _GLIBCXX17_DEPRECATED.
1157         * include/std/optional (hash<optional<T>>::result_type)
1158         (hash<optional<T>>::argument_type): Add deprecated attribute.
1159         (__is_fast_hash<hash<optional<T>>>): Add partial specialization.
1160         * include/std/variant (hash<variant<Types...>>::result_type)
1161         (hash<variant<Types...>>::argument_type): Add deprecated attribute.
1162         (__is_fast_hash<hash<variant<Types...>>>): Add partial specialization.
1164         * libsupc++/exception_ptr.h (copy_exception): Remove deprecated
1165         non-standard function.
1167         PR libstdc++/82262
1168         * include/std/optional (__optional_hash_call_base): Add template
1169         parameter for remove_const_t<_Tp> and use it consistently.
1170         * testsuite/20_util/optional/hash.cc: Test optional<const T>.
1172 2017-09-19  Jonathan Wakely  <jwakely@redhat.com>
1174         PR libstdc++/71500
1175         * include/bits/regex_executor.tcc
1176         (_Backref_matcher<BidIt, regex_traits<C>>::_M_apply): Use
1177         std::__equal4 instead of C++14 4-iterator overloads of std::equal.
1178         * include/bits/stl_algobase.h (__equal4): New functions implementing
1179         4-iterator overloads of std::equal for use in C++11.
1180         (equal(It1, It1, It2, It2), equal(It1, It1, It2, It2, BinaryPred)):
1181         Move function bodies to new __equal4 functions.
1182         * testsuite/28_regex/simple_c++11.cc: New.
1184         PR libstdc++/82254
1185         * include/std/type_traits (__is_invocable): Add partial specialization
1186         for INVOKE<void> case and remove is_void<R> check from partial
1187         specialization for INVOKE<R> case.
1188         (__is_nt_invocable_impl): New helper for is_nothrow_invocable_r.
1189         (is_nothrow_invocable_r): Use __is_nt_invocable_impl.
1190         * testsuite/20_util/is_nothrow_invocable/value.cc: Add tests for
1191         conversions that can throw or fail to convert. Use static assert
1192         strings to explain negative results.
1193         * testsuite/20_util/is_nothrow_invocable/value_ext.cc: Use
1194         is_nothrow_constructible in is_nt_invocable_conv.
1196 2017-09-18  Jonathan Wakely  <jwakely@redhat.com>
1198         PR libstdc++/81468
1199         * testsuite/20_util/duration/cons/dr1177.cc: Fix incorrect test and
1200         improve static assertion messages.
1202         * include/std/utility (_Itup_cat, _Make_integer_sequence): Remove.
1203         (_Build_index_tuple, make_integer_sequence): Use built-in to generate
1204         pack expansion.
1206         PR libstdc++/71187
1207         * include/std/type_traits (__declval): New function to deduce return
1208         type of declval.
1209         (__declval_protector::_delegate): Remove.
1210         (declval): Use __declval instead of add_rvalue_reference and
1211         __declval_protector::__delegate.
1212         * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
1213         lineno.
1214         * testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
1215         Likewise.
1216         * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1217         Likewise.
1219 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
1221         * testsuite/libstdc++-prettyprinters/cxx17.cc: Use -std=c++17 or
1222         -std=gnu++17 instead of -std=c++1z or -std=gnu++1z.  Use c++17 instead
1223         of c++1z and c++17_only instead of c++1z_only.  Adjust expected
1224         diagnostics and comments refering to 1z to 17.
1225         * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
1226         * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
1227         * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
1228         * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Likewise.
1229         * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
1230         Likewise.
1231         * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
1232         * testsuite/18_support/launder/1.cc (test02): Likewise.
1233         * testsuite/18_support/launder/requirements_neg.cc: Likewise.
1234         * testsuite/18_support/launder/requirements.cc: Likewise.
1235         * testsuite/18_support/byte/requirements.cc: Likewise.
1236         * testsuite/18_support/byte/ops.cc: Likewise.
1237         * testsuite/18_support/byte/global_neg.cc: Likewise.
1238         * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
1239         Likewise.
1240         * testsuite/27_io/types/4.cc: Likewise.
1241         * testsuite/25_algorithms/sample/81221.cc: Likewise.
1242         * testsuite/25_algorithms/sample/1.cc: Likewise.
1243         * testsuite/25_algorithms/sample/2.cc: Likewise.
1244         * testsuite/25_algorithms/search/searcher.cc: Likewise.
1245         * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
1246         * testsuite/experimental/filesystem/path/construct/string_view.cc:
1247         Likewise.
1248         * testsuite/24_iterators/range_access_cpp17.cc: Likewise.
1249         * testsuite/24_iterators/container_access.cc: Likewise.
1250         * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Likewise.
1251         * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
1252         * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
1253         * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
1254         * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
1255         * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
1256         * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
1257         * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
1258         * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
1259         * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
1260         * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
1261         * testsuite/20_util/shared_ptr/cons/array.cc: Likewise.
1262         * testsuite/20_util/shared_ptr/observers/array.cc (struct A): Likewise.
1263         * testsuite/20_util/pair/cons/deduction.cc: Likewise.
1264         * testsuite/20_util/variant/deduction.cc: Likewise.
1265         * testsuite/20_util/tuple/78939.cc: Likewise.
1266         * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
1267         * testsuite/20_util/void_t/1.cc: Likewise.
1268         * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: Likewise.
1269         * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
1270         * testsuite/20_util/addressof/requirements/constexpr.cc: Likewise.
1271         * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
1272         * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
1273         Likewise.
1274         * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
1275         Likewise.
1276         * testsuite/20_util/has_unique_object_representations/value.cc:
1277         Likewise.
1278         * testsuite/20_util/time_point/arithmetic/constexpr.cc: Likewise.
1279         * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
1280         * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
1281         * testsuite/20_util/function/cons/deduction.cc: Likewise.
1282         * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
1283         Likewise.
1284         * testsuite/20_util/is_aggregate/requirements/typedefs.cc: Likewise.
1285         * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
1286         Likewise.
1287         * testsuite/20_util/is_aggregate/value.cc: Likewise.
1288         * testsuite/26_numerics/lcm/1.cc: Likewise.
1289         * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
1290         * testsuite/26_numerics/gcd/1.cc: Likewise.
1291         * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
1292         * testsuite/26_numerics/valarray/deduction.cc: Likewise.
1293         * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Likewise.
1294         * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
1295         * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
1296         Likewise.
1297         * testsuite/23_containers/array/cons/deduction.cc: Likewise.
1298         * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
1299         * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
1300         Likewise.
1301         * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
1302         * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
1303         Likewise.
1304         * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
1305         Likewise.
1306         * testsuite/23_containers/list/cons/deduction.cc: Likewise.
1307         * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
1308         Likewise.
1309         * testsuite/23_containers/forward_list/cons/deduction.cc: Likewise.
1310         * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Likewise.
1311         * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
1312         Likewise.
1313         * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
1314         * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
1315         Likewise.
1316         * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
1317         * testsuite/21_strings/basic_string/cons/char/deduction.cc: Likewise.
1318         * testsuite/21_strings/basic_string/cons/char/79162.cc: Likewise.
1319         * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
1320         * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
1321         Likewise.
1322         * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: Likewise.
1323         * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
1324         Likewise.
1325         * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
1326         Likewise.
1327         * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
1328         Likewise.
1329         * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
1330         Likewise.
1331         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
1332         Likewise.
1333         * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
1334         Likewise.
1336 2017-09-13  Jonathan Wakely  <jwakely@redhat.com>
1338         PR libstdc++/81468
1339         * include/std/chrono (__enable_if_is_duration)
1340         (__disable_if_is_duration): New alias templates to simplify SFINAE.
1341         (duration_cast, floor, ceil): Use __enable_if_is_duration.
1342         (duration::__is_float, duration::__is_harmonic): New alias templates
1343         to simplify SFINAE.
1344         (duration::duration(const _Rep2&)): Use _Require, __is_float and
1345         __is_harmonic.
1346         (duration::duration(const duration<_Rep2, _Period2>&)): Likewise.
1347         (__common_rep_type): Remove, replace with ...
1348         (__common_rep_t): New alias template.
1349         (operator*, operator/, operator%): Use __common_rep_t and
1350         __disable_if_is_duration.
1351         (time_point::time_point(const time_point<clock, _Dur2>&)): Add missing
1352         constraint from LWG DR 1177.
1353         * testsuite/20_util/duration/cons/dr1177.cc: New.
1354         * testsuite/20_util/duration/literals/range.cc: Update dg-error line.
1355         * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
1356         * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1357         * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1358         * testsuite/20_util/time_point/cons/81468.cc: New.
1360         * doc/doxygen/mainpage.html: Fix broken URLs.
1362         PR libstdc++/81835
1363         * doc/xml/manual/extensions.xml: Replace unstable URL.
1364         * doc/html/manual/ext_demangling.html: Regenerate.
1365         * libsupc++/cxxabi.h (__cxa_demangle): Fix broken URL.
1367         * include/bits/allocated_ptr.h (__allocated_ptr::get): Use
1368         __to_address.
1369         (__allocated_ptr::_S_raw_ptr): Remove.
1370         * include/bits/forward_list.h (_Fwd_list_base::_M_get_node): Use
1371         __to_address.
1372         * include/bits/hashtable_policy.h (_Hashtable_alloc): Likewise.
1373         * include/bits/ptr_traits.h (__to_address): Define new function
1374         template.
1375         * include/bits/shared_ptr_base.h (__shared_ptr): Use __to_address.
1376         (__shared_ptr::_S_raw_ptr): Remove.
1377         * include/bits/stl_vector.h [__cplusplus >= 201103L]
1378         (vector::_M_data_ptr): Use __to_address.
1379         [__cplusplus < 201103L] (vector::_M_data_ptr): Don't dereference
1380         possibly invalid pointers.
1381         * include/ext/alloc_traits.h (__alloc_traits::construct)
1382         (__alloc_traits::destroy): Use __to_address.
1384 2017-09-12  Jonathan Wakely  <jwakely@redhat.com>
1386         PR libstdc++/79433
1387         * include/Makefile.am: Remove <bits/c++14_warning.h>.
1388         * include/Makefile.in: Regenerate.
1389         * include/bits/c++14_warning.h: Remove.
1390         * include/experimental/algorithm: Do not include <c++14_warning.h>.
1391         * include/experimental/any: Likewise.
1392         * include/experimental/array: Likewise.
1393         * include/experimental/bits/erase_if.h: Likewise.
1394         * include/experimental/bits/lfts_config.h: Likewise.
1395         * include/experimental/bits/shared_ptr.h: Likewise.
1396         * include/experimental/bits/string_view.tcc: Likewise.
1397         * include/experimental/chrono: Likewise.
1398         * include/experimental/deque: Likewise.
1399         * include/experimental/filesystem: Do not include <c++0x_warning.h>.
1400         * include/experimental/forward_list: Do not include <c++14_warning.h>.
1401         * include/experimental/functional: Likewise.
1402         * include/experimental/iterator: Likewise.
1403         * include/experimental/list: Likewise.
1404         * include/experimental/map: Likewise.
1405         * include/experimental/memory: Likewise.
1406         * include/experimental/numeric: Likewise.
1407         * include/experimental/optional: Likewise.
1408         * include/experimental/propagate_const: Likewise.
1409         * include/experimental/ratio: Likewise.
1410         * include/experimental/regex: Likewise.
1411         * include/experimental/set: Likewise.
1412         * include/experimental/string: Likewise.
1413         * include/experimental/string_view: Likewise.
1414         * include/experimental/system_error: Likewise.
1415         * include/experimental/tuple: Likewise.
1416         * include/experimental/type_traits: Likewise.
1417         * include/experimental/unordered_map: Likewise.
1418         * include/experimental/unordered_set: Likewise.
1419         * include/experimental/vector: Likewise.
1420         * testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error
1421         line number.
1422         * testsuite/experimental/array/neg.cc: Likewise.
1423         * testsuite/experimental/propagate_const/assignment/move_neg.cc:
1424         Likewise.
1425         * testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
1426         * testsuite/experimental/propagate_const/requirements2.cc: Likewise.
1427         * testsuite/experimental/propagate_const/requirements3.cc: Likewise.
1428         * testsuite/experimental/propagate_const/requirements4.cc: Likewise.
1429         * testsuite/experimental/propagate_const/requirements5.cc: Likewise.
1431         PR libstdc++/79433
1432         * doc/xml/manual/status_cxx2017.xml: Update feature-test macros.
1433         * doc/html/*: Regenerate.
1434         * include/Makefile.am: Remove <bits/c++17_warning.h>.
1435         * include/Makefile.in: Regenerate.
1436         * include/bits/c++17_warning.h: Remove.
1437         * include/bits/string_view.tcc: Do not include <bits/c++17_warning.h>
1438         for pre-C++17 modes.
1439         * include/std/any: Likewise.
1440         (__cpp_lib_any): Define.
1441         * include/std/mutex (__cpp_lib_scoped_lock): Adjust value as per new
1442         SD-6 draft.
1443         * include/std/numeric (__cpp_lib_gcd_lcm): Define as per new SD-6
1444         draft.
1445         * include/std/optional: Do not include <bits/c++17_warning.h>.
1446         (__cpp_lib_optional): Define.
1447         * include/std/shared_mutex: Do not include <bits/c++14_warning.h>.
1448         * include/std/string_view: Do not include <bits/c++17_warning.h>.
1449         (__cpp_lib_string_view): Define.
1450         * include/std/variant: Do not include <bits/c++17_warning.h>.
1451         (__cpp_lib_variant): Define.
1452         * testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error line
1453         numbers.
1454         * testsuite/26_numerics/gcd/1.cc: Test for __cpp_lib_gcd_lcm.
1455         * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error line
1456         numbers.
1457         * testsuite/26_numerics/lcm/1.cc: Test for __cpp_lib_gcd_lcm.
1458         * testsuite/26_numerics/lcm/lcm_neg.cc: Adjust dg-error line
1459         numbers.
1460         * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Adjust
1461         expected value of __cpp_lib_scoped_lock.
1463         PR libstdc++/70483
1464         * include/experimental/bits/string_view.tcc (basic_string_view::find)
1465         (basic_string_view::rfind, basic_string_view::find_first_of)
1466         (basic_string_view::find_last_of, basic_string_view::find_first_not_of)
1467         (basic_string_view::find_last_not_of): Add constexpr specifier.
1468         * include/experimental/string_view (basic_string_view::remove_prefix)
1469         (basic_string_view::remove_suffix, basic_string_view::swap)
1470         (basic_string_view::compare, basic_string_view::find)
1471         (basic_string_view::rfind, basic_string_view::find_first_of)
1472         (basic_string_view::find_last_of, basic_string_view::find_first_not_of)
1473         (basic_string_view::find_last_not_of, operator==, operator!=)
1474         (operator<, operator>, operator<=, operator>=): Likewise.
1475         * testsuite/experimental/string_view/operations/compare/char/70483.cc:
1476         New.
1478 2017-09-11  Jonathan Wakely  <jwakely@redhat.com>
1480         PR libstdc++/70483
1481         * include/bits/string_view.tcc (basic_string_view::find)
1482         (basic_string_view::rfind, basic_string_view::find_first_of)
1483         (basic_string_view::find_last_of, basic_string_view::find_first_not_of)
1484         (basic_string_view::find_last_not_of): Add constexpr specifier.
1485         * include/std/string_view (basic_string_view::operator=)
1486         (basic_string_view::rbegin, basic_string_view::rend)
1487         (basic_string_view::crbegin, basic_string_view::crend)
1488         (basic_string_view::remove_prefix, basic_string_view::remove_suffix)
1489         (basic_string_view::swap, basic_string_view::compare)
1490         (basic_string_view::find, basic_string_view::rfind)
1491         (basic_string_view::find_first_of, basic_string_view::find_last_of)
1492         (basic_string_view::find_first_not_of)
1493         (basic_string_view::find_last_not_of, basic_string_view::_M_check)
1494         (basic_string_view::_M_limit, operator==, operator!=, operator<)
1495         (operator>, operator<=, operator>=): Likewise.
1496         * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
1497         char/1.cc: Repeat tests in constexpr context.
1498         * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
1499         wchar_t/1.cc: Likewise.
1500         * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
1501         char/1.cc: Likewise.
1502         * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
1503         wchar_t/1.cc: Likewise.
1504         * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
1505         Likewise.
1506         * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
1507         Likewise.
1508         * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
1509         Likewise.
1510         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
1511         Likewise.
1512         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
1513         Likewise.
1514         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
1515         Likewise.
1516         * testsuite/21_strings/basic_string_view/operators/char/2.cc:
1517         Likewise.
1518         * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
1519         Likewise.
1520         * testsuite/21_strings/basic_string_view/range_access/char/1.cc: Test
1521         cbegin, cend, rbegin, rend, crbegin and crend.
1522         * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
1523         Likewise.
1524         * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
1525         Remove trailing whitespace.
1526         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
1527         1.cc: Likewise.
1528         * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
1529         New.
1530         * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
1531         New.
1532         * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
1533         New.
1534         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
1535         2.cc: New.
1537 2017-09-11  Tim Shen  <timshen@google.com>
1539         PR libstdc++/71500
1540         * include/bits/regex_executor.tcc: Support icase in regex_traits<...>
1541         for back reference matches.
1542         * testsuite/28_regex/regression.cc: Test case.
1544 2017-09-11  Jonathan Wakely  <jwakely@redhat.com>
1546         * testsuite/21_strings/basic_string/lwg2946.cc: Adjust for
1547         compatibility with old COW std::string.
1549 2017-09-09  Gerald Pfeifer  <gerald@pfeifer.com>
1551         * doc/xml/manual/allocator.xml: Adjust link for Hoard.
1552         * doc/html/manual/memory.html: Regenerate.
1554 2017-09-04  Daniel Kruegler  <daniel.kruegler@gmail.com>
1556         PR libstdc++/79162
1557         Implement LWG 2946, LWG 2758's resolution missed further corrections
1558         * include/bits/basic_string.h (basic_string::compare): Add missing
1559         required noexcept specifications.
1560         (basic_string): Introduce internal _S_to_string_view and __sv_wrapper
1561         for implicit string_view conversion.
1562         (basic_string::basic_string): Fix explicit string_view conversion by
1563         implicit conversion using _S_to_string_view and __sv_wrapper.
1564         (basic_string): Introduce internal basic_string(__sv_wrapper, Alloc)
1565         constructor.
1566         (basic_string): Fix operator=(T) template by operator=(const T&)
1567         template for uncopyable types (PR 79162).
1568         (basic_string::operator+=, basic_string::append, basic_string::assign)
1569         (basic_string::insert, basic_string::replace, basic_string::find)
1570         (basic_string::rfind, basic_string::find_first_of)
1571         (basic_string::find_last_of, basic_string::find_first_not_of)
1572         (basic_string::find_last_not_of, basic_string::compare): Replace
1573         __sv_type argument by template const T& (LWG 2946) and correct
1574         documentation describing __sv_type argument.
1575         (basic_string::find, basic_string::rfind, basic_string::find_first_of)
1576         (basic_string::find_last_of, basic_string::find_first_not_of)
1577         (basic_string::find_last_not_of, basic_string::compare): Replace
1578         unconditional noexcept specification by conditional noexcept
1579         specification to partially balance the removal of noexcept by LWG 2946.
1580         * testsuite/21_strings/basic_string/79162.cc: New.
1581         * testsuite/21_strings/basic_string/lwg2946.cc: New.
1583 2017-08-31  Jonathan Wakely  <jwakely@redhat.com>
1585         PR c++/82039
1586         * include/ext/new_allocator.h (__gnu_cxx::new_allocator::allocate):
1587         Adjust null pointer constant to avoid warning.
1589 2017-08-24  François Dumont  <fdumont@gcc.gnu.org>
1591         * include/bits/stl_list.h
1592         [!_GLIBCXX_INLINE_VERSION](_List_base<>::_S_distance): Remove.
1593         (_List_impl(_Node_alloc_type&&, _List_impl&&)): New.
1594         (_List_base(_Node_alloc_type&&, _List_base&&)): New, use latter.
1595         [!_GLIBCXX_INLINE_VERSION](_List_base(_Node_alloc_type&&,_List_base&&)):
1596         Remove.
1597         (_List_base(_Node_alloc_type&&)): New.
1598         [!_GLIBCXX_INLINE_VERSION](_List_base<>::_M_distance): Remove.
1599         [!_GLIBCXX_INLINE_VERSION](_List_base<>::_M_node_count): Remove.
1600         (list<>::_M_node_count): New.
1601         (list<>::size()): Adapt to call latter.
1602         (list<>::_S_distance(const_iterator, const_iterator)): New.
1603         (list<>::splice(iterator, list&, const_iterator, const_iterator)):
1604         Adapt to call latter.
1605         (list(list&&, const allocator_type&, true_type)): New.
1606         (list(list&&, const allocator_type&, false_type)): New.
1607         (list(list&&, const allocator_type&)): Adapt to call latters.
1609 2017-08-21  Jonathan Wakely  <jwakely@redhat.com>
1611         PR libstdc++/81912
1612         * include/bits/stl_iterator_base_types.h (__iterator_category): Add
1613         constexpr for C++11 and later.
1614         * testsuite/24_iterators/container_access.cc: Add target selector.
1615         * testsuite/24_iterators/range_access.cc: Fix clause number in
1616         comment.
1617         * testsuite/24_iterators/range_access_cpp14.cc: Likewise.
1618         * testsuite/24_iterators/range_access_cpp17.cc: New.
1620 2017-08-21  Richard Biener  <rguenther@suse.de>
1622         * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Run all
1623         tests with -flto as well if supported.
1625 2017-08-20  Martin Sebor  <msebor@redhat.com>
1627         PR c/81854
1628         * src/c++98/compatibility.cc (_GLIBCXX_3_4_SYMVER): Declare alias
1629         target as a C++ function with no prototype.
1630         (_GLIBCXX_3_4_5_SYMVER): Ditto.
1632 2017-08-20  John David Anglin  <danglin@gcc.gnu.org>
1634         PR testsuite/81056
1635         * testsuite/17_intro/names.cc: Undef 'd' and 'r' on __hpux__.
1637 2017-08-18  Jonathan Wakely  <jwakely@redhat.com>
1639         * include/bits/hashtable_policy.h (_ReuseOrAllocNode): Remove
1640         __value_alloc_type and __value_alloc_traits typedefs.
1641         (_ReuseOrAllocNode::operator()): Call construct and destroy on the
1642         node allocator.
1643         (_Hashtable_alloc): Simplify __value_alloc_traits typedef.
1644         (_Hashtable_alloc<_NodeAlloc>::_M_allocate_node(_Args&&...)): Call
1645         construct on the node allocator.
1646         (_Hashtable_alloc<_NodeAlloc>::_M_deallocate_node(__node_type*)): Call
1647         destroy on the node allocator.
1649         PR libstdc++/81891
1650         * include/bits/hashtable.h (_Hashtable(_InputIterator, _InputIterator,
1651         size_type, const _H1&, const _H2&, const _Hash&, const _Equal&,
1652         const _ExtractKey&, const allocator_type&)): Let destructor do clean
1653         up if an exception is thrown.
1654         * testsuite/23_containers/unordered_map/cons/81891.cc: New.
1656 2017-08-11  Jonathan Wakely  <jwakely@redhat.com>
1658         PR libstdc++/81808
1659         * testsuite/27_io/basic_fstream/53984.cc: Adjust test for targets
1660         that allow opening a directory as a FILE and reading from it.
1662 2017-08-09  Jonathan Wakely  <jwakely@redhat.com>
1664         * include/std/type_traits (_GLIBCXX_NO_BUILTIN_HAS_UNIQ_OBJ_REP):
1665         Replace with _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP and use
1666         __is_identifier to set it.
1668 2017-08-09  Katsuhiko Nishimra  <ktns.87@gmail.com>
1670         * include/std/type_traits (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Use
1671         __is_identifier instead of __has_builtin.
1673 2017-08-09  Jonathan Wakely  <jwakely@redhat.com>
1675         PR libstdc++/79820
1676         PR libstdc++/81751
1677         * config/io/basic_file_stdio.cc (sys_open(FILE*, ios_base::openmode)):
1678         Call fflush on the stream instead of calling sync() while _M_cfile is
1679         null. Restore original value of errno.
1680         * testsuite/ext/stdio_filebuf/char/79820.cc: New.
1681         * testsuite/ext/stdio_filebuf/char/81751.cc: New.
1683 2017-07-31  Marek Polacek  <polacek@redhat.com>
1685         PR libstdc++/81599
1686         * include/bits/stl_stack.h: Fix typo.
1688 2017-07-26  Jonathan Wakely  <jwakely@redhat.com>
1690         * testsuite/27_io/basic_fstream/53984.cc: Fix test.
1692 2017-07-26  Paolo Carlini  <paolo.carlini@oracle.com>
1694         * testsuite/27_io/basic_fstream/53984.cc: Fix typo in dg-require
1695         directive.
1697 2017-07-25  Jonathan Wakely  <jwakely@redhat.com>
1699         PR libstdc++/53984
1700         * include/bits/basic_ios.h (basic_ios::_M_setstate): Adjust comment.
1701         * include/bits/istream.tcc (basic_istream::sentry): Handle exceptions
1702         during construction.
1703         * include/std/istream: Adjust comments for formatted input functions
1704         and unformatted input functions.
1705         * testsuite/27_io/basic_fstream/53984.cc: New.
1706         * testsuite/27_io/basic_istream/sentry/char/53984.cc: New.
1708         * include/bits/ios_base.h (ios_base::io_state, ios_base::open_mode)
1709         (ios_base::seek_dir): Remove for C++17.
1710         * include/std/streambuf (basic_streambuf::stossc): Remove for C++17.
1711         Add deprecated attribute for C++11 and C++14.
1712         * testsuite/27_io/types/1.cc: Don't run for C++17 and later.
1713         * testsuite/27_io/types/4.cc: New.
1715 2017-07-23  Michael Collison  <michael.collison@arm.com>
1717         Add optimized implementation of mersenne twister for aarch64
1718         * config/cpu/aarch64/opt/ext/opt_random.h: New file.
1719         (__arch64_recursion): New function.
1720         (__aarch64_lsr_128): New function.
1721         (__aarch64_lsl_128): New function.
1722         (operator==): New function.
1723         (simd_fast_mersenne_twister_engine): Implement
1724         method _M_gen_rand.
1725         * config/cpu/aarch64/opt/bits/opt_random.h: New file.
1726         * include/ext/random: (simd_fast_mersenne_twister_engine):
1727         add _M_state private array.
1729 2017-07-23  François Dumont  <fdumont@gcc.gnu.org>
1731         PR libstdc++/81064
1732         * include/bits/algorithmfwd.h: Reorganize versioned namespace.
1733         * include/bits/basic_string.h: Likewise.
1734         * include/bits/c++config: Likewise.
1735         * include/bits/deque.tcc: Likewise.
1736         * include/bits/forward_list.h: Likewise.
1737         * include/bits/forward_list.tcc: Likewise.
1738         * include/bits/hashtable_policy.h: Likewise.
1739         * include/bits/list.tcc: Likewise.
1740         * include/bits/move.h: Likewise.
1741         * include/bits/quoted_string.h: Likewise.
1742         * include/bits/random.h: Likewise.
1743         * include/bits/random.tcc: Likewise.
1744         * include/bits/regex.h: Likewise.
1745         * include/bits/regex.tcc: Likewise.
1746         * include/bits/regex_automaton.h: Likewise.
1747         * include/bits/regex_automaton.tcc: Likewise.
1748         * include/bits/regex_compiler.h: Likewise.
1749         * include/bits/regex_compiler.tcc: Likewise.
1750         * include/bits/regex_constants.h: Likewise.
1751         * include/bits/regex_error.h: Likewise.
1752         * include/bits/regex_executor.h: Likewise.
1753         * include/bits/regex_executor.tcc: Likewise.
1754         * include/bits/regex_scanner.h: Likewise.
1755         * include/bits/regex_scanner.tcc: Likewise.
1756         * include/bits/specfun.h: Likewise.
1757         * include/bits/stl_algo.h: Likewise.
1758         * include/bits/stl_algobase.h: Likewise.
1759         * include/bits/stl_bvector.h: Likewise.
1760         * include/bits/stl_deque.h: Likewise.
1761         * include/bits/stl_iterator.h: Likewise.
1762         * include/bits/stl_iterator_base_funcs.h: Likewise.
1763         * include/bits/stl_list.h: Likewise.
1764         * include/bits/stl_map.h: Likewise.
1765         * include/bits/stl_multimap.h: Likewise.
1766         * include/bits/stl_multiset.h: Likewise.
1767         * include/bits/stl_relops.h: Likewise.
1768         * include/bits/stl_set.h: Likewise.
1769         * include/bits/stl_vector.h: Likewise.
1770         * include/bits/uniform_int_dist.h: Likewise.
1771         * include/bits/unordered_map.h: Likewise.
1772         * include/bits/unordered_set.h: Likewise.
1773         * include/bits/vector.tcc: Likewise.
1774         * include/c_global/cmath: Likewise.
1775         * include/c_std/cmath: Likewise.
1776         * include/decimal/decimal: Likewise.
1777         * include/decimal/decimal.h: Likewise.
1778         * include/experimental/algorithm: Likewise.
1779         * include/experimental/any: Likewise.
1780         * include/experimental/array: Likewise.
1781         * include/experimental/bits/erase_if.h: Likewise.
1782         * include/experimental/bits/fs_dir.h: Likewise.
1783         * include/experimental/bits/fs_fwd.h: Likewise.
1784         * include/experimental/bits/fs_ops.h: Likewise.
1785         * include/experimental/bits/fs_path.h: Likewise.
1786         * include/experimental/bits/lfts_config.h: Likewise.
1787         * include/experimental/bits/shared_ptr.h: Likewise.
1788         * include/experimental/bits/string_view.tcc: Likewise.
1789         * include/experimental/chrono: Likewise.
1790         * include/experimental/deque: Likewise.
1791         * include/experimental/filesystem: Likewise.
1792         * include/experimental/forward_list: Likewise.
1793         * include/experimental/functional: Likewise.
1794         * include/experimental/iterator: Likewise.
1795         * include/experimental/list: Likewise.
1796         * include/experimental/map: Likewise.
1797         * include/experimental/memory: Likewise.
1798         * include/experimental/memory_resource: Likewise.
1799         * include/experimental/numeric: Likewise.
1800         * include/experimental/optional: Likewise.
1801         * include/experimental/propagate_const: Likewise.
1802         * include/experimental/random: Likewise.
1803         * include/experimental/ratio: Likewise.
1804         * include/experimental/regex: Likewise.
1805         * include/experimental/set: Likewise.
1806         * include/experimental/source_location: Likewise.
1807         * include/experimental/string: Likewise.
1808         * include/experimental/string_view: Likewise.
1809         * include/experimental/system_error: Likewise.
1810         * include/experimental/tuple: Likewise.
1811         * include/experimental/type_traits: Likewise.
1812         * include/experimental/unordered_map: Likewise.
1813         * include/experimental/unordered_set: Likewise.
1814         * include/experimental/utility: Likewise.
1815         * include/experimental/vector: Likewise.
1816         * include/ext/bitmap_allocator.h: Likewise.
1817         * include/ext/codecvt_specializations.h: Likewise.
1818         * include/ext/rope: Likewise.
1819         * include/ext/typelist.h: Likewise.
1820         * include/std/chrono: Likewise.
1821         * include/std/complex: Likewise.
1822         * include/std/functional: Likewise.
1823         * include/std/numeric: Likewise.
1824         * include/std/string_view: Likewise.
1825         * include/std/thread: Likewise.
1826         * include/std/variant: Likewise.
1827         * include/tr1/array: Likewise.
1828         * include/tr1/bessel_function.tcc: Likewise.
1829         * include/tr1/beta_function.tcc: Likewise.
1830         * include/tr1/cmath: Likewise.
1831         * include/tr1/complex: Likewise.
1832         * include/tr1/ell_integral.tcc: Likewise.
1833         * include/tr1/exp_integral.tcc: Likewise.
1834         * include/tr1/functional: Likewise.
1835         * include/tr1/functional_hash.h: Likewise.
1836         * include/tr1/gamma.tcc: Likewise.
1837         * include/tr1/hashtable.h: Likewise.
1838         * include/tr1/hashtable_policy.h: Likewise.
1839         * include/tr1/hypergeometric.tcc: Likewise.
1840         * include/tr1/legendre_function.tcc: Likewise.
1841         * include/tr1/modified_bessel_func.tcc: Likewise.
1842         * include/tr1/poly_hermite.tcc: Likewise.
1843         * include/tr1/poly_laguerre.tcc: Likewise.
1844         * include/tr1/random.h: Likewise.
1845         * include/tr1/random.tcc: Likewise.
1846         * include/tr1/regex: Likewise.
1847         * include/tr1/riemann_zeta.tcc: Likewise.
1848         * include/tr1/shared_ptr.h: Likewise.
1849         * include/tr1/special_function_util.h: Likewise.
1850         * include/tr1/tuple: Likewise.
1851         * include/tr1/type_traits: Likewise.
1852         * include/tr1/unordered_map.h: Likewise.
1853         * include/tr1/unordered_set.h: Likewise.
1854         * include/tr1/utility: Likewise.
1855         * include/tr2/bool_set: Likewise.
1856         * include/tr2/bool_set.tcc: Likewise.
1857         * include/tr2/dynamic_bitset: Likewise.
1858         * include/tr2/dynamic_bitset.tcc: Likewise.
1859         * include/tr2/ratio: Likewise.
1860         * include/tr2/type_traits: Likewise.
1861         * src/c++11/chrono.cc: Likewise.
1862         * src/c++11/compatibility-c++0x.cc: Likewise.
1863         * src/c++11/compatibility-chrono.cc: Likewise.
1864         * src/c++11/cxx11-shim_facets.cc: Likewise.
1865         * src/c++11/hashtable_c++0x.cc: Likewise.
1866         * src/c++11/placeholders.cc: Likewise.
1867         * src/c++11/thread.cc: Likewise.
1868         * src/c++98/bitmap_allocator.cc: Likewise.
1869         * src/c++98/hashtable_tr1.cc: Likewise.
1870         * src/c++98/list.cc: Likewise.
1871         * src/shared/hashtable-aux.cc: Likewise.
1872         * testsuite/20_util/duration/literals/range.cc: Adapt line number.
1873         * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
1874         * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1875         * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1876         * testsuite/20_util/forward/c_neg.cc: Likewise.
1877         * testsuite/20_util/forward/f_neg.cc: Likewise.
1878         * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
1879         * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
1880         * testsuite/26_numerics/random/pr60037-neg.cc: Likewise.
1881         * python/libstdcxx/v6/printers.py: Adapt.
1883 2017-07-20  Jonathan Wakely  <jwakely@redhat.com>
1885         * config/allocator/malloc_allocator_base.h [__SANITIZE_ADDRESS__]
1886         (_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define.
1887         * config/allocator/new_allocator_base.h [__SANITIZE_ADDRESS__]
1888         (_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define.
1889         * doc/xml/manual/using.xml (_GLIBCXX_SANITIZE_VECTOR): Document macro.
1890         * include/bits/stl_vector.h [_GLIBCXX_SANITIZE_VECTOR]
1891         (_Vector_impl::_Asan, _Vector_impl::_Asan::_Reinit)
1892         (_Vector_impl::_Asan::_Grow, _GLIBCXX_ASAN_ANNOTATE_REINIT)
1893         (_GLIBCXX_ASAN_ANNOTATE_GROW, _GLIBCXX_ASAN_ANNOTATE_GREW)
1894         (_GLIBCXX_ASAN_ANNOTATE_SHRINK, _GLIBCXX_ASAN_ANNOTATE_BEFORE_DEALLOC):
1895         Define annotation helper types and macros.
1896         (vector::~vector, vector::push_back, vector::pop_back)
1897         (vector::_M_erase_at_end): Add annotations.
1898         * include/bits/vector.tcc (vector::reserve, vector::emplace_back)
1899         (vector::insert, vector::_M_erase, vector::operator=)
1900         (vector::_M_fill_assign, vector::_M_assign_aux)
1901         (vector::_M_insert_rval, vector::_M_emplace_aux)
1902         (vector::_M_insert_aux, vector::_M_realloc_insert)
1903         (vector::_M_fill_insert, vector::_M_default_append)
1904         (vector::_M_shrink_to_fit, vector::_M_range_insert): Annotate.
1906 2017-07-19  Jonathan Wakely  <jwakely@redhat.com>
1908         PR libstdc++/81476
1909         * include/bits/vector.tcc (vector::_M_range_insert<_InputIterator>):
1910         Only insert elements one-by-one when inserting at the end.
1911         * testsuite/performance/23_containers/insert/81476.cc: New.
1913 2017-07-19  Volker Reichelt  <v.reichelt@netcologne.de>
1915         * libsupc++/new (bad_array_new_length): Remove redundant
1916         semicolon after in-class member function definition.
1917         * include/bits/locale_facets.h (ctype_byname, num_put): Likewise.
1918         * include/bits/locale_facets_nonio.h (time_put_byname): Likewise.
1919         * include/bits/random.h (mersenne_twister_engine): Likewise.
1920         * include/tr1/random.h (mersenne_twister): Likewise
1921         * include/ext/random (simd_fast_mersenne_twister_engine): Likewise.
1922         * include/ext/rope (char_producer, _Rope_char_consumer,
1923         _Rope_self_destruct_ptr, _Rope_const_iterator, _Rope_iterator):
1924         Likewise.
1925         * include/ext/ropeimpl.h (_Rope_flatten_char_consumer,
1926         _Rope_insert_char_consumer): Likewise.
1928 2017-07-19  Jonathan Wakely  <jwakely@redhat.com>
1930         * include/bits/fstream.tcc (basic_filebuf::xsgetn)
1931         (basic_filebuf::xsputn, basic_filebuf::seekoff): Fix indentation.
1933         * testsuite/util/testsuite_iterators.h: Fix indentation.
1935         * testsuite/27_io/basic_filebuf/sgetn/char/81395.cc: Add dg-require.
1937 2017-07-18  Jonathan Wakely  <jwakely@redhat.com>
1939         PR libstdc++/81395
1940         * include/bits/fstream.tcc (basic_filebuf::xsgetn): Don't set buffer
1941         pointers for write mode after reading.
1942         * testsuite/27_io/basic_filebuf/sgetn/char/81395.cc: New.
1944 2017-07-18  François Dumont  <fdumont@gcc.gnu.org>
1946         * include/bits/stl_list.h
1947         (struct _List_node_header): New.
1948         (_List_impl()): Fix noexcept qualification.
1949         (_List_impl(_List_impl&&)): New, default.
1950         (_List_base()): Default.
1951         (_List_base(_List_base&&)): Default.
1952         (_List_base::_M_move_nodes): Adapt to use
1953         _List_node_header._M_move_nodes.
1954         (_List_base::_M_init): Likewise.
1955         (list<>()): Default.
1956         (list<>(list&&)): Default.
1957         (list<>::_M_move_assign(list&&, true_type)): Use _M_move_nodes.
1958         (__distance(_List_const_iterator<>, _List_const_iterator<>,
1959         input_iterator_tag)): Adapt.
1960         * testsuite/23_containers/list/allocator/default_init.cc: New.
1962 2017-07-15  Jonathan Wakely  <jwakely@redhat.com>
1964         * include/std/mutex (scoped_lock): Reorder std::adopt_lock_t parameter
1965         as per P0739R0.
1966         * testsuite/30_threads/scoped_lock/cons/1.cc: Reorder arguments.
1967         * testsuite/30_threads/scoped_lock/cons/deduction.cc: Test deduction
1968         with std::adopt_lock_t.
1969         * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Check
1970         feature-test macro.
1972 2017-07-14  Jason Merrill  <jason@redhat.com>
1973             Jonathan Wakely  <jwakely@redhat.com>
1975         * include/std/variant (variant::variant(_Tp&&)): Constrain to remove
1976         the constructor for empty variants from the candidate functions
1977         during class template argument deduction.
1978         * testsuite/20_util/variant/deduction.cc: New.
1980 2017-07-11  Jonathan Wakely  <jwakely@redhat.com>
1982         * doc/xml/faq.xml: Update several old entries. Improve
1983         cross-references.
1984         * doc/xml/manual/intro.xml: Add anchors to each DR.
1985         * doc/html/*: Regenerate.
1987 2017-07-10  Jonathan Wakely  <jwakely@redhat.com>
1989         * testsuite/abi/pr42230.cc: Add header for std::free.
1991         PR libstdc++/81381
1992         * include/bits/sstream.tcc (basic_stringbuf::overflow)
1993         (basic_stringbuf::basic_stringbuf(const __string_type&, ios::mode))
1994         (basic_stringbuf::str()): Construct new strings with an allocator.
1995         * testsuite/27_io/basic_stringbuf/cons/81381.cc: New.
1997         PR libstdc++/81338
1998         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
1999         Declare basic_stringbuf to be a friend.
2000         * include/bits/sstream.tcc (basic_stringbuf::overflow)
2001         [_GLIBCXX_USE_CXX11_ABI]: Use unused capacity before reallocating.
2002         * include/std/sstream (basic_stringbuf::__xfer_bufptrs): Update string
2003         length to buffer length.
2004         * testsuite/27_io/basic_stringstream/assign/81338.cc: New.
2006 2017-07-06  Jonathan Wakely  <jwakely@redhat.com>
2008         * testsuite/20_util/specialized_algorithms/memory_management_tools/
2009         1.cc: Free memory.
2010         * testsuite/22_locale/locale/cons/5.cc: Remove redundant restoration
2011         of original environment and free memory.
2013         * testsuite/abi/pr42230.cc: Free memory.
2014         * testsuite/util/testsuite_abi.cc (demangle): Return std::string
2015         instead of pointer that might need freeing.
2016         * testsuite/util/testsuite_abi.h (demangle): Likewise.
2017         * testsuite/util/testsuite_hooks.cc (verify_demangle): Free memory.
2019         * include/bits/uses_allocator.h (__use_alloc(const _Alloc&&)): Add
2020         deleted overload to prevent dangling references to rvalues.
2021         * include/experimental/memory_resource
2022         (polymorphic_allocator::construct): Do not call __use_alloc with
2023         rvalue arguments.
2025 2017-06-27  Tim Shen  <timshen@google.com>
2027         PR libstdc++/80187
2028         * include/std/variant (variant::variant, variant::~variant,
2029         variant::operator=): Implement triviality forwarding for four
2030         special member functions.
2031         * testsuite/20_util/variant/compile.cc: Tests.
2033 2017-06-27  Jonathan Wakely  <jwakely@redhat.com>
2035         PR libstdc++/81221
2036         * testsuite/25_algorithms/sample/81221.cc: Disable except for
2037         check-parallel.
2039         PR libstdc++/81221
2040         * include/bits/stl_algo.h (sample): Qualify with _GLIBCXX_STD_A not
2041         std.
2042         * testsuite/25_algorithms/sample/81221.cc: New.
2044 2017-06-22  Jonathan Wakely  <jwakely@redhat.com>
2046         PR libstdc++/81173
2047         * include/bits/stl_bvector.h (vector<bool>::_M_initialize_value):
2048         Do not pass null pointer to memset.
2050 2017-06-21  Ville Voutilainen  <ville.voutilainen@gmail.com>
2052         PR libstdc++/80675
2053         PR libstdc++/80940
2054         * include/std/istream:
2055         (__is_convertible_to_basic_istream_test(basic_istream<_Ch, _Up>*)): New.
2056         (__do_is_convertible_to_basic_istream_impl): Likewise.
2057         (__is_convertible_to_basic_istream_impl): Likewise.
2058         (__is_convertible_to_basic_istream): Use the new base.
2059         (__rvalue_istream_type): New.
2060         (operator>>(_Istream&&, _Tp&&)): Use the new helper alias
2061         for the SFINAE check, convert to the helper alias type before
2062         doing the actual extraction.
2063         * include/std/ostream:
2064         (__is_convertible_to_basic_ostream_test(basic_ostream<_Ch, _Up>*)): New.
2065         (__do_is_convertible_to_basic_ostream_impl): Likewise.
2066         (__is_convertible_to_basic_ostream_impl): Likewise.
2067         (__is_convertible_to_basic_ostream): Use the new base.
2068         (__rvalue_ostream_type): New.
2069         (operator<<(_Ostream&&, const _Tp&)): Use the new helper alias
2070         for the SFINAE check, convert to the helper alias type before
2071         doing the actual insertion.
2072         * testsuite/27_io/rvalue_streams-2.cc: Add new tests.
2074 2017-06-21  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2076         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
2078 2017-06-21  Jonathan Wakely  <jwakely@redhat.com>
2080         PR libstdc++/81092
2081         * configure: Regenerate.
2083 2017-06-20  Uros Bizjak  <ubizjak@gmail.com>
2085         * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
2087 2017-06-20  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2089         * testsuite/20_util/variant/index_type.cc: Allow for all ilp32 and
2090         lp64 targets.
2092 2017-06-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2094         * config/abi/post/i386-solaris2.10/baseline_symbols.txt: Regenerate.
2095         * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: Likewise.
2096         * config/abi/post/i386-solaris2.11/baseline_symbols.txt: Likewise.
2097         * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: Likewise.
2098         * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: Likewise.
2099         * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
2100         Likewise.
2101         * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: Likewise.
2102         * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
2103         Likewise.
2105 2017-06-18  H.J. Lu  <hongjiu.lu@intel.com>
2107         PR libstdc++/81092
2108         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
2110 2017-06-18  Andreas Schwab  <schwab@linux-m68k.org>
2112         PR libstdc++/81092
2113         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
2115 2017-06-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2117         * testsuite: Remove dg-skip-if, dg-xfail-if, dg-xfail-run-if
2118         default args.
2120 2017-06-17  Jonathan Wakely  <jwakely@redhat.com>
2122         PR libstdc++/80893
2123         * testsuite/23_containers/vector/bool/80893.cc: Add { target c++11 }.
2125 2017-06-16  Jonathan Wakely  <jwakely@redhat.com>
2127         * include/bits/shared_ptr.h (get_deleter): Add overload matching
2128         standard signature.
2129         * include/bits/shared_ptr_base.h (__shared_ptr): Declare new
2130         get_deleter overload as a friend.
2131         * testsuite/20_util/shared_ptr/misc/get_deleter.cc: New.
2133 2017-06-16  Jakub Jelinek  <jakub@redhat.com>
2135         PR libstdc++/81092
2136         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
2137         * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
2138         * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
2140 2017-06-16  Jonathan Wakely  <jwakely@redhat.com>
2142         * include/bits/locale_conv.h (wbuffer_convert::sync): Fix condition.
2143         * testsuite/22_locale/conversions/buffer/2.cc: New.
2145         PR libstdc++/81092
2146         * acinclude.m4: Bump libtool_VERSION.
2147         * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
2148         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
2149         * config/abi/pre/gnu.ver: Add wstring constructor symbols to
2150         GLIBCXX_3.4.24 version and move random_device::_M_get_entropy() symbol
2151         to new GLIBCXX_3.4.25 version.
2152         * doc/xml/manual/abi.xml: Document new versions.
2153         * doc/html/*: Regenerate.
2154         * testsuite/21_strings/basic_string/cons/char/8.cc: Use base object
2155         constructors to ensure required symbols are exported.
2156         * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: Likewise.
2157         * testsuite/util/testsuite_abi.cc: Add new version.
2159         * include/bits/locale_conv.h (wbuffer_convert::_M_put): Add missing
2160         return statement.
2161         * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
2162         Return void.
2163         * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
2164         Likewise.
2165         * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc: Add
2166         missing return statements.
2167         * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
2168         Likewise.
2169         * testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc:
2170         Return void.
2171         * testsuite/special_functions/14_expint/pr68397.cc: Likewise.
2173 2017-06-16  François Dumont  <fdumont@gcc.gnu.org>
2175         * include/bits/stl_bvector.h
2176         (__fill_bvector(_Bit_type*, unsigned int, unsigned int, bool)):
2177         Change signature.
2178         (std::fill(_Bit_iterator, _Bit_iterator, bool)): Adapt.
2179         (_Bvector_impl_data): New.
2180         (_Bvector_impl): Inherits from latter.
2181         (_Bvector_impl(_Bit_alloc_type&&)): Delete.
2182         (_Bvector_impl(_Bvector_impl&&)): New, default.
2183         (_Bvector_base()): Default.
2184         (_Bvector_base(_Bvector_base&&)): Default.
2185         (_Bvector_base::_M_move_data(_Bvector_base&&)): New.
2186         (vector(vector&&, const allocator_type&)): Use latter.
2187         (vector<bool>::operator=(vector&&)): Likewise.
2188         (vector<bool>::vector()): Default.
2189         (vector<bool>::vector(vector&&)): Default.
2190         (vector<bool>::assign(_InputIterator, _InputIterator)): Use
2191         _M_assign_aux.
2192         (vector<bool>::assign(initializer_list<bool>)): Likewise.
2193         (vector<bool>::_M_initialize_value(bool)): New.
2194         (vector<bool>(size_type, const bool&, const allocator_type&)): Use
2195         latter.
2196         (vector<bool>::_M_initialize_dispatch(_Integer, _Integer, __true_type)):
2197         Likewise.
2198         (vector<bool>::_M_fill_assign(size_t, bool)): Likewise.
2200 2017-06-15  François Dumont  <fdumont@gcc.gnu.org>
2202         * src/c++98/tree.cc  [!_GLIBCXX_INLINE_VERSION]
2203         (_Rb_tree_rotate_left, _Rb_tree_rotate_right): Delete.
2205 2017-06-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2207         * testsuite: Add dg-require-effective-target pthread to -pthread
2208         tests.
2209         Remove explicit target lists from dg-do and dg-options.
2211         * testsuite/30_threads/async/forced_unwind.cc: Remove explit
2212         target list from dg-options.
2213         * testsuite/30_threads/packaged_task/forced_unwind.cc: Likewise.
2215         * 30_threads/shared_mutex/cons/1.cc: Likewise.
2216         Pass -pthread for all targets.
2217         * 30_threads/shared_mutex/try_lock/1.cc: Likewise.
2218         * 30_threads/shared_mutex/try_lock/2.cc: Likewise.
2219         * 30_threads/shared_mutex/unlock/1.cc: Likewise.
2221         * testsuite/30_threads/this_thread/57060.cc: Require c++11 via
2222         dg-require-effective-target.
2224 2017-06-14  Jonathan Wakely  <jwakely@redhat.com>
2226         * doc/xml/manual/test.xml: Correct instructions on running tests.
2227         * testsuite/21_strings/basic_string/cons/char/deduction.cc: Adjust to
2228         pass when -D_GLIBCXX_USE_CXX11_ABI=0 added to RUNTESTFLAGS.
2229         * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
2230         Likewise.
2231         * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Likewise.
2232         * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
2233         * testsuite/27_io/basic_istream/extractors_arithmetic/char/
2234         exceptions_failbit.cc: Likewise.
2235         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
2236         exceptions_failbit.cc: Likewise.
2237         * testsuite/27_io/basic_istream/extractors_other/char/
2238         exceptions_null.cc: Likewise.
2239         * testsuite/27_io/basic_istream/extractors_other/wchar_t/
2240         exceptions_null.cc: Likewise.
2241         * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
2242         * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
2243         * testsuite/27_io/basic_ostream/inserters_other/char/
2244         exceptions_null.cc: Likewise.
2245         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
2246         exceptions_null.cc: Likewise.
2247         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
2249 2017-06-12  Pedro Alves  <palves@redhat.com>
2251         * doc/xml/manual/status_cxx2017.xml: Update C++17 constexpr
2252         char_traits status.
2253         * doc/html/*: Regenerate.
2255         * include/bits/char_traits.h (_GLIBCXX_ALWAYS_INLINE): Define if
2256         not already defined.
2257         (__cpp_lib_constexpr_char_traits): Uncomment.
2258         (__constant_string_p, __constant_char_array_p): New.
2259         (std::char_traits<char>, std::char_traits<wchar_t>): Add
2260         _GLIBCXX17_CONSTEXPR on compare, length and find and use
2261         __constant_string_p, __constant_char_array_p and
2262         __builtin_constant_p to defer to __gnu_cxx::char_traits at compile
2263         time.
2265         * testsuite/21_strings/char_traits/requirements/
2266         constexpr_functions_c++17.cc: Uncomment
2267         __cpp_lib_constexpr_char_traits tests.  Uncomment
2268         test_compare<char>, test_length<char>, test_find<char>,
2269         test_compare<wchar_t>, test_length<wchar_t> and test_find<wchar_t>
2270         static_assert tests.
2272 2017-06-12  François Dumont  <fdumont@gcc.gnu.org>
2274         * include/bits/stl_tree.h (_Rb_tree_impl()): Restore _Node_allocator
2275         default init.
2276         * testsuite/util/testsuite_allocator.h
2277         (__gnu_test::default_init_allocator<>) New.
2278         * testsuite/23_containers/set/allocator/default_init.cc: New.
2279         * testsuite/23_containers/map/allocator/default_init.cc: New.
2281 2017-06-12  Jonathan Wakely  <jwakely@redhat.com>
2283         PR libstdc++/55917
2284         * src/c++11/thread.cc (execute_native_thread_routine): Remove
2285         try-block so that exceptions propagate out of the thread and terminate
2286         is called by the exception-handling runtime.
2287         (execute_native_thread_routine_compat): Likewise.
2288         * testsuite/30_threads/thread/cons/terminate.cc: New.
2290 2017-06-09  Jonathan Wakely  <jwakely@redhat.com>
2292         * doc/xml/manual/intro.xml: Document LWG 2802, 2873 and 2942 changes.
2293         * include/bits/shared_ptr.h (shared_ptr): Use rvalues for deleters
2294         (LWG 2802).
2295         * include/bits/shared_ptr_base.h (_Sp_ebo_helper, _Sp_counted_deleter
2296         (_Sp_counted_deleter::_Impl, __shared_count, __shared_ptr): Likewise.
2297         * testsuite/20_util/shared_ptr/cons/lwg2802.cc: New.
2299         * include/bits/forward_list.h (forward_list): Add deduction guide.
2300         * include/bits/stl_deque.h (deque): Likewise.
2301         * include/bits/stl_list.h (list): Likewise.
2302         * include/bits/stl_vector.h (vector): Likewise.
2303         * testsuite/23_containers/deque/cons/deduction.cc: New.
2304         * testsuite/23_containers/forward_list/cons/deduction.cc: New.
2305         * testsuite/23_containers/list/cons/deduction.cc: New.
2306         * testsuite/23_containers/vector/cons/deduction.cc: New.
2308 2017-06-08  Jonathan Wakely  <jwakely@redhat.com>
2310         PR libstdc++/81017
2311         * include/bits/std_function.h (function::function(function&&))
2312         (function::operator=(funtion&&)): Add noexcept.
2313         * testsuite/20_util/function/assign/move.cc: Check for noexcept.
2314         * testsuite/20_util/function/cons/move.cc: Likewise.
2316 2017-06-07  Jonathan Wakely  <jwakely@redhat.com>
2318         * include/bits/regex.h (basic_regex): Add deduction guide from P0433.
2319         * testsuite/28_regex/basic_regex/ctors/deduction.cc: New.
2321         PR libstdc++/81002
2322         * include/bits/regex.h (basic_regex): Adjust call to __compile_nfa
2323         so iterator type is deduced.
2324         * include/bits/regex_compiler.h (__compile_nfa): Reorder template
2325         parameters to allow iterator type to be deduced.
2326         * testsuite/28_regex/basic_regex/ctors/basic/iter.cc: New.
2328         * include/bits/alloc_traits.h (__is_allocator, _RequireAllocator):
2329         New trait and alias for detecting Allocator-like types.
2330         * include/bits/basic_string.h (basic_string): Add deduction guide
2331         from P0433.
2332         * include/ext/alloc_traits.h (__gnu_cxx::__alloc_traits): Add template
2333         parameter with default template argument that causes substitution
2334         failures for types that cannot be allocators.
2335         * testsuite/21_strings/basic_string/cons/char/deduction.cc: New.
2336         * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc: New.
2338 2017-06-02  Jonathan Wakely  <jwakely@redhat.com>
2340         PR libstdc++/80939
2341         * include/std/variant (__erased_ctor, __erased_assign, __erased_swap)
2342         (__erased_hash): Remove constexpr specifier and qualify calls to
2343         __ref_cast.
2344         (__erased_dtor): Remove constexpr specifier and use _Destroy.
2346 2017-06-05  Jonathan Wakely  <jwakely@redhat.com>
2348         * include/bits/stl_iterator_base_funcs.h
2349         (__advance<_RandomAccessIterator, _Distance>): Optimize for next/prev
2350         cases where incrementing or decrementing a single step.
2352         * include/bits/shared_ptr_base.h (__shared_ptr::owner_before)
2353         (__weak_ptr::owner_before, _Sp_owner_less::operator()): Add noexcept
2354         specifiers as per LWG 2873 and LWG 2942.
2355         * testsuite/20_util/owner_less/noexcept.cc: New.
2356         * testsuite/20_util/shared_ptr/observers/owner_before.cc: Test
2357         noexcept guarantees.
2358         * testsuite/20_util/weak_ptr/observers/owner_before.cc: Likewise.
2360 2017-06-03  Andreas Schwab  <schwab@linux-m68k.org>
2362         * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
2364 2017-06-03  Eric Botcazou  <ebotcazou@adacore.com>
2366         * src/filesystem/dir.cc (fs::_Dir::advance): Use std::exchange.
2368 2017-06-02  Jonathan Wakely  <jwakely@redhat.com>
2370         PR libstdc++/80624
2371         * doc/xml/manual/status_cxx2011.xml: Document to_int_type behaviour.
2372         * include/bits/char_traits.h (char_traits<char16_t>::to_int_type):
2373         Transform eof value to U+FFFD.
2374         * testsuite/21_strings/char_traits/requirements/char16_t/eof.cc: New.
2375         * testsuite/27_io/basic_streambuf/sgetc/char16_t/80624.cc: New.
2376         * testsuite/27_io/basic_streambuf/sputc/char16_t/80624.cc: New.
2378         * libsupc++/Makefile.am: Remove custom targets for files that need to
2379         be compiled as C++11 or C++14.
2380         * libsupc++/Makefile.in: Regenerate.
2381         * libsupc++/del_ops.cc: Use pragma to disable -Wsized-deallocation
2382         warnings.
2383         * libsupc++/del_opvs.cc: Likewise.
2385 2017-06-02  Richard Biener  <rguenther@suse.de>
2386         Markus Eisenmann  <meisenmann.lba@fh-salzburg.ac.at>
2388         PR libstdc++/80721
2389         * libsupc++/eh_alloc.cc (pool::free): Keep list properly
2390         sorted and add missing freelist item merging cases.
2392 2017-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2394         (GLIBCXX_CROSSCONFIG): Handle *-solaris* like *-linux* etc.
2395         Remove *-solaris* section.
2396         * configure: Regenerate.
2398 2017-05-31  Jonathan Wakely  <jwakely@redhat.com>
2400         PR libstdc++/80893
2401         * include/bits/stl_bvector.h (vector<bool>::_M_initialize): Avoid
2402         null pointer dereference when size is zero.
2403         * testsuite/23_containers/vector/bool/80893.cc: New.
2404         * testsuite/util/testsuite_allocator.h (PointerBase::PointerBase):
2405         Add non-explicit constructor from nullptr.
2406         (PointerBase::derived() const): Add const-qualified overload.
2408 2017-05-20  Tim Shen  <timshen@google.com>
2410         PR libstdc++/80737
2411         * include/std/variant(variant::variant): SFINAE on is_same first.
2412         * testsuite/20_util/variant/any.cc: test case.
2414 2017-05-24  Jonathan Wakely  <jwakely@redhat.com>
2416         * src/c++11/random.cc (random_device::_M_getentropy): Use __CHAR_BIT__
2417         instead of fixed number of bits.
2419 2017-05-24  Andreas Schwab  <schwab@suse.de>
2421         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
2422         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
2424 2017-05-23  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
2425             Jonathan Wakely  <jwakely@redhat.com>
2427         PR libstdc++/67578
2428         * acinclude.m4: Bump libtool_VERSION.
2429         * config/abi/pre/gnu.ver: Create GLIBCXX_3.4.24 with new symbol.
2430         * config.h.in: Regenerate.
2431         * configure: Regenerate.
2432         * configure.ac: Add test for <linux/random.h>.
2433         * doc/xml/manual/abi.xml: Document new library version.
2434         * include/bits/random.h (random_device::entropy)
2435         [_GLIBCXX_USE_RANDOM_TR1]: Add call to new _M_getentropy member.
2436         (random_device::_M_getentropy): Declare.
2437         * src/c++11/random.cc (random_device::_M_getentropy): Define.
2438         * testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.24 to known
2439         versions, and make it the latest version.
2441 2017-05-23  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
2443         PR libstdc++/67214
2444         * include/bits/locale_facets.tcc (num_get::_M_extract_int): Add
2445         explicit conversion to avoid signed overflow.
2447 2017-05-19  Jonathan Wakely  <jwakely@redhat.com>
2449         PR libstdc++/80796
2450         * include/bits/stl_algo.h (search): Add new overload for C++17.
2451         * testsuite/25_algorithms/search/searcher.cc: New.
2453 2017-05-18  Jonathan Wakely  <jwakely@redhat.com>
2455         PR libstdc++/80478
2456         * include/std/functional (_Mem_fn_traits_base): Add specializations
2457         for noexcept member function types.
2458         * testsuite/20_util/function_objects/mem_fn/80478.cc: New test.
2460 2017-05-18  Jonathan Wakely  <jwakely@redhat.com>
2462         * doc/xml/manual/policy_data_structures.xml: Fix typo.
2463         * doc/xml/manual/test_policy_data_structures.xml: Likewise.
2464         * doc/html/*: Regenerate.
2466         * doc/xml/manual/abi.xml: Document latest library versions.
2467         * doc/xml/manual/build_hacking.xml: Document requirement to update
2468         abi.xml when bumping library versions.
2469         * doc/html/*: Regenerate.
2471 2017-05-17  Jonathan Wakely  <jwakely@redhat.com>
2473         * include/bits/refwrap.h: Fix Doxygen warning.
2474         * include/bits/specfun.h: Likewise.
2475         * include/bits/std_function.h: Likewise.
2476         * include/bits/stl_algo.h (set_union, set_intersection)
2477         (set_difference, set_symmetric_difference): Add Doxygen @param tags
2478         for output iterator parameters.
2479         * include/bits/stl_iterator.h (inserter): Add Doxygen @param tag for
2480         iterator parameter.
2481         * include/std/mutex (try_lock, lock): Change Mutex to Lockable in
2482         Doxygen comments.
2484 2017-05-17  Ville Voutilainen  <ville.voutilainen@gmail.com>
2486         Implement new C++ intrinsics __is_assignable and __is_constructible.
2487         * include/std/type_traits (__do_is_static_castable_impl): Remove.
2488         (__is_static_castable_impl, __is_static_castable_safe): Likewise.
2489         (__is_static_castable, __do_is_direct_constructible_impl): Likewise.
2490         (__is_direct_constructible_impl): Likewise.
2491         (__is_direct_constructible_new_safe): Likewise.
2492         (__is_base_to_derived_ref, __is_lvalue_to_rvalue_ref): Likewise.
2493         (__is_direct_constructible_ref_cast): Likewise.
2494         (__is_direct_constructible_new, __is_direct_constructible): Likewise.
2495         (__do_is_nary_constructible_impl): Likewise.
2496         (__is_nary_constructible_impl, __is_nary_constructible): Likewise.
2497         (__is_constructible_impl): Likewise.
2498         (is_constructible): Call the intrinsic.
2499         (__is_assignable_helper): Remove.
2500         (is_assignable): Call the intrinsic.
2501         (is_trivially_constructible): Likewise.
2502         (__is_trivially_copy_constructible_impl): New.
2503         (is_trivially_copy_constructible): Use it.
2504         (__is_trivially_move_constructible_impl): New.
2505         (is_trivially_move_constructible): Use it.
2506         (is_trivially_assignable): Call the intrinsic.
2507         (__is_trivially_copy_assignable_impl): New.
2508         (is_trivially_copy_assignable): Use it.
2509         (__is_trivially_move_assignable_impl): New.
2510         (is_trivially_move_assignable): Use it.
2511         (testsuite/20_util/declval/requirements/1_neg.cc): Adjust.
2512         (testsuite/20_util/is_trivially_copy_assignable/value.cc):
2513         Add test for void.
2514         (testsuite/20_util/is_trivially_copy_constructible/value.cc): Likewise.
2515         (testsuite/20_util/is_trivially_move_assignable/value.cc): Likewise.
2516         (testsuite/20_util/is_trivially_move_constructible/value.cc): Likewise.
2517         (testsuite/20_util/make_signed/requirements/typedefs_neg.cc): Adjust.
2518         (testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc):
2519         Likewise.
2521 2017-05-16  Jonathan Wakely  <jwakely@redhat.com>
2523         * testsuite/experimental/source_location/1.cc: Change expected result
2524         for source_location::current() used in default member initializer.
2526         * doc/xml/manual/status_cxx2017.xml: Update status table.
2527         * doc/html/*: Regenerate.
2528         * include/Makefile.am: Add new header.
2529         * include/Makefile.in: Regenerate.
2530         * include/experimental/source_location: New header implementing N4519.
2531         * testsuite/experimental/source_location/1.cc: New test.
2533         PR libstdc++/80285
2534         * include/bits/shared_ptr_base.h [!__cpp_rtti] (type_info): Declare
2535         outside versioned namespace.
2537         * configure: Regenerate.
2539 2017-05-16  Marc Glisse  <marc.glisse@inria.fr>
2541         * include/std/optional (_Optional_base::_M_get): Check precondition.
2542         * testsuite/20_util/optional/cons/value_neg.cc: Update line numbers.
2544 2017-05-16  Jonathan Wakely  <jwakely@redhat.com>
2546         * doc/xml/manual/appendix_contributing.xml: Link to test docs and
2547         note higher DejaGnu version requirement.
2548         * doc/html/*: Regenerate.
2550         * doc/xml/manual/appendix_contributing.xml: Link to the list of bad
2551         identifiers.
2552         * doc/html/*: Regenerate.
2554 2017-05-15  Jonathan Wakely  <jwakely@redhat.com>
2556         PR libstdc++/80761
2557         * include/bits/node_handle.h (_Node_insert_return): Reorder members.
2558         (tuple_size, tuple_element): Remove partial specializations.
2559         * include/bits/stl_tree.h (_Rb_tree::insert_return_type): Use
2560         const_iterator for std::set.
2561         * testsuite/23_containers/map/modifiers/extract.cc: New.
2562         * testsuite/23_containers/set/modifiers/extract.cc: New.
2563         * testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
2564         * testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
2566 2017-05-12  Jonathan Wakely  <jwakely@redhat.com>
2568         PR libstdc++/78939
2569         * include/std/utility (tuple_size<cv T>): Only define partial
2570         specializations when tuple_size<T>::value is valid.
2571         * testsuite/20_util/tuple/78939.cc: New.
2572         * testsuite/20_util/tuple/cv_tuple_size_neg.cc: New.
2574 2017-05-11  François Dumont  <fdumont@gcc.gnu.org>
2576         * include/bits/stl_tree.h [_GLIBCXX_INLINE_VERSION]
2577         (_Rb_tree_impl<>): Remove _Is_pod_comparator
2578         template parameter.
2580         * include/debug/formatter.h [_GLIBCXX_INLINE_VERSION]
2581         (__gnu_debug::_Error_formatter::_Parameter::_M_print_field): Remove.
2582         (__gnu_debug::_Error_formatter::_Parameter::_M_print_description):
2583         Remove.
2584         (__gnu_debug::_Error_formatter::_M_format_word): Remove.
2585         (__gnu_debug::_Error_formatter::_M_print_word): Remove.
2586         (__gnu_debug::_Error_formatter::_M_print_string): Remove.
2587         (__gnu_debug::_Error_formatter::_M_get_max_length): Remove.
2588         * src/c++11/debug.cc: Adapt.
2589         * config/abi/pre/gnu-versioned-namespace.ver: Adapt.
2591 2017-05-11  Jonathan Wakely  <jwakely@redhat.com>
2593         * doc/xml/manual/allocator.xml: Fix ViewCVS URLs.
2594         * doc/xml/manual/mt_allocator.xml: Likewise.
2595         * doc/html/*: Regenerate.
2597         PR libstdc++/80285
2598         * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Define
2599         function to get unique fake std::type_info reference.
2600         (_Sp_counted_ptr_inplace::_M_get_deleter) [!__cpp_rtti]: Compare to
2601         _S_ti() fake reference.
2602         (__shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...)): Share
2603         single implementation with or without RTTI enable.
2604         [!__cpp_rtti]: Pass fake reference to _M_get_deleter.
2605         * testsuite/20_util/shared_ptr/creation/alloc.cc: Change expected
2606         allocation and deallocation counts.
2607         * testsuite/20_util/shared_ptr/creation/single_allocation.cc: New.
2608         * testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc:
2609         New.
2611 2017-05-10  François Dumont  <fdumont@gcc.gnu.org>
2613         Bump version namespace.
2614         * config/abi/pre/gnu-versioned-namespace.ver: Bump version namespace
2615         from __7 to __8. Bump GLIBCXX_7.0 to GLIBCXX_8.0.
2616         * acinclude.m4 (libtool_VERSION): Bump to 8:0:0.
2617         * include/bits/c++config: Adapt.
2618         * include/bits/regex.h: Adapt.
2619         * include/experimental/bits/fs_fwd.h: Adapt.
2620         * include/experimental/bits/lfts_config.h: Adapt.
2621         * include/std/variant: Adapt.
2622         * python/libstdcxx/v6/printers.py: Adapt.
2623         * testsuite/libstdc++-prettyprinters/48362.cc: Adapt.
2625         * include/bits/stl_algobase.h (std::__iter_swap<false>): Remove
2626         _GLIBCXX_MOVE usage.
2628 2017-05-09  Jason Merrill  <jason@redhat.com>
2630         * testsuite/24_iterators/container_access.cc (test03): Make il3 static.
2632 2017-05-08  Jonathan Wakely  <jwakely@redhat.com>
2634         * include/std/optional: Use a separate static_assert per condition.
2635         * testsuite/20_util/optional/cons/value_neg.cc: Update dg-error line
2636         numbers.
2638         * doc/xml/manual/mt_allocator.xml: Clarify deallocation behaviour.
2639         * doc/html/*: Regenerate.
2641 2017-05-02  Hugo Beauzée-Luyssen <hugo@beauzee.fr>
2643         PR libstdc++/69506
2644         * config/os/mingw32-w64/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
2646 2017-04-29  François Dumont  <fdumont@gcc.gnu.org>
2648         * testsuite/libstdc++-prettyprinters/48362.cc: Replace a regexp-test
2649         by a note-test.
2651 2017-04-28  Jonathan Wakely  <jwakely@redhat.com>
2653         PR libstdc++/80553
2654         * include/bits/stl_construct.h (_Destroy, _Destroy_n): Add static
2655         assertions to ensure type is destructible.
2656         (destroy_at, destroy, destroy_n): Move from stl_uninitialized.h.
2657         * include/bits/stl_uninitialized.h (destroy_at, destroy, destroy_n):
2658         Move to stl_construct.h.
2659         * testsuite/20_util/specialized_algorithms/memory_management_tools/
2660         destroy_neg.cc: New test.
2661         * testsuite/23_containers/vector/cons/destructible_neg.cc: New test.
2663         * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
2664         superfluous "" in dg-error.
2666 2017-04-28  Tom de Vries  <tom@codesourcery.com>
2668         * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
2669         superfluous '{ target *-*-* }' in dg-(error|warning|message|bogus).
2671 2017-04-27  Jonathan Wakely  <jwakely@redhat.com>
2673         * include/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
2674         (PB_DS_CLASS_C_DEC::end()): Remove redundant const in cast type.
2675         * testsuite/util/testsuite_rng.h (twister_rand_gen::get_prob()):
2676         Likewise.
2678 2017-04-26  Jonathan Wakely  <jwakely@redhat.com>
2680         * testsuite/23_containers/deque/allocator/move_assign-2.cc: Improve
2681         comment. Ensure first test works because allocator type propagates and
2682         not because is_always_equal is true.
2683         * testsuite/23_containers/vector/52591.cc: Likewise. Restore original
2684         testcase that instantiates the move-assignment operator.
2686 2017-04-24  Jonathan Wakely  <jwakely@redhat.com>
2688         PR libstdc++/80506
2689         * include/bits/random.tcc (gamma_distribution::operator()): Fix magic
2690         number used in loop condition.
2692         PR libstdc++/80504
2693         * include/bits/refwrap.h (ref, cref): Qualify calls.
2694         * testsuite/20_util/reference_wrapper/80504.cc: New test.
2696         PR libstdc++/80493
2697         * include/experimental/optional (optional::swap): Fix exception
2698         specification.
2700 2017-04-21  Jonathan Wakely  <jwakely@redhat.com>
2702         PR libstdc++/80316
2703         * include/std/future (_State_baseV2::_Setter::operator()): Remove
2704         _S_check calls that are done after the pointer to the shared state is
2705         already dereferenced.
2706         (_State_baseV2::_Setter<_Res, void>): Define specialization for void
2707         as partial specialization so it can be defined within the definition
2708         of _State_baseV2.
2709         (_State_baseV2::__setter): Call _S_check.
2710         (_State_baseV2::__setter(promise<void>*)): Add overload for use by
2711         promise<void>::set_value and promise<void>::set_value_at_thread_exit.
2712         (promise<T>, promise<T&>, promise<void>): Make _State a friend.
2713         (_State_baseV2::_Setter<void, void>): Remove explicit specialization.
2714         (promise<void>::set_value, promise<void>::set_value_at_thread_exit):
2715         Use new __setter overload.
2716         * testsuite/30_threads/promise/members/at_thread_exit2.cc: New test.
2717         * testsuite/30_threads/promise/members/set_exception.cc: Test
2718         promise<T&> and promise<void> specializations.
2719         * testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
2720         Test for no_state error condition.
2721         * testsuite/30_threads/promise/members/set_value2.cc: Likewise.
2723         * include/backward/auto_ptr.h: Ignore deprecated warnings from use
2724         of auto_ptr.
2725         * include/bits/shared_ptr.h: Likewise.
2726         * include/bits/shared_ptr_base.h: Likewise.
2727         * include/bits/unique_ptr.h: Likewise.
2728         * libstdc++-v3/testsuite/20_util/default_delete/48631_neg.cc: Adjust
2729         dg-error lineno.
2730         * libstdc++-v3/testsuite/20_util/default_delete/void_neg.cc: Likewise.
2731         * libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc:
2732         Likewise.
2733         * libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc:
2734         Likewise.
2736 2017-04-20  Edward Smith-Rowland  <3dw4rd@verizon.net>
2738         PR libstdc++/68397 std::tr1::expint fails ... long double arguments.
2739         * include/tr1/exp_integral.tcc: Increase iteration limits.
2740         * testsuite/tr1/5_numerical_facilities/special_functions/15_expint/
2741         pr68397.cc: New test.
2742         * testsuite/special_functions/14_expint/pr68397.cc: New test.
2744 2017-04-20  Jonathan Wakely  <jwakely@redhat.com>
2746         PR libstdc++/79862
2747         * include/std/atomic [!_GLIBCXX_USE_C99_STDINT_TR1] (atomic_int8_t)
2748         (atomic_uint8_t, atomic_int16_t, atomic_uint16_t, atomic_int32_t,
2749         (atomic_uint32_t, atomic_int64_t, atomic_uint64_t)
2750         (atomic_int_least8_t, atomic_uint_least8_t, atomic_int_least16_t)
2751         (atomic_uint_least16_t, atomic_int_least32_t, atomic_uint_least32_t)
2752         (atomic_int_least64_t, atomic_uint_least64_t, atomic_int_fast8_t)
2753         (atomic_uint_fast8_t, atomic_int_fast16_t, atomic_uint_fast16_t)
2754         (atomic_int_fast32_t, atomic_uint_fast32_t, atomic_int_fast64_t)
2755         (atomic_uint_fast64_t, atomic_intmax_t, atomic_uintmax_t): Don't
2756         define.
2758 2017-04-19  Jonathan Wakely  <jwakely@redhat.com>
2760         * doc/xml/manual/abi.xml: Rephrase one of the references to the
2761         Itanium C++ ABI.
2762         * doc/xml/manual/test.xml: Document DejaGnu 1.5.3 requirement.
2763         * doc/html/*: Regenerate.
2765         * libsupc++/new: Update comment on #endif directive.
2767         PR libstdc++/80448
2768         * include/experimental/bits/fs_dir.h (directory_iterator)
2769         (recursive_directory_iterator): Remove noexcept from defaulted
2770         constructors.
2772         PR libstdc++/80446
2773         * include/std/type_traits (is_aggregate): Change __has_builtin checks.
2774         * libsupc++/new (launder): Likewise.
2776 2017-04-18  Jonathan Wakely  <jwakely@redhat.com>
2778         * include/std/functional (default_searcher, __boyer_moore_array_base)
2779         (__is_std_equal_to, __boyer_moore_base_t, boyer_moore_searcher)
2780         (boyer_moore_horspool_searcher): Remove redundant namespace
2781         qualification.
2782         (default_searcher::operator()): Construct return value early and
2783         advance second member in-place.
2784         (boyer_moore_horspool_searcher::operator()): Increment random access
2785         iterator directly instead of using std::next.
2786         (boyer_moore_searcher::operator()): Fix return value.
2787         * testsuite/20_util/function_objects/searchers.cc: Check both parts
2788         of return values.
2790 2017-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
2792         * doc/xml/faq.xml: Update reference link to C++ ABI for Itanium.
2793         * doc/xml/manual/abi.xml. Ditto (thrice).
2795 2017-04-03  Jonathan Wakely  <jwakely@redhat.com>
2797         * doc/xml/manual/status_cxx2017.xml: Remove duplicate table entry.
2798         * doc/html/*: Regenerate.
2800         * testsuite/20_util/reference_wrapper/invoke.cc: Uncomment tests
2801         that no longer fail.
2803         * include/bits/ios_base.h: Correct comment.
2804         * testsuite/util/testsuite_hooks.h: Likewise.
2806         * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
2807         * doc/xml/manual/appendix_contributing.xml (contrib.organization): Add
2808         directories for debug, parallel and profile headers.
2809         * doc/html/*: Regenerate.
2811         * include/bits/char_traits.h (__gnu_cxx::char_traits): Add
2812         _GLIBCXX14_CONSTEXPR on assign, compare, find, and length.
2813         (std::char_traits<char>, std::char_traits<wchar_t>): Add
2814         _GLIBCXX17_CONSTEXPR on assign.
2815         (std::char_traits<char16_t>, std::char_traits<char32_t>): Add
2816         _GLIBCXX17_CONSTEXPR on assign, compare, find, and length.
2817         * testsuite/21_strings/char_traits/requirements/
2818         constexpr_functions_c++17.cc: New test.
2820 2017-04-03  Ville Voutilainen  <ville.voutilainen@gmail.com>
2822         PR libstdc++/79141
2823         * include/bits/stl_pair.h (__nonesuch_no_braces): New.
2824         (operator=(typename conditional<
2825         __and_<is_copy_assignable<_T1>,
2826         is_copy_assignable<_T2>>::value,
2827         const pair&, const __nonesuch&>::type)): Change __nonesuch
2828         to __nonesuch_no_braces.
2829         (operator=(typename conditional<
2830         __not_<__and_<is_copy_assignable<_T1>,
2831         is_copy_assignable<_T2>>>::value,
2832         const pair&, const __nonesuch&>::type)): Likewise.
2833         (operator=(typename conditional<
2834         __and_<is_move_assignable<_T1>,
2835         is_move_assignable<_T2>>::value,
2836         pair&&, __nonesuch&&>::type)): Likewise.
2837         * testsuite/20_util/pair/79141.cc: New.
2839 2017-04-03  Ville Voutilainen  <ville.voutilainen@gmail.com>
2841         Implement std::is_aggregate.
2842         * include/std/type_traits (is_aggregate, is_aggregate_v): New.
2843         * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
2844         New.
2845         * testsuite/20_util/is_aggregate/requirements/typedefs.cc: Likewise.
2846         * testsuite/20_util/is_aggregate/value.cc: Likewise.
2848 2017-03-29  Ville Voutilainen  <ville.voutilainen@gmail.com>
2850         Adjust optional's pretty printer for LWG 2900.
2851         * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter.__init__):
2852         Look at the nested payload in case of non-experimental optional.
2854 2017-03-29  Ville Voutilainen  <ville.voutilainen@gmail.com>
2856         Implement LWG 2900, The copy and move constructors
2857         of optional are not constexpr.
2858         * include/std/optional (_Optional_payload): New.
2859         (_Optional_base): Remove the bool parameter.
2860         (_Optional_base<_Tp, false>): Remove.
2861         (_Optional_base()): Adjust.
2862         (_Optional_base(nullopt_t)): Likewise.
2863         (_Optional_base(in_place_t, _Args&&...)): Likewise.
2864         (_Optional_base(in_place_t, initializer_list<_Up>, _Args&&...)):
2865         Likewise.
2866         (_Optional_base(const _Optional_base&)): Likewise.
2867         (_Optional_base(_Optional_base&&)): Likewise.
2868         (operator=(const _Optional_base&)): Likewise.
2869         (operator=(_Optional_base&&)): Likewise.
2870         (~_Optional_base()): Remove.
2871         (_M_is_engaged()): Adjust.
2872         (_M_get()): Likewise.
2873         (_M_construct(_Args&&...)): Likewise.
2874         (_M_destruct()): Likewise.
2875         (_M_reset()): Likewise.
2876         (_Optional_base::_Empty_byte): Remove.
2877         (_Optional_base::_M_empty): Remove.
2878         (_Optional_base::_M_payload): Adjust.
2879         * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
2880         * testsuite/20_util/optional/constexpr/cons/value.cc: Add tests.
2882 2017-03-28  Jonathan Wakely  <jwakely@redhat.com>
2884         PR libstdc++/80137
2885         * include/bits/random.tcc (generate_canonical): Use std::nextafter
2886         or numeric_limits::epsilon() to reduce out-of-range values.
2887         * testsuite/26_numerics/random/uniform_real_distribution/operators/
2888         64351.cc: Verify complexity requirement is met.
2890         * doc/xml/manual/abi.xml: Add xml:id anchor.
2891         * doc/xml/manual/using.xml (manual.intro.using.macros): Document
2892         _GLIBCXX_RELEASE. Link to new anchor for __GLIBCXX__ notes.
2893         (concurrency.io.structure): Add markup.
2894         * doc/html/*: Regenerate.
2896         PR libstdc++/80229
2897         * include/bits/shared_ptr_base.h
2898         (__shared_ptr::_M_enable_shared_from_this_with): Change parameters to
2899         non-const and then use remove_cv to get unqualified type.
2900         * testsuite/20_util/enable_shared_from_this/members/const.cc: Don't
2901         cast away constness on object created const.
2902         * testsuite/20_util/shared_ptr/cons/80229.cc: New test.
2904 2017-03-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
2906         PR libstdc++/80183
2907         * include/bits/stl_tree.h:
2908         (_Rb_tree_header::_M_move_data(_Rb_tree_header&)): Also save _M_color.
2910 2017-03-23  Jonathan Wakely  <jwakely@redhat.com>
2912         * testsuite/23_containers/array/tuple_interface/
2913         tuple_element_debug_neg.cc: Adjust dg-error.
2914         * testsuite/23_containers/list/operations/78389.cc: Fix less-than to
2915         define a valid strict weak ordering.
2916         * testsuite/23_containers/priority_queue/67085.cc: Disable test for
2917         Debug Mode, due to debug checks making extra copies of predicate.
2918         * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
2919         Likewise.
2921         * doc/xml/faq.xml: Add link.
2922         * doc/xml/manual/backwards_compatibility.xml: Remove outdated
2923         information on pre-ISO headers. Replace broken link to C++ FAQ Lite.
2924         * doc/xml/manual/io.xml: Update broken link.
2925         * doc/html/*: Regenerate.
2927 2017-03-23  Daniel Kruegler  <daniel.kruegler@gmail.com>
2929         Implement LWG 2686, Why is std::hash specialized for error_code,
2930         but not error_condition?
2931         * include/std/system_error (hash<error_condition>): Define for C++17.
2932         * testsuite/20_util/hash/operators/size_t.cc (hash<error_condition>):
2933         Instantiate test for error_condition.
2934         * testsuite/20_util/hash/requirements/explicit_instantiation.cc
2935         (hash<error_condition>): Instantiate hash<error_condition>.
2937         * include/bits/c++config (_GLIBCXX17_INLINE): Define.
2938         * include/bits/regex_constants.h (All std::regex_constants constants):
2939         Add _GLIBCXX17_INLINE as per P0607R0.
2940         * include/bits/std_mutex.h (defer_lock, try_to_lock, adopt_lock):
2941         Likewise.
2942         * include/bits/stl_pair.h (piecewise_construct): Likewise.
2943         * include/bits/uses_allocator.h (allocator_arg, uses_allocator_v)
2944         (__is_uses_allocator_constructible_v)
2945         (__is_nothrow_uses_allocator_constructible_v): Likewise.
2946         * include/std/chrono (treat_as_floating_point_v): Likewise.
2947         * include/std/functional (is_bind_expression_v, is_placeholder_v):
2948         Likewise.
2949         * include/std/optional (nullopt): Likewise.
2950         * include/std/ratio (ratio_equal_v, ratio_not_equal_v, ratio_less_v)
2951         ratio_less_equal_v, ratio_greater_v, ratio_greater_equal_v): Likewise.
2952         * include/std/system_error (is_error_code_enum_v)
2953         (is_error_condition_enum_v): Likewise.
2954         * include/std/tuple (tuple_size_v, ignore): Likewise.
2955         (ignore): Declare ignore constexpr as per LWG 2773, declare assignment
2956         constexpr as per LWG 2933.
2957         * include/std/type_traits (All variable templates): Add
2958         _GLIBCXX17_INLINE as per P0607R0.
2959         * include/std/variant (variant_size_v, variant_npos, __index_of_v)
2960         (__tuple_count_v, __exactly_once): Likewise.
2961         * testsuite/18_support/headers/new/synopsis.cc
2962         (hardware_destructive_interference_size)
2963         (hardware_constructive_interference_size): Likewise for commented-out
2964         variables.
2965         * testsuite/20_util/tuple/creation_functions/constexpr.cc: Add new
2966         test function for constexpr std::ignore (LWG 2773).
2967         * testsuite/20_util/tuple/creation_functions/constexpr_cpp14.cc: New
2968         test for LWG 2933.
2970 2017-03-22  Jonathan Wakely  <jwakely@redhat.com>
2972         * include/bits/shared_ptr.h (shared_ptr, weak_ptr): Add deduction
2973         guides for C++17.
2974         * include/bits/std_function.h (function): Likewise.
2975         * include/bits/stl_pair.h (pair): Likewise.
2976         * include/debug/array (__gnu_debug::array): Likewise.
2977         * include/std/array (array): Likewise.
2978         * include/std/functional (make_default_searcher)
2979         (make_boyer_moore_searcher, make_boyer_moore_horspool_searcher):
2980         Remove generator functions.
2981         * include/std/tuple (tuple): Add deduction guides.
2982         * include/std/valarray (valarray): Likewise.
2983         * testsuite/20_util/function_objects/searchers.cc: Adjust to use
2984         class template argument deduction instead of generator functions.
2985         * testsuite/20_util/function/cons/deduction.cc: New test.
2986         * testsuite/20_util/optional/cons/deduction_guide.cc: Rename to ...
2987         * testsuite/20_util/optional/cons/deduction.cc: ... here.
2988         * testsuite/20_util/pair/cons/deduction.cc: New test.
2989         * testsuite/20_util/shared_ptr/cons/deduction.cc: New test.
2990         * testsuite/20_util/tuple/cons/deduction.cc: New test.
2991         * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error.
2992         * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: New test.
2993         * testsuite/20_util/weak_ptr/cons/deduction.cc: New test.
2994         * testsuite/23_containers/array/cons/deduction.cc: New test.
2995         * testsuite/23_containers/array/cons/deduction_neg.cc: New test.
2996         * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc:
2997         Adjust dg-error.
2998         * testsuite/23_containers/array/tuple_interface/get_neg.cc: Likewise.
2999         * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
3000         Likewise.
3001         * testsuite/26_numerics/valarray/deduction.cc: New test.
3002         * testsuite/30_threads/lock_guard/cons/deduction.cc: New test.
3003         * testsuite/30_threads/scoped_lock/cons/deduction.cc: New test.
3004         * testsuite/30_threads/unique_lock/cons/deduction.cc: New test.
3006 2017-03-20  François Dumont  <fdumont@gcc.gnu.org>
3008         * include/bits/stl_deque.h (deque): Access allocator value_type only if
3009         concept checks are enabled.
3010         * include/bits/stl_stack.h (stack): Likewise.
3011         * include/bits/stl_vector.h (vector): Likewise.
3012         * include/bits/stl_list.h (list): Likewise and check
3013         _SGIAssignableConcept only in C++03.
3014         * include/bits/stl_map.h (map): Likewise.
3015         * include/bits/stl_set.h (set): Likewise.
3016         * include/bits/stl_multimap.h (multimap): Likewise.
3017         * include/bits/stl_multiset.h (multiset): Likewise.
3018         * include/bits/stl_queue.h (queue, priority_queue): Likewise.
3020 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
3022         * doc/xml/manual/appendix_contributing.xml: Convert link to
3023         ansi.org to https.
3024         Update link to the C++ standard at ansi.org.
3026         * doc/xml/faq.xml: Remove information redundant with the above;
3027         instead add a reference.
3029 2017-03-17  Jonathan Wakely  <jwakely@redhat.com>
3031         * src/c++11/codecvt.cc (range): Add non-type template parameter and
3032         define oerloaded operators for reading and writing code units.
3033         (range<Elem, false>): Define partial specialization for accessing
3034         wide characters in potentially unaligned byte ranges.
3035         (ucs2_span(const char16_t*, const char16_t*, ...))
3036         (ucs4_span(const char16_t*, const char16_t*, ...)): Change parameters
3037         to range<const char16_t, false> in order to avoid unaligned reads.
3038         (__codecvt_utf16_base<char16_t>::do_out)
3039         (__codecvt_utf16_base<char32_t>::do_out)
3040         (__codecvt_utf16_base<wchar_t>::do_out): Use range specialization for
3041         unaligned data to avoid unaligned writes.
3042         (__codecvt_utf16_base<char16_t>::do_in)
3043         (__codecvt_utf16_base<char32_t>::do_in)
3044         (__codecvt_utf16_base<wchar_t>::do_in): Likewise for writes. Return
3045         error if there are unprocessable trailing bytes.
3046         (__codecvt_utf16_base<char16_t>::do_length)
3047         (__codecvt_utf16_base<char32_t>::do_length)
3048         (__codecvt_utf16_base<wchar_t>::do_length): Pass arguments of type
3049         range<const char16_t, false> to span functions.
3050         * testsuite/22_locale/codecvt/codecvt_utf16/misaligned.cc: New test.
3052 2017-03-16  Jonathan Wakely  <jwakely@redhat.com>
3054         PR libstdc++/79980
3055         * src/c++11/codecvt.cc (to_integer(codecvt_mode)): Fix target type.
3057         PR libstdc++/80041
3058         * src/c++11/codecvt.cc (__codecvt_utf16_base<wchar_t>::do_out)
3059         (__codecvt_utf16_base<wchar_t>::do_in): Convert char arguments to
3060         char16_t to work with UTF-16 instead of UTF-8.
3061         * testsuite/22_locale/codecvt/codecvt_utf16/80041.cc: New test.
3063         * src/c++11/codecvt.cc (codecvt<char16_t, char, mbstate_t>)
3064         (codecvt<char32_t, char, mbstate_t>, __codecvt_utf8_base<char16_t>)
3065         (__codecvt_utf8_base<char32_t>, __codecvt_utf8_base<wchar_t>)
3066         (__codecvt_utf16_base<char16_t>, __codecvt_utf16_base<char32_t>)
3067         (__codecvt_utf16_base<wchar_t>, __codecvt_utf8_utf16_base<char16_t>)
3068         (__codecvt_utf8_utf16_base<char32_t>)
3069         (__codecvt_utf8_utf16_base<wchar_t>): Fix do_encoding() and
3070         do_max_length() return values.
3071         * testsuite/22_locale/codecvt/codecvt_utf16/members.cc: New test.
3072         * testsuite/22_locale/codecvt/codecvt_utf8/members.cc: New test.
3073         * testsuite/22_locale/codecvt/codecvt_utf8_utf16/members.cc: New test.
3075         PR libstdc++/79980
3076         * include/bits/locale_conv.h (__do_str_codecvt): Set __count on
3077         error path.
3078         * src/c++11/codecvt.cc (operator&=, operator|=, operator~): Overloads
3079         for manipulating codecvt_mode values.
3080         (read_utf16_bom): Compare input to BOM constants instead of integral
3081         constants that depend on endianness.  Take mode parameter by
3082         reference and adjust it, to distinguish between no BOM present and
3083         UTF-16BE BOM present.
3084         (ucs4_in, ucs2_span, ucs4_span): Adjust calls to read_utf16_bom.
3085         (surrogates): New enumeration type.
3086         (utf16_in, utf16_out): Add surrogates parameter to choose between
3087         UTF-16 and UCS2 behaviour.
3088         (utf16_span, ucs2_span): Use std::min not std::max.
3089         (ucs2_out): Use std::min not std::max.  Disallow surrogate pairs.
3090         (ucs2_in): Likewise. Adjust calls to read_utf16_bom.
3091         * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc: New test.
3092         * testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: New test.
3094         PR libstdc++/79511
3095         * src/c++11/codecvt.cc (write_utf16_code_point): Don't write 0xffff
3096         as a surrogate pair.
3097         (__codecvt_utf8_utf16_base<char32_t>::do_in): Use native endianness
3098         for internal representation.
3099         (__codecvt_utf8_utf16_base<wchar_t>::do_in): Likewise.
3100         * testsuite/22_locale/codecvt/codecvt_utf8_utf16/79511.cc: New test.
3102         PR libstdc++/80064
3103         * include/bits/stl_heap.h (__is_heap, push_heap, __adjust_heap)
3104         (pop_heap, make_heap, sort_heap, is_heap_until, is_heap): Cope with
3105         invalid instantiations using function types for _Compare argument.
3106         * testsuite/25_algorithms/make_heap/80064.cc: New test.
3108         PR libstdc++/67440
3109         * python/libstdcxx/v6/printers.py (find_type): Avoid gdb.Type.name
3110         for GDB 7.6 compatibility, use gdb.Type.unqualified instead.
3112 2017-03-15  Ville Voutilainen  <ville.voutilainen@gmail.com>
3114         Implement LWG 2857, {variant,optional,any}::emplace should
3115         return the constructed value.
3116         * include/std/any (emplace(_Args&&...)): Change the return type and
3117         return a reference to the constructed value.
3118         (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
3119         * include/std/optional (emplace(_Args&&...)): Likewise.
3120         (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
3121         * include/std/variant (emplace<_Tp>(_Args&&...)): Likewise.
3122         (emplace<_Tp>(initializer_list<_Up>, _Args&&...)): Likewise.
3123         (emplace<_Np>(_Args&&...)): Likewise.
3124         (emplace<_Np>(initializer_list<_Up>, _Args&&...)): Likewise.
3125         * testsuite/20_util/any/assign/emplace.cc: Add tests for
3126         checking the return value of emplace.
3127         * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
3128         * testsuite/20_util/optional/assignment/6.cc: Add tests for
3129         checking the return value of emplace.
3130         * testsuite/20_util/variant/run.cc: Likewise.
3132 2017-03-15  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
3134         PR libstdc++/62045
3135         * include/ext/pb_ds/qdetail/binary_heap_/binary_heap_.hpp
3136         (is_heap): Remove.
3137         (push_heap): Remove the wrong checking using is_heap.
3138         (make_heap): Remove the assertion using is_heap.
3139         * include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
3140         (modify): Ditto.
3141         (resize_for_insert_if_needed): Add PB_DS_ASSERT_VALID after
3142         calling make_heap.
3144 2017-03-15  Jonathan Wakely  <jwakely@redhat.com>
3146         PR libstdc++/62045
3147         * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
3148         New test.
3149         * testsuite/ext/pb_ds/regression/priority_queues.cc: Fix copy&paste
3150         error in comment.
3152 2017-03-15  Jonathan Wakely  <jwakely@redhat.com>
3154         * acinclude.m4 (GLIBCXX_CHECK_S_ISREG_OR_S_IFREG): Fix typo in
3155         comment.
3156         * config.h.in: Regenerate.
3157         * configure: Regenerate.
3158         * doc/Makefile.in: Regenerate.
3160 2017-03-14  Jonathan Wakely  <jwakely@redhat.com>
3162         PR libstdc++/79162
3163         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
3164         (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Replace
3165         with a constrained template.
3166         [!_GLIBCXX_USE_CXX11_ABI]
3167         (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Likewise.
3168         * testsuite/21_strings/basic_string/cons/char/79162.cc: New test.
3169         * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: New test.
3171 2017-03-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
3173         PR libstdc++/80034
3174         * include/bits/list.tcc (merge(list&&)): Use const for the size_t
3175         in the catch-block.
3176         (merge(list&&, _StrictWeakOrdering)): Likewise.
3177         * testsuite/23_containers/list/operations/80034.cc: New.
3179 2017-03-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
3181         Implement LWG 2806, Base class of bad_optional_access.
3182         * include/std/optional (bad_optional_access):
3183         Derive from std::exception.
3184         (bad_optional_access::bad_optional_access): Adjust.
3185         (bad_optional_access::what): New.
3186         (__throw_bad_optional_access(const char*)):
3187         Remove the parameter and adjust calls.
3188         * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
3189         * testsuite/20_util/optional/typedefs.cc: Likewise.
3191 2017-03-12  Ville Voutilainen  <ville.voutilainen@gmail.com>
3193         Implement LWG 2934, optional<const T> doesn't compare with T.
3194         * include/std/optional
3195         (operator==(const optional<_Tp>&, const optional<_Tp>&)):
3196         Turn into operator==(const optional<_Tp>&, const optional<_Up>&).
3197         (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
3198         Turn into operator!=(const optional<_Tp>&, const optional<_Up>&).
3199         (operator<(const optional<_Tp>&, const optional<_Tp>&)):
3200         Turn into operator<(const optional<_Tp>&, const optional<_Up>&.
3201         (operator>(const optional<_Tp>&, const optional<_Tp>&)):
3202         Turn into operator>(const optional<_Tp>&, const optional<_Up>&.
3203         (operator<=(const optional<_Tp>&, const optional<_Tp>&)):
3204         Turn into operator<=(const optional<_Tp>&, const optional<_Up>&).
3205         (operator>=(const optional<_Tp>&, const optional<_Tp>&)):
3206         Turn into operator>=(const optional<_Tp>&, const optional<_Up>&).
3207         (operator==(const optional<_Tp>&, const _Tp&)):
3208         Turn into operator==(const optional<_Tp>&, const _Up&).
3209         (operator==(const _Tp&, const optional<_Tp>&)):
3210         Turn into operator==(const _Up&, const optional<_Tp>&).
3211         (operator!=(const optional<_Tp>&, const _Tp&)):
3212         Turn into operator!=(const optional<_Tp>&, const _Up&).
3213         (operator!=(const _Tp&, const optional<_Tp>&)):
3214         Turn into operator!=(const _Up&, const optional<_Tp>&).
3215         (operator<(const optional<_Tp>&, const _Tp&)):
3216         Turn into operator<(const optional<_Tp>&, const _Up&).
3217         (operator<(const _Tp&, const optional<_Tp>&)):
3218         Turn into operator<(const _Up&, const optional<_Tp>&).
3219         (operator>(const optional<_Tp>&, const _Tp&)):
3220         Turn into operator>(const optional<_Tp>&, const _Up&).
3221         (operator>(const _Tp&, const optional<_Tp>&)):
3222         Turn into operator>(const _Up&, const optional<_Tp>&).
3223         (operator<=(const optional<_Tp>&, const _Tp&)):
3224         Turn into operator<=(const optional<_Tp>&, const _Up&).
3225         (operator<=(const _Tp&, const optional<_Tp>&)):
3226         Turn into operator<=(const _Up&, const optional<_Tp>&).
3227         (operator>=(const optional<_Tp>&, const _Tp&)):
3228         Turn into operator>=(const optional<_Tp>&, const _Up&).
3229         (operator>=(const _Tp&, const optional<_Tp>&)):
3230         Turn into operator>=(const _Up&, const optional<_Tp>&).
3231         * testsuite/20_util/optional/relops/7.cc: New.
3233 2017-03-10  Jonathan Wakely  <jwakely@redhat.com>
3235         * testsuite/17_intro/names.cc: Undefine macros that clash with
3236         identifiers in AIX system headers.
3238         * include/bits/invoke.h (__invoke): Use __invoke_result instead of
3239         result_of, and __is_nothrow_invocable instead of
3240         __is_nothrow_callable.
3241         * include/bits/shared_ptr_base.h (__shared_ptr): Use __is_invocable
3242         instead of __is_callable.
3243         * include/std/functional (invoke): use invoke_result_t instead of
3244         result_of_t and is_nothrow_invocable instead of is_nothrow_callable.
3245         (_Not_fn): Use __invoke_result instead of result_of.
3246         * include/std/type_traits (__result_of_memobj, __result_of_memfun):
3247         Remove partial specializations for reference_wrapper types.
3248         (__result_of_impl): Use __inv_unwrap to strip reference_wrapper.
3249         (__invoke_result): Define replacement for result_of and then use it to
3250         define result_of.
3251         (__is_callable_impl, __is_callable, __is_nothrow_callable): Replace
3252         with __is_invocable_impl, __is_invocable, and __is_nothrow_invocable
3253         respectively.
3254         (invoke_result, invoke_result_t): Define for C++17.
3255         (is_callable, is_nothrow_callable): Replace with is_invocable,
3256         is_invocable_r, is_nothrow_invocable, and is_nothrow_invocable_r.
3257         (is_callable_v, is_nothrow_callable_v): Replace with is_invocable_v,
3258         is_invocable_r_v, is_nothrow_invocable_v, and is_nothrow_invocable_r_v.
3259         * include/std/variant (hash<variant<T...>>): Use is_nothrow_invocable_v
3260         instead of is_nothrow_callable_v.
3261         * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
3262         main function.
3263         * testsuite/20_util/function_objects/not_fn/1.cc: Use is_invocable
3264         instead of is_callable.
3265         * testsuite/20_util/is_callable/*: Rename directory and adjust tests
3266         to use new traits.
3267         * testsuite/20_util/is_nothrow_callable/*: Likewise.
3268         * testsuite/20_util/optional/hash.cc: Use is_invocable_v instead of
3269         is_callable.
3270         * testsuite/20_util/variant/hash.cc: Likewise.
3272 2017-03-10  George Lander  <george.lander@arm.com>
3274         * acinclude.m4 (glibcxx_cv_obsolete_isnan): Define
3275         _GLIBCXX_INCLUDE_NEXT_C_HEADERS before including math.h.
3276         * configure: Regenerate.
3278 2017-03-09  Jonathan Wakely  <jwakely@redhat.com>
3280         * include/std/functional (_Not_fn): Define macro to simplify
3281         repetitive function definitions.
3283         * doc/xml/manual/status_cxx2017.xml: Document std::byte support.
3284         * include/c_global/cstddef (std::byte): Define for C++17.
3285         * testsuite/18_support/byte/global_neg.cc: New test.
3286         * testsuite/18_support/byte/ops.cc: New test.
3287         * testsuite/18_support/byte/requirements.cc: New test.
3289 2017-03-05  Jonathan Wakely  <jwakely@redhat.com>
3291         * doc/xml/manual/status_cxx2017.xml: Document P0156R2 status.
3292         * doc/html/*: Regenerate.
3293         * include/std/mutex (scoped_lock): Implement new C++17 template.
3294         * testsuite/30_threads/scoped_lock/cons/1.cc: New test.
3295         * testsuite/30_threads/scoped_lock/requirements/
3296         explicit_instantiation.cc: New test.
3297         * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: New test.
3299 2017-03-02  Gerald Pfeifer  <gerald@pfeifer.com>
3300             François Dumont  <frs.dumont@gmail.com>
3301             Jonathan Wakely  <jwakely@redhat.com>
3303         * doc/xml/manual/debug_mode.xml: Update and simplify note
3304         on link- and run-time coexistence.
3306 2017-03-02  Jonathan Wakely  <jwakely@redhat.com>
3308         * testsuite/17_intro/headers/names.cc: Rename to ...
3309         * testsuite/17_intro/names.cc: ... here.
3311         PR libstdc++/79789
3312         * include/bits/hashtable_policy.h (__clp2): Use reserved names for
3313         parameters and local variables.
3314         * include/bits/ios_base.h (make_error_code, make_error_condition):
3315         Likewise.
3316         * include/bits/list.tcc (list::sort): Likewise.
3317         * include/bits/mask_array.h (mask_array): Likewise.
3318         * include/bits/regex.h (regex_token_iterator): Likewise.
3319         * include/bits/slice_array.h (slice_array): Likewise.
3320         * include/bits/stl_algo.h (__sample): Likewise.
3321         * include/std/memory (undeclare_no_pointers): Likewise.
3322         * include/std/type_traits (is_callable_v, is_nothrow_callable_v):
3323         Likewise.
3324         * libsupc++/exception_ptr.h (__dest_thunk): Likewise.
3325         * testsuite/17_intro/headers/names.cc: New test.
3327         PR libstdc++/79798
3328         * include/std/functional (bind::_Res_type_impl): Fix incorrect use of
3329         result_of that loses top-level cv-qualifiers.
3330         * testsuite/20_util/bind/79798.cc: New test.
3332 2017-03-01  Gerald Pfeifer  <gerald@pfeifer.com>
3334         * doc/xml/manual/documentation_hacking.xml: Tweak link to
3335         doxygen.org.
3337 2017-02-23  Jonathan Wakely  <jwakely@redhat.com>
3339         * include/experimental/iterator: Include <iterator>.
3340         * testsuite/experimental/iterator/requirements.cc: Check for contents
3341         of <iterator>.
3343 2017-02-19  Dinka Ranns  <dinka.ranns@googlemail.com>
3345         C++17 GB50 resolution
3346         * include/std/chrono (duration::operator++()): Add
3347         _GLIBCXX17_CONSTEXPR.
3348         (duration::operator++(int)): Likewise.
3349         (duration::operator--()): Likewise.
3350         (duration::operator--(int)): Likewise.
3351         (duration::operator+=(const duration&)): Likewise.
3352         (duration::operator-=(const duration&)): Likewise.
3353         (duration::operator*=(const rep&)): Likewise.
3354         (duration::operator/=(const rep&)): Likewise.
3355         (duration::operator%=(const rep&)): Likewise.
3356         (duration::operator%=(const duration&)): Likewise.
3357         (time_point::operator+=(const duration&)): Likewise.
3358         (time_point::operator-=(const duration&)): Likewise.
3359         * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: New test.
3360         * testsuite/20_util/duration/literals/range.cc: Adjust dg-error.
3361         * testsuite/20_util/time_point/arithmetic/constexpr.cc: New test.
3363 2017-02-19  Gerald Pfeifer  <gerald@pfeifer.com>
3365         * doc/xml/manual/debug.xml: Adjust link to ThreadSanitizer.
3367 2017-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
3369         * doc/xml/manual/io.xml: Update link to groups.google.com.
3370         Tweak link description.
3372 2017-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
3374         * doc/xml/manual/profile_mode.xml: Fix link.
3376 2017-02-16  Gerald Pfeifer  <gerald@pfeifer.com>
3378         * doc/xml/manual/policy_data_structures.xml: Simplify and
3379         standardize references to boost.org.
3380         * doc/xml/manual/policy_data_structures_biblio.xml: Ditto.
3381         * doc/xml/manual/shared_ptr.xml: Ditto.
3383 2017-02-16  Jonathan Wakely  <jwakely@redhat.com>
3385         PR libstdc++/60936
3386         * src/c++11/snprintf_lite.cc (__concat_size_t): Calculate length
3387         written to buffer, not length remaining in buffer.
3389 2017-02-15  Tim Shen  <timshen@google.com>
3391         PR libstdc++/78723
3392         * include/std/variant (operator<(), operator>(), operator<=(),
3393         operator>=(), operator==(), operator!=()): Implement P0393R3.
3394         * testsuite/20_util/variant/compile.cc: Adjust tests.
3395         * testsuite/20_util/variant/run.cc: Adjust tests.
3397 2017-02-15  Tim Shen  <timshen@google.com>
3399         PR libstdc++/79513
3400         * include/std/variant (visit()): Forward variant types to the return
3401         type detection code.
3402         * testsuite/20_util/variant/compile.cc: Add test cases.
3404 2017-02-13  H.J. Lu  <hongjiu.lu@intel.com>
3406         PR libstdc++/79348
3407         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
3409 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
3411         PR libstdc++/79348
3412         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
3413         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
3414         * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Likewise.
3415         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
3416         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Likewise.
3417         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Likewise.
3418         * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Likewise.
3419         * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Likewise.
3420         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
3422 2017-02-13  Jonathan Wakely  <jwakely@redhat.com>
3424         PR libstdc++/79486
3425         * include/std/future (__future_base::_Task_state::_M_run)
3426         (__future_base::_Task_state::_M_run_delayed): Use lvalue types in
3427         result_of expressions.
3428         * testsuite/30_threads/packaged_task/79486.cc: New.
3430 2017-02-11  Jonathan Wakely  <jwakely@redhat.com>
3432         PR libstdc++/79467
3433         * include/bits/shared_ptr_base.h (__shared_ptr(_Yp*, _Deleter))
3434         (__shared_ptr(_Yp*, _Deleter, _Alloc)): Use lvalue types in
3435         __is_callable check.
3436         * testsuite/20_util/shared_ptr/cons/79467.cc: New.
3438         * include/bits/atomic_base.h: Re-indent.
3440 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
3442         * doc/xml/manual/profile_mode.xml: Update a paper reference.
3444 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
3446         * src/c++11/snprintf_lite.cc (__err): Use https for bug reporting.
3448 2017-02-08  Jonathan Wakely  <jwakely@redhat.com>
3450         * doc/xml/manual/policy_data_structures.xml: Fix spelling of author's
3451         name.
3452         * doc/xml/manual/policy_data_structures_biblio.xml: Likewise. Remove
3453         broken links to texts that are no longer online.
3454         * doc/xml/manual/profile_mode.xml: Update links to CGO 2009 paper and
3455         LCPC 2006 paper.
3456         * doc/xml/manual/using.xml: Update links to memory model information.
3457         * doc/xml/manual/using_exceptions.xml: Update link to "Appendix E:
3458         Standard-Library Exception Safety".
3459         * doc/html/*: Regenerate.
3461 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
3463         * doc/xml/manual/profile_mode.xml: Unbreak link to
3464         "Optimizing Sorting with Machine Learning Algorithms".
3466 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
3468         * src/c++11/snprintf_lite.cc (__err): Update bug reporting URL.
3470 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
3472         * doc/xml/manual/abi.xml: Update link to "Sun Studio 11: C++
3473         Migration Guide".
3475 2017-02-07  Gerald Pfeifer  <gerald@pfeifer.com>
3477         * doc/html/ext/lwg-active.html: Remove.
3478         * doc/html/ext/lwg-closed.html: Ditto.
3479         * doc/html/ext/lwg-defects.html: Ditto.
3481         * doc/Makefile.am (xml_extradir): Remove.
3482         (xml_extra): Ditto.
3483         (stamp-html-docbook-lwg): Remove recipe...
3484         (stamp-html-docbook-data): ...and its use here.
3485         * doc/Makefile.in: Regenerate.
3487         * doc/xml/manual/intro.xml: Shorten two paragraphs explaining
3488         the relationship to the upstream working group.
3489         Replace a local link to ../ext/lwg-active.html by the upstream one.
3490         Replace all reference to ../ext/lwg-defects.html by a new entity
3491         &DR; which refers to the upstream address.
3493 2017-02-07  Gerald Pfeifer  <gerald@pfeifer.com>
3495         * doc/xml/manual/status_cxx2017.xml: Fix link to N4284.
3497 2017-02-06  Jonathan Wakely  <jwakely@redhat.com>
3499         PR libstdc++/79323
3500         * testsuite/20_util/duration/literals/range.cc: Prune extra output
3501         at -O0.
3503 2017-02-06  Gerald Pfeifer  <gerald@pfeifer.com>
3505         * doc/xml/manual/documentation_hacking.xml: Update URL of the
3506         DocBook Element Reference.  Use that term as link description
3507         instead of "online".
3508         epubcheck has moved to GitHub.
3509         Remove obsolete link to DocBook Publishing Tools.
3511 2017-02-03  Jonathan Wakely  <jwakely@redhat.com>
3513         PR libstdc++/66145
3514         * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Restore ABI override
3515         so new ios::failure can be caught even when old ABI is the default.
3516         * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
3517         * testsuite/27_io/basic_istream/extractors_arithmetic/char/
3518         exceptions_failbit.cc: Likewise.
3519         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
3520         exceptions_failbit.cc: Likewise.
3521         * testsuite/27_io/basic_istream/extractors_other/char/
3522         exceptions_null.cc: Likewise.
3523         * testsuite/27_io/basic_istream/extractors_other/wchar_t/
3524         exceptions_null.cc: Likewise.
3525         * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
3526         * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
3527         * testsuite/27_io/basic_ostream/inserters_other/char/
3528         exceptions_null.cc: Likewise.
3529         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
3530         exceptions_null.cc: Likewise.
3531         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
3533         PR libstdc++/60936
3534         * src/c++11/Makefile.am: Add new files.
3535         * src/c++11/Makefile.in: Regenerate.
3536         * src/c++11/cow-string-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
3537         (operator<<, operator>>, getline): Move explicit instantiations to ...
3538         * src/c++11/cow-string-io-inst.cc: ... new file.
3539         * src/c++11/cow-wstring-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
3540         (operator<<, operator>>, getline): Move explicit instantiations to ...
3541         * src/c++11/cow-wstring-io-inst.cc: ... new file.
3542         * src/c++11/functexcept.cc (__throw_ios_failure, __throw_system_error)
3543         (__throw_future_error, __throw_bad_function_call):
3544         (__throw_regex_error): Move functions for C++11 exceptions to the
3545         files that define the exception types.
3546         * src/c++11/functional.cc (__throw_bad_function_call): Move here.
3547         * src/c++11/future.cc (__throw_future_error): Likewise.
3548         * src/c++11/ios.cc (__throw_ios_failure): Likewise.
3549         * src/c++11/regex.cc (__throw_regex_error): Likewise.
3550         * src/c++11/snprintf_lite.cc (__concat_size_t): Print decimal
3551         representation directly instead of calling __int_to_char.
3552         * src/c++11/sso_string.cc (__sso_string): New file for definition
3553         of __sso_string type.
3554         * src/c++11/string-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
3555         explicit instantiations of narrow string I/O functions.
3556         * src/c++11/system_error.cc (__throw_system_error): Move here.
3557         (__sso_string): Move to new file.
3558         * src/c++11/wstring-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
3559         explicit instantiations of wide string I/O functions.
3560         * src/c++98/misc-inst.cc [_GLIBCXX_USE_CXX11_ABI] (operator<<)
3561         (operator>>, getline): Remove explicit instantiations from here.
3563 2017-02-02  H.J. Lu  <hongjiu.lu@intel.com>
3565         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
3567 2017-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3569         * configure.host: Separate Solaris/SPARC and x86 baselines.
3570         * config/abi/post/solaris2.10/baseline_symbols.txt: Move ...
3571         * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: ... here.
3572         * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Move ...
3573         * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
3574         ... here.
3575         * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Move ...
3576         * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: ... here.
3577         * config/abi/post/i386-solaris2.10/baseline_symbols.txt: New file.
3578         * config/abi/post/solaris2.11/baseline_symbols.txt: Move ...
3579         * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: ... here.
3580         * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Move ...
3581         * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
3582         ... here.
3583         * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Move ...
3584         * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: ... here.
3585         * config/abi/post/i386-solaris2.11/baseline_symbols.txt: New file.
3587         * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
3588         * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
3589         * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
3590         * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
3591         * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
3592         * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
3594 2017-02-01  Jonathan Wakely  <jwakely@redhat.com>
3596         PR libstdc++/78346
3597         * include/bits/predefined_ops.h (_Iter_equals_iter): Store iterator
3598         not its referent.
3599         (_Iter_comp_to_iter): Likewise.
3600         * testsuite/25_algorithms/search/78346.cc: New test.
3602         PR libstdc++/79254
3603         * config/abi/pre/gnu.ver: Remove recently added symbols.
3604         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
3605         (basic_string::_M_copy_assign): Remove.
3606         (basic_string::operator=(const basic_string&)): Don't dispatch to
3607         _M_copy_assign. If source object is small just deallocate, otherwise
3608         perform new allocation before making any changes.
3609         * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
3610         (basic_string::_M_copy_assign(const basic_string&, true_type)):
3611         Remove.
3612         * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
3613         Test cases where the allocators are equal or the string is small.
3614         * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
3615         Likewise.
3617 2017-01-30  Ville Voutilainen  <ville.voutilainen@gmail.com>
3619         Implement LWG 2825, LWG 2756 breaks class template argument
3620         deduction for optional.
3621         * include/std/optional: Add a deduction guide.
3622         * testsuite/20_util/optional/cons/deduction_guide.cc: New.
3624 2017-01-27  Jonathan Wakely  <jwakely@redhat.com>
3626         PR libstdc++/79254
3627         * config/abi/pre/gnu.ver: Add new symbols.
3628         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
3629         (basic_string::_M_copy_assign): New overloaded functions to perform
3630         copy assignment.
3631         (basic_string::operator=(const basic_string&)): Dispatch to
3632         _M_copy_assign.
3633         * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
3634         (basic_string::_M_copy_assign(const basic_string&, true_type)):
3635         Define, performing rollback on exception.
3636         * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
3637         Test exception-safety guarantee.
3638         * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
3639         Likewise.
3640         * testsuite/util/testsuite_allocator.h (uneq_allocator::swap): Make
3641         std::swap visible.
3643 2017-01-26  Jonathan Wakely  <jwakely@redhat.com>
3645         PR libstdc++/70607
3646         * include/tr1/complex (conj): Remove using-declaration and restore
3647         overloads, reverting previous change.
3649         * testsuite/23_containers/list/operations/78389.cc: Fix for C++11
3650         mode.
3651         * testsuite/23_containers/priority_queue/requirements/constructible.cc:
3652         Mark as unsupported in C++98 mode.
3653         * testsuite/23_containers/queue/requirements/constructible.cc:
3654         Likewise.
3655         * testsuite/23_containers/stack/requirements/constructible.cc:
3656         Likewise.
3657         * testsuite/25_algorithms/make_heap/movable.cc: Fix for C++11 mode.
3659         PR libstdc++/79243
3660         * include/bits/c++config (literals::string_view_literals::__7): Add.
3661         Only declare versioned namespaces for the relevant C++ dialects.
3662         * include/experimental/bits/erase_if.h (fundamentals_v2::__detail):
3663         Add versioning macros.
3664         * include/experimental/bits/lfts_config.h:
3665         (fundamentals_v1::__detail::__7, fundamentals_v2::__detail::__7): Add.
3666         * include/experimental/string_view (fundamentals_v2::__detail):
3667         Add versioning macros.
3668         (fundamentals_v2::__detail::__identity): Remove.
3669         (fundamentals_v2::__detail::__idt): Use common_type instead of
3670         __detail::__identity.
3671         * include/std/string_view (__detail::__identity, __detail::__idt):
3672         Likewise.
3673         (literals::string_view_literals): Fix nesting of versioning macros.
3675         PR libstdc++/79190
3676         * libsupc++/del_opa.cc (operator delete(void*, std::align_val_t))
3677         [!_GLIBCXX_HAVE_ALIGNED_ALLOC && !_GLIBCXX_HAVE_POSIX_MEMALIGN
3678         && !_GLIBCXX_HAVE_MEMALIGN && !_GLIBCXX_HAVE__ALIGNED_MALLOC]:
3679         Retrieve original pointer value allocated by malloc.
3680         * libsupc++/new_opa.cc [!_GLIBCXX_HAVE_ALIGNED_ALLOC
3681         && !_GLIBCXX_HAVE_POSIX_MEMALIGN && !_GLIBCXX_HAVE_MEMALIGN
3682         && !_GLIBCXX_HAVE__ALIGNED_MALLOC] (aligned_alloc(size_t, size_t)):
3683         Define, adjusting pointer value allocated by malloc and storing for
3684         retrieval by operator delete.
3686 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
3688         * libsupc++/eh_atomics.h: Update copyright years.
3689         * testsuite/20_util/unique_ptr/cons/default.cc: Update copyright years.
3691 2017-01-25  Jonathan Wakely  <jwakely@redhat.com>
3693         PR libstdc++/61791
3694         PR libstdc++/70607
3695         * include/std/complex (real(T), imag(T)): Add _GLIBCXX_CONSTEXPR.
3696         (proj(T), conj(T)): Change return types per DR 1522.
3697         * include/tr1/complex (conj): Remove overloads and use std::conj.
3698         * testsuite/26_numerics/complex/dr781_dr1137.cc: Rename to...
3699         * testsuite/26_numerics/complex/dr781.cc: ... this, and update.
3700         * testsuite/26_numerics/complex/value_operations/constexpr2.cc: Test
3701         real(T) and imag(T). Allow testing for C++11 too.
3703 2017-01-24  Jonathan Wakely  <jwakely@redhat.com>
3705         PR libstdc++/79206
3706         * include/experimental/string_view (operator==): Check sizes first.
3707         * include/std/string_view (operator==): Likewise.
3709 2017-01-23  Jonathan Wakely  <jwakely@redhat.com>
3711         * testsuite/experimental/array/make_array.cc: Restore <functional>
3712         inclusion.
3714 2017-01-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3716         * testsuite/29_atomics/atomic/69301.cc: Require atomic builtins.
3718 2017-01-23  Jonathan Wakely  <jwakely@redhat.com>
3720         PR libstdc++/79195
3721         * include/experimental/array (__make_array_elem): New class template
3722         and partial specialization.
3723         (__is_reference_wrapper): Move into __make_array_elem specialization.
3724         (make_array): Use __make_array_elem to determine element type and move
3725         static assertion into specialization. Qualify std::forward call.
3726         (to_array): Add exception specifiation.
3727         * testsuite/experimental/array/make_array.cc: Test argument types
3728         without a common type.
3729         * testsuite/experimental/array/neg.cc: Adjust expected error message.
3731 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
3733         * doc/xml/manual/debug.xml: code.google.com uses https now.
3735 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
3737         * doc/xml/manual/test.xml: Fix link into gccint online manual.
3739 2017-01-21  Ville Voutilainen  <ville.voutilainen@gmail.com>
3741         Make poisoned hashes SFINAE away the call operator of the hash.
3742         * include/bits/functional_hash.h
3743         (__poison_hash::__enable_hash_call): New.
3744         * include/std/optional (__optional_hash_call_base): New.
3745         (hash<optional<_Tp>>): Derive from the new base,
3746         move the hash function into that base.
3747         * include/std/variant (__variant_hash_call_base_impl): New.
3748         (__variant_hash_call_base): Likewise.
3749         (hash<variant<_Types...>>): Derive from the new base,
3750         move the hash function into that base.
3751         * testsuite/20_util/optional/hash.cc: Add tests for is_callable.
3752         * testsuite/20_util/variant/hash.cc: Likewise.
3754 2017-01-20  Joe Seymour  <joe.s@somniumtech.com>
3756         * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): Support uint20_t.
3757         * configure: Regenerate.
3759 2017-01-20  Jonathan Wakely  <jwakely@redhat.com>
3761         PR libstdc++/69240
3762         * include/bits/random.h (uniform_real_distribution::param_type)
3763         (normal_distribution::param_type, lognormal_distribution::param_type)
3764         (gamma_distribution::param_type, chi_squared_distribution::param_type)
3765         (cauchy_distribution::param_type, fisher_f_distribution::param_type)
3766         (student_t_distribution::param_type)
3767         (bernoulli_distribution::param_type, binomial_distribution::param_type)
3768         (geometric_distribution::param_type)
3769         (negative_binomial_distribution::param_type)
3770         (poisson_distribution::param_type)
3771         (exponential_distribution::param_type)
3772         (weibull_distribution::param_type)
3773         (extreme_value_distribution::param_type)
3774         (discrete_distribution::param_type)
3775         (piecewise_constant_distribution::param_type)
3776         (piecewise_linear_distribution::param_type): Define operator!=.
3777         * include/bits/uniform_int_dist.h
3778         (uniform_int_distribution::param_type): Likewise.
3779         * include/ext/random (beta_distribution::param_type)
3780         (rice_distribution::param_type, nakagami_distribution::param_type)
3781         (pareto_distribution::param_type, k_distribution::param_type)
3782         (arcsine_distribution::param_type, hoyt_distribution::param_type)
3783         (triangular_distribution::param_type)
3784         (von_mises_distribution::param_type)
3785         (hypergeometric_distribution::param_type)
3786         (logistic_distribution::param_type)
3787         (uniform_on_sphere_distribution::param_type)
3788         (uniform_inside_sphere_distribution::param_type): Likewise.
3789         * testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc:
3790         Test construction with param_type.
3791         * testsuite/26_numerics/random/binomial_distribution/cons/parms.cc:
3792         Likewise.
3793         * testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc:
3794         Likewise.
3795         * testsuite/26_numerics/random/chi_squared_distribution/cons/parms.cc:
3796         Likewise.
3797         * testsuite/26_numerics/random/exponential_distribution/cons/parms.cc:
3798         Likewise.
3799         * testsuite/26_numerics/random/extreme_value_distribution/cons/
3800         parms.cc: Likewise.
3801         * testsuite/26_numerics/random/fisher_f_distribution/cons/parms.cc:
3802         Likewise.
3803         * testsuite/26_numerics/random/gamma_distribution/cons/parms.cc:
3804         Likewise.
3805         * testsuite/26_numerics/random/geometric_distribution/cons/parms.cc:
3806         Likewise.
3807         * testsuite/26_numerics/random/lognormal_distribution/cons/parms.cc:
3808         Likewise.
3809         * testsuite/26_numerics/random/negative_binomial_distribution/cons/
3810         parms.cc: Likewise.
3811         * testsuite/26_numerics/random/normal_distribution/cons/parms.cc:
3812         Likewise.
3813         * testsuite/26_numerics/random/poisson_distribution/cons/parms.cc:
3814         Likewise.
3815         * testsuite/26_numerics/random/student_t_distribution/cons/parms.cc:
3816         Likewise.
3817         * testsuite/26_numerics/random/uniform_int_distribution/cons/parms.cc:
3818         Likewise.
3819         * testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc:
3820         Likewise.
3821         * testsuite/26_numerics/random/weibull_distribution/cons/parms.cc:
3822         Likewise.
3823         * testsuite/ext/random/arcsine_distribution/cons/parms.cc: Likewise.
3824         * testsuite/ext/random/beta_distribution/cons/parms.cc: Likewise.
3825         * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
3826         * testsuite/ext/random/hypergeometric_distribution/cons/parms.cc:
3827         Likewise.
3828         * testsuite/ext/random/k_distribution/cons/parms.cc: Likewise.
3829         * testsuite/ext/random/logistic_distribution/cons/parms.cc: Likewise.
3830         * testsuite/ext/random/nakagami_distribution/cons/parms.cc: Likewise.
3831         * testsuite/ext/random/normal_mv_distribution/cons/parms.cc: Likewise.
3832         * testsuite/ext/random/pareto_distribution/cons/parms.cc: Likewise.
3833         * testsuite/ext/random/rice_distribution/cons/parms.cc: Likewise.
3834         * testsuite/ext/random/triangular_distribution/cons/parms.cc:
3835         Likewise.
3836         * testsuite/ext/random/uniform_inside_sphere_distribution/cons/
3837         parms.cc: Likewise.
3838         * testsuite/ext/random/von_mises_distribution/cons/parms.cc: Likewise.
3840         PR libstdc++/72792
3841         * include/bits/alloc_traits.h (__allocator_traits_base::__diff_type)
3842         (__allocator_traits_base::__size_type): Remove.
3843         (allocator_traits::_Ptr): New class template to detect const and void
3844         pointer types without instantiating pointer_traits::rebind
3845         unnecessarily.
3846         (allocator_traits::_Diff): Likewise for detecting difference_type.
3847         (allocator_traits::_Size): New class template to detect size_type
3848         without instantiating make_unsigned unnecessarily.
3849         * include/bits/ptr_traits.h (pointer_traits::element_type): Use
3850         __detected_or_t instead of __detected_or_t_.
3851         * include/std/type_traits (__detected_or_t_): Remove.
3852         * testsuite/20_util/allocator_traits/members/pointers.cc: New test.
3854         PR libstdc++/72792
3855         PR libstdc++/72793
3856         * include/bits/alloc_traits.h (__allocator_traits_base::__rebind):
3857         Replace with class template using void_t.
3858         (__alloc_rebind): Define in terms of
3859         __allocator_traits_base::__rebind.
3860         (allocator_traits): Remove unconditional static_assert for
3861         rebind_alloc.
3862         * include/bits/ptr_traits.h (__replace_first_arg): Remove type member.
3863         (pointer_traits::__rebind): Replace with class template using void_t.
3864         (pointer_traits::rebind): Define in terms of __rebind.
3865         (pointer_traits): Remove unconditional static_assert for rebind.
3866         * testsuite/20_util/allocator_traits/members/rebind_alloc.cc: New test.
3867         * testsuite/20_util/pointer_traits/rebind.cc: New test.
3869         PR libstdc++/69321
3870         * include/experimental/any (__any_caster): Avoid instantiating
3871         manager function for types that can't be stored in any.
3872         * include/std/any (__any_caster): Likewise.
3873         * testsuite/20_util/any/misc/any_cast.cc: Test non-copyable type.
3874         * testsuite/experimental/any/misc/any_cast.cc: Likewise.
3876         PR libstdc++/64903
3877         * include/bits/stl_algo.h (is_partitioned): Use increment instead of
3878         std::advance.
3880 2017-01-19  Jonathan Wakely  <jwakely@redhat.com>
3882         PR libstdc++/79156
3883         * include/bits/shared_ptr_base.h (__enable_shared_from_this_base):
3884         Fix return type.
3885         (__enable_shared_from_this): Declare __shared_ptr as a friend.
3886         * testsuite/ext/shared_ptr/1.cc: New test.
3888         PR libstdc++/64903
3889         * include/bits/stl_algo.h (is_partitioned): Don't retest the partition
3890         point.
3891         * testsuite/25_algorithms/is_partitioned/2.cc: New test.
3893         * doc/xml/manual/abi.xml: Fix typo.
3894         * doc/html/manual/abi.html: Likewise.
3896         PR libstdc++/67085
3897         * include/bits/predefined_ops.h (_Iter_less_val, _Val_less_iter): Add
3898         converting constructors from _Iter_less_iter.
3899         (_Iter_comp_val, _Val_comp_iter): Add converting constructors from
3900         _Iter_comp_iter.
3901         (__iter_comp_val(_Iter_comp_iter<C>): Use converting constructor.
3902         (__val_comp_iter(_Iter_comp_iter<C>): Likewise.
3903         * include/bits/stl_heap.h (__is_heap_until, __push_heap, __pop_heap)
3904         (__make_heap, __sort_heap): Change _Compare parameters to references.
3905         (__is_heap, push_heap, __adjust_heap, __pop_heap, pop_heap)
3906         (__make_heap, make_heap, sort_heap, is_heap_until): Pass comparison
3907         functions as lvalues.
3908         (is_heap): Call __is_heap_until directly to avoid copying __comp.
3909         * testsuite/23_containers/priority_queue/67085.cc: Adjust test to
3910         count copies during construction with empty sequence.
3912         PR libstdc++/67085
3913         * include/bits/stl_heap.h (__is_heap): Use _GLIBCXX_MOVE.
3914         (__make_heap, __sort_heap): Don't use _GLIBCXX_MOVE inside loops.
3915         * testsuite/23_containers/priority_queue/67085.cc: Adjust expected
3916         number of copies.
3917         * testsuite/25_algorithms/make_heap/movable.cc: New test.
3919         PR libstdc++/67085
3920         * include/bits/stl_heap.h (push_heap, __adjust_heap, __pop_heap)
3921         (pop_heap, __make_heap, make_heap, __sort_heap, sort_heap): Use
3922         _GLIBCXX_MOVE when passing comparison function to other functions.
3923         (is_heap_until, is_heap): Use std::move when passing comparison
3924         function.
3925         * testsuite/23_containers/priority_queue/67085.cc: New test.
3927         PR libstdc++/78905
3928         * doc/xml/manual/abi.xml (abi.versioning.history): Add markup to
3929         macro names, filenames, and literal values. Document _GLIBCXX_RELEASE.
3930         Document that the deprecated _GLIBCXX_VERSION macro was removed for
3931         the 4.0.0 release.
3932         * doc/html/*: Regenerate.
3933         * include/Makefile.am (_GLIBCXX_RELEASE): Set value.
3934         * include/Makefile.in: Regenerate.
3935         * include/bits/c++config (_GLIBCXX_RELEASE): Add #define.
3936         * testsuite/ext/profile/mutex_extensions_neg.cc: Use lineno of 0 in
3937         dg-error.
3939 2017-01-18  Jonathan Wakely  <jwakely@redhat.com>
3941         PR libstdc++/69301
3942         * include/std/atomic (atomic<T>::load, atomic<T>::exchange): Use
3943         aligned buffer instead of default-initialized variable.
3944         * testsuite/29_atomics/atomic/69301.cc: New test.
3945         * include/experimental/memory (observer_ptr::release): Use reserved
3946         name.
3947         * include/ext/pointer.h (_Pointer_adapter::operator++(int))
3948         (_Pointer_adapter::operator--(int)): Likewise.
3950         PR libstdc++/68925
3951         * include/experimental/random (randint): Use temporary instead of
3952         thread_local static.
3954 2017-01-17  Joshua Conner  <joshconner@google.com>
3956         * crossconfig.m4: Add fuchsia OS.
3957         * configure: Regenerate.
3959 2017-01-17  Jonathan Wakely  <jwakely@redhat.com>
3961         PR libstdc++/69699
3962         * doc/xml/manual/abi.xml (abi.versioning.history): Explain why the
3963         __GLIBCXX__ macro is not useful. Remove redundant date information
3964         and link to the GCC release timeline.
3965         (abi.versioning.active): Move partial sentence into the previous
3966         paragraph.
3967         * doc/html/*: Regenerate.
3969         PR libstdc++/79114
3970         * libsupc++/nested_exception.h (throw_with_nested): Use decay instead
3971         of remove_reference.
3972         * testsuite/18_support/nested_exception/79114.cc: New test.
3974 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
3976         PR other/79046
3977         * configure.ac: Add GCC_BASE_VER.
3978         * fragment.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
3979         get version from BASE-VER file.
3980         * po/Makefile.in: Regenerated.
3981         * libsupc++/Makefile.in: Regenerated.
3982         * testsuite/Makefile.in: Regenerated.
3983         * src/Makefile.in: Regenerated.
3984         * configure: Regenerated.
3985         * Makefile.in: Regenerated.
3986         * include/Makefile.in: Regenerated.
3987         * doc/Makefile.in: Regenerated.
3988         * python/Makefile.in: Regenerated.
3989         * src/c++11/Makefile.in: Regenerated.
3990         * src/c++98/Makefile.in: Regenerated.
3991         * src/filesystem/Makefile.in: Regenerated.
3993 2017-01-16  Jonathan Wakely  <jwakely@redhat.com>
3995         PR libstdc++/66145
3996         * src/c++11/functexcept.cc: Use new ABI for std::ios_base::failure
3997         exceptions.
3998         * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Don't override ABI
3999         for test, so new ios::failure can be caught.
4000         * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
4001         * testsuite/27_io/basic_istream/extractors_arithmetic/char/
4002         exceptions_failbit.cc: Likewise.
4003         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
4004         exceptions_failbit.cc: Likewise.
4005         * testsuite/27_io/basic_istream/extractors_other/char/
4006         exceptions_null.cc: Likewise.
4007         * testsuite/27_io/basic_istream/extractors_other/wchar_t/
4008         exceptions_null.cc: Likewise.
4009         * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
4010         * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
4011         * testsuite/27_io/basic_ostream/inserters_other/char/
4012         exceptions_null.cc: Likewise.
4013         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
4014         exceptions_null.cc: Likewise.
4015         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
4017         PR libstdc++/78702
4018         * include/bits/locale_classes.h (locale::facet::__shim): Change from
4019         private to protected.
4020         * src/c++11/cxx11-shim_facets.cc (__shim_accessor): Define helper to
4021         make locale::facet::__shim accessible.
4023 2017-01-16  Ville Voutilainen  <ville.voutilainen@gmail.com>
4025         PR libstdc++/78389
4026         * include/bits/list.tcc (merge(list&&)): Fix backwards size adjustments.
4027         (merge(list&&, _StrictWeakOrdering)): Likewise.
4028         * testsuite/23_containers/list/operations/78389.cc: Add
4029         better test for the sizes.
4031 2017-01-14  Jonathan Wakely  <jwakely@redhat.com>
4033         * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
4034         Skip test when -D_GLIBCXX_PROFILE mode is included in options.
4035         * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
4036         * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
4037         Likewise.
4038         * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
4039         * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise.
4040         * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise.
4041         * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
4042         * testsuite/23_containers/unordered_map/modifiers/extract.cc:
4043         Likewise.
4044         * testsuite/23_containers/unordered_multimap/modifiers/extract.cc::
4045         Likewise.
4046         * testsuite/23_containers/unordered_multiset/modifiers/extract.cc::
4047         Likewise.
4048         * testsuite/23_containers/unordered_set/modifiers/extract.cc:
4049         Likewise.
4050         * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
4051         Likewise.
4052         * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise.
4053         * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise.
4054         * testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise.
4055         * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise.
4056         * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise.
4057         * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
4058         * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
4059         * testsuite/libstdc++-prettyprinters/debug.cc: Likewise.
4060         * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise.
4061         * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
4062         * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
4063         * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
4064         * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
4066 2017-01-13  Jonathan Wakely  <jwakely@redhat.com>
4068         PR libstdc++/65411
4069         * config/io/basic_file_stdio.cc (__basic_file<char>::close()): Don't
4070         retry fclose on EINTR.
4072         * include/profile/base.h: Remove unused header that leads to header
4073         cycle in C++17 mode.
4075         PR libstdc++/79075
4076         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
4077         Make _If_sv private.
4078         [!_GLIBCXX_USE_CXX11_ABI] (basic_string): Add member functions taking
4079         basic_string_view arguments.
4081         PR libstdc++/79075
4082         * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Remove
4083         redundant option from cxxflags.
4084         (check_effective_target_cxx11-abi): Define.
4085         * testsuite/21_strings/basic_string/allocator/71964.cc: Use cxx11-abi
4086         effective target.
4087         * testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise.
4088         * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
4089         Likewise.
4090         * testsuite/21_strings/basic_string/allocator/char/minimal.cc:
4091         Likewise.
4092         * testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
4093         * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
4094         Likewise.
4095         * testsuite/21_strings/basic_string/allocator/char/noexcept.cc:
4096         Likewise.
4097         * testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
4098         * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
4099         Likewise.
4100         * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
4101         Likewise.
4102         * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
4103         Likewise.
4104         * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
4105         Likewise.
4106         * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
4107         Likewise.
4108         * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
4109         Likewise.
4110         * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
4111         Likewise.
4112         * testsuite/23_containers/list/61347.cc: Likewise.
4113         * testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
4114         * testsuite/27_io/ios_base/failure/cxx11.cc: Likewise.
4116 2017-01-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
4118         PR libstdc++/78389
4119         * include/bits/list.tcc (merge(list&&)):
4120         Adjust list sizes if the comparator throws.
4121         (merge(list&&, _StrictWeakOrdering)): Likewise.
4122         (sort()): Splice elements back from the scratch buffers
4123         if the comparator throws.
4124         (sort(_StrictWeakOrdering)): Likewise.
4125         * testsuite/23_containers/list/operations/78389.cc: New.
4127 2017-01-13  Jonathan Wakely  <jwakely@redhat.com>
4129         * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Mark
4130         XFAIL for C++17 until node reinsertion supports fancy pointers.
4132         PR libstdc++/78361
4133         * testsuite/20_util/add_pointer/value.cc: Test forming function
4134         pointers.
4136 2017-01-13  Michael Brune  <lucdanton@free.fr>
4138         PR libstdc++/78361
4139         * include/std/type_traits (__is_referenceable): Handle noexcept
4140         function types.
4142 2017-01-12  Jonathan Wakely  <jwakely@redhat.com>
4144         PR libstdc++/77528
4145         * include/bits/stl_queue.h (queue, priority_queue): Remove default
4146         member-initializers and define default constructors as templates with
4147         constraints.
4148         * include/bits/stl_stack.h (stack): Likewise.
4149         * testsuite/23_containers/priority_queue/requirements/constructible.cc:
4150         New.
4151         * testsuite/23_containers/priority_queue/requirements/
4152         explicit_instantiation/1.cc: Test more instantiations.
4153         * testsuite/23_containers/priority_queue/requirements/
4154         explicit_instantiation/1_c++98.cc: Likewise.
4155         * testsuite/23_containers/queue/requirements/constructible.cc: New.
4156         * testsuite/23_containers/stack/requirements/constructible.cc: New.
4158         PR libstdc++/66284
4159         * doc/xml/manual/intro.xml: Document LWG 2781 change.
4160         * doc/html/*: Regenerate.
4161         * include/std/functional (_Function_base::_Ref_manager): Remove.
4162         (_Function_handler): Remove partial specializations for
4163         reference_wrapper.
4164         (function::target): Remove special case for const qualification.
4165         * testsuite/20_util/function/6.cc: Adjust tests for target type.
4166         * testsuite/20_util/function/7.cc: Likewise.
4167         * testsuite/20_util/function/8.cc: Likewise.
4169 2017-01-11  Jonathan Wakely  <jwakely@redhat.com>
4171         PR libstdc++/78134
4172         * include/bits/stl_map.h (map::lower_bound, map::upper_bound)
4173         (map::equal_range): Fix return type of heterogeneous overloads.
4174         * include/bits/stl_multimap.h (multimap::lower_bound)
4175         (multimap::upper_bound, multimap::equal_range): Likewise.
4176         * include/bits/stl_multiset.h (multiset::lower_bound)
4177         (multiset::upper_bound, multiset::equal_range): Likewise.
4178         * include/bits/stl_set.h (set::lower_bound, set::upper_bound)
4179         (set::equal_range): Likewise.
4180         * testsuite/23_containers/map/operations/2.cc
4181         * testsuite/23_containers/multimap/operations/2.cc
4182         * testsuite/23_containers/multiset/operations/2.cc
4183         * testsuite/23_containers/set/operations/2.cc
4185         PR libstdc++/78273
4186         * include/bits/stl_map.h (map::count<_Kt>(const _Kt&)): Don't assume
4187         the heterogeneous comparison can only find one match.
4188         * include/bits/stl_set.h (set::count<_Kt>(const _Kt&)): Likewise.
4189         * testsuite/23_containers/map/operations/2.cc: Test count works with
4190         comparison function that just partitions rather than sorting.
4191         * testsuite/23_containers/set/operations/2.cc: Likewise.
4193 2017-01-11  Ville Voutilainen  <ville.voutilainen@gmail.com>
4195         Reduce the size of variant, it doesn't need an index of
4196         type size_t internally.
4197         * include/std/variant (parse_numbers.h): New include.
4198         (__select_index): New.
4199         (_Variant_storage<false, _Types...>::_M_reset_impl): Use
4200         _index_type for comparison with variant_npos.
4201         (_Variant_storage<false, _Types...>::__index_type): New.
4202         (_Variant_storage<false, _Types...>::_M_index): Change the
4203         type from size_t to __index_type.
4204         (_Variant_storage<true, _Types...>::__index_type): New.
4205         (_Variant_storage<true, _Types...>::_M_index): Change the
4206         type from size_t to __index_type.
4207         (_Variant_base::_M_valid): Use _Storage::__index_type
4208         for comparison with variant_npos.
4209         (variant::index): Use _Base::_Storage::__index_type
4210         for comparison with variant_npos.
4211         * testsuite/20_util/variant/index_type.cc: New.
4213 2017-01-10  Jonathan Wakely  <jwakely@redhat.com>
4215         * testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
4216         effective target selector to prevent running in C++17 mode.
4218         PR libstdc++/77528
4219         * include/bits/stl_queue.h (queue::c): Add default member initializer.
4220         (queue::queue()): Add constructor and define as defaulted.
4221         (queue::queue(_Sequence&&)): Remove default argument.
4222         (priority_queue::c, priority_queue::comp): Add default member
4223         initializers.
4224         (priority_queue::priority_queue()): Add constructor and define as
4225         defaulted.
4226         (priority_queue::priority_queue(const _Compare&, _Sequence&&)):
4227         Remove default argument for first parameter.
4228         * include/bits/stl_stack.h (stack::c): Add default member initializer.
4229         (stack::stack()): Add constructor and define as defaulted.
4230         (stack::stack(const _Sequence&)): Remove default argument.
4231         * testsuite/23_containers/priority_queue/requirements/
4232         explicit_instantiation/1.cc: Test explicit instantiation with
4233         non-DefaultConstructible sequence.
4234         * testsuite/23_containers/priority_queue/77528.cc: New test.
4235         * testsuite/23_containers/priority_queue/requirements/
4236         explicit_instantiation/1_c++0x.cc: Replace with 1_c++98.cc.
4237         * testsuite/23_containers/queue/77528.cc: New test.
4238         * testsuite/23_containers/queue/requirements/explicit_instantiation/
4239         1.cc: Test explicit instantiation with non-DefaultConstructible
4240         sequence.
4241         * testsuite/23_containers/queue/requirements/explicit_instantiation/
4242         1_c++0x.cc: Replace with 1_c++98.cc.
4243         * testsuite/23_containers/stack/77528.cc: New test.
4244         * testsuite/23_containers/stack/requirements/explicit_instantiation/
4245         1.cc: Test explicit instantiation with non-DefaultConstructible
4246         sequence.
4247         * testsuite/23_containers/stack/requirements/explicit_instantiation/
4248         1_c++0x.cc: Replace with 1_c++98.cc.
4250 2017-01-10  Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
4252         * include/bits/locale_facets_nonio.tcc
4253         (time_get::_M_extract_via_format): Avoid compilation errors with
4254         non-standard struct tm.
4256 2017-01-10  François Dumont  <fdumont@gcc.gnu.org>
4257             Jonathan Wakely  <jwakely@redhat.com>
4259         * python/libstdcxx/v6/printers.py (_versioned_namespace): Define.
4260         (is_specialization, strip_versioned_namespace): New helpers functions
4261         to work with symbols in the versioned namespace.
4262         (Printer.add_version): Add second name using versioned namespace.
4263         (add_one_template_type_printer, add_one_type_printer): Add second
4264         type printers using versioned namespace.
4265         (register_type_printers): Add template type printer for basic_string.
4266         (build_libstdcxx_dictionary): Remove dead code.
4267         * python/libstdcxx/v6/xmethods.py: Make all matchers look for
4268         versioned namespace.
4269         * testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected
4270         results.
4271         * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
4273 2017-01-09  Jonathan Wakely  <jwakely@redhat.com>
4275         PR libstdc++/79017
4276         * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Check for llrint and llround
4277         functions separately on darwin and if they're missing define
4278         _GLIBCXX_NO_C99_ROUNDING_FUNCS.
4279         * config.h.in: Regenerate.
4280         * configure: Regenerate.
4281         * include/c_global/cmath [_GLIBCXX_NO_C99_ROUNDING_FUNCS] (llrint)
4282         (llrintf, llrintl, llround, llroundf, llroundl): Do not define.
4284         * testsuite/30_threads/condition_variable/members/3.cc: Use new macro
4285         to detect correct thread_local destructors.
4286         * testsuite/util/testsuite_hooks.h (CORRECT_THREAD_LOCAL_DTORS):
4287         Define.
4289 2017-01-09  Jonathan Wakely  <jwakely@redhat.com>
4290             Aditya Kumar  <hiraditya@msn.com>
4292         PR libstdc++/66414
4293         * include/bits/basic_string.tcc
4294         (basic_string::find(const CharT*, size_type, size_type)): Optimize.
4296 2017-01-06  Jonathan Wakely  <jwakely@redhat.com>
4298         * testsuite/21_strings/basic_string/operations/find/char/6.cc: New.
4299         * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: New.
4301         * testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
4302         Include <cassert> header.
4304         PR libstdc++/78968
4305         * crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
4306         * configure: Regenerate.
4308 2017-01-06  Barrett Adair  <barrettellisadair@gmail.com>
4309             Jonathan Wakely  <jwakely@redhat.com>
4311         * include/std/variant (variant, swap): Replace __and_ usage with fold
4312         expressions.
4314 2017-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4316         PR go/78978
4317         * acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
4318         * configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
4319         GLIBCXX_CHECK_ASSEMBLER_HWCAP.
4320         * fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
4321         HWCAP_FLAGS.
4322         * aclocal.m4: Regenerate.
4323         * configure: Regenerate.
4324         * Makefile.in, doc/Makefile.in, include/Makefile.in,
4325         libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
4326         src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
4327         src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
4329 2017-01-06  Jonathan Wakely  <jwakely@redhat.com>
4331         * include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.
4333         PR libstdc++/78991
4334         * include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
4335         (_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
4336         (_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and
4337         move function objects.
4338         (__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter)
4339         (__iter_comp_val, __iter_comp_iter, __negate): Move function objects.
4340         * testsuite/25_algorithms/sort/78991.cc: New test.
4342 2017-01-05  Jonathan Wakely  <jwakely@redhat.com>
4344         * include/bits/std_function.h (function::_Signature_type): Remove.
4345         (function::function(_Functor)): Adjust.
4347 2017-01-05  Tim Shen  <timshen@google.com>
4349         PR libstdc++/78996
4350         * include/std/variant (__gen_vtable_impl): rename __unused to
4351         __dimensions to avoid naming conflict.
4353 2017-01-04  Jonathan Wakely  <jwakely@redhat.com>
4355         PR libstdc++/78968
4356         * config.h.in: Regenerate.
4357         * configure: Likewise.
4358         * configure.ac: Check for __cxa_thread_atexit.
4359         * libsupc++/atexit_thread.cc [_GLIBCXX_HAVE___CXA_THREAD_ATEXIT]:
4360         Don't define __cxa_thread_atexit if libc provides it.
4362 2017-01-04  Ville Voutilainen  <ville.voutilainen@gmail.com>
4364         Implement 2801, Default-constructibility of unique_ptr.
4365         * include/bits/unique_ptr.h (__uniq_ptr_impl::_DeleterConstraint): New.
4366         (unique_ptr::_DeleterConstraint): Likewise.
4367         (unique_ptr()): Constrain.
4368         (unique_ptr(pointer)): Likewise.
4369         (unique_ptr(nullptr_t)): Likewise.
4370         (unique_ptr<_Tp[], _Dp>::_DeleterConstraint): New.
4371         (unique_ptr<_Tp[], _Dp>::unique_ptr()): Constrain.
4372         (unique_ptr<_Tp[], _Dp>::unique_ptr(_Up)): Likewise.
4373         (unique_ptr<_Tp[], _Dp>::unique_ptr(nullptr_t)): Likewise.
4374         * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust.
4375         * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
4376         * testsuite/20_util/unique_ptr/cons/default.cc: New.
4377         * testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Adjust.
4379 2017-01-04  Pauli Nieminen  <suokkos@gmail.com>
4380             Jonathan Wakely  <jwakely@redhat.com>
4382         PR libstdc++/64735
4383         * acinclude.m4 (GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER): Define.
4384         * config.h.in: Regenerate.
4385         * config/abi/pre/gnu.ver [HAVE_EXCEPTION_PTR_SINCE_GCC46]
4386         (GLIBCXX_3.4.15, GLIBCXX_3.4.21, CXXABI_1.3.3, CXXABI_1.3.5): Make
4387         exports for exception_ptr, nested_exception, and future conditional.
4388         [HAVE_EXCEPTION_PTR_SINCE_GCC46] (GLIBCXX_3.4.23, CXXABI_1.3.11): Add
4389         exports for exception_ptr, nested_exception, and future conditional.
4390         * configure: Regenerate.
4391         * configure.ac: Use GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER.
4392         * include/std/future: Remove check for ATOMIC_INT_LOCK_FREE
4393         * libsupc++/eh_atomics.h: New file for internal use only.
4394         (__eh_atomic_inc, __eh_atomic_dec): New.
4395         * libsupc++/eh_ptr.cc (exception_ptr::_M_addref)
4396         (exception_ptr::_M_release) (__gxx_dependent_exception_cleanup)
4397         (rethrow_exception): Use eh_atomics.h reference counting helpers.
4398         * libsupc++/eh_throw.cc (__gxx_exception_cleanup): Likewise.
4399         * libsupc++/eh_tm.cc (free_any_cxa_exception): Likewise.
4400         * libsupc++/exception: Remove check for ATOMIC_INT_LOCK_FREE.
4401         * libsupc++/exception_ptr.h: Likewise.
4402         * libsupc++/guard.cc: Include header for ATOMIC_INT_LOCK_FREE macro.
4403         * libsupc++/nested_exception.cc: Remove check for
4404         ATOMIC_INT_LOCK_FREE.
4405         * libsupc++/nested_exception.h: Likewise.
4406         * src/c++11/future.cc: Likewise.
4407         * testsuite/18_support/exception_ptr/*: Remove atomic builtins checks.
4408         * testsuite/18_support/nested_exception/*: Likewise.
4409         * testsuite/30_threads/async/*: Likewise.
4410         * testsuite/30_threads/future/*: Likewise.
4411         * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
4412         * testsuite/30_threads/packaged_task/*: Likewise.
4413         * testsuite/30_threads/promise/*: Likewise.
4414         * testsuite/30_threads/shared_future/*: Likewise.
4416 2017-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
4418         * doc/xml/manual/documentation_hacking.xml: sourceforge.net now
4419         defaults to https; adjust reference.
4421 2017-01-03  Jonathan Wakely  <jwakely@redhat.com>
4423         PR libstdc++/78956
4424         * include/std/thread (thread(const thread&&)): Add deleted
4425         constructor.
4426         * testsuite/30_threads/thread/cons/lwg2097.cc: New test.
4428         * doc/xml/manual/spine.xml: Update copyright years.
4429         * doc/xml/manual/build_hacking.xml: Fix spelling of libbuilddir.
4430         * doc/xml/manual/test.xml: Likewise.
4431         * doc/html/*: Regenerate.
4433 2017-01-01  Gerald Pfeifer  <gerald@pfeifer.com>
4435         * doc/xml/faq.xml: Update address of C++ ABI link.
4436         * doc/xml/manual/abi.xml: Ditto.
4438 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
4440         Update copyright years.
4442 Copyright (C) 2017 Free Software Foundation, Inc.
4444 Copying and distribution of this file, with or without modification,
4445 are permitted in any medium without royalty provided the copyright
4446 notice and this notice are preserved.