2017-02-14 Vladimir Makarov <vmakarov@redhat.com>
[official-gcc.git] / libstdc++-v3 / ChangeLog
blobe88fe2dcd4cd93e964a66ad9cb7307290e59ef4c
1 2017-02-13  H.J. Lu  <hongjiu.lu@intel.com>
3         PR libstdc++/79348
4         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
6 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
8         PR libstdc++/79348
9         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
10         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
11         * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Likewise.
12         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
13         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Likewise.
14         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Likewise.
15         * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Likewise.
16         * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Likewise.
17         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
19 2017-02-13  Jonathan Wakely  <jwakely@redhat.com>
21         PR libstdc++/79486
22         * include/std/future (__future_base::_Task_state::_M_run)
23         (__future_base::_Task_state::_M_run_delayed): Use lvalue types in
24         result_of expressions.
25         * testsuite/30_threads/packaged_task/79486.cc: New.
27 2017-02-11  Jonathan Wakely  <jwakely@redhat.com>
29         PR libstdc++/79467
30         * include/bits/shared_ptr_base.h (__shared_ptr(_Yp*, _Deleter))
31         (__shared_ptr(_Yp*, _Deleter, _Alloc)): Use lvalue types in
32         __is_callable check.
33         * testsuite/20_util/shared_ptr/cons/79467.cc: New.
35         * include/bits/atomic_base.h: Re-indent.
37 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com> 
39         * doc/xml/manual/profile_mode.xml: Update a paper reference. 
41 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
43         * src/c++11/snprintf_lite.cc (__err): Use https for bug reporting.
45 2017-02-08  Jonathan Wakely  <jwakely@redhat.com>
47         * doc/xml/manual/policy_data_structures.xml: Fix spelling of author's
48         name.
49         * doc/xml/manual/policy_data_structures_biblio.xml: Likewise. Remove
50         broken links to texts that are no longer online.
51         * doc/xml/manual/profile_mode.xml: Update links to CGO 2009 paper and
52         LCPC 2006 paper.
53         * doc/xml/manual/using.xml: Update links to memory model information.
54         * doc/xml/manual/using_exceptions.xml: Update link to "Appendix E:
55         Standard-Library Exception Safety".
56         * doc/html/*: Regenerate.
58 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
59         
60         * doc/xml/manual/profile_mode.xml: Unbreak link to
61         "Optimizing Sorting with Machine Learning Algorithms".
63 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
64         
65         * src/c++11/snprintf_lite.cc (__err): Update bug reporting URL.
67 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
68         
69         * doc/xml/manual/abi.xml: Update link to "Sun Studio 11: C++
70         Migration Guide".
72 2017-02-07  Gerald Pfeifer  <gerald@pfeifer.com>
74         * doc/html/ext/lwg-active.html: Remove.
75         * doc/html/ext/lwg-closed.html: Ditto.
76         * doc/html/ext/lwg-defects.html: Ditto.
78         * doc/Makefile.am (xml_extradir): Remove.
79         (xml_extra): Ditto.
80         (stamp-html-docbook-lwg): Remove recipe...
81         (stamp-html-docbook-data): ...and its use here.
82         * doc/Makefile.in: Regenerate.
84         * doc/xml/manual/intro.xml: Shorten two paragraphs explaining
85         the relationship to the upstream working group.
86         Replace a local link to ../ext/lwg-active.html by the upstream one.
87         Replace all reference to ../ext/lwg-defects.html by a new entity
88         &DR; which refers to the upstream address.
90 2017-02-07  Gerald Pfeifer  <gerald@pfeifer.com>
92         * doc/xml/manual/status_cxx2017.xml: Fix link to N4284.
94 2017-02-06  Jonathan Wakely  <jwakely@redhat.com>
96         PR libstdc++/79323
97         * testsuite/20_util/duration/literals/range.cc: Prune extra output
98         at -O0.
100 2017-02-06  Gerald Pfeifer  <gerald@pfeifer.com>
102         * doc/xml/manual/documentation_hacking.xml: Update URL of the
103         DocBook Element Reference.  Use that term as link description
104         instead of "online".
105         epubcheck has moved to GitHub.
106         Remove obsolete link to DocBook Publishing Tools.
108 2017-02-03  Jonathan Wakely  <jwakely@redhat.com>
110         PR libstdc++/66145
111         * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Restore ABI override
112         so new ios::failure can be caught even when old ABI is the default.
113         * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
114         * testsuite/27_io/basic_istream/extractors_arithmetic/char/
115         exceptions_failbit.cc: Likewise.
116         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
117         exceptions_failbit.cc: Likewise.
118         * testsuite/27_io/basic_istream/extractors_other/char/
119         exceptions_null.cc: Likewise.
120         * testsuite/27_io/basic_istream/extractors_other/wchar_t/
121         exceptions_null.cc: Likewise.
122         * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
123         * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
124         * testsuite/27_io/basic_ostream/inserters_other/char/
125         exceptions_null.cc: Likewise.
126         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
127         exceptions_null.cc: Likewise.
128         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
130         PR libstdc++/60936
131         * src/c++11/Makefile.am: Add new files.
132         * src/c++11/Makefile.in: Regenerate.
133         * src/c++11/cow-string-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
134         (operator<<, operator>>, getline): Move explicit instantiations to ...
135         * src/c++11/cow-string-io-inst.cc: ... new file.
136         * src/c++11/cow-wstring-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
137         (operator<<, operator>>, getline): Move explicit instantiations to ...
138         * src/c++11/cow-wstring-io-inst.cc: ... new file.
139         * src/c++11/functexcept.cc (__throw_ios_failure, __throw_system_error)
140         (__throw_future_error, __throw_bad_function_call):
141         (__throw_regex_error): Move functions for C++11 exceptions to the
142         files that define the exception types.
143         * src/c++11/functional.cc (__throw_bad_function_call): Move here.
144         * src/c++11/future.cc (__throw_future_error): Likewise.
145         * src/c++11/ios.cc (__throw_ios_failure): Likewise.
146         * src/c++11/regex.cc (__throw_regex_error): Likewise.
147         * src/c++11/snprintf_lite.cc (__concat_size_t): Print decimal
148         representation directly instead of calling __int_to_char.
149         * src/c++11/sso_string.cc (__sso_string): New file for definition
150         of __sso_string type.
151         * src/c++11/string-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
152         explicit instantiations of narrow string I/O functions.
153         * src/c++11/system_error.cc (__throw_system_error): Move here.
154         (__sso_string): Move to new file.
155         * src/c++11/wstring-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
156         explicit instantiations of wide string I/O functions.
157         * src/c++98/misc-inst.cc [_GLIBCXX_USE_CXX11_ABI] (operator<<)
158         (operator>>, getline): Remove explicit instantiations from here.
160 2017-02-02  H.J. Lu  <hongjiu.lu@intel.com>
162         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
164 2017-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
166         * configure.host: Separate Solaris/SPARC and x86 baselines.
167         * config/abi/post/solaris2.10/baseline_symbols.txt: Move ...
168         * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: ... here.
169         * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Move ...
170         * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
171         ... here.
172         * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Move ...
173         * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: ... here.
174         * config/abi/post/i386-solaris2.10/baseline_symbols.txt: New file.
175         * config/abi/post/solaris2.11/baseline_symbols.txt: Move ...
176         * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: ... here.
177         * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Move ...
178         * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
179         ... here.
180         * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Move ...
181         * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: ... here.
182         * config/abi/post/i386-solaris2.11/baseline_symbols.txt: New file.
184         * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
185         * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
186         * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
187         * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
188         * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
189         * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
191 2017-02-01  Jonathan Wakely  <jwakely@redhat.com>
193         PR libstdc++/78346
194         * include/bits/predefined_ops.h (_Iter_equals_iter): Store iterator
195         not its referent.
196         (_Iter_comp_to_iter): Likewise.
197         * testsuite/25_algorithms/search/78346.cc: New test.
199         PR libstdc++/79254
200         * config/abi/pre/gnu.ver: Remove recently added symbols.
201         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
202         (basic_string::_M_copy_assign): Remove.
203         (basic_string::operator=(const basic_string&)): Don't dispatch to
204         _M_copy_assign. If source object is small just deallocate, otherwise
205         perform new allocation before making any changes.
206         * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
207         (basic_string::_M_copy_assign(const basic_string&, true_type)):
208         Remove.
209         * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
210         Test cases where the allocators are equal or the string is small.
211         * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
212         Likewise.
214 2017-01-30  Ville Voutilainen  <ville.voutilainen@gmail.com>
216         Implement LWG 2825, LWG 2756 breaks class template argument
217         deduction for optional.
218         * include/std/optional: Add a deduction guide.
219         * testsuite/20_util/optional/cons/deduction_guide.cc: New.
221 2017-01-27  Jonathan Wakely  <jwakely@redhat.com>
223         PR libstdc++/79254
224         * config/abi/pre/gnu.ver: Add new symbols.
225         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
226         (basic_string::_M_copy_assign): New overloaded functions to perform
227         copy assignment.
228         (basic_string::operator=(const basic_string&)): Dispatch to
229         _M_copy_assign.
230         * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
231         (basic_string::_M_copy_assign(const basic_string&, true_type)):
232         Define, performing rollback on exception.
233         * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
234         Test exception-safety guarantee.
235         * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
236         Likewise.
237         * testsuite/util/testsuite_allocator.h (uneq_allocator::swap): Make
238         std::swap visible.
240 2017-01-26  Jonathan Wakely  <jwakely@redhat.com>
242         PR libstdc++/70607
243         * include/tr1/complex (conj): Remove using-declaration and restore
244         overloads, reverting previous change.
246         * testsuite/23_containers/list/operations/78389.cc: Fix for C++11
247         mode.
248         * testsuite/23_containers/priority_queue/requirements/constructible.cc:
249         Mark as unsupported in C++98 mode.
250         * testsuite/23_containers/queue/requirements/constructible.cc:
251         Likewise.
252         * testsuite/23_containers/stack/requirements/constructible.cc:
253         Likewise.
254         * testsuite/25_algorithms/make_heap/movable.cc: Fix for C++11 mode.
256         PR libstdc++/79243
257         * include/bits/c++config (literals::string_view_literals::__7): Add.
258         Only declare versioned namespaces for the relevant C++ dialects.
259         * include/experimental/bits/erase_if.h (fundamentals_v2::__detail):
260         Add versioning macros.
261         * include/experimental/bits/lfts_config.h:
262         (fundamentals_v1::__detail::__7, fundamentals_v2::__detail::__7): Add.
263         * include/experimental/string_view (fundamentals_v2::__detail):
264         Add versioning macros.
265         (fundamentals_v2::__detail::__identity): Remove.
266         (fundamentals_v2::__detail::__idt): Use common_type instead of
267         __detail::__identity.
268         * include/std/string_view (__detail::__identity, __detail::__idt):
269         Likewise.
270         (literals::string_view_literals): Fix nesting of versioning macros.
272         PR libstdc++/79190
273         * libsupc++/del_opa.cc (operator delete(void*, std::align_val_t))
274         [!_GLIBCXX_HAVE_ALIGNED_ALLOC && !_GLIBCXX_HAVE_POSIX_MEMALIGN
275         && !_GLIBCXX_HAVE_MEMALIGN && !_GLIBCXX_HAVE__ALIGNED_MALLOC]:
276         Retrieve original pointer value allocated by malloc.
277         * libsupc++/new_opa.cc [!_GLIBCXX_HAVE_ALIGNED_ALLOC
278         && !_GLIBCXX_HAVE_POSIX_MEMALIGN && !_GLIBCXX_HAVE_MEMALIGN
279         && !_GLIBCXX_HAVE__ALIGNED_MALLOC] (aligned_alloc(size_t, size_t)):
280         Define, adjusting pointer value allocated by malloc and storing for
281         retrieval by operator delete.
283 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
285         * libsupc++/eh_atomics.h: Update copyright years.
286         * testsuite/20_util/unique_ptr/cons/default.cc: Update copyright years.
288 2017-01-25  Jonathan Wakely  <jwakely@redhat.com>
290         PR libstdc++/61791
291         PR libstdc++/70607
292         * include/std/complex (real(T), imag(T)): Add _GLIBCXX_CONSTEXPR.
293         (proj(T), conj(T)): Change return types per DR 1522.
294         * include/tr1/complex (conj): Remove overloads and use std::conj.
295         * testsuite/26_numerics/complex/dr781_dr1137.cc: Rename to...
296         * testsuite/26_numerics/complex/dr781.cc: ... this, and update.
297         * testsuite/26_numerics/complex/value_operations/constexpr2.cc: Test
298         real(T) and imag(T). Allow testing for C++11 too.
300 2017-01-24  Jonathan Wakely  <jwakely@redhat.com>
302         PR libstdc++/79206
303         * include/experimental/string_view (operator==): Check sizes first.
304         * include/std/string_view (operator==): Likewise.
306 2017-01-23  Jonathan Wakely  <jwakely@redhat.com>
308         * testsuite/experimental/array/make_array.cc: Restore <functional>
309         inclusion.
311 2017-01-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
313         * testsuite/29_atomics/atomic/69301.cc: Require atomic builtins.
315 2017-01-23  Jonathan Wakely  <jwakely@redhat.com>
317         PR libstdc++/79195
318         * include/experimental/array (__make_array_elem): New class template
319         and partial specialization.
320         (__is_reference_wrapper): Move into __make_array_elem specialization.
321         (make_array): Use __make_array_elem to determine element type and move
322         static assertion into specialization. Qualify std::forward call.
323         (to_array): Add exception specifiation.
324         * testsuite/experimental/array/make_array.cc: Test argument types
325         without a common type.
326         * testsuite/experimental/array/neg.cc: Adjust expected error message.
328 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
330         * doc/xml/manual/debug.xml: code.google.com uses https now.
332 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
333         
334         * doc/xml/manual/test.xml: Fix link into gccint online manual.
336 2017-01-21  Ville Voutilainen  <ville.voutilainen@gmail.com>
338         Make poisoned hashes SFINAE away the call operator of the hash.
339         * include/bits/functional_hash.h
340         (__poison_hash::__enable_hash_call): New.
341         * include/std/optional (__optional_hash_call_base): New.
342         (hash<optional<_Tp>>): Derive from the new base,
343         move the hash function into that base.
344         * include/std/variant (__variant_hash_call_base_impl): New.
345         (__variant_hash_call_base): Likewise.
346         (hash<variant<_Types...>>): Derive from the new base,
347         move the hash function into that base.
348         * testsuite/20_util/optional/hash.cc: Add tests for is_callable.
349         * testsuite/20_util/variant/hash.cc: Likewise.
351 2017-01-20  Joe Seymour  <joe.s@somniumtech.com>
353         * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): Support uint20_t.
354         * configure: Regenerate.
356 2017-01-20  Jonathan Wakely  <jwakely@redhat.com>
358         PR libstdc++/69240
359         * include/bits/random.h (uniform_real_distribution::param_type)
360         (normal_distribution::param_type, lognormal_distribution::param_type)
361         (gamma_distribution::param_type, chi_squared_distribution::param_type)
362         (cauchy_distribution::param_type, fisher_f_distribution::param_type)
363         (student_t_distribution::param_type)
364         (bernoulli_distribution::param_type, binomial_distribution::param_type)
365         (geometric_distribution::param_type)
366         (negative_binomial_distribution::param_type)
367         (poisson_distribution::param_type)
368         (exponential_distribution::param_type)
369         (weibull_distribution::param_type)
370         (extreme_value_distribution::param_type)
371         (discrete_distribution::param_type)
372         (piecewise_constant_distribution::param_type)
373         (piecewise_linear_distribution::param_type): Define operator!=.
374         * include/bits/uniform_int_dist.h
375         (uniform_int_distribution::param_type): Likewise.
376         * include/ext/random (beta_distribution::param_type)
377         (rice_distribution::param_type, nakagami_distribution::param_type)
378         (pareto_distribution::param_type, k_distribution::param_type)
379         (arcsine_distribution::param_type, hoyt_distribution::param_type)
380         (triangular_distribution::param_type)
381         (von_mises_distribution::param_type)
382         (hypergeometric_distribution::param_type)
383         (logistic_distribution::param_type)
384         (uniform_on_sphere_distribution::param_type)
385         (uniform_inside_sphere_distribution::param_type): Likewise.
386         * testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc:
387         Test construction with param_type.
388         * testsuite/26_numerics/random/binomial_distribution/cons/parms.cc:
389         Likewise.
390         * testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc:
391         Likewise.
392         * testsuite/26_numerics/random/chi_squared_distribution/cons/parms.cc:
393         Likewise.
394         * testsuite/26_numerics/random/exponential_distribution/cons/parms.cc:
395         Likewise.
396         * testsuite/26_numerics/random/extreme_value_distribution/cons/
397         parms.cc: Likewise.
398         * testsuite/26_numerics/random/fisher_f_distribution/cons/parms.cc:
399         Likewise.
400         * testsuite/26_numerics/random/gamma_distribution/cons/parms.cc:
401         Likewise.
402         * testsuite/26_numerics/random/geometric_distribution/cons/parms.cc:
403         Likewise.
404         * testsuite/26_numerics/random/lognormal_distribution/cons/parms.cc:
405         Likewise.
406         * testsuite/26_numerics/random/negative_binomial_distribution/cons/
407         parms.cc: Likewise.
408         * testsuite/26_numerics/random/normal_distribution/cons/parms.cc:
409         Likewise.
410         * testsuite/26_numerics/random/poisson_distribution/cons/parms.cc:
411         Likewise.
412         * testsuite/26_numerics/random/student_t_distribution/cons/parms.cc:
413         Likewise.
414         * testsuite/26_numerics/random/uniform_int_distribution/cons/parms.cc:
415         Likewise.
416         * testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc:
417         Likewise.
418         * testsuite/26_numerics/random/weibull_distribution/cons/parms.cc:
419         Likewise.
420         * testsuite/ext/random/arcsine_distribution/cons/parms.cc: Likewise.
421         * testsuite/ext/random/beta_distribution/cons/parms.cc: Likewise.
422         * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
423         * testsuite/ext/random/hypergeometric_distribution/cons/parms.cc:
424         Likewise.
425         * testsuite/ext/random/k_distribution/cons/parms.cc: Likewise.
426         * testsuite/ext/random/logistic_distribution/cons/parms.cc: Likewise.
427         * testsuite/ext/random/nakagami_distribution/cons/parms.cc: Likewise.
428         * testsuite/ext/random/normal_mv_distribution/cons/parms.cc: Likewise.
429         * testsuite/ext/random/pareto_distribution/cons/parms.cc: Likewise.
430         * testsuite/ext/random/rice_distribution/cons/parms.cc: Likewise.
431         * testsuite/ext/random/triangular_distribution/cons/parms.cc:
432         Likewise.
433         * testsuite/ext/random/uniform_inside_sphere_distribution/cons/
434         parms.cc: Likewise.
435         * testsuite/ext/random/von_mises_distribution/cons/parms.cc: Likewise.
437         PR libstdc++/72792
438         * include/bits/alloc_traits.h (__allocator_traits_base::__diff_type)
439         (__allocator_traits_base::__size_type): Remove.
440         (allocator_traits::_Ptr): New class template to detect const and void
441         pointer types without instantiating pointer_traits::rebind
442         unnecessarily.
443         (allocator_traits::_Diff): Likewise for detecting difference_type.
444         (allocator_traits::_Size): New class template to detect size_type
445         without instantiating make_unsigned unnecessarily.
446         * include/bits/ptr_traits.h (pointer_traits::element_type): Use
447         __detected_or_t instead of __detected_or_t_.
448         * include/std/type_traits (__detected_or_t_): Remove.
449         * testsuite/20_util/allocator_traits/members/pointers.cc: New test.
451         PR libstdc++/72792
452         PR libstdc++/72793
453         * include/bits/alloc_traits.h (__allocator_traits_base::__rebind):
454         Replace with class template using void_t.
455         (__alloc_rebind): Define in terms of
456         __allocator_traits_base::__rebind.
457         (allocator_traits): Remove unconditional static_assert for
458         rebind_alloc.
459         * include/bits/ptr_traits.h (__replace_first_arg): Remove type member.
460         (pointer_traits::__rebind): Replace with class template using void_t.
461         (pointer_traits::rebind): Define in terms of __rebind.
462         (pointer_traits): Remove unconditional static_assert for rebind.
463         * testsuite/20_util/allocator_traits/members/rebind_alloc.cc: New test.
464         * testsuite/20_util/pointer_traits/rebind.cc: New test.
466         PR libstdc++/69321
467         * include/experimental/any (__any_caster): Avoid instantiating
468         manager function for types that can't be stored in any.
469         * include/std/any (__any_caster): Likewise.
470         * testsuite/20_util/any/misc/any_cast.cc: Test non-copyable type.
471         * testsuite/experimental/any/misc/any_cast.cc: Likewise.
473         PR libstdc++/64903
474         * include/bits/stl_algo.h (is_partitioned): Use increment instead of
475         std::advance.
477 2017-01-19  Jonathan Wakely  <jwakely@redhat.com>
479         PR libstdc++/79156
480         * include/bits/shared_ptr_base.h (__enable_shared_from_this_base):
481         Fix return type.
482         (__enable_shared_from_this): Declare __shared_ptr as a friend.
483         * testsuite/ext/shared_ptr/1.cc: New test.
485         PR libstdc++/64903
486         * include/bits/stl_algo.h (is_partitioned): Don't retest the partition
487         point.
488         * testsuite/25_algorithms/is_partitioned/2.cc: New test.
490         * doc/xml/manual/abi.xml: Fix typo.
491         * doc/html/manual/abi.html: Likewise.
493         PR libstdc++/67085
494         * include/bits/predefined_ops.h (_Iter_less_val, _Val_less_iter): Add
495         converting constructors from _Iter_less_iter.
496         (_Iter_comp_val, _Val_comp_iter): Add converting constructors from
497         _Iter_comp_iter.
498         (__iter_comp_val(_Iter_comp_iter<C>): Use converting constructor.
499         (__val_comp_iter(_Iter_comp_iter<C>): Likewise.
500         * include/bits/stl_heap.h (__is_heap_until, __push_heap, __pop_heap)
501         (__make_heap, __sort_heap): Change _Compare parameters to references.
502         (__is_heap, push_heap, __adjust_heap, __pop_heap, pop_heap)
503         (__make_heap, make_heap, sort_heap, is_heap_until): Pass comparison
504         functions as lvalues.
505         (is_heap): Call __is_heap_until directly to avoid copying __comp.
506         * testsuite/23_containers/priority_queue/67085.cc: Adjust test to
507         count copies during construction with empty sequence.
509         PR libstdc++/67085
510         * include/bits/stl_heap.h (__is_heap): Use _GLIBCXX_MOVE.
511         (__make_heap, __sort_heap): Don't use _GLIBCXX_MOVE inside loops.
512         * testsuite/23_containers/priority_queue/67085.cc: Adjust expected
513         number of copies.
514         * testsuite/25_algorithms/make_heap/movable.cc: New test.
516         PR libstdc++/67085
517         * include/bits/stl_heap.h (push_heap, __adjust_heap, __pop_heap)
518         (pop_heap, __make_heap, make_heap, __sort_heap, sort_heap): Use
519         _GLIBCXX_MOVE when passing comparison function to other functions.
520         (is_heap_until, is_heap): Use std::move when passing comparison
521         function.
522         * testsuite/23_containers/priority_queue/67085.cc: New test.
524         PR libstdc++/78905
525         * doc/xml/manual/abi.xml (abi.versioning.history): Add markup to
526         macro names, filenames, and literal values. Document _GLIBCXX_RELEASE.
527         Document that the deprecated _GLIBCXX_VERSION macro was removed for
528         the 4.0.0 release.
529         * doc/html/*: Regenerate.
530         * include/Makefile.am (_GLIBCXX_RELEASE): Set value.
531         * include/Makefile.in: Regenerate.
532         * include/bits/c++config (_GLIBCXX_RELEASE): Add #define.
533         * testsuite/ext/profile/mutex_extensions_neg.cc: Use lineno of 0 in
534         dg-error.
536 2017-01-18  Jonathan Wakely  <jwakely@redhat.com>
538         PR libstdc++/69301
539         * include/std/atomic (atomic<T>::load, atomic<T>::exchange): Use
540         aligned buffer instead of default-initialized variable.
541         * testsuite/29_atomics/atomic/69301.cc: New test.
542         * include/experimental/memory (observer_ptr::release): Use reserved
543         name.
544         * include/ext/pointer.h (_Pointer_adapter::operator++(int))
545         (_Pointer_adapter::operator--(int)): Likewise.
547         PR libstdc++/68925
548         * include/experimental/random (randint): Use temporary instead of
549         thread_local static.
551 2017-01-17  Joshua Conner  <joshconner@google.com>
553         * crossconfig.m4: Add fuchsia OS.
554         * configure: Regenerate. 
556 2017-01-17  Jonathan Wakely  <jwakely@redhat.com>
558         PR libstdc++/69699
559         * doc/xml/manual/abi.xml (abi.versioning.history): Explain why the
560         __GLIBCXX__ macro is not useful. Remove redundant date information
561         and link to the GCC release timeline.
562         (abi.versioning.active): Move partial sentence into the previous
563         paragraph.
564         * doc/html/*: Regenerate.
566         PR libstdc++/79114
567         * libsupc++/nested_exception.h (throw_with_nested): Use decay instead
568         of remove_reference.
569         * testsuite/18_support/nested_exception/79114.cc: New test.
571 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
573         PR other/79046
574         * configure.ac: Add GCC_BASE_VER.
575         * fragment.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
576         get version from BASE-VER file.
577         * po/Makefile.in: Regenerated.
578         * libsupc++/Makefile.in: Regenerated.
579         * testsuite/Makefile.in: Regenerated.
580         * src/Makefile.in: Regenerated.
581         * configure: Regenerated.
582         * Makefile.in: Regenerated.
583         * include/Makefile.in: Regenerated.
584         * doc/Makefile.in: Regenerated.
585         * python/Makefile.in: Regenerated.
586         * src/c++11/Makefile.in: Regenerated.
587         * src/c++98/Makefile.in: Regenerated.
588         * src/filesystem/Makefile.in: Regenerated.
590 2017-01-16  Jonathan Wakely  <jwakely@redhat.com>
592         PR libstdc++/66145
593         * src/c++11/functexcept.cc: Use new ABI for std::ios_base::failure
594         exceptions.
595         * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Don't override ABI
596         for test, so new ios::failure can be caught.
597         * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
598         * testsuite/27_io/basic_istream/extractors_arithmetic/char/
599         exceptions_failbit.cc: Likewise.
600         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
601         exceptions_failbit.cc: Likewise.
602         * testsuite/27_io/basic_istream/extractors_other/char/
603         exceptions_null.cc: Likewise.
604         * testsuite/27_io/basic_istream/extractors_other/wchar_t/
605         exceptions_null.cc: Likewise.
606         * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
607         * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
608         * testsuite/27_io/basic_ostream/inserters_other/char/
609         exceptions_null.cc: Likewise.
610         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
611         exceptions_null.cc: Likewise.
612         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
614         PR libstdc++/78702
615         * include/bits/locale_classes.h (locale::facet::__shim): Change from
616         private to protected.
617         * src/c++11/cxx11-shim_facets.cc (__shim_accessor): Define helper to
618         make locale::facet::__shim accessible.
620 2017-01-16  Ville Voutilainen  <ville.voutilainen@gmail.com>
622         PR libstdc++/78389
623         * include/bits/list.tcc (merge(list&&)): Fix backwards size adjustments.
624         (merge(list&&, _StrictWeakOrdering)): Likewise.
625         * testsuite/23_containers/list/operations/78389.cc: Add
626         better test for the sizes.
628 2017-01-14  Jonathan Wakely  <jwakely@redhat.com>
630         * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
631         Skip test when -D_GLIBCXX_PROFILE mode is included in options.
632         * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
633         * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
634         Likewise.
635         * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
636         * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise.
637         * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise.
638         * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
639         * testsuite/23_containers/unordered_map/modifiers/extract.cc:
640         Likewise.
641         * testsuite/23_containers/unordered_multimap/modifiers/extract.cc::
642         Likewise.
643         * testsuite/23_containers/unordered_multiset/modifiers/extract.cc::
644         Likewise.
645         * testsuite/23_containers/unordered_set/modifiers/extract.cc:
646         Likewise.
647         * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
648         Likewise.
649         * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise.
650         * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise.
651         * testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise.
652         * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise.
653         * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise.
654         * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
655         * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
656         * testsuite/libstdc++-prettyprinters/debug.cc: Likewise.
657         * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise.
658         * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
659         * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
660         * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
661         * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
663 2017-01-13  Jonathan Wakely  <jwakely@redhat.com>
665         PR libstdc++/65411
666         * config/io/basic_file_stdio.cc (__basic_file<char>::close()): Don't
667         retry fclose on EINTR.
669         * include/profile/base.h: Remove unused header that leads to header
670         cycle in C++17 mode.
672         PR libstdc++/79075
673         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
674         Make _If_sv private.
675         [!_GLIBCXX_USE_CXX11_ABI] (basic_string): Add member functions taking
676         basic_string_view arguments.
678         PR libstdc++/79075
679         * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Remove
680         redundant option from cxxflags.
681         (check_effective_target_cxx11-abi): Define.
682         * testsuite/21_strings/basic_string/allocator/71964.cc: Use cxx11-abi
683         effective target.
684         * testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise.
685         * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
686         Likewise.
687         * testsuite/21_strings/basic_string/allocator/char/minimal.cc:
688         Likewise.
689         * testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
690         * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
691         Likewise.
692         * testsuite/21_strings/basic_string/allocator/char/noexcept.cc:
693         Likewise.
694         * testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
695         * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
696         Likewise.
697         * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
698         Likewise.
699         * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
700         Likewise.
701         * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
702         Likewise.
703         * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
704         Likewise.
705         * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
706         Likewise.
707         * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
708         Likewise.
709         * testsuite/23_containers/list/61347.cc: Likewise.
710         * testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
711         * testsuite/27_io/ios_base/failure/cxx11.cc: Likewise.
713 2017-01-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
715         PR libstdc++/78389
716         * include/bits/list.tcc (merge(list&&)):
717         Adjust list sizes if the comparator throws.
718         (merge(list&&, _StrictWeakOrdering)): Likewise.
719         (sort()): Splice elements back from the scratch buffers
720         if the comparator throws.
721         (sort(_StrictWeakOrdering)): Likewise.
722         * testsuite/23_containers/list/operations/78389.cc: New.
724 2017-01-13  Jonathan Wakely  <jwakely@redhat.com>
726         * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Mark
727         XFAIL for C++17 until node reinsertion supports fancy pointers.
729         PR libstdc++/78361
730         * testsuite/20_util/add_pointer/value.cc: Test forming function
731         pointers.
733 2017-01-13  Michael Brune  <lucdanton@free.fr>
735         PR libstdc++/78361
736         * include/std/type_traits (__is_referenceable): Handle noexcept
737         function types.
739 2017-01-12  Jonathan Wakely  <jwakely@redhat.com>
741         PR libstdc++/77528
742         * include/bits/stl_queue.h (queue, priority_queue): Remove default
743         member-initializers and define default constructors as templates with
744         constraints.
745         * include/bits/stl_stack.h (stack): Likewise.
746         * testsuite/23_containers/priority_queue/requirements/constructible.cc:
747         New.
748         * testsuite/23_containers/priority_queue/requirements/
749         explicit_instantiation/1.cc: Test more instantiations.
750         * testsuite/23_containers/priority_queue/requirements/
751         explicit_instantiation/1_c++98.cc: Likewise.
752         * testsuite/23_containers/queue/requirements/constructible.cc: New.
753         * testsuite/23_containers/stack/requirements/constructible.cc: New.
755         PR libstdc++/66284
756         * doc/xml/manual/intro.xml: Document LWG 2781 change.
757         * doc/html/*: Regenerate.
758         * include/std/functional (_Function_base::_Ref_manager): Remove.
759         (_Function_handler): Remove partial specializations for
760         reference_wrapper.
761         (function::target): Remove special case for const qualification.
762         * testsuite/20_util/function/6.cc: Adjust tests for target type.
763         * testsuite/20_util/function/7.cc: Likewise.
764         * testsuite/20_util/function/8.cc: Likewise.
766 2017-01-11  Jonathan Wakely  <jwakely@redhat.com>
768         PR libstdc++/78134
769         * include/bits/stl_map.h (map::lower_bound, map::upper_bound)
770         (map::equal_range): Fix return type of heterogeneous overloads.
771         * include/bits/stl_multimap.h (multimap::lower_bound)
772         (multimap::upper_bound, multimap::equal_range): Likewise.
773         * include/bits/stl_multiset.h (multiset::lower_bound)
774         (multiset::upper_bound, multiset::equal_range): Likewise.
775         * include/bits/stl_set.h (set::lower_bound, set::upper_bound)
776         (set::equal_range): Likewise.
777         * testsuite/23_containers/map/operations/2.cc
778         * testsuite/23_containers/multimap/operations/2.cc
779         * testsuite/23_containers/multiset/operations/2.cc
780         * testsuite/23_containers/set/operations/2.cc
782         PR libstdc++/78273
783         * include/bits/stl_map.h (map::count<_Kt>(const _Kt&)): Don't assume
784         the heterogeneous comparison can only find one match.
785         * include/bits/stl_set.h (set::count<_Kt>(const _Kt&)): Likewise.
786         * testsuite/23_containers/map/operations/2.cc: Test count works with
787         comparison function that just partitions rather than sorting.
788         * testsuite/23_containers/set/operations/2.cc: Likewise.
790 2017-01-11  Ville Voutilainen  <ville.voutilainen@gmail.com>
792         Reduce the size of variant, it doesn't need an index of
793         type size_t internally.
794         * include/std/variant (parse_numbers.h): New include.
795         (__select_index): New.
796         (_Variant_storage<false, _Types...>::_M_reset_impl): Use
797         _index_type for comparison with variant_npos.
798         (_Variant_storage<false, _Types...>::__index_type): New.
799         (_Variant_storage<false, _Types...>::_M_index): Change the
800         type from size_t to __index_type.
801         (_Variant_storage<true, _Types...>::__index_type): New.
802         (_Variant_storage<true, _Types...>::_M_index): Change the
803         type from size_t to __index_type.
804         (_Variant_base::_M_valid): Use _Storage::__index_type
805         for comparison with variant_npos.
806         (variant::index): Use _Base::_Storage::__index_type
807         for comparison with variant_npos.
808         * testsuite/20_util/variant/index_type.cc: New.
810 2017-01-10  Jonathan Wakely  <jwakely@redhat.com>
812         * testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
813         effective target selector to prevent running in C++17 mode.
815         PR libstdc++/77528
816         * include/bits/stl_queue.h (queue::c): Add default member initializer.
817         (queue::queue()): Add constructor and define as defaulted.
818         (queue::queue(_Sequence&&)): Remove default argument.
819         (priority_queue::c, priority_queue::comp): Add default member
820         initializers.
821         (priority_queue::priority_queue()): Add constructor and define as
822         defaulted.
823         (priority_queue::priority_queue(const _Compare&, _Sequence&&)):
824         Remove default argument for first parameter.
825         * include/bits/stl_stack.h (stack::c): Add default member initializer.
826         (stack::stack()): Add constructor and define as defaulted.
827         (stack::stack(const _Sequence&)): Remove default argument.
828         * testsuite/23_containers/priority_queue/requirements/
829         explicit_instantiation/1.cc: Test explicit instantiation with
830         non-DefaultConstructible sequence.
831         * testsuite/23_containers/priority_queue/77528.cc: New test.
832         * testsuite/23_containers/priority_queue/requirements/
833         explicit_instantiation/1_c++0x.cc: Replace with 1_c++98.cc.
834         * testsuite/23_containers/queue/77528.cc: New test.
835         * testsuite/23_containers/queue/requirements/explicit_instantiation/
836         1.cc: Test explicit instantiation with non-DefaultConstructible
837         sequence.
838         * testsuite/23_containers/queue/requirements/explicit_instantiation/
839         1_c++0x.cc: Replace with 1_c++98.cc.
840         * testsuite/23_containers/stack/77528.cc: New test.
841         * testsuite/23_containers/stack/requirements/explicit_instantiation/
842         1.cc: Test explicit instantiation with non-DefaultConstructible
843         sequence.
844         * testsuite/23_containers/stack/requirements/explicit_instantiation/
845         1_c++0x.cc: Replace with 1_c++98.cc.
847 2017-01-10  Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
849         * include/bits/locale_facets_nonio.tcc
850         (time_get::_M_extract_via_format): Avoid compilation errors with
851         non-standard struct tm.
853 2017-01-10  François Dumont  <fdumont@gcc.gnu.org>
854             Jonathan Wakely  <jwakely@redhat.com>
856         * python/libstdcxx/v6/printers.py (_versioned_namespace): Define.
857         (is_specialization, strip_versioned_namespace): New helpers functions
858         to work with symbols in the versioned namespace.
859         (Printer.add_version): Add second name using versioned namespace.
860         (add_one_template_type_printer, add_one_type_printer): Add second
861         type printers using versioned namespace.
862         (register_type_printers): Add template type printer for basic_string.
863         (build_libstdcxx_dictionary): Remove dead code.
864         * python/libstdcxx/v6/xmethods.py: Make all matchers look for
865         versioned namespace.
866         * testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected
867         results.
868         * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
870 2017-01-09  Jonathan Wakely  <jwakely@redhat.com>
872         PR libstdc++/79017
873         * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Check for llrint and llround
874         functions separately on darwin and if they're missing define
875         _GLIBCXX_NO_C99_ROUNDING_FUNCS.
876         * config.h.in: Regenerate.
877         * configure: Regenerate.
878         * include/c_global/cmath [_GLIBCXX_NO_C99_ROUNDING_FUNCS] (llrint)
879         (llrintf, llrintl, llround, llroundf, llroundl): Do not define.
881         * testsuite/30_threads/condition_variable/members/3.cc: Use new macro
882         to detect correct thread_local destructors.
883         * testsuite/util/testsuite_hooks.h (CORRECT_THREAD_LOCAL_DTORS):
884         Define.
886 2017-01-09  Jonathan Wakely  <jwakely@redhat.com>
887             Aditya Kumar  <hiraditya@msn.com>
889         PR libstdc++/66414
890         * include/bits/basic_string.tcc
891         (basic_string::find(const CharT*, size_type, size_type)): Optimize.
893 2017-01-06  Jonathan Wakely  <jwakely@redhat.com>
895         * testsuite/21_strings/basic_string/operations/find/char/6.cc: New.
896         * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: New.
898         * testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
899         Include <cassert> header.
901         PR libstdc++/78968
902         * crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
903         * configure: Regenerate.
905 2017-01-06  Barrett Adair  <barrettellisadair@gmail.com>
906             Jonathan Wakely  <jwakely@redhat.com>
908         * include/std/variant (variant, swap): Replace __and_ usage with fold
909         expressions.
911 2017-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
913         PR go/78978
914         * acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
915         * configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
916         GLIBCXX_CHECK_ASSEMBLER_HWCAP.
917         * fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
918         HWCAP_FLAGS.
919         * aclocal.m4: Regenerate.
920         * configure: Regenerate.
921         * Makefile.in, doc/Makefile.in, include/Makefile.in,
922         libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
923         src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
924         src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
926 2017-01-06  Jonathan Wakely  <jwakely@redhat.com>
928         * include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.
930         PR libstdc++/78991
931         * include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
932         (_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
933         (_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and
934         move function objects.
935         (__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter)
936         (__iter_comp_val, __iter_comp_iter, __negate): Move function objects.
937         * testsuite/25_algorithms/sort/78991.cc: New test.
939 2017-01-05  Jonathan Wakely  <jwakely@redhat.com>
941         * include/bits/std_function.h (function::_Signature_type): Remove.
942         (function::function(_Functor)): Adjust.
944 2017-01-05  Tim Shen  <timshen@google.com>
946         PR libstdc++/78996
947         * include/std/variant (__gen_vtable_impl): rename __unused to
948         __dimensions to avoid naming conflict.
950 2017-01-04  Jonathan Wakely  <jwakely@redhat.com>
952         PR libstdc++/78968
953         * config.h.in: Regenerate.
954         * configure: Likewise.
955         * configure.ac: Check for __cxa_thread_atexit.
956         * libsupc++/atexit_thread.cc [_GLIBCXX_HAVE___CXA_THREAD_ATEXIT]:
957         Don't define __cxa_thread_atexit if libc provides it.
959 2017-01-04  Ville Voutilainen  <ville.voutilainen@gmail.com>
961         Implement 2801, Default-constructibility of unique_ptr.
962         * include/bits/unique_ptr.h (__uniq_ptr_impl::_DeleterConstraint): New.
963         (unique_ptr::_DeleterConstraint): Likewise.
964         (unique_ptr()): Constrain.
965         (unique_ptr(pointer)): Likewise.
966         (unique_ptr(nullptr_t)): Likewise.
967         (unique_ptr<_Tp[], _Dp>::_DeleterConstraint): New.
968         (unique_ptr<_Tp[], _Dp>::unique_ptr()): Constrain.
969         (unique_ptr<_Tp[], _Dp>::unique_ptr(_Up)): Likewise.
970         (unique_ptr<_Tp[], _Dp>::unique_ptr(nullptr_t)): Likewise.
971         * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust.
972         * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
973         * testsuite/20_util/unique_ptr/cons/default.cc: New.
974         * testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Adjust.
976 2017-01-04  Pauli Nieminen  <suokkos@gmail.com>
977             Jonathan Wakely  <jwakely@redhat.com>
979         PR libstdc++/64735
980         * acinclude.m4 (GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER): Define.
981         * config.h.in: Regenerate.
982         * config/abi/pre/gnu.ver [HAVE_EXCEPTION_PTR_SINCE_GCC46]
983         (GLIBCXX_3.4.15, GLIBCXX_3.4.21, CXXABI_1.3.3, CXXABI_1.3.5): Make
984         exports for exception_ptr, nested_exception, and future conditional.
985         [HAVE_EXCEPTION_PTR_SINCE_GCC46] (GLIBCXX_3.4.23, CXXABI_1.3.11): Add
986         exports for exception_ptr, nested_exception, and future conditional.
987         * configure: Regenerate.
988         * configure.ac: Use GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER.
989         * include/std/future: Remove check for ATOMIC_INT_LOCK_FREE
990         * libsupc++/eh_atomics.h: New file for internal use only.
991         (__eh_atomic_inc, __eh_atomic_dec): New.
992         * libsupc++/eh_ptr.cc (exception_ptr::_M_addref)
993         (exception_ptr::_M_release) (__gxx_dependent_exception_cleanup)
994         (rethrow_exception): Use eh_atomics.h reference counting helpers.
995         * libsupc++/eh_throw.cc (__gxx_exception_cleanup): Likewise.
996         * libsupc++/eh_tm.cc (free_any_cxa_exception): Likewise.
997         * libsupc++/exception: Remove check for ATOMIC_INT_LOCK_FREE.
998         * libsupc++/exception_ptr.h: Likewise.
999         * libsupc++/guard.cc: Include header for ATOMIC_INT_LOCK_FREE macro.
1000         * libsupc++/nested_exception.cc: Remove check for
1001         ATOMIC_INT_LOCK_FREE.
1002         * libsupc++/nested_exception.h: Likewise.
1003         * src/c++11/future.cc: Likewise.
1004         * testsuite/18_support/exception_ptr/*: Remove atomic builtins checks.
1005         * testsuite/18_support/nested_exception/*: Likewise.
1006         * testsuite/30_threads/async/*: Likewise.
1007         * testsuite/30_threads/future/*: Likewise.
1008         * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
1009         * testsuite/30_threads/packaged_task/*: Likewise.
1010         * testsuite/30_threads/promise/*: Likewise.
1011         * testsuite/30_threads/shared_future/*: Likewise.
1013 2017-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
1015         * doc/xml/manual/documentation_hacking.xml: sourceforge.net now
1016         defaults to https; adjust reference.
1018 2017-01-03  Jonathan Wakely  <jwakely@redhat.com>
1020         PR libstdc++/78956
1021         * include/std/thread (thread(const thread&&)): Add deleted
1022         constructor.
1023         * testsuite/30_threads/thread/cons/lwg2097.cc: New test.
1025         * doc/xml/manual/spine.xml: Update copyright years.
1026         * doc/xml/manual/build_hacking.xml: Fix spelling of libbuilddir.
1027         * doc/xml/manual/test.xml: Likewise.
1028         * doc/html/*: Regenerate.
1030 2017-01-01  Gerald Pfeifer  <gerald@pfeifer.com>
1032         * doc/xml/faq.xml: Update address of C++ ABI link.
1033         * doc/xml/manual/abi.xml: Ditto.
1034         
1035 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
1037         Update copyright years.
1039 Copyright (C) 2017 Free Software Foundation, Inc.
1041 Copying and distribution of this file, with or without modification,
1042 are permitted in any medium without royalty provided the copyright
1043 notice and this notice are preserved.