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