Update copyright years.
[platform/upstream/gcc.git] / libstdc++-v3 / ChangeLog-2017
1 2017-12-27  Jonathan Wakely  <jwakely@redhat.com>
2
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.
9
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.
14
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.
21
22 2017-12-24  Michele Pezzutti <mpezz@tiscali.it>
23
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.
31
32 2017-12-24  Jonathan Wakely  <jwakely@redhat.com>
33
34         PR libstdc++/83450
35         * testsuite/21_strings/basic_string/pthread18185.cc: Add return
36         statement.
37
38 2017-12-20  François Dumont  <fdumont@gcc.gnu.org>
39
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.
55
56 2017-12-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
57
58         * config/cpu/aarch64/opt/ext/opt_random.h (__VEXT): Check
59         __ARM_BIG_ENDIAN instead of __AARCH64EB__.
60
61 2017-12-18  François Dumont  <fdumont@gcc.gnu.org>
62
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.
73
74 2017-12-18  Ville Voutilainen  <ville.voutilainen@gmail.com>
75
76         PR libstdc++/68430
77         * testsuite/20_util/is_constructible/68430.cc: New.
78
79 2017-12-16  Martin Sebor  <msebor@redhat.com>
80
81         PR tree-optimization/83239
82         * include/bits/vector.tcc (vector::_M_default_append): Assert
83         invariant to generate better code.
84
85 2017-12-14  Jonathan Wakely  <jwakely@redhat.com>
86
87         PR libstdc++/83279
88         * src/filesystem/std-ops.cc (do_copy_file): Handle sendfile not
89         copying entire file.
90
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.
95
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.
116
117         * testsuite/26_numerics/complex/inserters_extractors/char/dr2714.cc:
118         Add tests using noskipws.
119
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.
124
125 2017-12-13  Jonathan Wakely  <jwakely@redhat.com>
126
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.
133
134 2017-12-12  Jonathan Wakely  <jwakely@redhat.com>
135
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.
143
144 2017-12-07  David Edelsohn  <dje.gcc@gmail.com>
145
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.
150
151 2017-12-07  Martin Sebor  <msebor@redhat.com>
152
153         PR c/81544
154         * include/ext/mt_allocator.h (_M_destroy_thread_key): Remove
155         attribute const.
156
157 2017-12-05  Jason Merrill  <jason@redhat.com>
158             Jonathan Wakely  <jwakely@redhat.com>
159
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.
165
166 2017-12-04  Jonathan Wakely  <jwakely@redhat.com>
167
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__.
171
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.
188
189 2017-12-01  Jonathan Wakely  <jwakely@redhat.com>
190
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.
194
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.
204
205         * include/bits/locale_facets_nonio.tcc (money_get::_M_extract): Add
206         fallthrough comment.
207
208         * include/bits/node_handle.h (_Node_handle_common::operator=)
209         (_Node_handle_common::_M_swap): Add braces around debug assertions.
210
211         * include/ext/ropeimpl.h (rope::_S_dump): Use const char*.
212
213         * libsupc++/nested_exception.h (__throw_with_nested_impl): Add
214         noreturn attribute.
215
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.
219
220         * include/tr1/modified_bessel_func.tcc (__airy): Use value-init not
221         list-init.
222
223         * include/std/type_traits (integral_constant): Make member functions
224         noexcept (LWG 2346).
225         * include/std/utility (integer_sequence): Likewise.
226
227 2017-11-30  Jonathan Wakely  <jwakely@redhat.com>
228
229         PR libstdc++/65927
230         * include/bits/locale_facets_nonio.h (__timepunct::_M_am_pm_format):
231         Remove statement with no effect.
232
233 2017-11-30  Glen Joseph Fernandes  <glenjofe@gmail.com>
234
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.
238
239 2017-11-30  Jonathan Wakely  <jwakely@redhat.com>
240
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.
245
246 2017-11-29  John David Anglin  <danglin@gcc.gnu.org>
247
248         * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
249
250 2017-11-29  David Malcolm  <dmalcolm@redhat.com>
251
252         * testsuite/20_util/duration/literals/range.cc: Update expected
253         line of a static_assert failure.
254
255 2017-11-28  Glen Joseph Fernandes  <glenjofe@gmail.com>
256
257         * include/bits/ptr_traits.h (to_address): Implement to_address.
258         * testsuite/20_util/to_address/1.cc: New test.
259
260 2017-11-27  Stephan Bergmann  <sbergman@redhat.com>
261
262         * include/std/string_view (basic_string_view::find_first_of): Add
263         missing noexcept.
264
265         * include/bits/unordered_map.h (unordered_map): Fix deduction guide.
266         * include/debug/unordered_map (unordered_map): Likewise.
267
268 2017-11-23  Jonathan Wakely  <jwakely@redhat.com>
269
270         * libsupc++/new (launder): Add nodiscard attribute.
271         * testsuite/18_support/launder/nodiscard.cc: New test.
272
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.
280
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.
289
290 2017-11-22  Jonathan Wakely  <jwakely@redhat.com>
291
292         PR go/83102
293         * include/bits/stl_tree.h (_Rb_tree): Relax invocable checks for
294         comparison object pre-C++17.
295
296 2017-11-21  Jonathan Wakely  <jwakely@redhat.com>
297
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.
350
351 2017-11-21  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
352
353         * doc/xml/manual/using.xml (manual.intro.using.macros): Move
354         variablelist element at the end of its list.
355
356 2017-11-21  Sebastian Huber  <sebastian.huber@embedded-brains.de>
357
358         * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Add rtems*.
359         (GLIBCXX_ENABLE_FILESYSTEM_TS): Likewise.
360         * configure: Regenerate.
361
362 2017-11-20  François Dumont  <fdumont@gcc.gnu.org>
363
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.
396
397 2017-11-20  Jonathan Wakely  <jwakely@redhat.com>
398
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.
403
404 2017-11-20  Ville Voutilainen  <ville.voutilainen@gmail.com>
405
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.
411
412 2017-11-18  Edward Smith-Rowland  <3dw4rd@verizon.net>
413
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.
492
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.
503
504 2017-11-17  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
505
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.
522
523 2017-11-17  Jonathan Wakely  <jwakely@redhat.com>
524
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.
543
544
545 2017-11-17  Marc Glisse  <marc.glisse@inria.fr>
546
547         * include/bits/vector.tcc (vector::_M_realloc_insert): Cache old
548         values before the allocation.
549
550 2017-11-16  Jonathan Wakely  <jwakely@redhat.com>
551
552         * include/std/future (shared_future): Add noexcept to copy constructor
553         and copy-assignment operator (LWG 2799).
554
555 2017-11-15  Ville Voutilainen  <ville.voutilainen@gmail.com>
556
557         Fix gcd breakage.
558         * include/std/numeric (gcd): Use remove_cv_t, not remove_cv.
559
560 2017-11-15  Jonathan Wakely  <jwakely@redhat.com>
561
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.
568
569         * include/bits/range_access.h (size, empty, data): Add conditional
570         noexcept to generic overloads.
571
572 2017-11-14  Ville Voutilainen  <ville.voutilainen@gmail.com>
573
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.
581
582 2017-11-14  Jonathan Wakely  <jwakely@redhat.com>
583
584         * include/bits/locale_conv.h (wbuffer_convert::_M_conv_get): Fix typo.
585         * testsuite/22_locale/conversions/buffer/3.cc: New test.
586
587 2017-11-10  Jonathan Wakely  <jwakely@redhat.com>
588
589         * testsuite/util/testsuite_tr1.h (ThrowMoveConsClass): Use noexcept.
590
591         PR libstdc++/82917
592         * include/std/fstream (basic_ifstream::open, basic_ofstream::open)
593         (basic_fstream::open): Fix missing return.
594
595 2017-11-07  Jonathan Wakely  <jwakely@redhat.com>
596
597         * src/filesystem/ops-common.h (make_file_type) [S_ISSOCK]: Only use
598         S_ISSOCK when defined.
599
600 2017-11-06  François Dumont  <fdumont@gcc.gnu.org>
601
602         * testsuite/libstdc++-prettyprinters/tr1.cc:  Compile with -O0.
603
604 2017-11-06  Martin Liska  <mliska@suse.cz>
605
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.
613
614 2017-11-06  Paolo Carlini  <paolo.carlini@oracle.com>
615
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.
625
626 2017-11-05  Gerald Pfeifer  <gerald@pfeifer.com>
627
628         * doc/xml/manual/abi.xml: Move docs.oracle.com references to https.
629
630 2017-11-03  Jonathan Wakely  <jwakely@redhat.com>
631
632         * include/std/type_traits (endian): Define new enumeration type.
633         * testsuite/20_util/endian/1.cc: New test.
634
635         * include/bits/node_handle.h (_Node_insert_return::get): Remove, as
636         per P0508R0.
637
638 2017-11-01  François Dumont  <fdumont@gcc.gnu.org>
639
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.
648
649 2017-11-01  Jonathan Wakely  <jwakely@redhat.com>
650
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.
657
658 2017-10-30  Jonathan Wakely  <jwakely@redhat.com>
659
660         * include/Makefile.am (stamp-bits-sup): Do not create broken symlink
661         to stamp-bits.
662         * include/Makefile.in: Regenerate.
663
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.
669
670         * doc/xml/faq.xml: Adjust "What is libstdc++?" answer slightly.
671
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.
676
677 2017-10-30  Ville Voutilainen  <ville.voutilainen@gmail.com>
678
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.
700
701 2017-10-27  Jonathan Wakely  <jwakely@redhat.com>
702
703         * include/bits/node_handle.h (_Node_insert_return::get): Avoid
704         use of std::tie and std::get.
705
706         * include/Makefile.am: Put headers in alphabetical order.
707         * include/Makefile.in: Regenerate.
708
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
718
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.
723
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.
740
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.
748
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.
763
764 2017-10-26  Ville Voutilainen  <ville.voutilainen@gmail.com>
765
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.
796
797 2017-10-25  Jonathan Wakely  <jwakely@redhat.com>
798
799         * doc/xml/manual/status_cxx2017.xml: Update C++17 status, and
800         information on feature-test macros.
801         * doc/html/*: Regenerate.
802
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.
806
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.
811
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.
840
841         PR libstdc++/82706
842         * testsuite/27_io/filesystem/operations/permissions.cc: Fix test.
843
844 2017-10-24  François Dumont  <fdumont@gcc.gnu.org>
845
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.
884
885 2017-10-24  Jonathan Wakely  <jwakely@redhat.com>
886
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.
894
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.
908
909         PR libstdc++/82685
910         * include/experimental/string_view (operator""sv): Add noexcept.
911         * include/std/string_view (operator""sv): Likewise.
912
913 2017-10-23  Jonathan Wakely  <jwakely@redhat.com>
914
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.
1040
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.
1052
1053 2017-10-21  Jonathan Wakely  <jwakely@redhat.com>
1054
1055         * testsuite/experimental/filesystem/path/itr/traversal.cc: Do not
1056         increment past-the-end iterators.
1057
1058 2017-10-20  Jonathan Wakely  <jwakely@redhat.com>
1059
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.
1064
1065         * include/c_global/cstddef: Define __cpp_lib_byte feature-test macro.
1066         * testsuite/18_support/byte/requirements.cc: Check macro.
1067
1068 2017-10-19  Jonathan Wakely  <jwakely@redhat.com>
1069
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.
1077
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.
1082
1083         * doc/xml/manual/status_cxx2017.xml: Update references to C++17
1084         section numbers.
1085
1086         * testsuite/decimal/conversion-to-integral.cc: Use predefined macro
1087         instead of non-standard glibc one.
1088
1089 2017-10-16  François Dumont  <fdumont@gcc.gnu.org>
1090
1091         PR libstdc++/82558
1092         * include/bits/stl_bvector.h (fill): Add iterator offset check.
1093         * testsuite/23_containers/vector/bool/82558.cc: New.
1094
1095 2017-10-13  Jonathan Wakely  <jwakely@redhat.com>
1096
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.
1113
1114         PR libstdc++/82481
1115         * include/std/mutex (call_once): Suppress clang-tidy warnings about
1116         dangling references.
1117
1118 2017-10-10  Jonathan Wakely  <jwakely@redhat.com>
1119
1120         * include/bits/streambuf_iterator.h (istreambuf_iterator::equal):
1121         Update comment about NAD issue.
1122
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.
1131
1132 2017-10-05  Jonathan Wakely  <jwakely@redhat.com>
1133
1134         * testsuite/20_util/to_chars/1.cc: Add dg-require-string-conversions.
1135
1136 2017-10-04  Petr Ovtchenkov  <ptr@void-ptr.info>
1137             François Dumont  <fdumont@gcc.gnu.org>
1138
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.
1151
1152 2017-10-03  Jakub Jelinek  <jakub@redhat.com>
1153
1154         * include/std/charconv (__unsigned_least_t): Fix number of closing >s for
1155         !_GLIBCXX_USE_INT128.
1156
1157 2017-10-02  Jonathan Wakely  <jwakely@redhat.com>
1158
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.
1172
1173 2017-09-27  François Dumont  <fdumont@gcc.gnu.org>
1174
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.
1178
1179 2017-09-25  Uros Bizjak  <ubizjak@gmail.com>
1180
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.
1184
1185 2017-09-21  Jonathan Wakely  <jwakely@redhat.com>
1186
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.
1190
1191 2017-09-20  Jonathan Wakely  <jwakely@redhat.com>
1192
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.
1197
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.
1205
1206         * testsuite/24_iterators/range_access_cpp17.cc: Fix order of dg-do
1207         and dg-options directives. Fix invalid test.
1208
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.
1213
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.
1223
1224         * libsupc++/exception_ptr.h (copy_exception): Remove deprecated
1225         non-standard function.
1226
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>.
1231
1232 2017-09-19  Jonathan Wakely  <jwakely@redhat.com>
1233
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.
1243
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.
1255
1256 2017-09-18  Jonathan Wakely  <jwakely@redhat.com>
1257
1258         PR libstdc++/81468
1259         * testsuite/20_util/duration/cons/dr1177.cc: Fix incorrect test and
1260         improve static assertion messages.
1261
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.
1265
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.
1278
1279 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
1280
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.
1395
1396 2017-09-13  Jonathan Wakely  <jwakely@redhat.com>
1397
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.
1419
1420         * doc/doxygen/mainpage.html: Fix broken URLs.
1421
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.
1426
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.
1443
1444 2017-09-12  Jonathan Wakely  <jwakely@redhat.com>
1445
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.
1490
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.
1522
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.
1537
1538 2017-09-11  Jonathan Wakely  <jwakely@redhat.com>
1539
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.
1596
1597 2017-09-11  Tim Shen  <timshen@google.com>
1598
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.
1603
1604 2017-09-11  Jonathan Wakely  <jwakely@redhat.com>
1605
1606         * testsuite/21_strings/basic_string/lwg2946.cc: Adjust for
1607         compatibility with old COW std::string.
1608
1609 2017-09-09  Gerald Pfeifer  <gerald@pfeifer.com>
1610
1611         * doc/xml/manual/allocator.xml: Adjust link for Hoard.
1612         * doc/html/manual/memory.html: Regenerate.
1613
1614 2017-09-04  Daniel Kruegler  <daniel.kruegler@gmail.com>
1615
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.
1642
1643 2017-08-31  Jonathan Wakely  <jwakely@redhat.com>
1644
1645         PR c++/82039
1646         * include/ext/new_allocator.h (__gnu_cxx::new_allocator::allocate):
1647         Adjust null pointer constant to avoid warning.
1648
1649 2017-08-24  François Dumont  <fdumont@gcc.gnu.org>
1650
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.
1668
1669 2017-08-21  Jonathan Wakely  <jwakely@redhat.com>
1670
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.
1679
1680 2017-08-21  Richard Biener  <rguenther@suse.de>
1681
1682         * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Run all
1683         tests with -flto as well if supported.
1684
1685 2017-08-20  Martin Sebor  <msebor@redhat.com>
1686
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.
1691
1692 2017-08-20  John David Anglin  <danglin@gcc.gnu.org>
1693
1694         PR testsuite/81056
1695         * testsuite/17_intro/names.cc: Undef 'd' and 'r' on __hpux__.
1696
1697 2017-08-18  Jonathan Wakely  <jwakely@redhat.com>
1698
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.
1708
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.
1715
1716 2017-08-11  Jonathan Wakely  <jwakely@redhat.com>
1717
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.
1721
1722 2017-08-09  Jonathan Wakely  <jwakely@redhat.com>
1723
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.
1727
1728 2017-08-09  Katsuhiko Nishimra  <ktns.87@gmail.com>
1729
1730         * include/std/type_traits (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Use
1731         __is_identifier instead of __has_builtin.
1732
1733 2017-08-09  Jonathan Wakely  <jwakely@redhat.com>
1734
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.
1742
1743 2017-07-31  Marek Polacek  <polacek@redhat.com>
1744
1745         PR libstdc++/81599
1746         * include/bits/stl_stack.h: Fix typo.
1747
1748 2017-07-26  Jonathan Wakely  <jwakely@redhat.com>
1749
1750         * testsuite/27_io/basic_fstream/53984.cc: Fix test.
1751
1752 2017-07-26  Paolo Carlini  <paolo.carlini@oracle.com>
1753
1754         * testsuite/27_io/basic_fstream/53984.cc: Fix typo in dg-require
1755         directive.
1756
1757 2017-07-25  Jonathan Wakely  <jwakely@redhat.com>
1758
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.
1767
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.
1774
1775 2017-07-23  Michael Collison  <michael.collison@arm.com>
1776
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.
1788
1789 2017-07-23  François Dumont  <fdumont@gcc.gnu.org>
1790
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.
1942
1943 2017-07-20  Jonathan Wakely  <jwakely@redhat.com>
1944
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.
1965
1966 2017-07-19  Jonathan Wakely  <jwakely@redhat.com>
1967
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.
1972
1973 2017-07-19  Volker Reichelt  <v.reichelt@netcologne.de>
1974
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.
1987
1988 2017-07-19  Jonathan Wakely  <jwakely@redhat.com>
1989
1990         * include/bits/fstream.tcc (basic_filebuf::xsgetn)
1991         (basic_filebuf::xsputn, basic_filebuf::seekoff): Fix indentation.
1992
1993         * testsuite/util/testsuite_iterators.h: Fix indentation.
1994
1995         * testsuite/27_io/basic_filebuf/sgetn/char/81395.cc: Add dg-require.
1996
1997 2017-07-18  Jonathan Wakely  <jwakely@redhat.com>
1998
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.
2003
2004 2017-07-18  François Dumont  <fdumont@gcc.gnu.org>
2005
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.
2021
2022 2017-07-15  Jonathan Wakely  <jwakely@redhat.com>
2023
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.
2031
2032 2017-07-14  Jason Merrill  <jason@redhat.com>
2033             Jonathan Wakely  <jwakely@redhat.com>
2034
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.
2039
2040 2017-07-11  Jonathan Wakely  <jwakely@redhat.com>
2041
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.
2046
2047 2017-07-10  Jonathan Wakely  <jwakely@redhat.com>
2048
2049         * testsuite/abi/pr42230.cc: Add header for std::free.
2050
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.
2056
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.
2065
2066 2017-07-06  Jonathan Wakely  <jwakely@redhat.com>
2067
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.
2072
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.
2078
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.
2084
2085 2017-06-27  Tim Shen  <timshen@google.com>
2086
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.
2092
2093 2017-06-27  Jonathan Wakely  <jwakely@redhat.com>
2094
2095         PR libstdc++/81221
2096         * testsuite/25_algorithms/sample/81221.cc: Disable except for
2097         check-parallel.
2098
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.
2103
2104 2017-06-22  Jonathan Wakely  <jwakely@redhat.com>
2105
2106         PR libstdc++/81173
2107         * include/bits/stl_bvector.h (vector<bool>::_M_initialize_value):
2108         Do not pass null pointer to memset.
2109
2110 2017-06-21  Ville Voutilainen  <ville.voutilainen@gmail.com>
2111
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.
2133
2134 2017-06-21  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2135
2136         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
2137
2138 2017-06-21  Jonathan Wakely  <jwakely@redhat.com>
2139
2140         PR libstdc++/81092
2141         * configure: Regenerate.
2142
2143 2017-06-20  Uros Bizjak  <ubizjak@gmail.com>
2144
2145         * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
2146
2147 2017-06-20  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2148
2149         * testsuite/20_util/variant/index_type.cc: Allow for all ilp32 and
2150         lp64 targets.
2151
2152 2017-06-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2153
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.
2164
2165 2017-06-18  H.J. Lu  <hongjiu.lu@intel.com>
2166
2167         PR libstdc++/81092
2168         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
2169
2170 2017-06-18  Andreas Schwab  <schwab@linux-m68k.org>
2171
2172         PR libstdc++/81092
2173         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
2174
2175 2017-06-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2176
2177         * testsuite: Remove dg-skip-if, dg-xfail-if, dg-xfail-run-if
2178         default args.
2179
2180 2017-06-17  Jonathan Wakely  <jwakely@redhat.com>
2181
2182         PR libstdc++/80893
2183         * testsuite/23_containers/vector/bool/80893.cc: Add { target c++11 }.
2184
2185 2017-06-16  Jonathan Wakely  <jwakely@redhat.com>
2186
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.
2192
2193 2017-06-16  Jakub Jelinek  <jakub@redhat.com>
2194
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.
2199
2200 2017-06-16  Jonathan Wakely  <jwakely@redhat.com>
2201
2202         * include/bits/locale_conv.h (wbuffer_convert::sync): Fix condition.
2203         * testsuite/22_locale/conversions/buffer/2.cc: New.
2204
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.
2218
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.
2232
2233 2017-06-16  François Dumont  <fdumont@gcc.gnu.org>
2234
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.
2259
2260 2017-06-15  François Dumont  <fdumont@gcc.gnu.org>
2261
2262         * src/c++98/tree.cc  [!_GLIBCXX_INLINE_VERSION]
2263         (_Rb_tree_rotate_left, _Rb_tree_rotate_right): Delete.
2264
2265 2017-06-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2266
2267         * testsuite: Add dg-require-effective-target pthread to -pthread
2268         tests.
2269         Remove explicit target lists from dg-do and dg-options.
2270
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.
2274
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.
2280
2281         * testsuite/30_threads/this_thread/57060.cc: Require c++11 via
2282         dg-require-effective-target.
2283
2284 2017-06-14  Jonathan Wakely  <jwakely@redhat.com>
2285
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.
2308
2309 2017-06-12  Pedro Alves  <palves@redhat.com>
2310
2311         * doc/xml/manual/status_cxx2017.xml: Update C++17 constexpr
2312         char_traits status.
2313         * doc/html/*: Regenerate.
2314
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.
2324
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.
2331
2332 2017-06-12  François Dumont  <fdumont@gcc.gnu.org>
2333
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.
2340
2341 2017-06-12  Jonathan Wakely  <jwakely@redhat.com>
2342
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.
2349
2350 2017-06-09  Jonathan Wakely  <jwakely@redhat.com>
2351
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.
2358
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.
2367
2368 2017-06-08  Jonathan Wakely  <jwakely@redhat.com>
2369
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.
2375
2376 2017-06-07  Jonathan Wakely  <jwakely@redhat.com>
2377
2378         * include/bits/regex.h (basic_regex): Add deduction guide from P0433.
2379         * testsuite/28_regex/basic_regex/ctors/deduction.cc: New.
2380
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.
2387
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.
2397
2398 2017-06-02  Jonathan Wakely  <jwakely@redhat.com>
2399
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.
2405
2406 2017-06-05  Jonathan Wakely  <jwakely@redhat.com>
2407
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.
2411
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.
2419
2420 2017-06-03  Andreas Schwab  <schwab@linux-m68k.org>
2421
2422         * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
2423
2424 2017-06-03  Eric Botcazou  <ebotcazou@adacore.com>
2425
2426         * src/filesystem/dir.cc (fs::_Dir::advance): Use std::exchange.
2427
2428 2017-06-02  Jonathan Wakely  <jwakely@redhat.com>
2429
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.
2437
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.
2444
2445 2017-06-02  Richard Biener  <rguenther@suse.de>
2446         Markus Eisenmann  <meisenmann.lba@fh-salzburg.ac.at>
2447
2448         PR libstdc++/80721
2449         * libsupc++/eh_alloc.cc (pool::free): Keep list properly
2450         sorted and add missing freelist item merging cases.
2451
2452 2017-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2453
2454         (GLIBCXX_CROSSCONFIG): Handle *-solaris* like *-linux* etc.
2455         Remove *-solaris* section.
2456         * configure: Regenerate.
2457
2458 2017-05-31  Jonathan Wakely  <jwakely@redhat.com>
2459
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.
2467
2468 2017-05-20  Tim Shen  <timshen@google.com>
2469
2470         PR libstdc++/80737
2471         * include/std/variant(variant::variant): SFINAE on is_same first.
2472         * testsuite/20_util/variant/any.cc: test case.
2473
2474 2017-05-24  Jonathan Wakely  <jwakely@redhat.com>
2475
2476         * src/c++11/random.cc (random_device::_M_getentropy): Use __CHAR_BIT__
2477         instead of fixed number of bits.
2478
2479 2017-05-24  Andreas Schwab  <schwab@suse.de>
2480
2481         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
2482         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
2483
2484 2017-05-23  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
2485             Jonathan Wakely  <jwakely@redhat.com>
2486
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.
2500
2501 2017-05-23  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
2502
2503         PR libstdc++/67214
2504         * include/bits/locale_facets.tcc (num_get::_M_extract_int): Add
2505         explicit conversion to avoid signed overflow.
2506
2507 2017-05-19  Jonathan Wakely  <jwakely@redhat.com>
2508
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.
2512
2513 2017-05-18  Jonathan Wakely  <jwakely@redhat.com>
2514
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.
2519
2520 2017-05-18  Jonathan Wakely  <jwakely@redhat.com>
2521
2522         * doc/xml/manual/policy_data_structures.xml: Fix typo.
2523         * doc/xml/manual/test_policy_data_structures.xml: Likewise.
2524         * doc/html/*: Regenerate.
2525
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.
2530
2531 2017-05-17  Jonathan Wakely  <jwakely@redhat.com>
2532
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.
2543
2544 2017-05-17  Ville Voutilainen  <ville.voutilainen@gmail.com>
2545
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.
2580
2581 2017-05-16  Jonathan Wakely  <jwakely@redhat.com>
2582
2583         * testsuite/experimental/source_location/1.cc: Change expected result
2584         for source_location::current() used in default member initializer.
2585
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.
2592
2593         PR libstdc++/80285
2594         * include/bits/shared_ptr_base.h [!__cpp_rtti] (type_info): Declare
2595         outside versioned namespace.
2596
2597         * configure: Regenerate.
2598
2599 2017-05-16  Marc Glisse  <marc.glisse@inria.fr>
2600
2601         * include/std/optional (_Optional_base::_M_get): Check precondition.
2602         * testsuite/20_util/optional/cons/value_neg.cc: Update line numbers.
2603
2604 2017-05-16  Jonathan Wakely  <jwakely@redhat.com>
2605
2606         * doc/xml/manual/appendix_contributing.xml: Link to test docs and
2607         note higher DejaGnu version requirement.
2608         * doc/html/*: Regenerate.
2609
2610         * doc/xml/manual/appendix_contributing.xml: Link to the list of bad
2611         identifiers.
2612         * doc/html/*: Regenerate.
2613
2614 2017-05-15  Jonathan Wakely  <jwakely@redhat.com>
2615
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.
2625
2626 2017-05-12  Jonathan Wakely  <jwakely@redhat.com>
2627
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.
2633
2634 2017-05-11  François Dumont  <fdumont@gcc.gnu.org>
2635
2636         * include/bits/stl_tree.h [_GLIBCXX_INLINE_VERSION]
2637         (_Rb_tree_impl<>): Remove _Is_pod_comparator
2638         template parameter.
2639
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.
2650
2651 2017-05-11  Jonathan Wakely  <jwakely@redhat.com>
2652
2653         * doc/xml/manual/allocator.xml: Fix ViewCVS URLs.
2654         * doc/xml/manual/mt_allocator.xml: Likewise.
2655         * doc/html/*: Regenerate.
2656
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.
2670
2671 2017-05-10  François Dumont  <fdumont@gcc.gnu.org>
2672
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.
2684
2685         * include/bits/stl_algobase.h (std::__iter_swap<false>): Remove
2686         _GLIBCXX_MOVE usage.
2687
2688 2017-05-09  Jason Merrill  <jason@redhat.com>
2689
2690         * testsuite/24_iterators/container_access.cc (test03): Make il3 static.
2691
2692 2017-05-08  Jonathan Wakely  <jwakely@redhat.com>
2693
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.
2697
2698         * doc/xml/manual/mt_allocator.xml: Clarify deallocation behaviour.
2699         * doc/html/*: Regenerate.
2700
2701 2017-05-02  Hugo Beauzée-Luyssen <hugo@beauzee.fr>
2702
2703         PR libstdc++/69506
2704         * config/os/mingw32-w64/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
2705
2706 2017-04-29  François Dumont  <fdumont@gcc.gnu.org>
2707
2708         * testsuite/libstdc++-prettyprinters/48362.cc: Replace a regexp-test
2709         by a note-test.
2710
2711 2017-04-28  Jonathan Wakely  <jwakely@redhat.com>
2712
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.
2722
2723         * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
2724         superfluous "" in dg-error.
2725
2726 2017-04-28  Tom de Vries  <tom@codesourcery.com>
2727
2728         * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
2729         superfluous '{ target *-*-* }' in dg-(error|warning|message|bogus).
2730
2731 2017-04-27  Jonathan Wakely  <jwakely@redhat.com>
2732
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.
2737
2738 2017-04-26  Jonathan Wakely  <jwakely@redhat.com>
2739
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.
2745
2746 2017-04-24  Jonathan Wakely  <jwakely@redhat.com>
2747
2748         PR libstdc++/80506
2749         * include/bits/random.tcc (gamma_distribution::operator()): Fix magic
2750         number used in loop condition.
2751
2752         PR libstdc++/80504
2753         * include/bits/refwrap.h (ref, cref): Qualify calls.
2754         * testsuite/20_util/reference_wrapper/80504.cc: New test.
2755
2756         PR libstdc++/80493
2757         * include/experimental/optional (optional::swap): Fix exception
2758         specification.
2759
2760 2017-04-21  Jonathan Wakely  <jwakely@redhat.com>
2761
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.
2782
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.
2795
2796 2017-04-20  Edward Smith-Rowland  <3dw4rd@verizon.net>
2797
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.
2803
2804 2017-04-20  Jonathan Wakely  <jwakely@redhat.com>
2805
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.
2817
2818 2017-04-19  Jonathan Wakely  <jwakely@redhat.com>
2819
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.
2824
2825         * libsupc++/new: Update comment on #endif directive.
2826
2827         PR libstdc++/80448
2828         * include/experimental/bits/fs_dir.h (directory_iterator)
2829         (recursive_directory_iterator): Remove noexcept from defaulted
2830         constructors.
2831
2832         PR libstdc++/80446
2833         * include/std/type_traits (is_aggregate): Change __has_builtin checks.
2834         * libsupc++/new (launder): Likewise.
2835
2836 2017-04-18  Jonathan Wakely  <jwakely@redhat.com>
2837
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.
2849
2850 2017-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
2851
2852         * doc/xml/faq.xml: Update reference link to C++ ABI for Itanium.
2853         * doc/xml/manual/abi.xml. Ditto (thrice).
2854
2855 2017-04-03  Jonathan Wakely  <jwakely@redhat.com>
2856
2857         * doc/xml/manual/status_cxx2017.xml: Remove duplicate table entry.
2858         * doc/html/*: Regenerate.
2859
2860         * testsuite/20_util/reference_wrapper/invoke.cc: Uncomment tests
2861         that no longer fail.
2862
2863         * include/bits/ios_base.h: Correct comment.
2864         * testsuite/util/testsuite_hooks.h: Likewise.
2865
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.
2870
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.
2879
2880 2017-04-03  Ville Voutilainen  <ville.voutilainen@gmail.com>
2881
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.
2898
2899 2017-04-03  Ville Voutilainen  <ville.voutilainen@gmail.com>
2900
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.
2907
2908 2017-03-29  Ville Voutilainen  <ville.voutilainen@gmail.com>
2909
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.
2913
2914 2017-03-29  Ville Voutilainen  <ville.voutilainen@gmail.com>
2915
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.
2941
2942 2017-03-28  Jonathan Wakely  <jwakely@redhat.com>
2943
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.
2949
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.
2955
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.
2963
2964 2017-03-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
2965
2966         PR libstdc++/80183
2967         * include/bits/stl_tree.h:
2968         (_Rb_tree_header::_M_move_data(_Rb_tree_header&)): Also save _M_color.
2969
2970 2017-03-23  Jonathan Wakely  <jwakely@redhat.com>
2971
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.
2980
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.
2986
2987 2017-03-23  Daniel Kruegler  <daniel.kruegler@gmail.com>
2988
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>.
2996
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.
3029
3030 2017-03-22  Jonathan Wakely  <jwakely@redhat.com>
3031
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.
3065
3066 2017-03-20  François Dumont  <fdumont@gcc.gnu.org>
3067
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.
3079
3080 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
3081
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.
3085
3086         * doc/xml/faq.xml: Remove information redundant with the above;
3087         instead add a reference.
3088
3089 2017-03-17  Jonathan Wakely  <jwakely@redhat.com>
3090
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.
3111
3112 2017-03-16  Jonathan Wakely  <jwakely@redhat.com>
3113
3114         PR libstdc++/79980
3115         * src/c++11/codecvt.cc (to_integer(codecvt_mode)): Fix target type.
3116
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.
3122
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.
3134
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.
3153
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.
3161
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.
3167
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.
3171
3172 2017-03-15  Ville Voutilainen  <ville.voutilainen@gmail.com>
3173
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.
3191
3192 2017-03-15  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
3193
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.
3203
3204 2017-03-15  Jonathan Wakely  <jwakely@redhat.com>
3205
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.
3211
3212 2017-03-15  Jonathan Wakely  <jwakely@redhat.com>
3213
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.
3219
3220 2017-03-14  Jonathan Wakely  <jwakely@redhat.com>
3221
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.
3230
3231 2017-03-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
3232
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.
3238
3239 2017-03-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
3240
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.
3250
3251 2017-03-12  Ville Voutilainen  <ville.voutilainen@gmail.com>
3252
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.
3292
3293 2017-03-10  Jonathan Wakely  <jwakely@redhat.com>
3294
3295         * testsuite/17_intro/names.cc: Undefine macros that clash with
3296         identifiers in AIX system headers.
3297
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.
3331
3332 2017-03-10  George Lander  <george.lander@arm.com>
3333
3334         * acinclude.m4 (glibcxx_cv_obsolete_isnan): Define
3335         _GLIBCXX_INCLUDE_NEXT_C_HEADERS before including math.h.
3336         * configure: Regenerate.
3337
3338 2017-03-09  Jonathan Wakely  <jwakely@redhat.com>
3339
3340         * include/std/functional (_Not_fn): Define macro to simplify
3341         repetitive function definitions.
3342
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.
3348
3349 2017-03-05  Jonathan Wakely  <jwakely@redhat.com>
3350
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.
3358
3359 2017-03-02  Gerald Pfeifer  <gerald@pfeifer.com>
3360             François Dumont  <frs.dumont@gmail.com>
3361             Jonathan Wakely  <jwakely@redhat.com>
3362
3363         * doc/xml/manual/debug_mode.xml: Update and simplify note
3364         on link- and run-time coexistence.
3365
3366 2017-03-02  Jonathan Wakely  <jwakely@redhat.com>
3367
3368         * testsuite/17_intro/headers/names.cc: Rename to ...
3369         * testsuite/17_intro/names.cc: ... here.
3370
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.
3386
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.
3391
3392 2017-03-01  Gerald Pfeifer  <gerald@pfeifer.com>
3393
3394         * doc/xml/manual/documentation_hacking.xml: Tweak link to
3395         doxygen.org.
3396
3397 2017-02-23  Jonathan Wakely  <jwakely@redhat.com>
3398
3399         * include/experimental/iterator: Include <iterator>.
3400         * testsuite/experimental/iterator/requirements.cc: Check for contents
3401         of <iterator>.
3402
3403 2017-02-19  Dinka Ranns  <dinka.ranns@googlemail.com>
3404
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.
3422
3423 2017-02-19  Gerald Pfeifer  <gerald@pfeifer.com>
3424
3425         * doc/xml/manual/debug.xml: Adjust link to ThreadSanitizer.
3426
3427 2017-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
3428
3429         * doc/xml/manual/io.xml: Update link to groups.google.com.
3430         Tweak link description.
3431
3432 2017-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
3433
3434         * doc/xml/manual/profile_mode.xml: Fix link.
3435
3436 2017-02-16  Gerald Pfeifer  <gerald@pfeifer.com>
3437
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.
3442
3443 2017-02-16  Jonathan Wakely  <jwakely@redhat.com>
3444
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.
3448
3449 2017-02-15  Tim Shen  <timshen@google.com>
3450
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.
3456
3457 2017-02-15  Tim Shen  <timshen@google.com>
3458
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.
3463
3464 2017-02-13  H.J. Lu  <hongjiu.lu@intel.com>
3465
3466         PR libstdc++/79348
3467         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
3468
3469 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
3470
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.
3481
3482 2017-02-13  Jonathan Wakely  <jwakely@redhat.com>
3483
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.
3489
3490 2017-02-11  Jonathan Wakely  <jwakely@redhat.com>
3491
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.
3497
3498         * include/bits/atomic_base.h: Re-indent.
3499
3500 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
3501
3502         * doc/xml/manual/profile_mode.xml: Update a paper reference.
3503
3504 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
3505
3506         * src/c++11/snprintf_lite.cc (__err): Use https for bug reporting.
3507
3508 2017-02-08  Jonathan Wakely  <jwakely@redhat.com>
3509
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.
3520
3521 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
3522
3523         * doc/xml/manual/profile_mode.xml: Unbreak link to
3524         "Optimizing Sorting with Machine Learning Algorithms".
3525
3526 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
3527
3528         * src/c++11/snprintf_lite.cc (__err): Update bug reporting URL.
3529
3530 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
3531
3532         * doc/xml/manual/abi.xml: Update link to "Sun Studio 11: C++
3533         Migration Guide".
3534
3535 2017-02-07  Gerald Pfeifer  <gerald@pfeifer.com>
3536
3537         * doc/html/ext/lwg-active.html: Remove.
3538         * doc/html/ext/lwg-closed.html: Ditto.
3539         * doc/html/ext/lwg-defects.html: Ditto.
3540
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.
3546
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.
3552
3553 2017-02-07  Gerald Pfeifer  <gerald@pfeifer.com>
3554
3555         * doc/xml/manual/status_cxx2017.xml: Fix link to N4284.
3556
3557 2017-02-06  Jonathan Wakely  <jwakely@redhat.com>
3558
3559         PR libstdc++/79323
3560         * testsuite/20_util/duration/literals/range.cc: Prune extra output
3561         at -O0.
3562
3563 2017-02-06  Gerald Pfeifer  <gerald@pfeifer.com>
3564
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.
3570
3571 2017-02-03  Jonathan Wakely  <jwakely@redhat.com>
3572
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.
3592
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.
3622
3623 2017-02-02  H.J. Lu  <hongjiu.lu@intel.com>
3624
3625         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
3626
3627 2017-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3628
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.
3646
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.
3653
3654 2017-02-01  Jonathan Wakely  <jwakely@redhat.com>
3655
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.
3661
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.
3676
3677 2017-01-30  Ville Voutilainen  <ville.voutilainen@gmail.com>
3678
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.
3683
3684 2017-01-27  Jonathan Wakely  <jwakely@redhat.com>
3685
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.
3702
3703 2017-01-26  Jonathan Wakely  <jwakely@redhat.com>
3704
3705         PR libstdc++/70607
3706         * include/tr1/complex (conj): Remove using-declaration and restore
3707         overloads, reverting previous change.
3708
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.
3718
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.
3734
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.
3745
3746 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
3747
3748         * libsupc++/eh_atomics.h: Update copyright years.
3749         * testsuite/20_util/unique_ptr/cons/default.cc: Update copyright years.
3750
3751 2017-01-25  Jonathan Wakely  <jwakely@redhat.com>
3752
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.
3762
3763 2017-01-24  Jonathan Wakely  <jwakely@redhat.com>
3764
3765         PR libstdc++/79206
3766         * include/experimental/string_view (operator==): Check sizes first.
3767         * include/std/string_view (operator==): Likewise.
3768
3769 2017-01-23  Jonathan Wakely  <jwakely@redhat.com>
3770
3771         * testsuite/experimental/array/make_array.cc: Restore <functional>
3772         inclusion.
3773
3774 2017-01-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3775
3776         * testsuite/29_atomics/atomic/69301.cc: Require atomic builtins.
3777
3778 2017-01-23  Jonathan Wakely  <jwakely@redhat.com>
3779
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.
3790
3791 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
3792
3793         * doc/xml/manual/debug.xml: code.google.com uses https now.
3794
3795 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
3796
3797         * doc/xml/manual/test.xml: Fix link into gccint online manual.
3798
3799 2017-01-21  Ville Voutilainen  <ville.voutilainen@gmail.com>
3800
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.
3813
3814 2017-01-20  Joe Seymour  <joe.s@somniumtech.com>
3815
3816         * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): Support uint20_t.
3817         * configure: Regenerate.
3818
3819 2017-01-20  Jonathan Wakely  <jwakely@redhat.com>
3820
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.
3899
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.
3913
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.
3928
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.
3935
3936         PR libstdc++/64903
3937         * include/bits/stl_algo.h (is_partitioned): Use increment instead of
3938         std::advance.
3939
3940 2017-01-19  Jonathan Wakely  <jwakely@redhat.com>
3941
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.
3947
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.
3952
3953         * doc/xml/manual/abi.xml: Fix typo.
3954         * doc/html/manual/abi.html: Likewise.
3955
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.
3971
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.
3978
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.
3986
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.
3998
3999 2017-01-18  Jonathan Wakely  <jwakely@redhat.com>
4000
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.
4009
4010         PR libstdc++/68925
4011         * include/experimental/random (randint): Use temporary instead of
4012         thread_local static.
4013
4014 2017-01-17  Joshua Conner  <joshconner@google.com>
4015
4016         * crossconfig.m4: Add fuchsia OS.
4017         * configure: Regenerate.
4018
4019 2017-01-17  Jonathan Wakely  <jwakely@redhat.com>
4020
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.
4028
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.
4033
4034 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
4035
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.
4052
4053 2017-01-16  Jonathan Wakely  <jwakely@redhat.com>
4054
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.
4076
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.
4082
4083 2017-01-16  Ville Voutilainen  <ville.voutilainen@gmail.com>
4084
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.
4090
4091 2017-01-14  Jonathan Wakely  <jwakely@redhat.com>
4092
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.
4125
4126 2017-01-13  Jonathan Wakely  <jwakely@redhat.com>
4127
4128         PR libstdc++/65411
4129         * config/io/basic_file_stdio.cc (__basic_file<char>::close()): Don't
4130         retry fclose on EINTR.
4131
4132         * include/profile/base.h: Remove unused header that leads to header
4133         cycle in C++17 mode.
4134
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.
4140
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.
4175
4176 2017-01-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
4177
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.
4186
4187 2017-01-13  Jonathan Wakely  <jwakely@redhat.com>
4188
4189         * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Mark
4190         XFAIL for C++17 until node reinsertion supports fancy pointers.
4191
4192         PR libstdc++/78361
4193         * testsuite/20_util/add_pointer/value.cc: Test forming function
4194         pointers.
4195
4196 2017-01-13  Michael Brune  <lucdanton@free.fr>
4197
4198         PR libstdc++/78361
4199         * include/std/type_traits (__is_referenceable): Handle noexcept
4200         function types.
4201
4202 2017-01-12  Jonathan Wakely  <jwakely@redhat.com>
4203
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.
4217
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.
4228
4229 2017-01-11  Jonathan Wakely  <jwakely@redhat.com>
4230
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
4244
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.
4252
4253 2017-01-11  Ville Voutilainen  <ville.voutilainen@gmail.com>
4254
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.
4272
4273 2017-01-10  Jonathan Wakely  <jwakely@redhat.com>
4274
4275         * testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
4276         effective target selector to prevent running in C++17 mode.
4277
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.
4309
4310 2017-01-10  Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
4311
4312         * include/bits/locale_facets_nonio.tcc
4313         (time_get::_M_extract_via_format): Avoid compilation errors with
4314         non-standard struct tm.
4315
4316 2017-01-10  François Dumont  <fdumont@gcc.gnu.org>
4317             Jonathan Wakely  <jwakely@redhat.com>
4318
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.
4332
4333 2017-01-09  Jonathan Wakely  <jwakely@redhat.com>
4334
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.
4343
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.
4348
4349 2017-01-09  Jonathan Wakely  <jwakely@redhat.com>
4350             Aditya Kumar  <hiraditya@msn.com>
4351
4352         PR libstdc++/66414
4353         * include/bits/basic_string.tcc
4354         (basic_string::find(const CharT*, size_type, size_type)): Optimize.
4355
4356 2017-01-06  Jonathan Wakely  <jwakely@redhat.com>
4357
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.
4360
4361         * testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
4362         Include <cassert> header.
4363
4364         PR libstdc++/78968
4365         * crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
4366         * configure: Regenerate.
4367
4368 2017-01-06  Barrett Adair  <barrettellisadair@gmail.com>
4369             Jonathan Wakely  <jwakely@redhat.com>
4370
4371         * include/std/variant (variant, swap): Replace __and_ usage with fold
4372         expressions.
4373
4374 2017-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4375
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.
4388
4389 2017-01-06  Jonathan Wakely  <jwakely@redhat.com>
4390
4391         * include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.
4392
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.
4401
4402 2017-01-05  Jonathan Wakely  <jwakely@redhat.com>
4403
4404         * include/bits/std_function.h (function::_Signature_type): Remove.
4405         (function::function(_Functor)): Adjust.
4406
4407 2017-01-05  Tim Shen  <timshen@google.com>
4408
4409         PR libstdc++/78996
4410         * include/std/variant (__gen_vtable_impl): rename __unused to
4411         __dimensions to avoid naming conflict.
4412
4413 2017-01-04  Jonathan Wakely  <jwakely@redhat.com>
4414
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.
4421
4422 2017-01-04  Ville Voutilainen  <ville.voutilainen@gmail.com>
4423
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.
4438
4439 2017-01-04  Pauli Nieminen  <suokkos@gmail.com>
4440             Jonathan Wakely  <jwakely@redhat.com>
4441
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.
4475
4476 2017-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
4477
4478         * doc/xml/manual/documentation_hacking.xml: sourceforge.net now
4479         defaults to https; adjust reference.
4480
4481 2017-01-03  Jonathan Wakely  <jwakely@redhat.com>
4482
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.
4487
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.
4492
4493 2017-01-01  Gerald Pfeifer  <gerald@pfeifer.com>
4494
4495         * doc/xml/faq.xml: Update address of C++ ABI link.
4496         * doc/xml/manual/abi.xml: Ditto.
4497
4498 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
4499
4500         Update copyright years.
4501 \f
4502 Copyright (C) 2017 Free Software Foundation, Inc.
4503
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.