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