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