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