PR79156 fix std::__enable_shared_from_this extension
[gcc.git] / libstdc++-v3 / ChangeLog
1 2017-01-19 Jonathan Wakely <jwakely@redhat.com>
2
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.
8
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.
13
14 * doc/xml/manual/abi.xml: Fix typo.
15 * doc/html/manual/abi.html: Likewise.
16
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.
32
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.
39
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.
47
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.
59
60 2017-01-18 Jonathan Wakely <jwakely@redhat.com>
61
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.
70
71 PR libstdc++/68925
72 * include/experimental/random (randint): Use temporary instead of
73 thread_local static.
74
75 2017-01-17 Joshua Conner <joshconner@google.com>
76
77 * crossconfig.m4: Add fuchsia OS.
78 * configure: Regenerate.
79
80 2017-01-17 Jonathan Wakely <jwakely@redhat.com>
81
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.
89
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.
94
95 2017-01-17 Jakub Jelinek <jakub@redhat.com>
96
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.
113
114 2017-01-16 Jonathan Wakely <jwakely@redhat.com>
115
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.
137
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.
143
144 2017-01-16 Ville Voutilainen <ville.voutilainen@gmail.com>
145
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.
151
152 2017-01-14 Jonathan Wakely <jwakely@redhat.com>
153
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.
186
187 2017-01-13 Jonathan Wakely <jwakely@redhat.com>
188
189 PR libstdc++/65411
190 * config/io/basic_file_stdio.cc (__basic_file<char>::close()): Don't
191 retry fclose on EINTR.
192
193 * include/profile/base.h: Remove unused header that leads to header
194 cycle in C++17 mode.
195
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.
201
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.
236
237 2017-01-13 Ville Voutilainen <ville.voutilainen@gmail.com>
238
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.
247
248 2017-01-13 Jonathan Wakely <jwakely@redhat.com>
249
250 * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Mark
251 XFAIL for C++17 until node reinsertion supports fancy pointers.
252
253 PR libstdc++/78361
254 * testsuite/20_util/add_pointer/value.cc: Test forming function
255 pointers.
256
257 2017-01-13 Michael Brune <lucdanton@free.fr>
258
259 PR libstdc++/78361
260 * include/std/type_traits (__is_referenceable): Handle noexcept
261 function types.
262
263 2017-01-12 Jonathan Wakely <jwakely@redhat.com>
264
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.
278
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.
289
290 2017-01-11 Jonathan Wakely <jwakely@redhat.com>
291
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
305
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.
313
314 2017-01-11 Ville Voutilainen <ville.voutilainen@gmail.com>
315
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.
333
334 2017-01-10 Jonathan Wakely <jwakely@redhat.com>
335
336 * testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
337 effective target selector to prevent running in C++17 mode.
338
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.
370
371 2017-01-10 Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
372
373 * include/bits/locale_facets_nonio.tcc
374 (time_get::_M_extract_via_format): Avoid compilation errors with
375 non-standard struct tm.
376
377 2017-01-10 François Dumont <fdumont@gcc.gnu.org>
378 Jonathan Wakely <jwakely@redhat.com>
379
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.
393
394 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
395
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.
404
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.
409
410 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
411 Aditya Kumar <hiraditya@msn.com>
412
413 PR libstdc++/66414
414 * include/bits/basic_string.tcc
415 (basic_string::find(const CharT*, size_type, size_type)): Optimize.
416
417 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
418
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.
421
422 * testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
423 Include <cassert> header.
424
425 PR libstdc++/78968
426 * crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
427 * configure: Regenerate.
428
429 2017-01-06 Barrett Adair <barrettellisadair@gmail.com>
430 Jonathan Wakely <jwakely@redhat.com>
431
432 * include/std/variant (variant, swap): Replace __and_ usage with fold
433 expressions.
434
435 2017-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
436
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.
449
450 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
451
452 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.
453
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.
462
463 2017-01-05 Jonathan Wakely <jwakely@redhat.com>
464
465 * include/bits/std_function.h (function::_Signature_type): Remove.
466 (function::function(_Functor)): Adjust.
467
468 2017-01-05 Tim Shen <timshen@google.com>
469
470 PR libstdc++/78996
471 * include/std/variant (__gen_vtable_impl): rename __unused to
472 __dimensions to avoid naming conflict.
473
474 2017-01-04 Jonathan Wakely <jwakely@redhat.com>
475
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.
482
483 2017-01-04 Ville Voutilainen <ville.voutilainen@gmail.com>
484
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.
499
500 2017-01-04 Pauli Nieminen <suokkos@gmail.com>
501 Jonathan Wakely <jwakely@redhat.com>
502
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.
536
537 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
538
539 * doc/xml/manual/documentation_hacking.xml: sourceforge.net now
540 defaults to https; adjust reference.
541
542 2017-01-03 Jonathan Wakely <jwakely@redhat.com>
543
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.
548
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.
553
554 2017-01-01 Gerald Pfeifer <gerald@pfeifer.com>
555
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>
560
561 Update copyright years.
562 \f
563 Copyright (C) 2017 Free Software Foundation, Inc.
564
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.