PR79156 fix std::__enable_shared_from_this extension
[official-gcc.git] / libstdc++-v3 / ChangeLog
blob45a2c67aa7c4eda326bc57037f27734f809d5c0f
1 2017-01-19  Jonathan Wakely  <jwakely@redhat.com>
3         PR libstdc++/79156
4         * include/bits/shared_ptr_base.h (__enable_shared_from_this_base):
5         Fix return type.
6         (__enable_shared_from_this): Declare __shared_ptr as a friend.
7         * testsuite/ext/shared_ptr/1.cc: New test.
9         PR libstdc++/64903
10         * include/bits/stl_algo.h (is_partioned): Don't retest the partition
11         point.
12         * testsuite/25_algorithms/is_partitioned/2.cc: New test.
14         * doc/xml/manual/abi.xml: Fix typo.
15         * doc/html/manual/abi.html: Likewise.
17         PR libstdc++/67085
18         * include/bits/predefined_ops.h (_Iter_less_val, _Val_less_iter): Add
19         converting constructors from _Iter_less_iter.
20         (_Iter_comp_val, _Val_comp_iter): Add converting constructors from
21         _Iter_comp_iter.
22         (__iter_comp_val(_Iter_comp_iter<C>): Use converting constructor.
23         (__val_comp_iter(_Iter_comp_iter<C>): Likewise.
24         * include/bits/stl_heap.h (__is_heap_until, __push_heap, __pop_heap)
25         (__make_heap, __sort_heap): Change _Compare parameters to references.
26         (__is_heap, push_heap, __adjust_heap, __pop_heap, pop_heap)
27         (__make_heap, make_heap, sort_heap, is_heap_until): Pass comparison
28         functions as lvalues.
29         (is_heap): Call __is_heap_until directly to avoid copying __comp.
30         * testsuite/23_containers/priority_queue/67085.cc: Adjust test to
31         count copies during construction with empty sequence.
33         PR libstdc++/67085
34         * include/bits/stl_heap.h (__is_heap): Use _GLIBCXX_MOVE.
35         (__make_heap, __sort_heap): Don't use _GLIBCXX_MOVE inside loops.
36         * testsuite/23_containers/priority_queue/67085.cc: Adjust expected
37         number of copies.
38         * testsuite/25_algorithms/make_heap/movable.cc: New test.
40         PR libstdc++/67085
41         * include/bits/stl_heap.h (push_heap, __adjust_heap, __pop_heap)
42         (pop_heap, __make_heap, make_heap, __sort_heap, sort_heap): Use
43         _GLIBCXX_MOVE when passing comparison function to other functions.
44         (is_heap_until, is_heap): Use std::move when passing comparison
45         function.
46         * testsuite/23_containers/priority_queue/67085.cc: New test.
48         PR libstdc++/78905
49         * doc/xml/manual/abi.xml (abi.versioning.history): Add markup to
50         macro names, filenames, and literal values. Document _GLIBCXX_RELEASE.
51         Document that the deprecated _GLIBCXX_VERSION macro was removed for
52         the 4.0.0 release.
53         * doc/html/*: Regenerate.
54         * include/Makefile.am (_GLIBCXX_RELEASE): Set value.
55         * include/Makefile.in: Regenerate.
56         * include/bits/c++config (_GLIBCXX_RELEASE): Add #define.
57         * testsuite/ext/profile/mutex_extensions_neg.cc: Use lineno of 0 in
58         dg-error.
60 2017-01-18  Jonathan Wakely  <jwakely@redhat.com>
62         PR libstdc++/69301
63         * include/std/atomic (atomic<T>::load, atomic<T>::exchange): Use
64         aligned buffer instead of default-initialized variable.
65         * testsuite/29_atomics/atomic/69301.cc: New test.
66         * include/experimental/memory (observer_ptr::release): Use reserved
67         name.
68         * include/ext/pointer.h (_Pointer_adapter::operator++(int))
69         (_Pointer_adapter::operator--(int)): Likewise.
71         PR libstdc++/68925
72         * include/experimental/random (randint): Use temporary instead of
73         thread_local static.
75 2017-01-17  Joshua Conner  <joshconner@google.com>
77         * crossconfig.m4: Add fuchsia OS.
78         * configure: Regenerate. 
80 2017-01-17  Jonathan Wakely  <jwakely@redhat.com>
82         PR libstdc++/69699
83         * doc/xml/manual/abi.xml (abi.versioning.history): Explain why the
84         __GLIBCXX__ macro is not useful. Remove redundant date information
85         and link to the GCC release timeline.
86         (abi.versioning.active): Move partial sentence into the previous
87         paragraph.
88         * doc/html/*: Regenerate.
90         PR libstdc++/79114
91         * libsupc++/nested_exception.h (throw_with_nested): Use decay instead
92         of remove_reference.
93         * testsuite/18_support/nested_exception/79114.cc: New test.
95 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
97         PR other/79046
98         * configure.ac: Add GCC_BASE_VER.
99         * fragment.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
100         get version from BASE-VER file.
101         * po/Makefile.in: Regenerated.
102         * libsupc++/Makefile.in: Regenerated.
103         * testsuite/Makefile.in: Regenerated.
104         * src/Makefile.in: Regenerated.
105         * configure: Regenerated.
106         * Makefile.in: Regenerated.
107         * include/Makefile.in: Regenerated.
108         * doc/Makefile.in: Regenerated.
109         * python/Makefile.in: Regenerated.
110         * src/c++11/Makefile.in: Regenerated.
111         * src/c++98/Makefile.in: Regenerated.
112         * src/filesystem/Makefile.in: Regenerated.
114 2017-01-16  Jonathan Wakely  <jwakely@redhat.com>
116         PR libstdc++/66145
117         * src/c++11/functexcept.cc: Use new ABI for std::ios_base::failure
118         exceptions.
119         * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Don't override ABI
120         for test, so new ios::failure can be caught.
121         * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
122         * testsuite/27_io/basic_istream/extractors_arithmetic/char/
123         exceptions_failbit.cc: Likewise.
124         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
125         exceptions_failbit.cc: Likewise.
126         * testsuite/27_io/basic_istream/extractors_other/char/
127         exceptions_null.cc: Likewise.
128         * testsuite/27_io/basic_istream/extractors_other/wchar_t/
129         exceptions_null.cc: Likewise.
130         * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
131         * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
132         * testsuite/27_io/basic_ostream/inserters_other/char/
133         exceptions_null.cc: Likewise.
134         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
135         exceptions_null.cc: Likewise.
136         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
138         PR libstdc++/78702
139         * include/bits/locale_classes.h (locale::facet::__shim): Change from
140         private to protected.
141         * src/c++11/cxx11-shim_facets.cc (__shim_accessor): Define helper to
142         make locale::facet::__shim accessible.
144 2017-01-16  Ville Voutilainen  <ville.voutilainen@gmail.com>
146         PR libstdc++/78389
147         * include/bits/list.tcc (merge(list&&)): Fix backwards size adjustments.
148         (merge(list&&, _StrictWeakOrdering)): Likewise.
149         * testsuite/23_containers/list/operations/78389.cc: Add
150         better test for the sizes.
152 2017-01-14  Jonathan Wakely  <jwakely@redhat.com>
154         * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
155         Skip test when -D_GLIBCXX_PROFILE mode is included in options.
156         * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
157         * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
158         Likewise.
159         * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
160         * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise.
161         * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise.
162         * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
163         * testsuite/23_containers/unordered_map/modifiers/extract.cc:
164         Likewise.
165         * testsuite/23_containers/unordered_multimap/modifiers/extract.cc::
166         Likewise.
167         * testsuite/23_containers/unordered_multiset/modifiers/extract.cc::
168         Likewise.
169         * testsuite/23_containers/unordered_set/modifiers/extract.cc:
170         Likewise.
171         * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
172         Likewise.
173         * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise.
174         * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise.
175         * testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise.
176         * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise.
177         * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise.
178         * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
179         * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
180         * testsuite/libstdc++-prettyprinters/debug.cc: Likewise.
181         * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise.
182         * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
183         * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
184         * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
185         * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
187 2017-01-13  Jonathan Wakely  <jwakely@redhat.com>
189         PR libstdc++/65411
190         * config/io/basic_file_stdio.cc (__basic_file<char>::close()): Don't
191         retry fclose on EINTR.
193         * include/profile/base.h: Remove unused header that leads to header
194         cycle in C++17 mode.
196         PR libstdc++/79075
197         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
198         Make _If_sv private.
199         [!_GLIBCXX_USE_CXX11_ABI] (basic_string): Add member functions taking
200         basic_string_view arguments.
202         PR libstdc++/79075
203         * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Remove
204         redundant option from cxxflags.
205         (check_effective_target_cxx11-abi): Define.
206         * testsuite/21_strings/basic_string/allocator/71964.cc: Use cxx11-abi
207         effective target.
208         * testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise.
209         * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
210         Likewise.
211         * testsuite/21_strings/basic_string/allocator/char/minimal.cc:
212         Likewise.
213         * testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
214         * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
215         Likewise.
216         * testsuite/21_strings/basic_string/allocator/char/noexcept.cc:
217         Likewise.
218         * testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
219         * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
220         Likewise.
221         * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
222         Likewise.
223         * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
224         Likewise.
225         * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
226         Likewise.
227         * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
228         Likewise.
229         * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
230         Likewise.
231         * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
232         Likewise.
233         * testsuite/23_containers/list/61347.cc: Likewise.
234         * testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
235         * testsuite/27_io/ios_base/failure/cxx11.cc: Likewise.
237 2017-01-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
239         PR libstdc++/78389
240         * include/bits/list.tcc (merge(list&&)):
241         Adjust list sizes if the comparator throws.
242         (merge(list&&, _StrictWeakOrdering)): Likewise.
243         (sort()): Splice elements back from the scratch buffers
244         if the comparator throws.
245         (sort(_StrictWeakOrdering)): Likewise.
246         * testsuite/23_containers/list/operations/78389.cc: New.
248 2017-01-13  Jonathan Wakely  <jwakely@redhat.com>
250         * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Mark
251         XFAIL for C++17 until node reinsertion supports fancy pointers.
253         PR libstdc++/78361
254         * testsuite/20_util/add_pointer/value.cc: Test forming function
255         pointers.
257 2017-01-13  Michael Brune  <lucdanton@free.fr>
259         PR libstdc++/78361
260         * include/std/type_traits (__is_referenceable): Handle noexcept
261         function types.
263 2017-01-12  Jonathan Wakely  <jwakely@redhat.com>
265         PR libstdc++/77528
266         * include/bits/stl_queue.h (queue, priority_queue): Remove default
267         member-initializers and define default constructors as templates with
268         constraints.
269         * include/bits/stl_stack.h (stack): Likewise.
270         * testsuite/23_containers/priority_queue/requirements/constructible.cc:
271         New.
272         * testsuite/23_containers/priority_queue/requirements/
273         explicit_instantiation/1.cc: Test more instantiations.
274         * testsuite/23_containers/priority_queue/requirements/
275         explicit_instantiation/1_c++98.cc: Likewise.
276         * testsuite/23_containers/queue/requirements/constructible.cc: New.
277         * testsuite/23_containers/stack/requirements/constructible.cc: New.
279         PR libstdc++/66284
280         * doc/xml/manual/intro.xml: Document LWG 2781 change.
281         * doc/html/*: Regenerate.
282         * include/std/functional (_Function_base::_Ref_manager): Remove.
283         (_Function_handler): Remove partial specializations for
284         reference_wrapper.
285         (function::target): Remove special case for const qualification.
286         * testsuite/20_util/function/6.cc: Adjust tests for target type.
287         * testsuite/20_util/function/7.cc: Likewise.
288         * testsuite/20_util/function/8.cc: Likewise.
290 2017-01-11  Jonathan Wakely  <jwakely@redhat.com>
292         PR libstdc++/78134
293         * include/bits/stl_map.h (map::lower_bound, map::upper_bound)
294         (map::equal_range): Fix return type of heterogeneous overloads.
295         * include/bits/stl_multimap.h (multimap::lower_bound)
296         (multimap::upper_bound, multimap::equal_range): Likewise.
297         * include/bits/stl_multiset.h (multiset::lower_bound)
298         (multiset::upper_bound, multiset::equal_range): Likewise.
299         * include/bits/stl_set.h (set::lower_bound, set::upper_bound)
300         (set::equal_range): Likewise.
301         * testsuite/23_containers/map/operations/2.cc
302         * testsuite/23_containers/multimap/operations/2.cc
303         * testsuite/23_containers/multiset/operations/2.cc
304         * testsuite/23_containers/set/operations/2.cc
306         PR libstdc++/78273
307         * include/bits/stl_map.h (map::count<_Kt>(const _Kt&)): Don't assume
308         the heterogeneous comparison can only find one match.
309         * include/bits/stl_set.h (set::count<_Kt>(const _Kt&)): Likewise.
310         * testsuite/23_containers/map/operations/2.cc: Test count works with
311         comparison function that just partitions rather than sorting.
312         * testsuite/23_containers/set/operations/2.cc: Likewise.
314 2017-01-11  Ville Voutilainen  <ville.voutilainen@gmail.com>
316         Reduce the size of variant, it doesn't need an index of
317         type size_t internally.
318         * include/std/variant (parse_numbers.h): New include.
319         (__select_index): New.
320         (_Variant_storage<false, _Types...>::_M_reset_impl): Use
321         _index_type for comparison with variant_npos.
322         (_Variant_storage<false, _Types...>::__index_type): New.
323         (_Variant_storage<false, _Types...>::_M_index): Change the
324         type from size_t to __index_type.
325         (_Variant_storage<true, _Types...>::__index_type): New.
326         (_Variant_storage<true, _Types...>::_M_index): Change the
327         type from size_t to __index_type.
328         (_Variant_base::_M_valid): Use _Storage::__index_type
329         for comparison with variant_npos.
330         (variant::index): Use _Base::_Storage::__index_type
331         for comparison with variant_npos.
332         * testsuite/20_util/variant/index_type.cc: New.
334 2017-01-10  Jonathan Wakely  <jwakely@redhat.com>
336         * testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
337         effective target selector to prevent running in C++17 mode.
339         PR libstdc++/77528
340         * include/bits/stl_queue.h (queue::c): Add default member initializer.
341         (queue::queue()): Add constructor and define as defaulted.
342         (queue::queue(_Sequence&&)): Remove default argument.
343         (priority_queue::c, priority_queue::comp): Add default member
344         initializers.
345         (priority_queue::priority_queue()): Add constructor and define as
346         defaulted.
347         (priority_queue::priority_queue(const _Compare&, _Sequence&&)):
348         Remove default argument for first parameter.
349         * include/bits/stl_stack.h (stack::c): Add default member initializer.
350         (stack::stack()): Add constructor and define as defaulted.
351         (stack::stack(const _Sequence&)): Remove default argument.
352         * testsuite/23_containers/priority_queue/requirements/
353         explicit_instantiation/1.cc: Test explicit instantiation with
354         non-DefaultConstructible sequence.
355         * testsuite/23_containers/priority_queue/77528.cc: New test.
356         * testsuite/23_containers/priority_queue/requirements/
357         explicit_instantiation/1_c++0x.cc: Replace with 1_c++98.cc.
358         * testsuite/23_containers/queue/77528.cc: New test.
359         * testsuite/23_containers/queue/requirements/explicit_instantiation/
360         1.cc: Test explicit instantiation with non-DefaultConstructible
361         sequence.
362         * testsuite/23_containers/queue/requirements/explicit_instantiation/
363         1_c++0x.cc: Replace with 1_c++98.cc.
364         * testsuite/23_containers/stack/77528.cc: New test.
365         * testsuite/23_containers/stack/requirements/explicit_instantiation/
366         1.cc: Test explicit instantiation with non-DefaultConstructible
367         sequence.
368         * testsuite/23_containers/stack/requirements/explicit_instantiation/
369         1_c++0x.cc: Replace with 1_c++98.cc.
371 2017-01-10  Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
373         * include/bits/locale_facets_nonio.tcc
374         (time_get::_M_extract_via_format): Avoid compilation errors with
375         non-standard struct tm.
377 2017-01-10  François Dumont  <fdumont@gcc.gnu.org>
378             Jonathan Wakely  <jwakely@redhat.com>
380         * python/libstdcxx/v6/printers.py (_versioned_namespace): Define.
381         (is_specialization, strip_versioned_namespace): New helpers functions
382         to work with symbols in the versioned namespace.
383         (Printer.add_version): Add second name using versioned namespace.
384         (add_one_template_type_printer, add_one_type_printer): Add second
385         type printers using versioned namespace.
386         (register_type_printers): Add template type printer for basic_string.
387         (build_libstdcxx_dictionary): Remove dead code.
388         * python/libstdcxx/v6/xmethods.py: Make all matchers look for
389         versioned namespace.
390         * testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected
391         results.
392         * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
394 2017-01-09  Jonathan Wakely  <jwakely@redhat.com>
396         PR libstdc++/79017
397         * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Check for llrint and llround
398         functions separately on darwin and if they're missing define
399         _GLIBCXX_NO_C99_ROUNDING_FUNCS.
400         * config.h.in: Regenerate.
401         * configure: Regenerate.
402         * include/c_global/cmath [_GLIBCXX_NO_C99_ROUNDING_FUNCS] (llrint)
403         (llrintf, llrintl, llround, llroundf, llroundl): Do not define.
405         * testsuite/30_threads/condition_variable/members/3.cc: Use new macro
406         to detect correct thread_local destructors.
407         * testsuite/util/testsuite_hooks.h (CORRECT_THREAD_LOCAL_DTORS):
408         Define.
410 2017-01-09  Jonathan Wakely  <jwakely@redhat.com>
411             Aditya Kumar  <hiraditya@msn.com>
413         PR libstdc++/66414
414         * include/bits/basic_string.tcc
415         (basic_string::find(const CharT*, size_type, size_type)): Optimize.
417 2017-01-06  Jonathan Wakely  <jwakely@redhat.com>
419         * testsuite/21_strings/basic_string/operations/find/char/6.cc: New.
420         * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: New.
422         * testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
423         Include <cassert> header.
425         PR libstdc++/78968
426         * crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
427         * configure: Regenerate.
429 2017-01-06  Barrett Adair  <barrettellisadair@gmail.com>
430             Jonathan Wakely  <jwakely@redhat.com>
432         * include/std/variant (variant, swap): Replace __and_ usage with fold
433         expressions.
435 2017-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
437         PR go/78978
438         * acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
439         * configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
440         GLIBCXX_CHECK_ASSEMBLER_HWCAP.
441         * fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
442         HWCAP_FLAGS.
443         * aclocal.m4: Regenerate.
444         * configure: Regenerate.
445         * Makefile.in, doc/Makefile.in, include/Makefile.in,
446         libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
447         src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
448         src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
450 2017-01-06  Jonathan Wakely  <jwakely@redhat.com>
452         * include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.
454         PR libstdc++/78991
455         * include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
456         (_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
457         (_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and
458         move function objects.
459         (__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter)
460         (__iter_comp_val, __iter_comp_iter, __negate): Move function objects.
461         * testsuite/25_algorithms/sort/78991.cc: New test.
463 2017-01-05  Jonathan Wakely  <jwakely@redhat.com>
465         * include/bits/std_function.h (function::_Signature_type): Remove.
466         (function::function(_Functor)): Adjust.
468 2017-01-05  Tim Shen  <timshen@google.com>
470         PR libstdc++/78996
471         * include/std/variant (__gen_vtable_impl): rename __unused to
472         __dimensions to avoid naming conflict.
474 2017-01-04  Jonathan Wakely  <jwakely@redhat.com>
476         PR libstdc++/78968
477         * config.h.in: Regenerate.
478         * configure: Likewise.
479         * configure.ac: Check for __cxa_thread_atexit.
480         * libsupc++/atexit_thread.cc [_GLIBCXX_HAVE___CXA_THREAD_ATEXIT]:
481         Don't define __cxa_thread_atexit if libc provides it.
483 2017-01-04  Ville Voutilainen  <ville.voutilainen@gmail.com>
485         Implement 2801, Default-constructibility of unique_ptr.
486         * include/bits/unique_ptr.h (__uniq_ptr_impl::_DeleterConstraint): New.
487         (unique_ptr::_DeleterConstraint): Likewise.
488         (unique_ptr()): Constrain.
489         (unique_ptr(pointer)): Likewise.
490         (unique_ptr(nullptr_t)): Likewise.
491         (unique_ptr<_Tp[], _Dp>::_DeleterConstraint): New.
492         (unique_ptr<_Tp[], _Dp>::unique_ptr()): Constrain.
493         (unique_ptr<_Tp[], _Dp>::unique_ptr(_Up)): Likewise.
494         (unique_ptr<_Tp[], _Dp>::unique_ptr(nullptr_t)): Likewise.
495         * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust.
496         * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
497         * testsuite/20_util/unique_ptr/cons/default.cc: New.
498         * testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Adjust.
500 2017-01-04  Pauli Nieminen  <suokkos@gmail.com>
501             Jonathan Wakely  <jwakely@redhat.com>
503         PR libstdc++/64735
504         * acinclude.m4 (GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER): Define.
505         * config.h.in: Regenerate.
506         * config/abi/pre/gnu.ver [HAVE_EXCEPTION_PTR_SINCE_GCC46]
507         (GLIBCXX_3.4.15, GLIBCXX_3.4.21, CXXABI_1.3.3, CXXABI_1.3.5): Make
508         exports for exception_ptr, nested_exception, and future conditional.
509         [HAVE_EXCEPTION_PTR_SINCE_GCC46] (GLIBCXX_3.4.23, CXXABI_1.3.11): Add
510         exports for exception_ptr, nested_exception, and future conditional.
511         * configure: Regenerate.
512         * configure.ac: Use GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER.
513         * include/std/future: Remove check for ATOMIC_INT_LOCK_FREE
514         * libsupc++/eh_atomics.h: New file for internal use only.
515         (__eh_atomic_inc, __eh_atomic_dec): New.
516         * libsupc++/eh_ptr.cc (exception_ptr::_M_addref)
517         (exception_ptr::_M_release) (__gxx_dependent_exception_cleanup)
518         (rethrow_exception): Use eh_atomics.h reference counting helpers.
519         * libsupc++/eh_throw.cc (__gxx_exception_cleanup): Likewise.
520         * libsupc++/eh_tm.cc (free_any_cxa_exception): Likewise.
521         * libsupc++/exception: Remove check for ATOMIC_INT_LOCK_FREE.
522         * libsupc++/exception_ptr.h: Likewise.
523         * libsupc++/guard.cc: Include header for ATOMIC_INT_LOCK_FREE macro.
524         * libsupc++/nested_exception.cc: Remove check for
525         ATOMIC_INT_LOCK_FREE.
526         * libsupc++/nested_exception.h: Likewise.
527         * src/c++11/future.cc: Likewise.
528         * testsuite/18_support/exception_ptr/*: Remove atomic builtins checks.
529         * testsuite/18_support/nested_exception/*: Likewise.
530         * testsuite/30_threads/async/*: Likewise.
531         * testsuite/30_threads/future/*: Likewise.
532         * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
533         * testsuite/30_threads/packaged_task/*: Likewise.
534         * testsuite/30_threads/promise/*: Likewise.
535         * testsuite/30_threads/shared_future/*: Likewise.
537 2017-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
539         * doc/xml/manual/documentation_hacking.xml: sourceforge.net now
540         defaults to https; adjust reference.
542 2017-01-03  Jonathan Wakely  <jwakely@redhat.com>
544         PR libstdc++/78956
545         * include/std/thread (thread(const thread&&)): Add deleted
546         constructor.
547         * testsuite/30_threads/thread/cons/lwg2097.cc: New test.
549         * doc/xml/manual/spine.xml: Update copyright years.
550         * doc/xml/manual/build_hacking.xml: Fix spelling of libbuilddir.
551         * doc/xml/manual/test.xml: Likewise.
552         * doc/html/*: Regenerate.
554 2017-01-01  Gerald Pfeifer  <gerald@pfeifer.com>
556         * doc/xml/faq.xml: Update address of C++ ABI link.
557         * doc/xml/manual/abi.xml: Ditto.
558         
559 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
561         Update copyright years.
563 Copyright (C) 2017 Free Software Foundation, Inc.
565 Copying and distribution of this file, with or without modification,
566 are permitted in any medium without royalty provided the copyright
567 notice and this notice are preserved.