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