1 2016-09-29 Jonathan Wakely <jwakely@redhat.com>
3 * include/c_global/cmath (hypot, __hypot3): Move C++17 overloads
4 outside _GLIBCXX_USE_C99_MATH_TR1 condition.
6 2016-09-29 Alan Modra <amodra@gmail.com>
8 * configure.ac (LONG_DOUBLE_COMPAT_FLAGS): New ACSUBST.
9 * src/Makefile.am (compatibility-ldbl.o, compatibility-ldbl.lo):
10 Use LONG_DOUBLE_COMPAT_FLAGS.
11 * Makefile.in: Regenerate.
12 * configure: Regenerate.
13 * doc/Makefile.in: Regenerate.
14 * include/Makefile.in: Regenerate.
15 * libsupc++/Makefile.in: Regenerate.
16 * po/Makefile.in: Regenerate.
17 * python/Makefile.in: Regenerate.
18 * src/Makefile.in: Regenerate.
19 * src/c++11/Makefile.in: Regenerate.
20 * src/c++98/Makefile.in: Regenerate.
21 * src/filesystem/Makefile.in: Regenerate.
22 * testsuite/Makefile.in: Regenerate.
24 2016-09-28 Jonathan Wakely <jwakely@redhat.com>
26 * include/std/chrono (system_clock): Fix typo in comment.
28 * include/experimental/bits/fs_fwd.h (file_time_type): Simplify
30 * src/filesystem/ops.cc (file_time): Take error_code parameter and
32 (do_copy_file, last_write_time): Pass error_code in file_time calls.
33 * testsuite/experimental/filesystem/operations/last_write_time.cc:
35 * testsuite/util/testsuite_fs.h (scoped_file): Define RAII helper.
38 * include/std/functional (_Any_data): Add may_alias attribute.
40 2016-09-27 Jonathan Wakely <jwakely@redhat.com>
42 * doc/xml/manual/status_cxx2017.xml: Update status.
43 * doc/html/*: Regenerate.
44 * include/std/functional (__cpp_lib_boyer_moore_searcher): Define.
45 * testsuite/20_util/function_objects/searchers.cc: Test feature macro.
47 * doc/xml/manual/status_cxx2017.xml: Update status.
48 * include/c_global/cmath (hypot): Add three-dimensional overloads.
49 * testsuite/26_numerics/headers/cmath/hypot.cc: New.
51 2016-09-26 Ville Voutilainen <ville.voutilainen@gmail.com>
54 * include/std/optional (optional(const optional<_Up>&)):
55 Default-initialize the base and use emplace.
56 (optional(optional<_Up>&&)): Likewise.
57 * testsuite/20_util/optional/cons/77727.cc: New.
59 2016-09-26 François Dumont <fdumont@gcc.gnu.org>
61 * include/debug/safe_base.h
62 (_Safe_iterator_base::_M_detach_single): Make public.
64 2016-09-26 Jonathan Wakely <jwakely@redhat.com>
66 * include/bits/range_access.h (__cpp_lib_array_constexpr): Do not
67 redefine macro defined in <bits/stl_iterator.h>.
69 * include/bits/stl_map.h (map::extract(const_iterator)): Assert that
70 iterator is not past-the-end.
71 * include/bits/stl_multimap.h (multimap::extract(const_iterator)):
73 * include/bits/stl_multiset.h (multiset::extract(const_iterator)):
75 * include/bits/stl_set.h (set::extract(const_iterator)): Likewise.
76 * include/bits/unordered_map.h (unordered_map::extract(const_iterator))
77 (unordered_multimap::extract(const_iterator)): Likewise.
78 * include/bits/unordered_set.h (unordered_set::extract(const_iterator))
79 (unordered_multiset::extract(const_iterator)): Likewise.
81 2016-09-26 Ville Voutilainen <ville.voutilainen@gmail.com>
84 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
85 Fix an out-of-bounds access.
87 2016-09-26 Marek Polacek <polacek@redhat.com>
90 * libsupc++/hash_bytes.cc: Add [[gnu::fallthrough]].
92 2016-09-25 François Dumont <fdumont@gcc.gnu.org>
94 * src/c++11/debug.cc: Include debug/vector. Include cctype. Remove
96 (get_safe_base_mutex): Get mutex based on address lowest non nil bits.
97 * testsuite/23_containers/vector/debug/mutex_association.cc: New.
99 * include/debug/bitset (bitset::reference::reference(const _Base_ref&,
100 bitset*)): Remove __unused__ attribute.
101 * include/debug/safe_base.h (_Safe_iterator_base): Make
102 _Safe_sequence_base a friend.
103 (_Safe_iterator_base::_M_attach): Make protected.
104 (_Safe_iterator_base::_M_attach_single): Likewise.
105 (_Safe_iterator_base::_M_detach): Likewise.
106 (_Safe_iterator_base::_M_detach_single): Likewise.
107 (_Safe_sequence_base): Make _Safe_iterator_base a friend.
108 (_Safe_sequence_base::_Safe_sequence_base(_Safe_sequence_base&&)): New.
109 (_Safe_sequence_base::_M_swap): Make protected.
110 (_Safe_sequence_base::_M_attach): Make private.
111 (_Safe_sequence_base::_M_attach_single): Likewise.
112 (_Safe_sequence_base::_M_detach): Likewise.
113 (_Safe_sequence_base::_M_detach_single): Likewise.
114 * include/debug/safe_container.h
115 (_Safe_container::_Safe_container(_Safe_container&&)): Make default.
116 * include/debug/safe_iterator.h
117 (_Safe_iterator::operator++()): Name __scoped_lock instance.
118 * include/debug/safe_iterator.tcc: Remove trailing line.
119 * include/debug/safe_unordered_base.h
120 (_Safe_local_iterator_base::_M_attach): Make protected.
121 (_Safe_local_iterator_base::_M_attach_single): Likewise.
122 (_Safe_local_iterator_base::_M_detach): Likewise.
123 (_Safe_local_iterator_base::_M_detach_single): Likewise.
124 (_Safe_unordered_container_base): Make _Safe_local_iterator_base friend.
125 (_Safe_unordered_container_base::_M_attach_local): Make private.
126 (_Safe_unordered_container_base::_M_attach_local_single): Likewise.
127 (_Safe_unordered_container_base::_M_detach_local): Likewise.
128 (_Safe_unordered_container_base::_M_detach_local_single): Likewise.
130 * include/parallel/algo.h: Generalize usage of std::__iterator_category.
133 2016-09-23 Jonathan Wakely <jwakely@redhat.com>
137 * include/bits/basic_string.h (basic_string::clear()): Drop reference
139 * include/ext/rc_string_base.h (__rc_string_base::_M_clear()):
141 * testsuite/21_strings/basic_string/56166.cc: New.
142 * testsuite/ext/vstring/modifiers/clear/56166.cc: New.
144 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
145 (basic_string::erase(size_type, size_type)): Add fast path for
146 truncating the string, by calling _M_set_length directly.
147 (basic_string::erase(__const_iterator, __const_iterator)): Likewise.
148 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
149 (basic_string::resize(size_type, _CharT)): Likewise.
151 2016-09-22 Jason Merrill <jason@redhat.com>
153 * configure.ac: Define HAVE_MEMALIGN for newlib.
155 2015-09-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
157 * config/cpu/m68k/atomicity.h: Adjust comment.
158 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Honor
159 explicit atomicity_dir setup via configure.host.
160 * configure.host (rtems-*): Set atomicity_dir.
161 * configure: Regenerate.
163 2016-09-22 Jonathan Wakely <jwakely@redhat.com>
165 Implement C++17 node extraction and insertion (P0083R5)
166 * doc/xml/manual/status_cxx2017.xml: Document status.
167 * doc/html/*: Regenerate.
168 * include/Makefile.am: Add bits/node_handle.h and reorder.
169 * include/Makefile.in: Regenerate.
170 * include/bits/hashtable.h (_Hashtable::node_type)
171 (_Hashtable::insert_return_type, _Hashtable::_M_reinsert_node)
172 (_Hashtable::_M_reinsert_node_multi, _Hashtable::extract)
173 (_Hashtable::_M_merge_unique, _Hashtable::_M_merge_multi): Define.
174 (_Hash_merge_helper): Define primary template.
175 * include/bits/node_handle.h: New header.
176 * include/bits/stl_map.h (map): Declare _Rb_tree_merge_helper as
178 (map::node_type, map::insert_return_type, map::extract, map::merge)
179 (map::insert(node_type&&), map::insert(const_iterator, node_type&&)):
181 (_Rb_tree_merge_helper): Specialize for map.
182 * include/bits/stl_multimap.h (multimap): Declare _Rb_tree_merge_helper
184 (multimap::node_type, multimap::extract, multimap::merge)
185 (multimap::insert(node_type&&))
186 (multimap::insert(const_iterator, node_type&&)): Define.
187 (_Rb_tree_merge_helper): Specialize for multimap.
188 * include/bits/stl_multiset.h (multiset): Declare _Rb_tree_merge_helper
190 (multiset::node_type, multiset::extract, multiset::merge)
191 (multiset::insert(node_type&&))
192 (multiset::insert(const_iterator, node_type&&)): Define.
193 * include/bits/stl_set.h (set): Declare _Rb_tree_merge_helper as
195 (set::node_type, set::insert_return_type, set::extract, set::merge)
196 (set::insert(node_type&&), set::insert(const_iterator, node_type&&)):
198 (_Rb_tree_merge_helper): Specialize for set.
199 * include/bits/stl_tree.h (_Rb_tree): Declare _Rb_tree<> as friend.
200 (_Rb_tree::node_type, _Rb_tree::insert_return_type)
201 (_Rb_tree::_M_reinsert_node_unique, _Rb_tree::_M_reinsert_node_equal)
202 (_Rb_tree::_M_reinsert_node_hint_unique)
203 (_Rb_tree::_M_reinsert_node_hint_equal, _Rb_tree::extract)
204 (_Rb_tree::_M_merge_unique, _Rb_tree::_M_merge_equal): Define.
205 (_Rb_tree_merge_helper): Specialize for multiset.
206 * include/bits/unordered_map.h (unordered_map): Declare
207 unordered_map<> and unordered_multimap<> as friends.
208 (unordered_map::node_type, unordered_map::insert_return_type)
209 (unordered_map::extract, unordered_map::merge)
210 (unordered_map::insert(node_type&&))
211 (unordered_map::insert(const_iterator, node_type&&))
212 (unordered_multimap): Declare _Hash_merge_helper as friend.
213 (unordered_multimap::node_type, unordered_multimap::extract)
214 (unordered_multimap::merge, unordered_multimap::insert(node_type&&))
215 (unordered_multimap::insert(const_iterator, node_type&&)): Define.
216 (_Hash_merge_helper): Specialize for unordered maps and multimaps.
217 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
218 Declare _Hash_merge_helper as friend.
219 (unordered_set::node_type, unordered_set::insert_return_type)
220 (unordered_set::extract, unordered_set::merge)
221 (unordered_set::insert(node_type&&))
222 (unordered_set::insert(const_iterator, node_type&&)): Define.
223 (unordered_multiset::node_type, unordered_multiset::extract)
224 (unordered_multiset::merge, unordered_multiset::insert(node_type&&))
225 (unordered_multiset::insert(const_iterator, node_type&&)): Define.
226 (_Hash_merge_helper): Specialize for unordered sets and multisets.
227 * include/debug/map.h (map): Add using declarations or forwarding
228 functions for new members.
229 * include/debug/map.h (multimap): Likewise.
230 * include/debug/map.h (multiset): Likewise.
231 * include/debug/map.h (set): Likewise.
232 * include/debug/unordered_map (unordered_map, unordered_multimap):
234 * include/debug/unordered_set( unordered_set, unordered_multiset):
236 * python/libstdcxx/v6/printers.py (get_value_from_aligned_membuf): New
238 (get_value_from_list_node, get_value_from_Rb_tree_node): Use helper.
239 (StdNodeHandlePrinter): Define printer for node handles.
240 (build_libstdcxx_dictionary): Register StdNodeHandlePrinter.
241 * testsuite/23_containers/map/modifiers/extract.cc: New.
242 * testsuite/23_containers/map/modifiers/merge.cc: New.
243 * testsuite/23_containers/multimap/modifiers/extract.cc: New.
244 * testsuite/23_containers/multimap/modifiers/merge.cc: New.
245 * testsuite/23_containers/multiset/modifiers/extract.cc: New.
246 * testsuite/23_containers/multiset/modifiers/merge.cc: New.
247 * testsuite/23_containers/set/modifiers/extract.cc: New.
248 * testsuite/23_containers/set/modifiers/merge.cc: New.
249 * testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
250 * testsuite/23_containers/unordered_map/modifiers/merge.cc: New.
251 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
253 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc: New.
254 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
256 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc: New.
257 * testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
258 * testsuite/23_containers/unordered_set/modifiers/merge.cc: New.
259 * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
261 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test node handles.
263 2016-09-22 Ville Voutilainen <ville.voutilainen@gmail.com>
265 Fix tests on old arm platforms for optional.
266 * testsuite/20_util/optional/77288.cc: Don't use exception_ptr.
268 2016-09-22 Jonathan Wakely <jwakely@redhat.com>
270 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Adjust for
271 recent change to _Variant_storage.
272 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test variant with
275 * include/bits/uses_allocator.h (__uses_allocator_construct): Qualify
276 std::forward and ::new. Cast pointer to void*.
277 * include/std/variant (_Variant_storage, _Union, _Variant_base)
278 (__access, __visit_invoke, variant, visit): Qualify std::forward.
279 * testsuite/20_util/variant/compile.cc: Test for ADL problems.
281 2016-09-22 Tim Shen <timshen@google.com>
283 * include/std/variant (variant::operator=): Fix assignment
285 * testsuite/20_util/variant/compile.cc: Add test.
287 2016-09-22 Tim Shen <timshen@google.com>
290 * include/std/variant (_Variant_storage::_Variant_storage):
291 Change _Variant_storage's union to be default constructible.
292 * testsuite/20_util/variant/compile.cc: New test.
294 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
297 * include/std/optional (__is_optional_impl, __is_optional): Remove.
298 (__converts_from_optional, __assigns_from_optional): New.
299 (optional(_Up&&)): Use is_same instead of __is_optional.
300 (optional(const optional<_Up>&)): Constrain with
301 __converts_from_optional.
302 (optional(optional<_Up>&&)): Likewise.
303 (operator=(_Up&&)): Use is_same instead of __is_optional, check
304 is_same and is_scalar.
305 (operator=(const optional<_Up>&)): Constrain with
306 __converts_from_optional and __assigns_from_optional.
307 (operator=(optional<_Up>&&)): Likewise.
308 * testsuite/20_util/optional/77288.cc: New.
309 * testsuite/20_util/optional/cons/value.cc: Adjust.
311 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
313 Implement LWG 2729 for tuple.
314 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)):
315 Suppress conditionally.
316 (_Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&&)): Likewise.
317 (__is_tuple_impl_trait_impl, __is_tuple_impl_trait): New.
318 (_Tuple_impl(const _Head&)): Constrain.
319 (_Tuple_impl(_UHead&&)): Likewise.
320 (_Tuple_impl(_Tuple_impl&&)): Suppress conditionally.
321 (_Tuple_impl(const _Tuple_impl<_Idx, _UHead>&)): Constrain.
322 (_Tuple_impl(_Tuple_impl<_Idx, _UHead>&&)): Likewise.
323 (operator=(const tuple&)): Enable conditionally.
324 (operator=(tuple&&)): Suppress conditionally.
325 (operator=(const tuple<_UElements...>&)): Constrain.
326 (operator=(tuple<_UElements...>&&)): Likewise.
327 (operator=(const tuple&)): Enable conditionally (2-param tuple).
328 (operator=(tuple&&)): Suppress conditionally (2-param tuple).
329 (operator=(const tuple<_U1, _U2>&)): Constrain.
330 (operator=(tuple<_U1, _U2>&&)): Likewise.
331 (operator=(const pair<_U1, _U2>&)): Likewise.
332 (operator=(pair<_U1, _U2>&&)): Likewise.
333 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust.
334 * testsuite/20_util/tuple/tuple_traits.cc: New.
336 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
339 Implement LWG 2729 for pair.
340 * include/bits/stl_pair.h (_PCC): New.
341 (_ConstructiblePair, _ImplicitlyConvertiblePair):
342 Turn into static member functions of _PCC.
343 (_MoveConstructiblePair, _ImplicitlyMoveConvertiblePair): Likewise.
345 (pair(const _T1&, const _T2&)): Adjust.
347 (pair(const pair<_U1, _U2>&)): Adjust.
348 (pair(_U1&&, const _T2&)): Likewise.
349 (pair(const _T1&, _U2&&)): Likewise.
350 (pair(_U1&&, _U2&&)): Likewise.
351 (pair(pair<_U1, _U2>&&)): Likewise.
352 (operator=(const pair&)): Make conditionally deleted.
353 (operator=(pair&&)): Make conditionally suppressed.
354 (operator=(const pair<_U1, _U2>&)): Constrain.
355 (operator=(pair<_U1, _U2>&&): Likewise.
356 * include/std/type_traits (__nonesuch): New.
357 * testsuite/20_util/pair/traits.cc: New.
359 2016-09-20 Ville Voutilainen <ville.voutilainen@gmail.com>
362 * include/bits/stl_construct.h: (_Construct_novalue): New.
363 (_Destroy_n_aux, _Destroy_n): New.
364 * include/bits/stl_uninitialized.h: (type_traits):
365 New include in C++11 mode.
366 (__uninitialized_default_novalue_1): New.
367 (__uninitialized_default_novalue_n_1): Likewise.
368 (__uninitialized_default_novalue): Likewise.
369 (__uninitialized_default_novalue_n): Likewise.
370 (__uninitialized_copy_n_pair): Likewise.
371 (uninitialized_default_construct):
372 Use __uninitialized_default_novalue.
373 (uninitialized_default_construct_n):
374 Use __uninitialized_default_novalue_n.
375 (uninitialized_value_construct): Use __uninitialized_default.
376 (uninitialized_value_construct_n): Use __uninitialized_default_n.
377 (uninitialized_move): Use uninitialized_copy.
378 (uninitialized_move_n): Use __uninitialized_copy_n_pair.
379 (destroy_at): Use _Destroy.
381 (destroy_n): Likewise.
382 * testsuite/20_util/specialized_algorithms/
383 memory_management_tools/1.cc: Add tests for exceptions,
384 add tests for trivial cases for construct and move.
386 2016-09-20 Jonathan Wakely <jwakely@redhat.com>
388 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
389 (DequeWorkerBase.index, VectorWorkerBase.get): Use // for division.
391 2016-09-19 Jonathan Wakely <jwakely@redhat.com>
394 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
395 (DequeWorkerBase.index, VectorWorkerBase.get): Cast results of
396 division to int to work with Python 3.
398 * testsuite/lib/gdb-test.exp (gdb-test): Fail if Python error occurs.
400 * python/libstdcxx/v6/printers.py (SingleObjContainerPrinter): Allow
401 display_hint to be set by subclasses.
402 (StdVariantPrinter): Use array for display_hint. Adjust output to be
403 more similar to std::any and std::optional output.
404 (register_type_printers): Add type printers for basic_string_view
405 typedefs and experimental::any. Adjust type printers for
406 fundamentals_v1 templates to match fundamentals_v2 and later.
407 * testsuite/libstdc++-prettyprinters/cxx17.cc: New.
410 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.index): Rename
412 (ListWorkerBase.get_value_from_node): Define new method.
413 (ListFrontWorker.__call__, ListBackWorker.__call__): Use it.
415 2016-09-17 Jonathan Wakely <jwakely@redhat.com>
417 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Define.
418 (StdExpAnyPrinter, StdExpOptionalPrinter, StdExpStringViewPrinter):
419 Register for C++17 components in namespace std. Strip inline namespace
422 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
424 * doc/xml/manual/profile_mode.xml: Fix typo.
425 * doc/html/manual/profile_mode_devel.html: Regenerate.
427 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
428 Marc Glisse <marc.glisse@inria.fr>
430 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_ALIGNED_ALLOC]
431 (operator new(size_t, align_val_t)): Replace modulus operator with
434 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
436 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_POSIX_MEMALIGN] (aligned_alloc):
437 Increase alignment if less than sizeof(void*).
438 [_GLIBCXX_HAVE_ALIGNED_ALLOC] (operator new(size_t, align_val_t)):
439 Increase size if not a multiple of alignment.
441 2016-09-15 Jonathan Wakely <jwakely@redhat.com>
443 * doc/xml/manual/debug_mode.xml: Minor editorial fixes.
444 * doc/html/*: Regenerate.
446 * testsuite/23_containers/vector/debug/insert6_neg.cc: Remove
448 * testsuite/util/debug/checks.h (generate_unique<bool>): Specialize.
450 2016-09-14 Marek Polacek <polacek@redhat.com>
452 * testsuite/23_containers/vector/debug/insert6_neg.cc: Use
455 2016-09-14 Christophe Lyon <christophe.lyon@linaro.org>
457 * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
458 Move dg-do directive before dg-skip.
459 * testsuite/21_strings/debug/iterator_self_move_assign_neg.cc:
460 Move dg-do directive before dg-require.
461 * testsuite/21_strings/debug/self_move_assign_neg.cc: Likewise.
462 * testsuite/23_containers/vector/debug/57779_neg.cc: Likewise.
463 * testsuite/23_containers/vector/debug/60587_neg.cc: Likewise.
464 * testsuite/23_containers/vector/debug/assign1_neg.cc: Likewise.
465 * testsuite/23_containers/vector/debug/assign2_neg.cc: Likewise.
466 * testsuite/23_containers/vector/debug/assign3_neg.cc: Likewise.
467 * testsuite/23_containers/vector/debug/construct1_neg.cc: Likewise.
468 * testsuite/23_containers/vector/debug/construct2_neg.cc: Likewise.
469 * testsuite/23_containers/vector/debug/construct3_neg.cc: Likewise.
470 * testsuite/23_containers/vector/debug/insert1_neg.cc: Likewise.
471 * testsuite/23_containers/vector/debug/insert2_neg.cc: Likewise.
472 * testsuite/23_containers/vector/debug/insert3_neg.cc: Likewise.
473 * testsuite/23_containers/vector/debug/insert5_neg.cc: Likewise.
474 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Likewise.
475 * testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
477 * testsuite/25_algorithms/pop_heap/empty2_neg.cc: Likewise.
478 * testsuite/25_algorithms/pop_heap/empty_neg.cc: Likewise.
479 * testsuite/27_io/objects/char/12048-5.cc: Likewise.
480 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Likewise.
481 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
483 2016-09-13 Ville Voutilainen <ville.voutilainen@gmail.com>
485 Implement P0040R3, Extending memory management tools.
486 * include/bits/stl_uninitialized.h (utility): New include
488 (uninitialized_default_construct): New.
489 (uninitialized_default_construct_n): Likewise.
490 (uninitialized_value_construct): Likewise.
491 (uninitialized_value_construct_n): Likewise.
492 (uninitialized_move): Likewise.
493 (uninitialized_move_n): Likewise.
494 (destroy_at, destroy, destroy_n): Likewise.
495 * testsuite/20_util/specialized_algorithms/memory_management_tools/
498 2016-09-12 Jason Merrill <jason@redhat.com>
500 * config/abi/pre/gnu.ver: Use [jmy] for size_t.
502 2016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
504 Implement P0253R1, Fixing a design mistake in the searchers
505 interface in Library Fundamentals.
506 * include/std/functional: (utility): New include in C++17 mode.
507 (default_searcher): Use a pair as return type, adjust the definition.
508 (boyer_moore_searcher): Likewise.
509 (boyer_moore_horspool_searcher): Likewise.
510 * testsuite/20_util/function_objects/searchers.cc: Adjust.
512 2016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
514 Implement C++17 string searchers.
515 * include/std/functional: (unordered_map, vector): New includes
517 (array, bits/stl_algo.h): Likewise.
518 (default_searcher, __boyer_moore_map_base): New.
519 (__boyer_moore_array_base, __is_std_equal_to): Likewise.
520 (__boyer_moore_base_t, boyer_moore_searcher): Likewise.
521 (boyer_moore_horspool_searcher, make_default_searcher): Likewise.
522 (make_boyer_moore_searcher): Likewise.
523 (make_boyer_moore_horspool_searcher): Likewise.
524 * testsuite/20_util/function_objects/searchers.cc: New.
526 2016-09-12 Matthew Wahab <matthew.wahab@arm.com>
528 * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
529 Move dg-do directive before dg-require.
530 * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc: Likewise.
531 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
533 * testsuite/22_locale/codecvt/utf8.cc: Likewise.
534 * testsuite/22_locale/locale/cons/unicode.cc: Likewise.
535 * testsuite/23_containers/deque/debug/assign1_neg.cc: Likewise.
536 * testsuite/23_containers/deque/debug/assign2_neg.cc: Likewise.
537 * testsuite/23_containers/deque/debug/assign3_neg.cc: Likewise.
538 * testsuite/23_containers/deque/debug/construct1_neg.cc: Likewise.
539 * testsuite/23_containers/deque/debug/construct2_neg.cc: Likewise.
540 * testsuite/23_containers/deque/debug/construct3_neg.cc: Likewise.
541 * testsuite/23_containers/deque/debug/insert1_neg.cc: Likewise.
542 * testsuite/23_containers/deque/debug/insert2_neg.cc: Likewise.
543 * testsuite/23_containers/deque/debug/insert3_neg.cc: Likewise.
544 * testsuite/23_containers/deque/debug/insert5_neg.cc: Likewise.
545 * testsuite/23_containers/deque/debug/iterator_self_move_assign_neg.cc:
547 * testsuite/23_containers/deque/debug/self_move_assign_neg.cc:
549 * testsuite/23_containers/deque/debug/shrink_to_fit.cc: Likewise.
550 * testsuite/23_containers/forward_list/debug/60499.cc: Likewise.
551 * testsuite/23_containers/forward_list/debug/construct1_neg.cc:
553 * testsuite/23_containers/forward_list/debug/construct2_neg.cc:
555 * testsuite/23_containers/forward_list/debug/construct3_neg.cc:
557 * testsuite/23_containers/forward_list/debug/erase_after1_neg.cc:
559 * testsuite/23_containers/forward_list/debug/erase_after2_neg.cc:
561 * testsuite/23_containers/forward_list/debug/erase_after3_neg.cc:
563 * testsuite/23_containers/forward_list/debug/erase_after4_neg.cc:
565 * testsuite/23_containers/forward_list/debug/erase_after5_neg.cc:
567 * testsuite/23_containers/forward_list/debug/erase_after6_neg.cc:
569 * testsuite/23_containers/forward_list/debug/erase_after7_neg.cc:
571 * testsuite/23_containers/forward_list/debug/erase_after8_neg.cc:
573 * testsuite/23_containers/forward_list/debug/erase_after9_neg.cc:
575 * testsuite/23_containers/forward_list/debug/insert_after1_neg.cc:
577 * testsuite/23_containers/forward_list/debug/insert_after2_neg.cc:
579 * testsuite/23_containers/forward_list/debug/insert_after3_neg.cc:
581 * testsuite/23_containers/forward_list/debug/insert_after4_neg.cc:
583 * testsuite/23_containers/forward_list/debug/
584 iterator_self_move_assign_neg.cc: Likewise.
585 * testsuite/23_containers/forward_list/debug/self_move_assign_neg.cc:
587 * testsuite/23_containers/forward_list/debug/splice_after1_neg.cc:
589 * testsuite/23_containers/forward_list/debug/splice_after2_neg.cc:
591 * testsuite/23_containers/forward_list/debug/splice_after3_neg.cc:
593 * testsuite/23_containers/forward_list/debug/splice_after4_neg.cc:
595 * testsuite/23_containers/forward_list/debug/splice_after5_neg.cc:
597 * testsuite/23_containers/forward_list/debug/splice_after6_neg.cc:
599 * testsuite/23_containers/forward_list/debug/splice_after7_neg.cc:
601 * testsuite/23_containers/list/debug/assign1_neg.cc: Likewise.
602 * testsuite/23_containers/list/debug/assign2_neg.cc: Likewise.
603 * testsuite/23_containers/list/debug/assign3_neg.cc: Likewise.
604 * testsuite/23_containers/list/debug/construct1_neg.cc: Likewise.
605 * testsuite/23_containers/list/debug/construct2_neg.cc: Likewise.
606 * testsuite/23_containers/list/debug/construct3_neg.cc: Likewise.
607 * testsuite/23_containers/list/debug/insert1_neg.cc: Likewise.
608 * testsuite/23_containers/list/debug/insert2_neg.cc: Likewise.
609 * testsuite/23_containers/list/debug/insert3_neg.cc: Likewise.
610 * testsuite/23_containers/list/debug/insert5_neg.cc: Likewise.
611 * testsuite/23_containers/list/debug/iterator_self_move_assign_neg.cc:
613 * testsuite/23_containers/list/debug/self_move_assign_neg.cc: Likewise.
614 * testsuite/23_containers/map/debug/60499.cc: Likewise.
615 * testsuite/23_containers/map/debug/construct1_neg.cc: Likewise.
616 * testsuite/23_containers/map/debug/construct2_neg.cc: Likewise.
617 * testsuite/23_containers/map/debug/construct3_neg.cc: Likewise.
618 * testsuite/23_containers/map/debug/insert1_neg.cc: Likewise.
619 * testsuite/23_containers/map/debug/insert2_neg.cc: Likewise.
620 * testsuite/23_containers/map/debug/insert3_neg.cc: Likewise.
621 * testsuite/23_containers/map/debug/iterator_self_move_assign_neg.cc:
623 * testsuite/23_containers/map/debug/self_move_assign_neg.cc: Likewise.
624 * testsuite/23_containers/multimap/debug/60499.cc: Likewise.
625 * testsuite/23_containers/multimap/debug/construct1_neg.cc: Likewise.
626 * testsuite/23_containers/multimap/debug/construct2_neg.cc: Likewise.
627 * testsuite/23_containers/multimap/debug/construct3_neg.cc: Likewise.
628 * testsuite/23_containers/multimap/debug/insert1_neg.cc: Likewise.
629 * testsuite/23_containers/multimap/debug/insert2_neg.cc: Likewise.
630 * testsuite/23_containers/multimap/debug/insert3_neg.cc: Likewise.
631 * testsuite/23_containers/multimap/debug/
632 iterator_self_move_assign_neg.cc: Likewise.
633 * testsuite/23_containers/multimap/debug/self_move_assign_neg.cc:
635 * testsuite/23_containers/multiset/debug/60499.cc: Likewise.
636 * testsuite/23_containers/multiset/debug/construct1_neg.cc: Likewise.
637 * testsuite/23_containers/multiset/debug/construct2_neg.cc: Likewise.
638 * testsuite/23_containers/multiset/debug/construct3_neg.cc: Likewise.
639 * testsuite/23_containers/multiset/debug/insert1_neg.cc: Likewise.
640 * testsuite/23_containers/multiset/debug/insert2_neg.cc: Likewise.
641 * testsuite/23_containers/multiset/debug/insert3_neg.cc: Likewise.
642 * testsuite/23_containers/multiset/debug/
643 iterator_self_move_assign_neg.cc: Likewise.
644 * testsuite/23_containers/multiset/debug/self_move_assign_neg.cc:
646 * testsuite/23_containers/set/debug/60499.cc: Likewise.
647 * testsuite/23_containers/set/debug/construct1_neg.cc: Likewise.
648 * testsuite/23_containers/set/debug/construct2_neg.cc: Likewise.
649 * testsuite/23_containers/set/debug/construct3_neg.cc: Likewise.
650 * testsuite/23_containers/set/debug/insert1_neg.cc: Likewise.
651 * testsuite/23_containers/set/debug/insert2_neg.cc: Likewise.
652 * testsuite/23_containers/set/debug/insert3_neg.cc: Likewise.
653 * testsuite/23_containers/set/debug/iterator_self_move_assign_neg.cc:
655 * testsuite/23_containers/set/debug/self_move_assign_neg.cc: Likewise.
656 * testsuite/23_containers/unordered_map/debug/60499.cc: Likewise.
657 * testsuite/23_containers/unordered_map/debug/begin1_neg.cc: Likewise.
658 * testsuite/23_containers/unordered_map/debug/begin2_neg.cc: Likewise.
659 * testsuite/23_containers/unordered_map/debug/bucket_size_neg.cc:
661 * testsuite/23_containers/unordered_map/debug/cbegin_neg.cc: Likewise.
662 * testsuite/23_containers/unordered_map/debug/cend_neg.cc: Likewise.
663 * testsuite/23_containers/unordered_map/debug/construct1_neg.cc:
665 * testsuite/23_containers/unordered_map/debug/construct2_neg.cc:
667 * testsuite/23_containers/unordered_map/debug/construct3_neg.cc:
669 * testsuite/23_containers/unordered_map/debug/end1_neg.cc: Likewise.
670 * testsuite/23_containers/unordered_map/debug/end2_neg.cc: Likewise.
671 * testsuite/23_containers/unordered_map/debug/insert1_neg.cc: Likewise.
672 * testsuite/23_containers/unordered_map/debug/insert2_neg.cc: Likewise.
673 * testsuite/23_containers/unordered_map/debug/insert3_neg.cc: Likewise.
674 * testsuite/23_containers/unordered_map/debug/
675 invalid_local_iterator_compare_neg.cc: Likewise.
676 * testsuite/23_containers/unordered_map/debug/
677 invalid_local_iterator_range_neg.cc: Likewise.
678 * testsuite/23_containers/unordered_map/debug/
679 iterator_self_move_assign_neg.cc: Likewise.
680 * testsuite/23_containers/unordered_map/debug/max_load_factor_neg.cc:
682 * testsuite/23_containers/unordered_map/debug/self_move_assign_neg.cc:
684 * testsuite/23_containers/unordered_map/debug/
685 use_erased_local_iterator_neg.cc: Likewise.
686 * testsuite/23_containers/unordered_map/debug/
687 use_invalid_iterator_neg.cc: Likewise.
688 * testsuite/23_containers/unordered_map/debug/
689 use_invalid_local_iterator_neg.cc: Likewise.
690 * testsuite/23_containers/unordered_multimap/debug/60499.cc: Likewise.
691 * testsuite/23_containers/unordered_multimap/debug/begin1_neg.cc:
693 * testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc:
695 * testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc:
697 * testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc:
699 * testsuite/23_containers/unordered_multimap/debug/cend_neg.cc:
701 * testsuite/23_containers/unordered_multimap/debug/construct1_neg.cc:
703 * testsuite/23_containers/unordered_multimap/debug/construct2_neg.cc:
705 * testsuite/23_containers/unordered_multimap/debug/construct3_neg.cc:
707 * testsuite/23_containers/unordered_multimap/debug/end1_neg.cc:
709 * testsuite/23_containers/unordered_multimap/debug/end2_neg.cc:
711 * testsuite/23_containers/unordered_multimap/debug/insert1_neg.cc:
713 * testsuite/23_containers/unordered_multimap/debug/insert2_neg.cc:
715 * testsuite/23_containers/unordered_multimap/debug/insert3_neg.cc:
717 * testsuite/23_containers/unordered_multimap/debug/
718 invalid_local_iterator_compare_neg.cc: Likewise.
719 * testsuite/23_containers/unordered_multimap/debug/
720 invalid_local_iterator_range_neg.cc: Likewise.
721 * testsuite/23_containers/unordered_multimap/debug/
722 iterator_self_move_assign_neg.cc: Likewise.
723 * testsuite/23_containers/unordered_multimap/debug/
724 max_load_factor_neg.cc: Likewise.
725 * testsuite/23_containers/unordered_multimap/debug/
726 self_move_assign_neg.cc: Likewise.
727 * testsuite/23_containers/unordered_multimap/debug/
728 use_erased_local_iterator_neg.cc: Likewise.
729 * testsuite/23_containers/unordered_multimap/debug/
730 use_invalid_iterator_neg.cc: Likewise.
731 * testsuite/23_containers/unordered_multimap/debug/
732 use_invalid_local_iterator_neg.cc: Likewise.
733 * testsuite/23_containers/unordered_multiset/debug/60499.cc:
735 * testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc:
737 * testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc:
739 * testsuite/23_containers/unordered_multiset/debug/bucket_size_neg.cc:
741 * testsuite/23_containers/unordered_multiset/debug/cbegin_neg.cc:
743 * testsuite/23_containers/unordered_multiset/debug/cend_neg.cc:
745 * testsuite/23_containers/unordered_multiset/debug/construct1_neg.cc:
747 * testsuite/23_containers/unordered_multiset/debug/construct2_neg.cc:
749 * testsuite/23_containers/unordered_multiset/debug/construct3_neg.cc:
751 * testsuite/23_containers/unordered_multiset/debug/end1_neg.cc:
753 * testsuite/23_containers/unordered_multiset/debug/end2_neg.cc:
755 * testsuite/23_containers/unordered_multiset/debug/insert1_neg.cc:
757 * testsuite/23_containers/unordered_multiset/debug/insert2_neg.cc:
759 * testsuite/23_containers/unordered_multiset/debug/insert3_neg.cc:
761 * testsuite/23_containers/unordered_multiset/debug/
762 invalid_local_iterator_compare_neg.cc: Likewise.
763 * testsuite/23_containers/unordered_multiset/debug/
764 invalid_local_iterator_range_neg.cc: Likewise.
765 * testsuite/23_containers/unordered_multiset/debug/
766 iterator_self_move_assign_neg.cc: Likewise.
767 * testsuite/23_containers/unordered_multiset/debug/
768 max_load_factor_neg.cc: Likewise.
769 * testsuite/23_containers/unordered_multiset/debug/
770 self_move_assign_neg.cc: Likewise.
771 * testsuite/23_containers/unordered_multiset/debug/
772 use_erased_local_iterator_neg.cc: Likewise.
773 * testsuite/23_containers/unordered_multiset/debug/
774 use_invalid_iterator_neg.cc: Likewise.
775 * testsuite/23_containers/unordered_multiset/debug/
776 use_invalid_local_iterator_neg.cc: Likewise.
777 * testsuite/23_containers/unordered_set/debug/60499.cc: Likewise.
778 * testsuite/23_containers/unordered_set/debug/begin1_neg.cc: Likewise.
779 * testsuite/23_containers/unordered_set/debug/begin2_neg.cc: Likewise.
780 * testsuite/23_containers/unordered_set/debug/bucket_size_neg.cc:
782 * testsuite/23_containers/unordered_set/debug/cbegin_neg.cc: Likewise.
783 * testsuite/23_containers/unordered_set/debug/cend_neg.cc: Likewise.
784 * testsuite/23_containers/unordered_set/debug/construct1_neg.cc:
786 * testsuite/23_containers/unordered_set/debug/construct2_neg.cc:
788 * testsuite/23_containers/unordered_set/debug/construct3_neg.cc:
790 * testsuite/23_containers/unordered_set/debug/end1_neg.cc: Likewise.
791 * testsuite/23_containers/unordered_set/debug/end2_neg.cc: Likewise.
792 * testsuite/23_containers/unordered_set/debug/insert1_neg.cc: Likewise.
793 * testsuite/23_containers/unordered_set/debug/insert2_neg.cc: Likewise.
794 * testsuite/23_containers/unordered_set/debug/insert3_neg.cc: Likewise.
795 * testsuite/23_containers/unordered_set/debug/
796 invalid_local_iterator_compare_neg.cc: Likewise.
797 * testsuite/23_containers/unordered_set/debug/
798 invalid_local_iterator_range_neg.cc: Likewise.
799 * testsuite/23_containers/unordered_set/debug/
800 iterator_self_move_assign_neg.cc: Likewise.
801 * testsuite/23_containers/unordered_set/debug/
802 max_load_factor_neg.cc: Likewise.
803 * testsuite/23_containers/unordered_set/debug/
804 self_move_assign_neg.cc: Likewise.
805 * testsuite/23_containers/unordered_set/debug/
806 use_erased_local_iterator_neg.cc: Likewise.
807 * testsuite/23_containers/unordered_set/debug/
808 use_invalid_iterator_neg.cc: Likewise.
809 * testsuite/23_containers/unordered_set/debug/
810 use_invalid_local_iterator_neg.cc: Likewise.
811 * testsuite/23_containers/vector/debug/52433.cc: Likewise.
812 * testsuite/23_containers/vector/debug/60499.cc: Likewise.
813 * testsuite/23_containers/vector/debug/bool/shrink_to_fit.cc: Likewise.
814 * testsuite/23_containers/vector/debug/
815 iterator_self_move_assign_neg.cc: Likewise.
816 * testsuite/23_containers/vector/debug/self_move_assign_neg.cc:
818 * testsuite/23_containers/vector/debug/shrink_to_fit.cc: Likewise.
819 * testsuite/25_algorithms/pop_heap/complexity.cc: Likewise.
820 * testsuite/25_algorithms/push_heap/complexity.cc: Likewise.
821 * testsuite/25_algorithms/sort_heap/complexity.cc: Likewise.
822 * testsuite/29_atomics/atomic/60658.cc: Likewise.
823 * testsuite/29_atomics/atomic/60695.cc: Likewise.
824 * testsuite/29_atomics/atomic/62259.cc: Likewise.
825 * testsuite/29_atomics/atomic/64658.cc: Likewise.
826 * testsuite/29_atomics/atomic/cons/49445.cc: Likewise.
827 * testsuite/29_atomics/atomic/operators/51811.cc: Likewise.
828 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
831 2016-09-11 Jonathan Wakely <jwakely@redhat.com>
833 * libsupc++/new_opant.cc: Include exception_defines.h.
834 * libsupc++/new_opvant.cc: Likewise.
836 2016-09-09 Jason Merrill <jason@redhat.com>
838 Implement P0035R4, C++17 new of over-aligned types.
839 * libsupc++/new: Declare aligned new/delete operators.
840 * config/abi/pre/gnu.ver: Export them.
841 * configure.ac: Check for aligned_alloc, posix_memalign, memalign,
843 * libsupc++/new_opa.cc: New.
844 * libsupc++/new_opant.cc: New.
845 * libsupc++/new_opva.cc: New.
846 * libsupc++/new_opva.cc: New.
847 * libsupc++/del_opa.cc: New.
848 * libsupc++/del_opant.cc: New.
849 * libsupc++/del_opsa.cc: New.
850 * libsupc++/del_opva.cc: New.
851 * libsupc++/del_opvant.cc: New.
852 * libsupc++/del_opvsa.cc: New.
853 * libsupc++/Makefile.am: Build them.
855 2016-09-05 Tim Shen <timshen@google.com>
857 * include/std/variant: include bits/move.h for std::addressof.
859 2016-09-05 Mikhail Strelnikov <mikhail.strelnikov@gmail.com>
861 * include/std/variant (_Variant_storage::_M_storage()): Use
862 std::addressof instead of operator& to take address.
864 2016-09-02 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
866 * acinclude.m4 (GLIBCXX_CONFIGURE_TESTSUITE): Check for presence of
867 setrlimit on both native and cross targets.
868 * configure: Regenerate.
870 2016-08-31 Jonathan Wakely <jwakely@redhat.com>
872 * include/bits/shared_ptr.h (_Assignable): New alias template.
873 (shared_ptr::operator=(const shared_ptr<_Tp1>&))
874 (shared_ptr::operator=(shared_ptr<_Tp1>&&))
875 (shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
877 * include/bits/shared_ptr_base.h (_Assignable): New alias template.
878 (__shared_ptr::operator=(const __shared_ptr<_Tp1>&))
879 (__shared_ptr::operator=(__shared_ptr<_Tp1>&&))
880 (__shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
882 (__shared_ptr::reset(_Tp1*), __shared_ptr::reset(_Tp1*, _Deleter))
883 (__shared_ptr::reset(_Tp1*, _Deleter, _Alloc)): Constrain with
885 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Change dg-error to
887 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
888 * testsuite/20_util/shared_ptr/assign/sfinae.cc: New test.
889 * testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc: Update
890 expected errors. Remove unnecessary code.
891 * testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc: New test.
893 * include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Move
895 * testsuite/23_containers/set/move_comparison.cc: New test.
897 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
900 2016-08-30 Ville Voutilainen <ville.voutilainen@gmail.com>
903 * include/std/type_traits (is_constructible): Forward-declare...
904 (__is_base_to_derived_ref): ...and use here.
905 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
906 * testsuite/20_util/is_constructible/77395.cc: New.
907 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust.
908 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
910 * testsuite/20_util/tuple/77395.cc: New.
912 2016-08-30 Uros Bizjak <ubizjak@gmail.com>
914 * testsuite/22_locale/time_get/get/char/2.cc: Move dg-do run
915 directive above dg-require-namedlocale directive.
916 * testsuite/22_locale/time_get/get/wchar_t/2.cc: Ditto.
917 * testsuite/27_io/manipulators/extended/get_time/char/2.cc: Ditto.
918 * testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc: Ditto.
919 * testsuite/27_io/manipulators/extended/put_time/char/2.cc: Ditto.
920 * testsuite/27_io/manipulators/extended/put_time/wchar_t/2.cc: Ditto.
922 2016-08-27 Tim Shen <timshen@google.com>
925 * include/bits/regex_compiler.tcc(_M_insert_bracket_matcher,
926 _M_expression_term): Modify to support dash literal.
927 * include/bits/regex_scanner.h: Add dash as a token type to make
928 a different from the mandated dash literal by escaping.
929 * include/bits/regex_scanner.tcc(_M_scan_in_bracket): Emit dash
930 token in bracket expression parsing.
931 * testsuite/28_regex/regression.cc: Add new testcases.
933 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
936 * doc/xml/manual/intro.xml: Document DR 2127 change.
937 * doc/html/*: Regenerate.
938 * include/bits/stl_raw_storage_iter.h (operator=(_Tp&&)): Add.
939 (operator++(), operator++(int)): Use injected class name.
940 * testsuite/20_util/raw_storage_iterator/dr2127.cc: New test.
942 * testsuite/*: Use { target c++11 } or { target c++14 } instead of
943 using -std in dg-options.
945 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
946 Pedro Alves <palves@redhat.com>
948 * testsuite/lib/gdb-test.exp (gdb-dg-runtest): Define wrapper to save
949 and restore dg-interpreter-batch-mode.
950 * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Use
951 gdb-dg-runtest instead of dg-runtest.
952 * testsuite/libstdc++-xmethods/xmethods.exp: Likewise.
954 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
956 * config/abi/pre/gnu.ver (GLIBCXX_3.4, GLIBCXX_3.4.21): Use more
957 precise patterns for basic_string constructors.
958 (GLIBCXX_3.4.23): Export new constructors.
959 * doc/xml/manual/intro.xml: Document LWG 2583 status.
960 * doc/html/*: Regenerate.
961 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
962 (basic_string(const basic_string&, size_type, const Alloc&)): Add
963 new constructor for LWG 2583.
964 (basic_string(const basic_string&, size_type, size_type)): Remove
966 [!_GLIBCXX_USE_CXX11_ABI]: Likewise.
967 * include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]: Define it.
968 * testsuite/21_strings/basic_string/cons/char/8.cc: New test.
969 * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: New test.
971 2016-08-24 Aditya Kumar <hiraditya@msn.com>
973 * include/bits/algorithmfwd.h: Remove trailing whitespace.
974 * include/bits/shared_ptr_base.h: Likewise.
976 2016-08-23 Jonathan Wakely <jwakely@redhat.com>
978 * include/debug/array (array): Add _GLIBCXX17_CONSTEXPR.
979 * include/profile/array (array): Likewise.
980 (array::swap): Fix exception specification for zero-sized arrays.
983 * include/bits/stl_tree.h (_Rb_tree::_M_move_assign): New functions.
984 (_Rb_tree::operator=(_Rb_tree&&)): Dispatch to _M_move_assign.
985 * testsuite/23_containers/map/77334.cc: New test.
987 * doc/xml/manual/using.xml: Remove reference to -pthreads option.
988 * doc/html/*: Regenerate.
990 * testsuite/experimental/feat-cxx14.cc: Only preprocess, not compile.
991 * testsuite/experimental/feat-lib-fund.cc: Likewise.
994 * include/bits/stl_iterator.h
995 (operator-(reverse_iterator<Iter>, reverse_iterator<Iter>): Only
996 define for C++98 mode.
997 (operator-(move_iterator<Iter>, move_iterator<Iter>): Don't define.
998 * testsuite/24_iterators/headers/iterator/synopsis.cc: Use
1000 * testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: New test.
1001 * testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: New test.
1002 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: New test.
1003 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Don't test
1004 difference operator.
1005 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc: Only test
1006 difference operator for C++98.
1007 * testsuite/24_iterators/reverse_iterator/71771.cc: New test.
1009 * include/bits/c++config (_GLIBCXX17_CONSTEXPR): Define.
1010 * include/bits/range_access.h (begin, end, rbegin, rend, crbegin)
1011 (crend): Add _GLIBCXX17_CONSTEXPR as per P0031R0.
1012 * include/bits/stl_iterator.h (reverse_iterator, move_iterator)
1013 (__make_reverse_iterator, make_reverse_iterator, make_move_iterator):
1015 * include/bits/stl_iterator_base_funcs.h (__distance, __advance): Add
1016 _GLIBCXX14_CONSTEXPR.
1017 (distance, advance, next, prev): Add _GLIBCXX17_CONSTEXPR.
1018 * include/std/array (array::begin, array::end, array::rbegin)
1019 (array::rend, array::cbegin, array:cend, array::crbegin)
1020 (array::crend, array::operator[], array::at, array::front)
1021 (array::back, array::data): Likewise.
1022 * testsuite/24_iterators/headers/iterator/range_access.cc: Replace
1023 with separate tests for C++11, C++14, and C++17.
1024 * testsuite/24_iterators/headers/iterator/range_access_c++11.cc: New.
1025 * testsuite/24_iterators/headers/iterator/range_access_c++14.cc: New.
1026 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc: New.
1028 2016-08-22 Tim Shen <timshen@google.com>
1030 Split _M_dfs() into smaller functions.
1031 * regex_executor.h(_M_handle_repeat, _M_handle_subexpr_begin)
1032 (_M_handle_subexpr_end, _M_handle_line_begin_assertion)
1033 (_M_handle_line_end_assertion, _M_handle_word_boundary)
1034 (_M_handle_subexpr_lookahead, _M_handle_match)
1035 (_M_handle_backref, _M_handle_accept, _M_handle_alternative):
1036 Add separate function declarations.
1037 * regex_executor.tcc: Split _M_dfs() into multiple handler functions.
1039 2016-08-22 Gleb Natapov <gleb@scylladb.com>
1042 * config/abi/pre/gnu-versioned-namespace.ver: Export
1043 __cxa_init_primary_exception and std::exception_ptr(void*).
1044 * config/abi/pre/gnu.ver (CXXABI_1.3.11) : Add new symbol version and
1045 export __cxa_init_primary_exception and std::exception_ptr(void*).
1046 * include/Makefile.am: Add new headers.
1047 * include/Makefile.in: Regenerate.
1048 * libsupc++/Makefile.am: Add new headers.
1049 * libsupc++/Makefile.in: Regenerate.
1050 * libsupc++/cxxabi.h (__cxa_allocate_exception): Move to ...
1051 * libsupc++/cxxabi_init_exception.h: New header.
1052 (__cxa_init_primary_exception): Declare.
1053 * libsupc++/eh_throw.cc (__cxa_init_primary_exception): Define.
1054 (__cxa_throw): Use __cxa_init_primary_exception.
1055 * libsupc++/exception (std::exception): Move to ...
1056 * libsupc++/exception.h: New header.
1057 * libsupc++/exception_ptr.h (__exception_ptr::exception_ptr): Add
1059 (__exception_ptr::__dest_thunk): New function template.
1060 (std::make_exception_ptr) [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]:
1061 Use __cxa_allocate_exception and __cxa_init_primary_exception to
1062 create exception_ptr.
1063 * libsupc++/typeinfo: Include bits/exception.h instead of exception.
1064 * testsuite/util/testsuite_abi.cc: Add CXXABI_1.3.11 version.
1066 2016-08-22 Jonathan Wakely <jwakely@redhat.com>
1068 * doc/xml/api.xml: Replace hardcoded links for specific versions with
1069 link to docs for all releases.
1070 * doc/html/*: Regenerate.
1073 * doc/xml/manual/intro.xml: Document DR 2062 change.
1074 * include/std/functional (function::swap): Add noexcept.
1075 (swap(function<Res(Args...)&, function<Res(Args...)&)): Likewise.
1076 * testsuite/20_util/function/77322.cc: New test.
1078 2016-08-19 Jonathan Wakely <jwakely@redhat.com>
1080 * testsuite/21_strings/basic_string/pthread18185.cc: Use -pthread for
1081 *-*-solaris* instead of -pthreads.
1082 * testsuite/21_strings/basic_string/pthread4.cc : Likewise.
1083 * testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
1084 * testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
1085 * testsuite/23_containers/list/pthread1.cc: Likewise.
1086 * testsuite/23_containers/list/pthread5.cc: Likewise.
1087 * testsuite/23_containers/map/pthread6.cc: Likewise.
1088 * testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
1089 * testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
1090 * testsuite/30_threads/shared_mutex/*: Likewise.
1091 * testsuite/ext/rope/pthread7-rope.cc: Likewise.
1092 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
1093 default_weaktoshared.cc: Likewise.
1094 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
1095 mutex_weaktoshared.cc: Likewise.
1096 * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise. Use
1097 dg-require-effective-target instead of using -std option.
1098 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
1100 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
1101 * testsuite/23_containers/vector/debug/multithreaded_swap.cc:
1103 * testsuite/30_threads/async/*: Likewise.
1104 * testsuite/30_threads/call_once/*: Likewise.
1105 * testsuite/30_threads/condition_variable/*: Likewise.
1106 * testsuite/30_threads/condition_variable_any/*: Likewise.
1107 * testsuite/30_threads/future/*: Likewise.
1108 * testsuite/30_threads/lock/*: Likewise.
1109 * testsuite/30_threads/mutex/*: Likewise.
1110 * testsuite/30_threads/packaged_task/*: Likewise.
1111 * testsuite/30_threads/promise/*: Likewise.
1112 * testsuite/30_threads/recursive_mutex/*: Likewise.
1113 * testsuite/30_threads/recursive_timed_mutex/*: Likewise.
1114 * testsuite/30_threads/shared_future/*: Likewise.
1115 * testsuite/30_threads/shared_lock/*: Likewise.
1116 * testsuite/30_threads/shared_timed_mutex/*: Likewise.
1117 * testsuite/30_threads/this_thread/*: Likewise.
1118 * testsuite/30_threads/thread/*: Likewise.
1119 * testsuite/30_threads/timed_mutex/*: Likewise.
1120 * testsuite/30_threads/try_lock/*: Likewise.
1121 * testsuite/30_threads/unique_lock/*: Likewise.
1123 * doc/xml/manual/status_cxx2017.xml: Update status of not_fn.
1124 * doc/html/*: Regenerate.
1125 * include/experimental/functional (_Not_fn, not_fn): Match C++17
1127 * include/std/functional (_Not_fn, not_fn): Define for C++17.
1128 * testsuite/20_util/not_fn/1.cc: New.
1129 * testsuite/experimental/functional/not_fn.cc: Test abstract class.
1130 Remove test for volatile-qualified wrapper.
1132 * include/std/atomic (atomic::is_always_lock_free): Define.
1133 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
1134 * testsuite/29_atomics/atomic/is_always_lock_free.cc: New.
1135 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc: New.
1136 * doc/xml/manual/status_cxx2017.xml: Update status.
1137 * doc/html/*: Regenerate.
1139 * include/experimental/tuple (apply): Qualify call to __apply_impl.
1140 * include/std/tuple (apply): Likewise.
1141 * testsuite/experimental/system_error/value.cc: Fix ambiguities in
1143 * testsuite/experimental/tuple/tuple_size.cc: Likewise.
1144 * testsuite/experimental/type_traits/value.cc: Likewise.
1146 * doc/xml/manual/status_cxx2017.xml: Update status of make_from_tuple
1148 * doc/html/*: Regenerate.
1150 2016-08-18 Ville Voutilainen <ville.voutilainen@gmail.com>
1152 Implement the latest proposed resolution of LWG 2756.
1153 * include/std/optional (Optional_base(const _Tp&))
1154 (Optional_base(_Tp&&), using _Base::_Base): Remove.
1155 (optional(nullopt_t)): New.
1156 (optional(_Up&&)): Invoke base directly with in_place
1157 rather than creating a temporary, add default template
1158 argument, change constraints.
1159 (optional(const optional<_Up>&)): Invoke base directly
1160 with in_place, remove unnecessary constraints.
1161 (optional(optional<_Up>&& __t)): Likewise.
1162 (optional(in_place_t, _Args&&...)): New.
1163 (optional(in_place_t, initializer_list<_Up>, _Args&&...)): Likewise.
1164 (operator=(_Up&&)): Add default template argument, change constraints.
1165 (operator=(const optional<_Up>&)): Put is_same first in the
1167 (operator=(optional<_Up>&&)): Likewise.
1168 * testsuite/20_util/optional/assignment/5.cc: Add a test to
1169 verify assignment from something that can't be perfect-forwarded.
1170 * testsuite/20_util/optional/cons/value.cc: Add tests to verify
1171 that a nested optional is disengaged when constructed
1172 from a disengaged element type, and to verify that assignments
1173 from an engaged element type engage the optional.
1175 2016-08-18 Tim Shen <timshen@google.com>
1179 * include/Makefile.am: Add new file std/variant.
1180 * include/Makefile.in: Generated from Makefile.am.
1181 * include/bits/enable_special_members.h: Add a tag type to allow
1182 the construction in non-default constructor.
1183 * include/bits/uses_allocator.h: Add convenience traits to
1184 detect constructibility.
1185 * include/std/variant: Implement <variant>.
1186 * testsuite/20_util/variant/compile.cc: Compile-time tests.
1187 * testsuite/20_util/variant/run.cc: Runtime tests.
1189 2016-08-18 Jonathan Wakely <jwakely@redhat.com>
1191 * doc/xml/manual/test.xml (test.run.permutations): Expand section.
1192 (test.new_tests): Rewrite section.
1193 (tests.dg.directives): New section.
1194 * doc/html/*: Regenerate.
1196 * doc/xml/manual/test.xml: Improve documentation of test targets.
1197 Document new-abi-baseline, check-debug, and check-parallel targets.
1199 * doc/xml/manual/build_hacking.xml: New section on shared library
1202 * doc/xml/manual/build_hacking.xml: Improve markup.
1203 * doc/xml/manual/test.xml: Likewise. Change section title from "Test"
1205 * doc/xml/faq.xml: Change link text to "Testing".
1207 * testsuite/tr1/3_function_objects/function/10.cc: Remove unintended
1208 dg-options directive.
1210 2016-08-17 Jonathan Wakely <jwakely@redhat.com>
1212 * testsuite/20_util/reference_wrapper/invoke-2.cc: Fix invalid dg-do
1213 directive and use effective target instead of dg-options.
1215 * testsuite/20_util/hash/chi2_q_bit_flip_set.cc: Use effective target
1216 instead of -std in dg-options.
1217 * testsuite/20_util/hash/chi2_q_bit_string_set.cc: Likewise.
1218 * testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc: Likewise.
1219 * testsuite/20_util/hash/chi2_q_uniform_random.cc: Likewise.
1220 * testsuite/20_util/hash/quality.cc: Likewise.
1221 * testsuite/25_algorithms/heap/moveable.cc: Likewise.
1222 * testsuite/25_algorithms/heap/moveable2.cc: Likewise.
1223 * testsuite/25_algorithms/nth_element/random_test.cc: Likewise.
1224 * testsuite/25_algorithms/partial_sort/random_test.cc: Likewise.
1225 * testsuite/25_algorithms/partial_sort_copy/random_test.cc: Likewise.
1226 * testsuite/25_algorithms/sort/random_test.cc: Likewise.
1228 * testsuite/20_util/tuple/67844.cc: Require c++11 effective target.
1229 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Likewise.
1230 * testsuite/27_io/rvalue_streams.cc: Likewise.
1232 * testsuite/26_numerics/complex/literals/types.cc: Add comment.
1234 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
1235 Remove duplicate dg-options directive.
1237 * testsuite/ext/profile/all.cc: Use effective target instead of
1238 -std=gnu++11. Use dg-additional-options instead of repeating options.
1240 * testsuite/20_util/bind/ref_neg.cc: Use effective target instead of
1241 -std=gnu++11. Add -fno-show-columns to dg-options. Use dg-prune-output
1242 instead of dg-excess-errors.
1244 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Disable
1246 * testsuite/experimental/chrono/value.cc: Avoid ambiguities in C++17.
1247 * testsuite/experimental/ratio/value.cc: Likewise.
1248 * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Disable test for
1250 * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
1251 * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
1252 * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
1253 * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
1254 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
1255 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
1256 * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
1257 * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
1258 * testsuite/tr1/5_numerical_facilities/special_functions/
1259 10_cyl_bessel_k/airy.cc: Adjust namespace of __detail::__airy for
1260 C++17 compatibility.
1262 * testsuite/24_iterators/headers/iterator/range_access.cc: Adjust
1263 expected signatures for C++14 compatibility.
1266 * include/bits/basic_string.h (operator=(__sv_type)
1267 (append(__sv_type), assign(__sv_type), insert(size_type, __sv_type))
1268 (replace(size_type, size_type, __sv_type))
1269 (replace(const_iterator, const_iterator, __sv_type))
1270 (find(__sv_type, size_type), rfind(__sv_type, size_type))
1271 (compare(size_type, size_type, __sv_type)): Reformat.
1272 (_If_sv): Define helper for SFINAE constaints.
1273 (append(const _Tp&, size_type, size_type))
1274 (assign(const _Tp&, size_type, size_type))
1275 (insert(size_type, const _Tp&, size_type, size_type))
1276 (replace(size_type, size_type, const _Tp&, size_type, size_type)):
1278 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc: Test
1280 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
1282 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1284 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
1286 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
1288 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
1290 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
1292 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
1294 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1296 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
1298 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
1301 2016-08-16 Jonathan Wakely <jwakely@redhat.com>
1304 * include/bits/stl_bvector.h (_Bvector_base::_M_deallocate): Zero
1305 pointers to start and end of storage.
1306 * testsuite/23_containers/vector/bool/72847.cc: New test.
1307 * include/bits/vector.tcc (vector<bool>::_M_reallocate): Only update
1308 _M_finish after deallocating.
1309 (vector<bool>::_M_fill_insert): Likewise.
1310 (vector<bool>::_M_insert_range): Likewise.
1311 (vector<bool>::_M_insert_aux): Likewise.
1313 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1315 Implement LWG 2744 and LWG 2754.
1316 * include/std/any (any(ValueType&&)): Constrain with __is_in_place_type.
1317 (any(in_place_type_t<_ValueType>, _Args&&...)): Use _Decay.
1318 (any(in_place_type_t<_ValueType>, initializer_list<_Up>, _Args&&...)):
1320 (emplace(_Args&&...)): Likewise.
1321 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
1322 * include/std/utility: (__is_in_place_type_impl): New.
1323 (__is_in_place_type): Likewise.
1324 * testsuite/20_util/any/assign/emplace.cc: Add tests for decaying
1326 * testsuite/20_util/any/cons/in_place.cc: Add tests for decaying
1327 in_place constructor.
1328 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
1329 * testsuite/20_util/any/requirements.cc: Add a test for
1330 in_place-constructing a non-default-constructible type.
1332 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1334 Add a feature macro for C++17 make_from_tuple.
1335 * include/std/tuple (__cpp_lib_make_from_tuple): New.
1336 (__make_from_tuple_impl(_Tuple&&, index_sequence<_Idx...>)):
1337 Qualify the call to get<>().
1338 * testsuite/20_util/tuple/make_from_tuple/1.cc: Adjust.
1340 2016-08-15 Uros Bizjak <ubizjak@gmail.com>
1342 * src/filesystem/ops.cc: Always include ostream and
1343 ext/stdio_filebuf.h.
1344 (do_copy_file): Check if _GLIBCXX_USE_FCHMODAT is defined.
1345 [_GLIBCXX_USE_SENDFILE]: Fallback to read/write operations in case
1346 sendfile fails with ENOSYS or EINVAL.
1348 2016-08-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
1351 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Fix dg-error
1354 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1356 Implement C++17 make_from_tuple.
1357 * include/std/tuple (__make_from_tuple_impl, make_from_tuple): New.
1358 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
1360 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1363 * include/bits/basic_string.h
1364 (append(__sv_type, size_type, size_type)): Turn into a template,
1365 change parameter type, constrain, add a conversion to __sv_type
1366 from the dependent parameter type.
1367 (assign(__sv_type, size_type, size_type)): Likewise.
1368 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
1369 (replace(size_type, size_type, __sv_type, size_type, size_type)):
1371 (compare(size_type, size_type,__sv_type, size_type, size_type)):
1373 * testsuite/21_strings/basic_string/lwg2758.cc: New.
1375 2016-08-06 Jonathan Wakely <jwakely@redhat.com>
1377 * doc/xml/manual/status_cxx2017.xml: Update status table.
1378 * doc/html/manual/status.html: Regenerate.
1380 * testsuite/lib/libstdc++.exp: Fix typo in comment.
1383 * include/std/functional (_Function_base::_Base_manager::_M_clone):
1384 Qualify new operator.
1385 * testsuite/20_util/function/cons/72820.cc: New test.
1387 * doc/xml/manual/status_cxx2017.xml: Add missing LFTSv2 features.
1388 * doc/html/manual/status.html: Regenerate.
1389 * include/Makefile.am: Add new header.
1390 * include/Makefile.in: Regenerate.
1391 * include/bits/invoke.h: New header.
1392 (__invoke): Make constexpr. Add && to types in exception specification.
1393 * include/experimental/tuple (apply, __apply_impl): Fix non-reserved
1394 names. Include <bits/invoke.h> and use std::__invoke.
1395 * include/std/functional (__invfwd, __invoke_impl, __invoke): Move to
1397 (invoke): Add && to types in exception specification.
1398 * include/std/tuple (apply, __apply_impl): Define for C++17.
1399 * testsuite/20_util/tuple/apply/1.cc: New test.
1400 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error
1403 2016-08-05 Jonathan Wakely <jwakely@redhat.com>
1405 * doc/xml/manual/status_cxx2017.xml: Correct shared_from_this status.
1406 * doc/html/manual/status.html: Regenerate.
1408 * include/std/chrono (floor, ceil, round, abs): New for C++17.
1409 * testsuite/20_util/duration_cast/rounding.cc: New test.
1410 * testsuite/20_util/time_point_cast/rounding.cc: New test.
1411 * doc/xml/manual/status_cxx2017.xml: Update status table.
1412 * doc/html/manual/status.html: Regenerate.
1413 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust
1415 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1416 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1417 * testsuite/20_util/duration/literals/range.cc: Likewise.
1419 * include/std/functional (__callable_functor): Remove.
1420 (_Function_handler::_M_invoke): Use __invoke instead of
1421 __callable_functor or mem_fn.
1422 (function::_Callable): Use lvalue in result_of expression.
1423 (function): Remove TODO comments about allocators.
1424 * testsuite/20_util/function/cons/refqual.cc: New test.
1426 2016-08-04 Jonathan Wakely <jwakely@redhat.com>
1428 * doc/xml/manual/status_cxx2017.xml: Update status table.
1429 * include/std/functional (__inv_unwrap): Move to <type_traits>.
1430 (__invoke_impl): Remove exception specifications.
1431 (__invoke, invoke): Add exception specifications using
1432 __is_nothrow_callable.
1433 * include/std/type_traits (__inv_unwrap): Move from <functional>.
1434 (__is_callable_impl, __call_is_nt, __call_is_nothrow): New helpers.
1435 (__is_callable, __is_nothrow_callable): New traits.
1436 (is_callable, is_callable_v): New C++17 traits.
1437 (is_nothrow_callable, is_nothrow_callable_v): Likewise.
1438 * testsuite/20_util/is_callable/requirements/
1439 explicit_instantiation.cc: New test.
1440 * testsuite/20_util/is_callable/requirements/
1441 explicit_instantiation_ext.cc: New test.
1442 * testsuite/20_util/is_callable/requirements/typedefs.cc: New test.
1443 * testsuite/20_util/is_callable/requirements/typedefs_ext.cc: New
1445 * testsuite/20_util/is_callable/value.cc: New test.
1446 * testsuite/20_util/is_callable/value_ext.cc: New test.
1447 * testsuite/20_util/is_nothrow_callable/requirements/
1448 explicit_instantiation.cc: New test.
1449 * testsuite/20_util/is_nothrow_callable/requirements/
1450 explicit_instantiation_ext.cc: New test.
1451 * testsuite/20_util/is_nothrow_callable/requirements/typedefs.cc:
1453 * testsuite/20_util/is_nothrow_callable/requirements/typedefs_ext.cc:
1455 * testsuite/20_util/is_nothrow_callable/value.cc: New test.
1456 * testsuite/20_util/is_nothrow_callable/value_ext.cc: New test.
1458 * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
1459 * doc/html/manual/status.html: Regenerate.
1461 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Use
1462 effective target not dg-options. Move check for feature-test macro to:
1463 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
1466 * include/std/functional (_Unwrap): Rename to __inv_unwrap.
1468 (__invoke_impl): Remove unused template parameters.
1469 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
1471 * testsuite/20_util/function_objects/invoke/ref_ext.cc: Copy 59768.cc
1472 and test __invoke extension for C++11.
1474 2016-08-03 Jonathan Wakely <jwakely@redhat.com>
1476 * include/bits/shared_ptr_base.h (__cpp_lib_enable_shared_from_this):
1477 Define feature-test macro.
1478 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Test
1481 * include/bits/shared_ptr.h (shared_ptr::weak_type): Define.
1482 * include/bits/shared_ptr_base.h (__shared_ptr::weak_type): Define.
1483 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
1484 * testsuite/20_util/shared_ptr/requirements/weak_type.cc: New test.
1485 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
1487 * include/std/utility (as_const): Define.
1488 * testsuite/20_util/as_const/1.cc: New test.
1489 * testsuite/20_util/as_const/rvalue_neg.cc: New test.
1491 * include/bits/shared_ptr.h (owner_less): Add default template
1493 * include/bits/shared_ptr_base.h (_Sp_owner_less<void, void>): Define
1495 (owner_less<void>): Define specialization.
1496 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
1498 * testsuite/20_util/owner_less/void.cc: New test.
1499 * testsuite/experimental/feat-cxx14.cc: Update macro value tested.
1501 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
1502 Define feature-test macro.
1503 * include/bits/range_access.h (__cpp_lib_array_constexpr): Likewise.
1504 * include/std/shared_mutex (__cpp_lib_shared_mutex): Uncomment.
1505 * include/std/type_traits (__cpp_lib_logical_traits): Fix value.
1506 (__cpp_lib_type_trait_variable_templates): Define.
1508 * include/bits/stl_function.h: Remove commented-out macro.
1509 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
1510 Define feature-test macro.
1511 * testsuite/experimental/feat-cxx14.cc: Add tests for more macros.
1513 * include/bits/c++config (_GLIBCXX_USE_STD_SPEC_FUNCS): Define for
1514 C++17, or for C++11/C++14 when __STDCPP_WANT_MATH_SPEC_FUNCS__ is
1516 * include/bits/specfun.h [!__STDCPP_WANT_MATH_SPEC_FUNCS__]: Don't
1517 do #error for C++17.
1518 * include/c_global/cmath: Check _GLIBCXX_USE_STD_SPEC_FUNCS instead
1519 of __STDCPP_WANT_MATH_SPEC_FUNCS__.
1520 * include/tr1/bessel_function.tcc: Likewise.
1521 * include/tr1/beta_function.tcc: Likewise.
1522 * include/tr1/cmath: Likewise.
1523 * include/tr1/ell_integral.tcc: Likewise.
1524 * include/tr1/exp_integral.tcc: Likewise.
1525 * include/tr1/gamma.tcc: Likewise.
1526 * include/tr1/hypergeometric.tcc: Likewise.
1527 * include/tr1/legendre_function.tcc: Likewise.
1528 * include/tr1/modified_bessel_func.tcc: Likewise.
1529 * include/tr1/poly_hermite.tcc: Likewise.
1530 * include/tr1/poly_laguerre.tcc: Likewise.
1531 * include/tr1/riemann_zeta.tcc: Likewise.
1532 * include/tr1/special_function_util.h: Likewise.
1533 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc: New.
1535 * include/std/type_traits (has_trivial_default_constructor): Remove.
1536 (has_trivial_copy_constructor, has_trivial_copy_assign): Likewise.
1537 * testsuite/20_util/has_trivial_copy_assign/requirements/
1538 explicit_instantiation.cc: Remove test.
1539 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
1541 * testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc:
1543 * testsuite/20_util/has_trivial_copy_assign/value.cc: Likewise.
1544 * testsuite/20_util/has_trivial_copy_constructor/requirements/
1545 explicit_instantiation.cc: Likewise.
1546 * testsuite/20_util/has_trivial_copy_constructor/requirements/
1547 typedefs.cc: Likewise.
1548 * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise.
1549 * testsuite/20_util/has_trivial_default_constructor/requirements/
1550 explicit_instantiation.cc: Likewise.
1551 * testsuite/20_util/has_trivial_default_constructor/requirements/
1552 typedefs.cc: Likewise.
1553 * testsuite/20_util/has_trivial_default_constructor/value.cc:
1555 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
1556 Check has_trivial_default_constructor, has_trivial_copy_constructor,
1557 and has_trivial_copy_assign are not defined.
1558 * testsuite/20_util/pair/requirements/dr801.cc: Remove commented out
1560 * testsuite/20_util/tuple/requirements/dr801.cc: Likewise.
1561 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
1562 dg-error line number.
1563 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1566 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
1568 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
1569 Remove reundant check for _GLIBCXX_USE_WCHAR_T and fix char type.
1570 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
1572 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
1574 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
1576 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
1578 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
1580 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
1583 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Improve
1586 * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Move
1587 dg-error to relevant line.
1588 * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc:
1590 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
1592 * scripts/testsuite_flags.in: Add -fno-show-column to cxxflags.
1594 * testsuite/18_support/bad_exception/23591_thread-1.c: Skip test if
1595 options are present that aren't valid for C.
1596 * testsuite/abi/header_cxxabi.c: Likewise.
1598 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/
1599 check_value.cc: Do not add special functions to namespace std in TR1
1602 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Only
1603 run for C++11 and later.
1604 * testsuite/ext/special_functions/conf_hyperg/check_value.cc:
1606 * testsuite/ext/special_functions/conf_hyperg/compile.cc: Likewise.
1607 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
1608 * testsuite/ext/special_functions/hyperg/check_value.cc: Likewise.
1609 * testsuite/ext/special_functions/hyperg/compile.cc: Likewise.
1610 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
1612 * testsuite/special_functions/01_assoc_laguerre/check_value.cc:
1614 * testsuite/special_functions/01_assoc_laguerre/compile.cc: Likewise.
1615 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc:
1617 * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
1619 * testsuite/special_functions/02_assoc_legendre/check_value.cc:
1621 * testsuite/special_functions/02_assoc_legendre/compile.cc: Likewise.
1622 * testsuite/special_functions/02_assoc_legendre/compile_2.cc:
1623 * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
1624 * testsuite/special_functions/03_beta/check_value.cc: Likewise.
1625 * testsuite/special_functions/03_beta/compile.cc: Likewise.
1626 * testsuite/special_functions/03_beta/compile_2.cc: Likewise.
1627 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: Likewise.
1628 * testsuite/special_functions/04_comp_ellint_1/check_value.cc:
1630 * testsuite/special_functions/04_comp_ellint_1/compile.cc: Likewise.
1631 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Likewise.
1632 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: Likewise.
1633 * testsuite/special_functions/05_comp_ellint_2/check_value.cc:
1635 * testsuite/special_functions/05_comp_ellint_2/compile.cc: Likewise.
1636 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Likewise.
1637 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: Likewise.
1638 * testsuite/special_functions/06_comp_ellint_3/check_value.cc:
1640 * testsuite/special_functions/06_comp_ellint_3/compile.cc: Likewise.
1641 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Likewise.
1642 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: Likewise.
1643 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc:
1645 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: Likewise.
1646 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Likewise.
1647 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: Likewise.
1648 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: Likewise.
1649 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc:
1651 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: Likewise.
1652 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Likewise.
1653 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: Likewise.
1654 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc:
1656 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: Likewise.
1657 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Likewise.
1658 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: Likewise.
1659 * testsuite/special_functions/10_cyl_neumann/check_value.cc: Likewise.
1660 * testsuite/special_functions/10_cyl_neumann/compile.cc: Likewise.
1661 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Likewise.
1662 * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
1663 * testsuite/special_functions/11_ellint_1/check_value.cc: Likewise.
1664 * testsuite/special_functions/11_ellint_1/compile.cc: Likewise.
1665 * testsuite/special_functions/11_ellint_1/compile_2.cc: Likewise.
1666 * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
1667 * testsuite/special_functions/12_ellint_2/check_value.cc: Likewise.
1668 * testsuite/special_functions/12_ellint_2/compile.cc: Likewise.
1669 * testsuite/special_functions/12_ellint_2/compile_2.cc: Likewise.
1670 * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
1671 * testsuite/special_functions/13_ellint_3/check_value.cc: Likewise.
1672 * testsuite/special_functions/13_ellint_3/compile.cc: Likewise.
1673 * testsuite/special_functions/13_ellint_3/compile_2.cc: Likewise.
1674 * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
1675 * testsuite/special_functions/14_expint/check_value.cc: Likewise.
1676 * testsuite/special_functions/14_expint/compile.cc: Likewise.
1677 * testsuite/special_functions/14_expint/compile_2.cc: Likewise.
1678 * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
1679 * testsuite/special_functions/15_hermite/check_value.cc: Likewise.
1680 * testsuite/special_functions/15_hermite/compile.cc: Likewise.
1681 * testsuite/special_functions/15_hermite/compile_2.cc: Likewise.
1682 * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
1683 * testsuite/special_functions/16_laguerre/check_value.cc: Likewise.
1684 * testsuite/special_functions/16_laguerre/compile.cc: Likewise.
1685 * testsuite/special_functions/16_laguerre/compile_2.cc: Likewise.
1686 * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
1687 * testsuite/special_functions/17_legendre/check_value.cc: Likewise.
1688 * testsuite/special_functions/17_legendre/compile.cc: Likewise.
1689 * testsuite/special_functions/17_legendre/compile_2.cc: Likewise.
1690 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: Likewise.
1691 * testsuite/special_functions/18_riemann_zeta/check_value.cc:
1693 * testsuite/special_functions/18_riemann_zeta/compile.cc: Likewise.
1694 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Likewise.
1695 * testsuite/special_functions/19_sph_bessel/check_nan.cc: Likewise.
1696 * testsuite/special_functions/19_sph_bessel/check_value.cc: Likewise.
1697 * testsuite/special_functions/19_sph_bessel/compile.cc: Likewise.
1698 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Likewise.
1699 * testsuite/special_functions/20_sph_legendre/check_nan.cc: Likewise.
1700 * testsuite/special_functions/20_sph_legendre/check_value.cc:
1702 * testsuite/special_functions/20_sph_legendre/compile.cc: Likewise.
1703 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Likewise.
1704 * testsuite/special_functions/21_sph_neumann/check_nan.cc: Likewise.
1705 * testsuite/special_functions/21_sph_neumann/check_value.cc: Likewise.
1706 * testsuite/special_functions/21_sph_neumann/compile.cc: Likewise.
1707 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Likewise.
1709 * testsuite/tr1/5_numerical_facilities/special_functions/
1710 08_cyl_bessel_i/check_value.cc: Use __attribute__((unused)) instead
1712 * testsuite/tr1/5_numerical_facilities/special_functions/
1713 09_cyl_bessel_j/check_value.cc: Likewise.
1714 * testsuite/tr1/5_numerical_facilities/special_functions/
1715 10_cyl_bessel_k/check_value.cc: Likewise.
1716 * testsuite/tr1/5_numerical_facilities/special_functions/
1717 11_cyl_neumann/check_value.cc: Likewise.
1718 * testsuite/tr1/5_numerical_facilities/special_functions/
1719 21_sph_bessel/check_value.cc: Likewise.
1720 * testsuite/tr1/5_numerical_facilities/special_functions/
1721 23_sph_neumann/check_value.cc: Likewise.
1723 2016-08-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1725 * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
1726 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
1727 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
1728 * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
1729 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
1730 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
1732 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
1734 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: Skip
1737 * testsuite/lib/libstdc++.exp (v3-build_support): Add -fno-lto to
1738 additional flags for compiling libtestc++.a objects.
1740 2016-08-01 Jonathan Wakely <jwakely@redhat.com>
1742 * include/bits/basic_string.h (data() const): Update comment.
1743 (data()): Add non-const overload for C++17.
1744 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
1745 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
1747 * include/bits/basic_string.tcc: Disable explicit instantiation
1748 declarations for C++17.
1750 * testsuite/23_containers/unordered_map/requirements/53339.cc: Remove
1751 ignored "xfail" from { dg-do compile { xfail selector } } directive.
1752 * testsuite/23_containers/unordered_multimap/requirements/53339.cc:
1754 * testsuite/26_numerics/headers/cmath/
1755 c99_classification_macros_c++11.cc: Likewise.
1756 * testsuite/26_numerics/headers/cmath/
1757 c99_classification_macros_c++98.cc: Likewise.
1758 * testsuite/26_numerics/headers/cmath/
1759 c99_classification_macros_c.cc: Likewise.
1761 * testsuite/backward/hash_set/check_construct_destroy.cc: Account
1762 for different construct/destroy counts in C++98 mode.
1764 * testsuite/17_intro/freestanding.cc: Remove "-x c" from dg-options.
1766 * testsuite/20_util/tuple/cons/66338.cc: Limit test to C++11 and
1768 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc:
1771 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Use
1772 C++98-compatible initialization for array.
1774 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc: Remove
1775 unused header and variable from compile-only test.
1776 * testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc: Likewise.
1777 * testsuite/28_regex/basic_regex/assign/char/cstring.cc: Likewise.
1778 * testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc: Likewise.
1779 * testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc:
1782 * testsuite/experimental/string_view/operations/rfind/char/2.cc:
1783 Remove duplicate dg-options directive.
1785 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
1786 808590.cc: Use -std=gnu++98 instead of -std=gnu++03.
1788 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Remove
1789 linker options from compile-only tests.
1790 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
1793 * testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Make test
1794 supported for C++11 and later.
1795 * testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
1796 * testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.
1798 2016-08-01 Uros Bizjak <ubizjak@gmail.com>
1800 * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
1802 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
1804 * testsuite/20_util/conditional/requirements/typedefs.cc: Change to
1807 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
1808 Ensure test is compiled with optimization.
1810 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
1811 Adjust dg-prune-output pattern for error in C++98 mode.
1813 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Only
1814 run for C++11 or later.
1816 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Fix
1817 test to not rely on GNU extension (escaped normal characters in POSIX
1818 BRE). Enable tests for other strings which are now supported.
1820 * testsuite/20_util/pair/astuple/get_neg.cc: Use effective-target
1821 c++11 instead of setting -std=gnu++14.
1824 * include/std/array (get): Use positive message for static assertions.
1825 * include/std/functional (_Safe_tuple_element_t): Fix indentation.
1826 * include/std/tuple (tuple_element<I, tuple<>>): Add partial
1827 specialization for invalid indices, with static assertion.
1828 * testsuite/20_util/tuple/element_access/get_neg.cc: New test.
1830 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Move
1831 dg-error to relevant line.
1832 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
1834 * testsuite/23_containers/forward_list/requirements/dr438/
1835 assign_neg.cc: Likewise.
1836 * testsuite/23_containers/forward_list/requirements/dr438/
1837 constructor_1_neg.cc: Likewise.
1838 * testsuite/23_containers/forward_list/requirements/dr438/
1839 constructor_2_neg.cc: Likewise.
1840 * testsuite/23_containers/forward_list/requirements/dr438/
1841 insert_neg.cc: Likewise.
1842 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc:
1844 * testsuite/26_numerics/random/linear_congruential_engine/
1845 requirements/non_uint_neg.cc: Likewise.
1846 * testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc:
1847 Likewise. Also test for std::atomic_address.
1849 2016-07-31 Ville Voutilainen <ville.voutilainen@gmail.com>
1851 Add missing variable traits, fix testsuite failures.
1852 * include/bits/uses_allocator.h (uses_allocator_v): New.
1853 * include/std/functional (is_bind_expression_v, is_placeholder_v):
1855 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
1856 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
1857 * testsuite/20_util/duration/literals/range.cc: Likewise.
1858 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
1859 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1860 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1861 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise.
1862 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1864 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
1865 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
1868 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
1870 * testsuite/18_support/numeric_limits/40856.cc [__STRICT_ANSI__]: Do
1871 not test 128-bit types.
1872 * testsuite/20_util/is_floating_point/value.cc: Likewise.
1873 * testsuite/20_util/is_integral/value.cc: Likewise.
1874 * testsuite/20_util/is_signed/value.cc: Likewise.
1875 * testsuite/20_util/is_unsigned/value.cc: Likewise.
1876 * testsuite/20_util/make_signed/requirements/typedefs-1.cc: Likewise.
1877 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
1878 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
1880 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
1883 * testsuite/26_numerics/headers/cstdlib/54686.c: Rename to 54686.cc.
1885 2016-07-29 Ville Voutilainen <ville.voutilainen@gmail.com>
1887 Implement C++17 variable templates for type traits.
1888 * include/std/chrono (treat_as_floating_point_v): New.
1889 * include/std/ratio (ratio_equal_v, ratio_not_equal_v)
1890 (ratio_less_v, ratio_less_equal_v, ratio_greater_v)
1891 (ratio_greater_equal_v): Likewise.
1892 * include/std/system_error (is_error_code_enum_v)
1893 (is_error_condition_enum_v): Likewise.
1894 * include/std/tuple (tuple_size_v): Likewise.
1895 * type_traits (conjunction_v, disjunction_v, negation_v)
1896 (is_void_v, is_null_pointer_v, is_integral_v, is_floating_point_v)
1897 (is_array_v, is_pointer_v, is_lvalue_reference_v)
1898 (is_rvalue_reference_v, is_member_object_pointer_v)
1899 (is_member_function_pointer_v, is_enum_v, is_union_v)
1900 (is_class_v, is_function_v, is_reference_v, is_arithmetic_v)
1901 (is_fundamental_v, is_object_v, is_scalar_v, is_compound_v)
1902 (is_member_pointer_v, is_const_v, is_volatile_v, is_trivial_v)
1903 (is_trivially_copyable_v, is_standard_layout_v)
1904 (is_pod_v, is_literal_type_v, is_empty_v, is_polymorphic_v)
1905 (is_abstract_v, is_final_v, is_signed_v, is_unsigned_v)
1906 (is_constructible_v, is_default_constructible_v)
1907 (is_copy_constructible_v, is_move_constructible_v)
1908 (is_assignable_v, is_copy_assignable_v, is_move_assignable_v)
1909 (is_destructible_v, is_trivially_constructible_v)
1910 (is_trivially_default_constructible_v)
1911 (is_trivially_copy_constructible_v, is_trivially_move_constructible_v)
1912 (is_trivially_assignable_v, is_trivially_copy_assignable_v)
1913 (is_trivially_move_assignable_v, is_trivially_destructible_v)
1914 (is_nothrow_constructible_v, is_nothrow_default_constructible_v)
1915 (is_nothrow_copy_constructible_v, is_nothrow_move_constructible_v)
1916 (is_nothrow_assignable_v, is_nothrow_copy_assignable_v)
1917 (is_nothrow_move_assignable_v, is_nothrow_destructible_v)
1918 (has_virtual_destructor_v, alignment_of_v, rank_v, extent_v)
1919 (is_same_v, is_base_of_v, is_convertible_v): Likewise.
1920 * testsuite/19_diagnostics/error_code/is_error_code_v.cc: Likewise.
1921 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
1923 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc: Likewise.
1924 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
1925 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
1927 2016-07-29 Andreas Schwab <schwab@linux-m68k.org>
1929 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
1930 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
1931 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
1933 2016-07-29 Jonathan Wakely <jwakely@redhat.com>
1935 * doc/xml/manual/abi.xml: Document 6.0.22 library version.
1936 * doc/html/manual/abi.html: Regenerate.
1938 * acinclude.m4 (libtool_VERSION): Bump to 6:23:0.
1939 * config/abi/pre/gnu.ver: Add 3.4.23 version for new basic_string
1941 * configure: Regenerate.
1942 * testsuite/util/testsuite_abi.cc: Add new symbol version.
1944 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
1945 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
1946 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Likewise.
1947 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
1949 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
1950 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
1951 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Likewise.
1953 2016-07-28 Jonathan Wakely <jwakely@redhat.com>
1955 * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
1956 Adjust dg-prune-output pattern for error in C++98 mode.
1957 * testsuite/23_containers/deque/requirements/dr438/
1958 constructor_1_neg.cc: Likewise.
1959 * testsuite/23_containers/deque/requirements/dr438/
1960 constructor_2_neg.cc: Likewise.
1961 * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
1963 * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
1965 * testsuite/23_containers/list/requirements/dr438/
1966 constructor_1_neg.cc: Likewise.
1967 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
1969 * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
1971 * testsuite/23_containers/vector/requirements/dr438/
1972 constructor_1_neg.cc: Likewise.
1973 * testsuite/23_containers/vector/requirements/dr438/
1974 constructor_2_neg.cc: Likewise.
1975 * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
1978 * testsuite/23_containers/vector/check_construct_destroy.cc: Account
1979 for different construct/destroy counts in C++98 mode.
1981 * testsuite/17_intro/headers/c++2011/stdc++.cc: Change target-specific
1982 dg-options to dg-additional-options so that default options are used.
1983 * testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc:
1985 * testsuite/17_intro/headers/c++2014/stdc++.cc: Likewise.
1986 * testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc:
1988 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
1989 Use dg-additional-options instead of repeating the common options.
1991 * testsuite/22_locale/conversions/string/1.cc: Remove unintended
1992 dg-do compile directive.
1993 * testsuite/26_numerics/headers/cmath/fabs_inline.cc: Fix syntax of
1995 * testsuite/26_numerics/valarray/const_bracket.cc: Likewise.
1997 2016-07-28 Ville Voutilainen <ville.voutilainen@gmail.com>
1999 Implement std::string_view and P0254r2,
2000 Integrating std::string_view and std::string.
2001 * include/Makefile.am: Add string_view and string_view.tcc
2002 to the exported headers.
2003 * include/Makefile.in: Likewise.
2004 * include/bits/basic_string.h: Include <string_view> in C++17 mode.
2006 (basic_string(__sv_type, const _Alloc&)): Likewise.
2007 (operator=(__sv_type)): Likewise.
2008 (operator __sv_type()): Likewise.
2009 (operator+=(__sv_type)): Likewise.
2010 (append(__sv_type __sv)): Likewise.
2011 (append(__sv_type, size_type, size_type)): Likewise.
2012 (assign(__sv_type)): Likewise.
2013 (assign(__sv_type, size_type, size_type)): Likewise.
2014 (insert(size_type, __sv_type)): Likewise.
2015 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
2016 (replace(size_type, size_type, __sv_type)): Likewise.
2017 (replace(size_type, size_type, __sv_type, size_type, size_type)):
2019 (replace(const_iterator, const_iterator, __sv_type)): Likewise.
2020 (find(__sv_type, size_type)): Likewise.
2021 (rfind(__sv_type, size_type)): Likewise.
2022 (find_first_of(__sv_type, size_type)): Likewise.
2023 (find_last_of(__sv_type, size_type)): Likewise.
2024 (find_first_not_of(__sv_type, size_type)): Likewise.
2025 (find_last_not_of(__sv_type, size_type)): Likewise.
2026 (compare(__sv_type)): Likewise.
2027 (compare(size_type, size_type, __sv_type)): Likewise.
2028 (compare(size_type, size_type, __sv_type, size_type, size_type)):
2030 * include/bits/string_view.tcc: New.
2031 * include/std/string_view: Likewise.
2032 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
2033 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
2034 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
2036 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
2038 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
2040 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
2042 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
2044 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
2046 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
2048 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
2050 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
2052 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
2054 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
2056 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
2058 * testsuite/21_strings/basic_string/operators/char/5.cc: Likewise.
2059 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc: Likewise.
2060 * testsuite/21_strings/basic_string_view/capacity/1.cc: Likewise.
2061 * testsuite/21_strings/basic_string_view/cons/char/1.cc: Likewise.
2062 * testsuite/21_strings/basic_string_view/cons/char/2.cc: Likewise.
2063 * testsuite/21_strings/basic_string_view/cons/char/3.cc: Likewise.
2064 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc: Likewise.
2065 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc: Likewise.
2066 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc: Likewise.
2067 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
2069 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
2071 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
2073 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
2075 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
2077 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
2079 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
2081 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
2083 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
2084 * testsuite/21_strings/basic_string_view/inserters/char/1.cc: Likewise.
2085 * testsuite/21_strings/basic_string_view/inserters/char/2.cc: Likewise.
2086 * testsuite/21_strings/basic_string_view/inserters/char/3.cc: Likewise.
2087 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
2089 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
2091 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
2093 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
2095 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
2097 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
2099 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
2101 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
2103 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
2105 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
2107 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
2109 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
2111 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
2113 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
2115 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
2117 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
2119 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
2121 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
2123 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
2125 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
2127 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
2129 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
2131 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
2133 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
2135 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
2137 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
2139 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
2141 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
2143 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
2145 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
2147 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
2149 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
2151 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
2153 * testsuite/21_strings/basic_string_view/operators/char/2.cc: Likewise.
2154 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
2156 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
2158 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
2160 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
2162 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
2164 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
2166 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
2168 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
2170 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
2172 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
2173 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
2175 2016-07-27 Jonathan Wakely <jwakely@redhat.com>
2177 * testsuite/20_util/forward/1_neg.cc: Move dg-error to right line.
2179 2016-07-25 Georeth Chow <georeth2010@gmail.com>
2181 * include/ext/ropeimpl.h (rope<>::_S_dump(_RopeRep*, int)): Qualify
2182 _S_concat enumerator.
2183 * testsuite/ext/rope/6.cc: New test.
2185 2016-07-25 Jonathan Wakely <jwakely@redhat.com>
2187 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Use
2188 std::mt19937, std::thread and std::atomic to simplify test.
2189 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
2191 2016-07-22 Jonathan Wakely <jwakely@redhat.com>
2194 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2195 (basic_string::_Alloc_hider(pointer, _Alloc&&)): Add constructor.
2196 * include/bits/stl_tree.h (_Rb_tree(_Rb_tree&&)): Move allocator.
2197 * testsuite/21_strings/basic_string/allocator/71964.cc: New test.
2198 * testsuite/23_containers/set/allocator/71964.cc: New test.
2200 * testsuite/lib/libstdc++.exp (check_v3_target_namedlocale): Use
2201 delete[] instead of delete.
2203 2016-07-21 Jonathan Wakely <jwakely@redhat.com>
2205 * include/experimental/propagate_const (propagate_const::__t): Rename
2206 to _M_t and remove comment. Qualify std::move and std::forward.
2207 * testsuite/experimental/propagate_const/cons/default.cc: Fix test.
2209 * testsuite/23_containers/vector/zero_sized_allocations.cc:
2210 Define sized deallocation function.
2211 * testsuite/util/testsuite_new_operators.h:
2212 (operator delete(void*, const std::nothrow_t&)): Define nothrow
2213 deallocation function.
2215 * testsuite/21_strings/basic_string/modifiers/append/char/1.cc: Fix
2216 reads past the end of strings.
2217 * testsuite/21_strings/basic_string/operations/compare/char/1.cc:
2219 * testsuite/21_strings/char_traits/requirements/short/1.cc: Fix
2220 invalid array accesses.
2221 * testsuite/experimental/string_view/operations/compare/char/1.cc:
2222 Fix read past the end of string.
2223 * testsuite/util/testsuite_character.cc: Fix out-of-bounds write.
2225 * testsuite/24_iterators/container_access.cc: Fix missing returns.
2226 * testsuite/24_iterators/range_access_cpp14.cc: Likewise.
2228 * testsuite/18_support/new_delete_placement.cc: Don't allocate (and
2229 leak) memory for arguments to placement delete.
2230 * testsuite/20_util/addressof/1.cc: Don't leak memory.
2231 * testsuite/22_locale/locale/global_locale_objects/3.cc: Likewise.
2232 * testsuite/23_containers/unordered_multimap/insert/55028-debug.cc:
2235 2016-07-20 Jonathan Wakely <jwakely@redhat.com>
2237 * doc/xml/manual/intro.xml: Document DR 2684 status.
2238 * doc/html/*: Regenerate.
2240 * include/std/atomic (atomic_int8_t, atomic_uint8_t, atomic_int16_t)
2241 (atomic_uint16_t, atomic_int32_t, atomic_uint32_t, atomic_int64_t)
2242 (atomic_uint64_t): Define (LWG 2441).
2243 * testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc: Remove empty
2245 * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Test for
2247 * doc/xml/manual/intro.xml: Document DR 2441 status.
2249 * include/std/istream (operator>>(basic_istream&&, _Tp&)): Adjust
2250 to use perfect forwarding (LWG 2328).
2251 * testsuite/27_io/rvalue_streams.cc: Test perfect forwarding.
2252 * doc/xml/manual/intro.xml: Document DR 2328 status.
2254 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Use
2255 static objects for catching nullptr as pointer to member types.
2257 2016-07-18 Ville Voutilainen <ville.voutilainen@gmail.com>
2259 Clean up optional's comments.
2260 * include/std/optional: Remove incorrect section headers
2261 from comments when redundant, replace bare section
2262 headers with more descriptive comments.
2264 2016-07-15 Jonathan Wakely <jwakely@redhat.com>
2266 * include/bits/algorithmfwd.h: Change C++0x to C++11 in comments.
2267 * include/bits/move.h: Likewise.
2268 * include/bits/postypes.h: Likewise.
2269 * include/debug/bitset: Likewise.
2270 * include/ext/pb_ds/detail/type_utils.hpp: Likewise.
2271 * include/ext/string_conversions.h: Change C++0x to __cxx11 in
2273 * testsuite/27_io/fpos/14320-1.cc: Change C++0x to C++11 in comment.
2274 * testsuite/util/thread/all.h: Likewise.
2276 * include/bits/stl_algo.h (for_each): Remove redundant _GLIBCXX_MOVE
2280 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Make
2281 nullptr match handlers of pointer type.
2283 2016-07-15 Edward Smith-Rowland <3dw4rd@verizon.net>
2285 Implement C++17 P0025 clamp.
2286 * include/bits/algorithmfwd.h: Declare clamp overloads.
2287 * include/bits/stl_algo.h: Implement clamp. Feature __cpp_lib_clamp.
2288 * testsuite/25_algorithms/clamp/1.cc: New test.
2289 * testsuite/25_algorithms/clamp/2.cc: New test.
2290 * testsuite/25_algorithms/clamp/constexpr.cc: New test.
2291 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
2293 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
2296 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
2298 Fix the constraints for any's assignment operator template to properly
2299 reject assignment from a non-copyable lvalue.
2300 * include/std/any (operator=(_ValueType&&)): Constrain the decayed
2301 type for is_copy_constructible,
2302 * testsuite/20_util/any/requirements.cc: Add a test for
2303 non-copyable lvalues.
2305 2016-07-14 Jonathan Wakely <jwakely@redhat.com>
2307 * include/experimental/functional: Include <parallel/algorithm> in
2310 * testsuite/experimental/functional/searchers.cc: Include <algorithm>
2314 * include/bits/forward_list.h (forward_list): Update doxygen comments
2315 to reflect allocator propagation semantics. Remove ambiguous
2316 statements about data being lost.
2317 * include/bits/stl_deque.h (deque): Likewise.
2318 * include/bits/stl_list.h (list): Likewise.
2319 * include/bits/stl_map.h (map): Likewise.
2320 * include/bits/stl_multimap.h (multimap): Likewise.
2321 * include/bits/stl_multiset.h (multiset): Likewise.
2322 * include/bits/stl_set.h (set): Likewise.
2323 * include/bits/stl_vector.h (vector): Likewise.
2324 * include/bits/unordered_map.h (unordered_map, unordered_multimap):
2326 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
2329 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
2331 Implement P0032R3, Homogeneous interface for variant, any and optional,
2332 for the parts concerning any and optional.
2333 * include/std/any (_Storage()): Make constexpr and have it
2335 (any()): Make constexpr.
2336 (any(const any&)): Adjust.
2337 (any(any&&)): Likewise.
2338 (__any_constructible_t): New.
2339 (any(_ValueType&&)): Constrain.
2340 (any(in_place_type_t<_Tp>, _Args&&...)): New.
2341 (any(in_place_type_t<_Tp>, initializer_list<_Up>, _Args&&...)):
2344 (operator=(const any&)): Likewise.
2345 (operator=(any&&)): Likewise.
2346 (operator=(_ValueType&&)): Constrain.
2347 (emplace(_Args&&...)): New.
2348 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
2351 (swap(any&)): Adjust.
2355 (_Manager_internal::_S_create(_Storage&, _Args&&...)): New.
2356 (_Manager_external::_S_create(_Storage&, _Args&&...)): Likewise.
2357 (make_any(_Args&&...)): Likewise.
2358 (make_any(initializer_list<_Up>, _Args&&...)): Likewise.
2359 * include/std/optional (in_place_t, in_place): Remove.
2360 (bad_optional_access): Add a comment referring to LEWG 72.
2361 (emplace(_Args&&...)): Constrain.
2363 (reset()): Likewise.
2364 (make_optional(_Args&&...)): Likewise.
2365 (make_optional(initializer_list<_Up>, _Args&&...)): Likewise.
2366 * include/std/utility (in_place_tag): New.
2367 (__in_place, __in_place_type, __in_place_index): Likewise.
2368 (in_place_t, in_place_type_t, in_place_index_t): Likewise.
2369 (in_place(__in_place*)): Likewise.
2370 (in_place(__in_place_type<_Tp>*)): Likewise.
2371 (in_place(__in_place_index<_Idx>*)): Likewise.
2372 * testsuite/20_util/any/assign/1.cc: Adjust.
2373 * testsuite/20_util/any/assign/emplace.cc: New.
2374 * testsuite/20_util/any/assign/self.cc: Adjust.
2375 * testsuite/20_util/any/cons/1.cc: Likewise.
2376 * testsuite/20_util/any/cons/in_place.cc: New.
2377 * testsuite/20_util/any/make_any.cc: Likewise.
2378 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
2379 * testsuite/20_util/any/misc/swap.cc: Likewise.
2380 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2381 * testsuite/20_util/any/requirements.cc: New.
2382 * testsuite/20_util/in_place/requirements.cc: Likewise.
2383 * testsuite/20_util/optional/constexpr/in_place.cc: Adjust.
2384 * testsuite/20_util/optional/in_place.cc: Likewise.
2385 * testsuite/20_util/optional/make_optional.cc: Add tests for
2386 the new overloads of make_optional.
2388 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2390 Implement P0307R2, Making Optional Greater Equal Again.
2391 * include/experimental/optional (_Has_addressof): Fix the comment.
2392 * include/std/optional (_Has_addressof): Likewise.
2393 (operator=(_Up&&)): Constrain.
2394 (operator=(const optional<_Up>&)): Likewise.
2395 (operator=(optional<_Up>&&)): Likewise.
2396 (__optional_relop_t): New.
2397 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2398 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2399 Constrain and make transparent.
2400 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2401 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2402 Constrain and make transparent.
2403 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2404 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2405 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2406 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2407 (operator!=(const optional<_Tp>&, _Tp const&)):
2408 Constrain and make transparent.
2409 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2410 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2411 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2412 (operator>(const optional<_Tp>&, const _Tp&)):
2413 Constrain and make transparent.
2414 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2415 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2416 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2417 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2418 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2419 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2420 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2421 * testsuite/20_util/optional/relops/1.cc: Likewise.
2422 * testsuite/20_util/optional/relops/2.cc: Likewise.
2423 * testsuite/20_util/optional/relops/3.cc: Likewise.
2424 * testsuite/20_util/optional/relops/4.cc: Likewise.
2425 * testsuite/20_util/optional/requirements.cc: Add tests to verify
2426 that optional's relops are transparent and don't synthesize
2427 operators. Also test that assignment sfinaes.
2429 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2432 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Define to 1 not empty.
2433 * include/parallel/compiletime_settings.h (_GLIBCXX_ASSERTIONS):
2434 Rename to _GLIBCXX_PARALLEL_ASSERTIONS and make default value depend
2435 on _GLIBCXX_ASSERTIONS.
2436 * include/parallel/balanced_quicksort.h: Rename _GLIBCXX_ASSERTIONS.
2437 Include <unistd.h> for sleep.
2438 * include/parallel/losertree.h: Rename _GLIBCXX_ASSERTIONS.
2439 * include/parallel/merge.h: Likewise.
2440 * include/parallel/multiway_merge.h: Likewise.
2441 * include/parallel/partition.h: Likewise.
2442 * include/parallel/queue.h: Likewise.
2443 * include/parallel/sort.h: Likewise.
2444 * testsuite/25_algorithms/headers/algorithm/
2445 parallel_algorithm_assert.cc: New.
2447 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2448 (replace(__const_iterator, __const_iterator, initializer_list<C>)):
2449 Forward to different overload.
2451 * include/bits/allocated_ptr.h (__allocated_ptr::_S_raw_ptr): Make
2454 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2456 Revert "Add non-const overload of std::string::data()".
2458 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2460 Implement P0307R2, Making Optional Greater Equal Again.
2461 * include/experimental/optional (_Has_addressof): Fix the comment.
2462 * include/std/optional (_Has_addressof): Likewise.
2463 (operator=(_Up&&)): Constrain.
2464 (operator=(const optional<_Up>&)): Likewise.
2465 (operator=(optional<_Up>&&)): Likewise.
2466 (__optional_relop_t): New.
2467 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2468 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2469 Constrain and make transparent.
2470 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2471 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2472 Constrain and make transparent.
2473 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2474 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2475 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2476 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2477 (operator!=(const optional<_Tp>&, _Tp const&)):
2478 Constrain and make transparent.
2479 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2480 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2481 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2482 (operator>(const optional<_Tp>&, const _Tp&)):
2483 Constrain and make transparent.
2484 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2485 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2486 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2487 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2488 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2489 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2490 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2491 * testsuite/20_util/optional/relops/1.cc: Likewise.
2492 * testsuite/20_util/optional/relops/2.cc: Likewise.
2493 * testsuite/20_util/optional/relops/3.cc: Likewise.
2494 * testsuite/20_util/optional/relops/4.cc: Likewise.
2495 * testsuite/20_util/optional/requirements.cc: Add tests to verify
2496 that optional's relops are transparent and don't synthesize
2497 operators. Also test that assignment sfinaes.
2499 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2501 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (_M_c_str):
2503 (_M_disjunct, basic_string(const basic_string&, size_t)): Use data()
2504 instead of _M_data().
2505 (basic_string(const basic_string&, size_t, size_t, const _Alloc&)):
2507 (append(const basic_string&)): Likewise.
2508 (append(const basic_string&, size_type, size_type)): Likewise.
2509 (assign(const basic_string&, size_type, size_type)): Likewise.
2510 (insert(size_type, const basic_string&)): Likewise.
2511 (insert(size_type, const basic_string&, size_type, size_type)):
2513 (replace(size_type, size_type, const basic_string&, size_type,
2514 size_type)): Likewise.
2515 (replace(__const_iterator, __const_iterator, const basic_string&)):
2517 (c_str(), data()): Use c_str() instead of _M_data().
2518 (data()): Add non-const overload as per LWG 2391 and P0272R1.
2519 (compare(const basic_string&)): Use data() instead of _M_data().
2520 [!_GLIBCXX_USE_CXX11_ABI] (data()): Add non-const overload.
2521 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI] (_M_mutate):
2522 Pass raw pointers to _S_copy.
2523 (_M_erase, _M_replace_aux): Pass raw pointers to _S_move and
2525 (find(const _CharT*, size_type, size_type)): Use data instead of
2527 * testsuite/21_strings/basic_string/allocator/char/ext_ptr.cc: New.
2528 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
2529 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
2531 2016-07-12 Jonathan Wakely <jwakely@redhat.com>
2533 * libsupc++/new: Remove nothrow sized deletes (LWG 2458).
2534 * doc/xml/manual/intro.xml: Document DR 2458 status.
2535 * doc/html*: Regenerate.
2537 * testsuite/20_util/pair/astuple/astuple.cc: Only include <utility>.
2538 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
2539 Only include <array>.
2540 * testsuite/23_containers/array/tuple_interface/tuple_size.cc:
2542 * doc/xml/manual/intro.xml: Document LWG 2212 support.
2543 * doc/html*: Regenerate.
2545 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2546 Add testcase from LWG 2164.
2548 2016-07-11 François Dumont <fdumont@gcc.gnu.org>
2550 * include/bits/stl_vector.h (push_back(const value_type&)): Forward
2551 to _M_realloc_insert.
2552 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2553 (_M_realloc_insert): Declare new function.
2554 (_M_emplace_back_aux): Remove definition.
2555 * include/bits/vector.tcc (emplace_back(_Args...)):
2556 Use _M_realloc_insert.
2557 (insert(const_iterator, const value_type&)): Likewise.
2558 (_M_insert_rval, _M_emplace_aux): Likewise.
2559 (_M_emplace_back_aux): Remove declaration.
2560 (_M_realloc_insert): Define.
2561 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2562 Adjust expected results for emplacing an lvalue with reallocation.
2564 2016-07-10 Ville Voutilainen <ville.voutilainen@gmail.com>
2566 Implement std::optional.
2567 * include/Makefile.am: Add optional to exported headers.
2568 * include/Makefile.in: Likewise.
2569 * include/std/optional: New.
2570 * testsuite/20_util/optional/typedefs.cc: Likewise.
2571 * testsuite/20_util/optional/relops/2.cc: Likewise.
2572 * testsuite/20_util/optional/relops/3.cc: Likewise.
2573 * testsuite/20_util/optional/relops/4.cc: Likewise.
2574 * testsuite/20_util/optional/relops/5.cc: Likewise.
2575 * testsuite/20_util/optional/relops/1.cc: Likewise.
2576 * testsuite/20_util/optional/relops/6.cc: Likewise.
2577 * testsuite/20_util/optional/nullopt.cc: Likewise.
2578 * testsuite/20_util/optional/in_place.cc: Likewise.
2579 * testsuite/20_util/optional/make_optional.cc: Likewise.
2580 * testsuite/20_util/optional/assignment/2.cc: Likewise.
2581 * testsuite/20_util/optional/assignment/3.cc: Likewise.
2582 * testsuite/20_util/optional/assignment/4.cc: Likewise.
2583 * testsuite/20_util/optional/assignment/5.cc: Likewise.
2584 * testsuite/20_util/optional/assignment/1.cc: Likewise.
2585 * testsuite/20_util/optional/assignment/6.cc: Likewise.
2586 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
2587 * testsuite/20_util/optional/cons/default.cc: Likewise.
2588 * testsuite/20_util/optional/cons/move.cc: Likewise.
2589 * testsuite/20_util/optional/cons/value.cc: Likewise.
2590 * testsuite/20_util/optional/cons/copy.cc: Likewise.
2591 * testsuite/20_util/optional/requirements.cc: Likewise.
2592 * testsuite/20_util/optional/observers/2.cc: Likewise.
2593 * testsuite/20_util/optional/observers/3.cc: Likewise.
2594 * testsuite/20_util/optional/observers/4.cc: Likewise.
2595 * testsuite/20_util/optional/observers/5.cc: Likewise.
2596 * testsuite/20_util/optional/observers/1.cc: Likewise.
2597 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
2598 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
2599 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2600 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
2601 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
2602 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
2603 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
2604 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
2605 * testsuite/20_util/optional/constexpr/make_optional.cc: Likewise.
2606 * testsuite/20_util/optional/constexpr/cons/default.cc: Likewise.
2607 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
2608 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
2609 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
2610 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
2611 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
2612 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
2613 * testsuite/20_util/optional/swap/1.cc: Likewise.
2615 2016-07-08 Jonathan Wakely <jwakely@redhat.com>
2617 * testsuite/23_containers/vector/modifiers/insert/aliasing.cc: New.
2619 2016-07-07 Jonathan Wakely <jwakely@redhat.com>
2621 * doc/xml/manual/status_cxx2014.xml: Update LFTS status table.
2622 * doc/html/*: Regenerate.
2624 2016-07-07 Ville Voutilainen <ville.voutilainen@gmail.com>
2627 * include/Makefile.am: Add any and c++17_warning.h to exported headers.
2628 * include/Makefile.in: Likewise.
2629 * include/std/any: New.
2630 * testsuite/20_util/any/assign/1.cc: Likewise.
2631 * testsuite/20_util/any/assign/2.cc: Likewise.
2632 * testsuite/20_util/any/assign/self.cc: Likewise.
2633 * testsuite/20_util/any/cons/1.cc: Likewise.
2634 * testsuite/20_util/any/cons/2.cc: Likewise.
2635 * testsuite/20_util/any/cons/aligned.cc: Likewise.
2636 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
2637 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
2638 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
2639 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
2640 * testsuite/20_util/any/misc/swap.cc: Likewise.
2641 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2642 * testsuite/20_util/any/observers/type.cc: Likewise.
2643 * testsuite/20_util/any/typedefs.cc: Likewise.
2645 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2647 Add a new header for diagnosing the use of C++17 facilities
2649 * include/bits/c++17_warning.h: New.
2651 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2653 Implement LWG 2451, optional<T> should 'forward' T's
2654 implicit conversions.
2655 * include/experimental/optional (__is_optional_impl, __is_optional):
2657 (optional()): Make constexpr and default.
2658 (optional(_Up&&), optional(const optional<_Up>&),
2659 optional(optional<_Up>&& __t): New.
2660 (operator=(_Up&&)): Constrain.
2661 (operator=(const optional<_Up>&), operator=(optional<_Up>&&)): New.
2662 * testsuite/experimental/optional/cons/value.cc:
2663 Add tests for the functionality added by LWG 2451.
2664 * testsuite/experimental/optional/cons/value_neg.cc: New.
2666 2016-07-05 Ville Voutilainen <ville.voutilainen@gmail.com>
2669 any_cast doesn't work with rvalue reference targets and cannot
2670 move with a value target.
2671 * include/experimental/any (any(_ValueType&&)): Constrain and
2672 add an overload that doesn't forward.
2673 (any_cast(any&&)): Constrain and add an overload that moves.
2674 * testsuite/experimental/any/misc/any_cast.cc: Add tests for
2675 the functionality added by LWG 2509.
2677 2016-07-04 François Dumont <fdumont@gcc.gnu.org>
2679 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2681 * testsuite/23_containers/vector/modifiers/insert/self_insert.cc: New
2684 2016-07-04 Jonathan Wakely <jwakely@redhat.com>
2686 * include/bits/stl_vector.h (emplace(const_iterator, _Args&&...)):
2687 Define inline. Forward to _M_emplace_aux.
2688 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2689 (_M_insert_rval, _M_emplace_aux): Declare new functions.
2690 (_Temporary_value): New RAII type using allocator to construct/destroy.
2691 (_S_insert_aux_assign): Remove.
2692 (_M_insert_aux): Make non-variadic.
2693 * include/bits/vector.tcc (insert(const_iterator, const value_type&)):
2694 Use _Temporary_value.
2695 (emplace(const_iterator, _Args&&...)): Remove definition.
2696 (_M_insert_rval, _M_emplace_aux): Define.
2697 (_M_insert_aux): Make non-variadic, stop using _S_insert_aux_assign.
2698 (_M_fill_insert): Use _Temporary_value.
2699 * testsuite/23_containers/vector/allocator/construction.cc: New test.
2700 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2701 Adjust expected results for emplacing an lvalue with reallocation.
2702 * testsuite/23_containers/vector/check_construct_destroy.cc: Adjust
2703 expected results to account for construction/destruction of temporary
2705 * testsuite/backward/hash_set/check_construct_destroy.cc: Likewise.
2707 2016-07-04 Ville Voutilainen <ville.voutilainen@gmail.com>
2710 * src/filesystem/ops.cc (remove_all(const path&, error_code&)):
2711 Call remove_all for children of a directory.
2712 * testsuite/experimental/filesystem/operations/create_directories.cc:
2715 2016-07-02 François Dumont <fdumont@gcc.gnu.org>
2717 * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Adjust
2718 dg-error line numbers.
2719 * testsuite/23_containers/array/tuple_interface/
2720 tuple_element_debug_neg.cc: Likewise.
2721 * testsuite/25_algorithms/lexicographical_compare/debug/
2722 irreflexive_neg.cc: Remove.
2724 2016-06-30 Thomas Preud'homme <thomas.preudhomme@arm.com>
2726 * testsuite/29_atomics/atomic/65913.cc: Require atomic-builtins rather
2727 than specific target.
2729 2016-06-27 François Dumont <fdumont@gcc.gnu.org>
2732 * include/bits/hashtable.h: Remove _Unique_keya parameter in _Insert
2735 2016-06-23 François Dumont <fdumont@gcc.gnu.org>
2737 * include/debug/array (array<>::swap): Fix noexcept qualificaton for
2740 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2742 * configure.host: Remove mep-* support.
2744 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2746 * configure: Regenerate.
2747 * configure.host: Remove support for knetbsd.
2748 * crossconfig.m4: Likewise.
2750 2016-06-20 François Dumont <fdumont@gcc.gnu.org>
2753 * include/tr1/hashtable_policy.h
2754 (_Prime_rehash_policy::_M_next_bkt): Make past-the-end iterator
2755 dereferenceable to avoid check on lower_bound result.
2756 (_Prime_rehash_policy::_M_bkt_for_elements): Call latter.
2757 (_Prime_rehash_policy::_M_need_rehash): Likewise.
2758 * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
2759 Always return a value greater than input value. Set _M_next_resize to
2760 max value when reaching highest prime number.
2761 * src/shared/hashtable-aux.cc (__prime_list): Add comment about sentinel
2763 * testsuite/23_containers/unordered_set/hash_policy/71181.cc: New.
2764 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc
2766 * testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc: New.
2767 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
2770 2016-06-17 Jonathan Wakely <jwakely@redhat.com>
2773 * include/bits/stl_algobase.h (lower_bound, lexicographical_compare):
2774 Remove irreflexive checks.
2775 * include/bits/stl_algo.h (lower_bound, upper_bound, equal_range,
2776 binary_search): Likewise.
2777 * testsuite/25_algorithms/equal_range/partitioned.cc: New test.
2778 * testsuite/25_algorithms/lexicographical_compare/71545.cc: New test.
2779 * testsuite/25_algorithms/lower_bound/partitioned.cc: New test.
2780 * testsuite/25_algorithms/upper_bound/partitioned.cc: New test.
2781 * testsuite/util/testsuite_iterators.h (__gnu_test::test_container):
2782 Add constructor from array.
2784 2016-06-16 François Dumont <fdumont@gcc.gnu.org>
2786 * include/debug/debug.h
2787 (__glibcxx_requires_non_empty_range, __glibcxx_requires_nonempty)
2788 (__glibcxx_requires_subscript): Move...
2789 * include/debug/assertions.h: ...here and add __builtin_expect.
2790 (_GLIBCXX_DEBUG_ONLY): Remove ; value.
2791 * include/bits/stl_deque.h
2792 (std::deque<>::operator[]): Add __glibcxx_requires_subscript check.
2793 (std::deque<>::front()): Add __glibcxx_requires_nonempty check.
2794 (std::deque<>::back()): Likewise.
2795 (std::deque<>::pop_front()): Likewise.
2796 (std::deque<>::pop_back()): Likewise.
2797 (std::deque<>::swap(deque&)): Add allocator check.
2798 * include/bits/stl_vector.h
2799 (std::vector<>::operator[]): Add __glibcxx_requires_subscript check.
2800 (std::vector<>::front()): Add __glibcxx_requires_nonempty check.
2801 (std::vector<>::back()): Likewise.
2802 (std::vector<>::pop_back()): Likewise.
2803 (std::vector<>::swap(vector&)): Add allocator check.
2805 2016-06-16 Daniel Kruegler <daniel.kruegler@gmail.com>
2807 Provide swappable traits (p0185r1)
2808 * include/std/type_traits (is_swappable, is_nothrow_swappable,
2809 is_swappable_with, is_nothrow_swappable_with, is_swappable_v,
2810 is_nothrow_swappable_v, is_swappable_with_v,
2811 is_nothrow_swappable_with_v): New.
2812 * include/bits/stl_pair.h: Use it as per p0185r1.
2813 * include/bits/stl_queue.h: Likewise.
2814 * include/bits/stl_stack.h: Likewise.
2815 * include/bits/unique_ptr.h: Likewise.
2816 * include/std/tuple: Likewise.
2817 * include/std/array: Likewise. Fix zero-size member swap.
2818 * include/bits/hashtable.h: Use __and_.
2819 * testsuite/20_util/is_nothrow_swappable/requirements/
2820 explicit_instantiation.cc: Change test options to std=gnu++17.
2821 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
2823 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
2824 * testsuite/20_util/is_swappable/requirements/
2825 explicit_instantiation.cc: Likewise.
2826 * testsuite/20_util/is_swappable/requirements/typedefs.cc: Likewise.
2827 * testsuite/20_util/is_swappable/value.cc: Likewise.
2828 * testsuite/20_util/is_nothrow_swappable/requirements/
2829 explicit_instantiation_ext.cc: New.
2830 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs_ext.cc:
2832 * testsuite/20_util/is_nothrow_swappable/value.h: New.
2833 * testsuite/20_util/is_nothrow_swappable/value_ext.cc: New.
2834 * testsuite/20_util/is_nothrow_swappable_with/requirements/
2835 explicit_instantiation.cc: New.
2836 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
2838 * testsuite/20_util/is_nothrow_swappable_with/value.cc: New.
2839 * testsuite/20_util/is_swappable/requirements/
2840 explicit_instantiation_ext.cc: New.
2841 * testsuite/20_util/is_swappable/requirements/typedefs_ext.cc: New.
2842 * testsuite/20_util/is_swappable/value.h: New.
2843 * testsuite/20_util/is_swappable/value_ext.cc: New.
2844 * testsuite/20_util/is_swappable_with/requirements/
2845 explicit_instantiation.cc: New.
2846 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc: New.
2847 * testsuite/20_util/is_swappable_with/value.cc: New.
2848 * testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
2849 dg-error line numbers.
2850 * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
2853 2016-06-16 Jonathan Wakely <jwakely@redhat.com>
2855 * include/std/array: Remove trailing whitespace.
2856 * include/std/atomic: Likewise.
2857 * include/std/bitset: Likewise.
2858 * include/std/chrono: Likewise.
2859 * include/std/complex: Likewise.
2860 * include/std/condition_variable: Likewise.
2861 * include/std/fstream: Likewise.
2862 * include/std/functional: Likewise.
2863 * include/std/future: Likewise.
2864 * include/std/iomanip: Likewise.
2865 * include/std/iosfwd: Likewise.
2866 * include/std/istream: Likewise.
2867 * include/std/limits: Likewise.
2868 * include/std/ratio: Likewise.
2869 * include/std/scoped_allocator: Likewise.
2870 * include/std/sstream: Likewise.
2871 * include/std/stdexcept: Likewise.
2872 * include/std/string: Likewise.
2873 * include/std/system_error: Likewise.
2874 * include/std/thread: Likewise.
2875 * include/std/tuple: Likewise.
2876 * include/std/type_traits: Likewise.
2877 * include/std/utility: Likewise.
2878 * include/std/valarray: Likewise.
2879 * include/std/vector: Likewise.
2881 * include/bits/stl_vector.h (vector::_S_insert_aux_assign): Define
2882 new overloaded functions.
2883 * include/bits/vector.tcc (vector::_M_insert_aux): Use new functions
2884 to avoid creating a redundant temporary.
2885 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc: New
2888 2016-06-15 François Dumont <fdumont@gcc.gnu.org>
2890 * include/bits/stl_deque.h
2891 (std::deque<>::operator=): Call _M_assign_aux.
2892 (std::deque<>::assign(initializer_list<>)): Likewise.
2893 (std::deque<>::resize(size_t, const value_type&)): Call _M_fill_insert.
2894 (std::deque<>::insert(const_iterator, initializer_list<>)):
2895 Call _M_range_insert_aux.
2896 (std::deque<>::_M_assign_aux<It>(It, It, std::forward_iterator_tag):
2898 (std::deque<>::_M_fill_assign): Call _M_fill_insert.
2899 (std::deque<>::_M_move_assign2): Call _M_assign_aux.
2900 * include/bits/deque.tcc
2901 (std::deque<>::operator=): Call _M_range_insert_aux.
2902 (std::deque<>::_M_assign_aux<It>(It, It, std::input_iterator_tag)):
2904 * include/bits/stl_vector.h
2905 (std::vector<>::operator=): Call _M_assign_aux.
2906 (std::vector<>::assign(initializer_list<>)): Likewise.
2907 (std::vector<>::resize(size_t, const value_type&)): Call _M_fill_insert.
2908 (std::vector<>::insert(const_iterator, initializer_list<>)):
2909 Call _M_range_insert.
2910 * include/bits/vector.tcc (std::vector<>::_M_assign_aux): Likewise.
2912 2016-06-07 François Dumont <fdumont@gcc.gnu.org>
2914 * include/std/tuple (_Head_base<>): Default specialization condition at
2917 2016-06-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2919 Support allocators in tuples of zero size.
2920 * include/std/tuple (tuple<>::tuple(),
2921 tuple<>::tuple(allocator_arg_t, const _Alloc&),
2922 tuple<>::tuple(allocator_arg_t, const _Alloc&, const tuple&)): New.
2923 * testsuite/20_util/tuple/cons/allocators.cc: Adjust.
2925 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
2928 * src/filesystem/ops.cc (permissions(const path&, perms, error_code&)):
2929 Add or remove permissions according to perms argument.
2930 * testsuite/experimental/filesystem/operations/permissions.cc: New
2933 2016-06-05 Ville Voutilainen <ville.voutilainen@gmail.com>
2935 Protect allocator-overloads of tuple-from-tuple constructors
2936 from cases that would create dangling references.
2937 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2938 const tuple<_UElements...>&), tuple(allocator_arg_t, const _Alloc&,
2939 tuple<_UElements...>&&)): Add a check for _NonNestedTuple.
2940 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Adjust.
2942 2016-05-29 Gerald Pfeifer <gerald@pfeifer.com>
2944 * doc/xml/manual/backwards_compatibility.xml: Adjust
2945 lists.debian.org link to https.
2946 * doc/html/manual/backwards.html: Regenerate.
2948 2016-05-27 Jonathan Wakely <jwakely@redhat.com>
2950 * doc/xml/manual/abi.xml: Adjust URL to use https.
2951 * doc/html/manual/*: Regenerate.
2953 2016-05-27 Ville Voutilainen <ville.voutilainen@gmail.com>
2956 * include/std/tuple (_TMC): Add a check for _NotSameTuple.
2957 * include/std/tuple (tuple(_UElements&&...)): Remove the separate
2958 check for _NotSameTuple.
2959 * include/std/tuple (_TMCT): New.
2960 * include/std/tuple (tuple(const tuple<_UElements...>&)): Use it.
2961 * include/std/tuple (tuple(tuple<_UElements...>&&)): Likewise.
2962 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2963 const tuple<_UElements...>&)): Likewise.
2964 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2965 tuple<_UElements...>&&)): Likewise.
2966 * testsuite/20_util/tuple/cons/66338.cc: New.
2968 2016-05-25 Jonathan Wakely <jwakely@redhat.com>
2970 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Fix test for sendfile.
2971 * configure: Regenerate.
2972 * config.h.in: Regenerate.
2974 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): Remove it.
2975 * include/bits/hashtable_policy.h (_Power2_rehash_policy::_M_next_bkt):
2976 Remove const qualification on function. Replace
2977 _GLIBCXX14_USE_CONSTEXPR on automatic variables with const.
2978 (_Power2_rehash_policy::_M_need_rehash): Remove const qualification.
2979 (_Power2_rehash_policy::_M_next_bkt): Remove mutable specifier.
2981 2016-05-24 François Dumont <fdumont@gcc.gnu.org>
2983 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): New.
2984 * include/bits/hashtable_policy.h
2985 (_Prime_rehash_policy::__has_load_factor): New. Mark rehash policy
2986 having load factor management.
2987 (_Mask_range_hashing): New.
2989 (_Power2_rehash_policy): New.
2990 (_Inserts<>): Remove last template parameter, _Unique_keys, so that
2991 partial specializations only depend on whether iterators are constant
2993 * testsuite/23_containers/unordered_set/hash_policy/26132.cc: Adapt to
2994 test new hash policy.
2995 * testsuite/23_containers/unordered_set/hash_policy/load_factor.cc:
2997 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
2999 * testsuite/23_containers/unordered_set/insert/hash_policy.cc:
3001 * testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
3003 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc:
3005 * testsuite/performance/23_containers/insert/54075.cc: Add benchmark
3006 using the new hash policy.
3007 * testsuite/performance/23_containers/insert_erase/41975.cc: Likewise.
3009 2016-05-24 Jonathan Wakely <jwakely@redhat.com>
3011 * include/bits/stl_queue.h (priority_queue::value_compare): Define.
3013 2016-05-23 François Dumont <fdumont@gcc.gnu.org>
3015 * include/debug/safe_iterator.h
3016 (_Safe_iterator<>::operator->()): Implement using underlying iterator
3018 * include/debug/safe_local_iterator.h
3019 (_Safe_local_iterator<>::operator->()): Likewise.
3021 2016-05-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
3023 * testsuite/experimental/memory_resource/1.cc: Add required argument
3024 to dg-require-atomic-builtins.
3026 2016-05-13 Jonathan Wakely <jwakely@redhat.com>
3029 * include/debug/bitset: Add #pragma GCC system_header.
3030 * include/debug/deque: Likewise.
3031 * include/debug/list: Likewise.
3032 * include/debug/map: Likewise.
3033 * include/debug/set: Likewise.
3034 * include/debug/string: Likewise.
3035 * include/debug/unordered_map: Likewise.
3036 * include/debug/unordered_set: Likewise.
3037 * include/debug/vector: Likewise.
3038 * include/debug/functions.h: Adjust whitespace.
3040 2016-05-12 Jonathan Wakely <jwakely@redhat.com>
3043 * testsuite/experimental/memory_resource/1.cc: Require atomics.
3045 2016-05-11 Jonathan Wakely <jwakely@redhat.com>
3048 * src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_DUAL_ABI]: Don't define
3049 exception constructors with __sso_string parameters.
3051 2016-05-10 Jonathan Wakely <jwakely@redhat.com>
3053 * include/experimental/bits/fs_dir.h (begin, end): Add noexcept.
3054 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
3055 Test begin and end functions.
3056 * testsuite/experimental/filesystem/iterators/
3057 recursive_directory_iterator.cc: Likewise.
3060 * src/filesystem/ops.cc (do_copy_file): Fix backwards conditions.
3061 * testsuite/experimental/filesystem/operations/copy_file.cc: New test.
3063 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
3064 Overload operator* to move from rvalues.
3067 * src/filesystem/ops.cc (create_dir): Handle EEXIST from mkdir.
3068 * testsuite/experimental/filesystem/operations/create_directory.cc:
3072 * src/filesystem/ops.cc (canonical(const path&, const path&)): Add
3073 base path to exception.
3074 * testsuite/experimental/filesystem/operations/canonical.cc: Test
3075 paths contained in exception.
3077 * testsuite/experimental/type_erased_allocator/2.cc: Remove unused
3081 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
3083 (directory_iterator::operator++(int)): Return proxy.
3084 (recursive_directory_iterator::operator++(int)): Likewise.
3085 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
3086 Test post-increment.
3087 * testsuite/experimental/filesystem/iterators/
3088 recursive_directory_iterator.cc: Likewise.
3090 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
3093 * testsuite/experimental/filesystem/iterators/
3094 recursive_directory_iterator.cc: Fix test02 to not call member
3095 functions on invalid iterator, and use VERIFY not assert.
3097 2016-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
3099 Avoid endless run-time recursion for copying single-element
3100 tuples where the element type is by-value constructible
3102 * include/std/tuple (_NotSameTuple): New.
3103 * include/std/tuple (tuple(_UElements&&...): Use it.
3104 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc: New.
3106 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
3109 * include/experimental/bits/fs_dir.h (recursive_directory_iterator):
3110 Initialize scalar member variables in default constructor.
3111 * testsuite/experimental/filesystem/iterators/
3112 recursive_directory_iterator.cc: Test default construction.
3114 2016-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3116 * testsuite/lib/libstdc++.exp (libstdc++_init): Enable on *-*-solaris*.
3118 2016-05-05 Jonathan Wakely <jwakely@redhat.com>
3120 * testsuite/experimental/filesystem/path/native/string.cc: Add
3121 dg-require-filesystem-ts directive.
3123 2016-05-04 Jonathan Wakely <jwakely@redhat.com>
3126 * include/experimental/memory_resource
3127 (__resource_adaptor_imp::do_allocate): Do not default-construct
3129 (__resource_adaptor_imp::do_deallocate): Likewise. Use
3130 allocator_traits to get pointer type.
3131 (__null_memory_resource::do_allocate): Remove unused parameters.
3132 (__null_memory_resource::do_deallocate): Likewise.
3133 (__null_memory_resource::do_is_equal): Likewise. Add return statement.
3134 * testsuite/experimental/type_erased_allocator/1.cc: Combine with ...
3135 * testsuite/experimental/type_erased_allocator/1_neg.cc: This, and
3137 * testsuite/experimental/memory_resource/1.cc: Here.
3138 * testsuite/experimental/memory_resource/null_memory_resource.cc: New.
3139 * testsuite/experimental/memory_resource/resource_adaptor.cc: New.
3141 2016-04-29 Chris Gregory <czipperz@gmail.com>
3143 * config/*: Remove trailing whitespace.
3145 * testsuite/tr1/*: Likewise.
3146 * testsuite/util/*: Likewise.
3148 2016-04-28 Jonathan Wakely <jwakely@redhat.com>
3151 * include/bits/basic_ios.tcc (basic_ios::_M_cache_locale): Use
3153 * include/bits/stream_iterator.h (istream_iterator, ostream_iterator):
3155 * include/std/atomic (atomic<_Tp>): Likewise.
3156 * include/std/shared_mutex (shared_lock): Likewise.
3157 * testsuite/24_iterators/istream_iterator/70766.cc: New test.
3158 * testsuite/24_iterators/ostream_iterator/70766.cc : New test.
3159 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
3160 * testsuite/29_atomics/atomic/70766.cc: New test.
3161 * testsuite/30_threads/shared_lock/70766.cc: New test.
3163 * include/bits/hashtable_policy.h (__detail::_Insert_base,
3164 __detail::_Insert): Improve comments.
3166 2016-04-27 Jonathan Wakely <jwakely@redhat.com>
3169 * include/std/limits: Update comments about DRs.
3170 (numeric_limits<const _Tp>, numeric_limits<volatile _Tp>,
3171 numeric_limits<const volatile _Tp>): Define unconditionally.
3173 2016-04-24 Jonathan Wakely <jwakely@redhat.com>
3176 * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path): Use
3177 static counter to return a different path on every call.
3179 2016-04-22 Tim Shen <timshen@google.com>
3182 * include/bits/regex_executor.tcc (_Executor<>::_M_word_boundary):
3183 Fix the match_not_bow and match_not_eow behavior.
3184 * testsuite/28_regex/regression.cc: Add testcase.
3186 2016-04-20 Jonathan Wakely <jwakely@redhat.com>
3189 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in,
3190 __codecvt_utf8_utf16_base<char16_t>::do_in): Fix mask operations.
3192 2016-04-19 Jonathan Wakely <jwakely@redhat.com>
3195 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in):
3196 Override endianness bit in mode.
3197 * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: New test.
3198 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc: Test
3199 that little_endian mode is ignored.
3200 * testsuite/experimental/filesystem/path/native/string.cc: New test.
3203 * src/filesystem/ops.cc (close_fd): New function.
3204 (do_copy_file): Set permissions before copying file contents. Check
3205 result of closing file descriptors. Don't copy streambuf when file
3207 (copy(const path&, const path&, copy_options, error_code&)): Use
3208 lstat for source file when copy_symlinks is set.
3209 * testsuite/experimental/filesystem/operations/copy.cc: Test copy().
3211 * include/experimental/bits/fs_fwd.h (operator&, operator|, operator^,
3212 operator~ operator&=, operator|=, operator^=): Add noexcept to
3213 overloaded operators for copy_options, perms and directory_options.
3214 * src/filesystem/ops.cc (make_file_type, make_file_status,
3215 is_not_found_errno, file_time): Add noexcept.
3217 2016-04-19 Edward Smith-Rowland <3dw4rd@verizon.net>
3219 * include/bits/c++14_warning.h: Do not refer C++14 as experimental.
3221 2016-04-18 Jonathan Wakely <jwakely@redhat.com>
3224 * include/bits/random.h: Reword static assertion messages to state
3225 positive conditions.
3226 * include/bits/random.tcc: Likewise.
3227 * include/bits/uniform_int_dist.h: Likewise.
3228 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3231 * include/std/function (_Bind, _Bind_result): Remove unused typedefs.
3233 * config/cpu/sh/atomicity.h: Fix typo in comment.
3236 * include/std/thread (operator<, operator==): Move definitions to
3238 * testsuite/30_threads/thread/id/70294.cc: New test.
3240 * testsuite/18_support/bad_exception/23591_thread-1.c: Add
3241 -Wno-pedantic to dg-options.
3242 * testsuite/20_util/align/2.cc: Use type as operand of alignof.
3243 * testsuite/20_util/is_floating_point/value.cc: Add -Wno-pedantic
3245 * testsuite/20_util/specialized_algorithms/uninitialized_fill/32158.cc:
3246 Remove extra semi-colon.
3247 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
3248 Always supply second argument to static_assert.
3249 * testsuite/25_algorithms/lower_bound/no_operator_ne.cc: Remove extra
3251 * testsuite/26_numerics/complex/c99.cc: Add -Wno-pedantic to
3253 * testsuite/26_numerics/complex/literals/values.cc: Likewise.
3254 * testsuite/29_atomics/atomic/60695.cc: Likewise.
3255 * testsuite/29_atomics/atomic/62259.cc: use __alignof__ instead of
3256 alignof when operand is an object not a type.
3257 * testsuite/decimal/ctor.cc: Add -Wno-pedantic to dg-options.
3258 * testsuite/decimal/make-decimal.cc: Likewise.
3259 * testsuite/experimental/type_traits/value.cc: Always supply second
3260 argument to static_assert.
3261 * testsuite/util/testsuite_common_types.h: Use __extension__ for
3264 * testsuite/experimental/type_erased_allocator/1.cc: Don't include
3266 * testsuite/experimental/type_erased_allocator/1_neg.cc: Likewise.
3267 * testsuite/experimental/type_erased_allocator/2.cc: Likewise.
3268 * testsuite/experimental/type_erased_allocator/uses_allocator.cc:
3269 Likewise. Add licence and change to compile-only test.
3271 * include/bits/locale_facets.h (ctype::do_narrow): Add attribute to
3273 * include/bits/regex_automaton.h (_NFA::_M_insert_alt): Likewise.
3275 * include/ext/string_conversions.h (__stoa): Avoid -Wsign-compare
3278 2016-04-17 Edward Smith-Rowland <3dw4rd@verizon.net>
3280 * include/bits/specfun.h: Trivial comment misspelling.
3282 2016-04-14 Jason Merrill <jason@redhat.com>
3284 Revert Jonathan's empty ABI change from yesterday.
3286 2016-04-13 Martin Sebor <msebor@redhat.com>
3289 * testsuite/25_algorithms/rotate/moveable2.cc: Make sure VLA
3290 upper bound is positive.
3292 2016-04-13 Jonathan Wakely <jwakely@redhat.com>
3294 * include/bits/c++config (_GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES,
3295 _GLIBCXX_END_NAMESPACE_EMPTY_TYPES, _GLIBCXX_ABI_TAG_EMPTY): Define.
3296 * include/bits/hashtable.h (_Hashtable::_M_emplace): Change signatures
3297 of functions taking empty structs by value. Add a template parameter
3298 to overloads without hints. Rename overloads with hints to
3300 (_Hashtable::_M_erase(true_type, const_iterator),
3301 _Hashtable::_M_erase(false_type, const_iterator)): Change signatures
3302 by reordering parameters.
3303 * include/bits/hashtable_policy.h (_Insert::insert): Adjust to call
3304 _M_emplace_hint instead of _M_emplace.
3305 * include/bits/shared_ptr.h (shared_ptr(_Tp1*, _Deleter, _Alloc),
3306 shared_ptr(nullptr_t, _Deleter, _Alloc)): Use _GLIBCXX_ABI_TAG_EMPTY.
3307 * include/bits/shared_ptr_base.h (_Sp_counted_deleter, __shared_count,
3308 __shared_ptr): Likewise.
3309 * include/bits/stl_algo.h (replace_if): Likewise.
3310 * include/bits/stl_pair.h (piecewise_construct_t,
3311 piecewise_construct): Use _GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES.
3312 * include/bits/uses_allocator.h (allocator_arg_t, allocator_arg,
3313 __uses_alloc0): Likewise.
3314 * include/ext/pb_ds/assoc_container.hpp (basic_hash_table): Likewise.
3315 * testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error.
3316 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
3317 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
3318 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
3319 * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
3320 * testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.
3322 2016-04-12 Edward Smith-Rowland <3dw4rd@verizon.net>
3324 Document C++17/TR29124 C++ Special Math Functions.
3325 * include/bits/specfun.h: Add Doxygen markup.
3327 2016-04-07 Jonathan Wakely <jwakely@redhat.com>
3329 * testsuite/30_threads/thread/70503.cc: Adjust from xfail to pass.
3331 2016-04-06 Eric Botcazou <ebotcazou@adacore.com>
3333 * src/Makefile.am (libstdc++-symbols.ver): Remove useless /dev/null.
3334 * src/Makefile.in: Regenerate.
3336 2016-04-05 Jonathan Wakely <jwakely@redhat.com>
3339 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Don't test
3340 __atomic_fetch_add for bool.
3341 * configure: Regenerate.
3343 * testsuite/30_threads/thread/70503.cc: Require -static to work.
3346 * src/c++11/thread.cc (execute_native_thread_routine,
3347 execute_native_thread_routine_compat): Give internal linkage.
3348 * testsuite/30_threads/thread/70503.cc: New test.
3350 2016-04-05 Ville Voutilainen <ville.voutilainen@gmail.com>
3353 * include/bits/stl_pair.h (_ConstructiblePair,
3354 _ImplicitlyConvertiblePair, _MoveConstructiblePair,
3355 _ImplicitlyMoveConvertiblePair): Add shortcut conditions
3356 for same-type cases.
3357 * testsuite/20_util/pair/70437.cc: New.
3359 2016-03-24 Jonathan Wakely <jwakely@redhat.com>
3362 * config/abi/pre/gnu.ver: Add new symbol.
3363 * libsupc++/eh_alloc.cc (__gnu_cxx::__freeres): Define.
3364 * testsuite/18_support/free_eh_pool.cc: New test.
3366 2016-03-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
3368 * include/Makefile.am (install-freestanding-headers): Add
3369 concept_check.h and move.h to the installed headers.
3370 * include/Makefile.in: Regenerated.
3371 * include/bits/concept_check.h: Ignore _GLIBCXX_CONCEPT_CHECKS for
3372 freestanding implementations.
3373 * doc/xml/manual/using.xml (_GLIBCXX_CONCEPT_CHECKS): Mention
3374 that this macro has no effect for freestanding implementations.
3375 * doc/html/manual/using_macros.html: Likewise.
3377 2016-02-24 Jonathan Wakely <jwakely@redhat.com>
3380 * include/experimental/tuple (__apply_impl): Qualify get and forward.
3382 2016-02-23 Jonathan Wakely <jwakely@redhat.com>
3384 * doc/xml/manual/using.xml: Document __STDCPP_WANT_MATH_SPEC_FUNCS__.
3385 * doc/html/*: Regenerate.
3388 * include/tr1/cmath (acosh, asinh, atanh, cbrt, copysign, erf, erfc,
3389 exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma, llrint,
3390 llround, log1p, log2, logb, lrint, lround, nan, nearbyint, nextafter,
3391 nexttoward, remainder, remquo, rint, round, scalbln, scalbn, tgamma,
3392 trunc) [__cplusplus >= 201103L]: Import from namespace std.
3393 (fabs) [__cplusplus < 201103L]: Import from namespace std.
3394 * include/tr1/complex (acosh, asinh, atanh) [__cplusplus >= 201103L]:
3396 * testsuite/tr1/headers/c++200x/complex.cc: Add std::fabs to global
3397 namespace before including TR1 headers.
3398 * testsuite/tr1/headers/c++200x/math.cc: New test.
3400 2016-02-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
3403 * include/c_global/cstdarg: Undefine __need___va_list.
3404 * include/c_global/cstddef: Undefine all kinds of __need_*.
3406 2016-02-16 Tim Shen <timshen@google.com>
3409 * include/bits/regex_scanner.h: Add different special character
3410 sets for grep and egrep regex.
3411 * include/bits/regex_scanner.tcc: Use _M_spec_char more uniformly.
3412 * testsuite/28_regex/regression.cc: Add new testcase.
3414 2016-02-08 Jonathan Wakely <jwakely@redhat.com>
3416 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Remove accidentally
3417 added 'constexpr' in previous commit.
3418 * configure: Regenerate.
3421 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Enable isinf and isnan
3422 checks for all targets except *-*-solaris2.* and ensure we find the
3423 libc math.h header not our own.
3424 * configure: Regenerate.
3426 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
3428 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt (FUNC):
3429 New file. Copied over from s390-linux-gnu.
3431 2016-02-04 Jonathan Wakely <jwakely@redhat.com>
3434 * acinclude.m4 (GLIBCXX_ENABLE_C99): Check C99 stdlib.h functions
3435 with -std=c++98 and define _GLIBCXX98_USE_C99_STDLIB.
3436 * config.h.in: Regenerate.
3437 * configure: Regenerate.
3438 * testsuite/21_strings/c_strings/char/69626.cc: New.
3440 * doc/html/index.html: Regenerate.
3442 * doc/xml/manual/containers.xml: Add cross-reference to Dual ABI.
3443 * doc/xml/manual/spine.xml: Update copyright years and author blurb.
3444 * doc/html/*: Regenerate.
3446 2016-02-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
3449 * include/c_compatibility/math.h: Move header guards.
3450 * include/c_compatibility/stdlib.h: Likewise.
3452 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
3455 * config/os/newlib/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3457 2016-01-28 John David Anglin <danglin@gcc.gnu.org>
3460 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Split check for obsolete
3461 isinf and isnan functions into two independent checks. Check on hpux.
3462 * config.h.in: Regenerate.
3463 * configure: Regenerate.
3464 * include/c_global/cmath (isinf(double), isnan(double)): Use
3465 _GLIBCXX_HAVE_OBSOLETE_ISINF and _GLIBCXX_HAVE_OBSOLETE_ISNAN,
3468 2016-01-27 Jakub Jelinek <jakub@redhat.com>
3470 * testsuite/libstdc++-prettyprinters/whatis.cc: Include <random>.
3472 2016-01-27 Jonathan Wakely <jwakely@redhat.com>
3475 * testsuite/ext/special_functions/hyperg/check_value.cc: Use
3476 -ffp-contract=off, and -ffloat-store to disable excess precision.
3477 * testsuite/special_functions/02_assoc_legendre/check_value.cc: Use
3480 2016-01-26 Jonathan Wakely <jwakely@redhat.com>
3483 * include/bits/stl_algobase.h (__copy_move<_IsMove, true,
3484 random_access_iterator_tag>): Check is_move_assignable when moving.
3485 (__copy_move_backwards<_IsMove, true, random_access_iterator_tag>):
3487 * testsuite/25_algorithms/copy/move_iterators/69478.cc: New.
3488 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc: New.
3489 * testsuite/25_algorithms/move/69478.cc: New.
3490 * testsuite/25_algorithms/move_backward/69478.cc: new.
3492 2016-01-26 Andris Pavenis <andris.pavenis@iki.fi>
3494 * include/c_compatibility/stdlib.h: Include wide character related
3495 definitions only when they are available in cstdlib.
3497 2016-01-25 Jonathan Wakely <jwakely@redhat.com>
3500 * include/Makefile.am: Add new header.
3501 * include/Makefile.in: Regenerate.
3502 * include/bits/random.h (uniform_int_distribution): Move to
3503 bits/uniform_int_dist.h.
3504 * include/bits/random.tcc (uniform_int_distribution::operator(),
3505 uniform_int_distribution::__generate_impl): Likewise.
3506 * include/bits/uniform_int_dist.h: New header.
3507 * include/bits/stl_algo.h [__cplusplus >= 201103L]: Include
3508 <bits/uniform_int_dist.h> instead of <random>.
3509 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
3510 move_iterators/1.cc: Include correct header for uninitialized_copy.
3511 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
3512 move_iterators/1.cc: Likewise.
3513 * testsuite/25_algorithms/nth_element/58800.cc: Include correct
3515 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lines.
3517 2016-01-23 John David Anglin <danglin@gcc.gnu.org>
3520 * config/os/hpux/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3522 2016-01-22 Edward Smith-Rowland <3dw4rd@verizon.net>
3524 TR29124 C++ Special Math - <math.h> pulls funcs into global namespace.
3525 * include/c_compatibility/math.h: Import the TR29124 functions
3526 into the global namespace.
3527 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: Remove
3528 xfail and make compile-only.
3529 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: Ditto.
3530 * testsuite/special_functions/03_beta/compile_2.cc: Ditto.
3531 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Ditto.
3532 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Ditto.
3533 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Ditto.
3534 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Ditto.
3535 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Ditto.
3536 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Ditto.
3537 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Ditto.
3538 * testsuite/special_functions/11_ellint_1/compile_2.cc: Ditto.
3539 * testsuite/special_functions/12_ellint_2/compile_2.cc: Ditto.
3540 * testsuite/special_functions/13_ellint_3/compile_2.cc: Ditto.
3541 * testsuite/special_functions/14_expint/compile_2.cc: Ditto.
3542 * testsuite/special_functions/15_hermite/compile_2.cc: Ditto.
3543 * testsuite/special_functions/16_laguerre/compile_2.cc: Ditto.
3544 * testsuite/special_functions/17_legendre/compile_2.cc: Ditto.
3545 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Ditto.
3546 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Ditto.
3547 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Ditto.
3548 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Ditto.
3550 2016-01-22 Jonathan Wakely <jwakely@redhat.com>
3553 * include/bits/valarray_before.h (__fun, __fun_with_valarray): Only
3554 define result_type for types which can be safely used with valarrays.
3555 * testsuite/26_numerics/valarray/69116.cc: New.
3558 * config/os/gnu-linux/os_defines.h: Define
3559 _GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC.
3560 * include/c_global/cmath (isinf, isnan): Check it.
3561 * doc/xml/manual/internals.xml: Document it.
3562 * doc/html/*: Regenerate.
3564 2016-01-21 Jonathan Wakely <jwakely@redhat.com>
3567 * include/bits/cpp_type_traits.h: Ensure C++ language linkage.
3568 * include/ext/type_traits.h: Likewise.
3569 * testsuite/17_intro/headers/c++2011/linkage.cc: Check autoconf macros
3570 for presence of C headers.
3571 * testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Adjust
3572 dg-error line number.
3573 * testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise.
3574 * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise.
3575 * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Likewise.
3577 2016-01-20 Torvald Riegel <triegel@redhat.com>
3580 * config/os/bsd/darwin/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3582 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
3585 * include/c_compatibility/math.h (acosh, asinh, atanh, acbrt,
3586 copysign, erf, erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb,
3587 lgamma, llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
3588 nextafter, nexttoward, remainder, remquo, rint, round, scalbln, scalbn,
3589 tgamma, trunc) [__cplusplus >= 201103L && _GLIBCXX_USE_C99_MATH_TR1]:
3590 Add using declarations.
3591 * testsuite/26_numerics/headers/cmath/60401.cc: New.
3594 * include/c_global/ccomplex: Ensure C++ language linkage.
3595 * include/c_global/cmath: Likewise.
3596 * include/c_global/cstdlib: Likewise.
3597 * include/c_global/ctgmath: Likewise.
3598 * testsuite/17_intro/headers/c++2011/linkage.cc: New.
3600 2016-01-19 Jonathan Wakely <jwakely@redhat.com>
3604 * include/Makefile.am: Use c_compatibility math.h and stdlib.h for
3605 --enable-cheaders=c_global configs.
3606 * include/Makefile.in: Regenerate.
3607 * include/c_compatibility/math.h: Remove obsolete _GLIBCXX_NAMESPACE_C
3608 test and allow inclusion from C files.
3609 * include/c_compatibility/stdlib.h: Likewise. Support freestanding.
3610 (at_quick_exit, quick_exit): Add using directives.
3611 * include/c_global/cmath: Use #include_next for math.h.
3612 * include/c_global/cstdlib: Use #include_next for stdlib.h.
3613 * testsuite/26_numerics/headers/cmath/14608.cc: New.
3614 * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
3615 Remove xfail for most targets.
3616 * testsuite/26_numerics/headers/cstdlib/60401.cc: New.
3618 2016-01-18 Torvald Riegel <triegel@redhat.com>
3620 * include/bits/c++config (_GLIBCXX_USE_WEAK_REF): New.
3621 (_GLIBCXX_TXN_SAFE, _GLIBCXX_TXN_SAFE_DYN): Use _GLIBCXX_USE_WEAK_REF
3622 and move after its definition.
3623 * config/os/aix/os_defines.h (_GLIBCXX_USE_WEAK_REF): Override.
3624 * src/c++11/cow-stdexcept.cc: Use _GLIBCXX_USE_WEAK_REF instead of
3625 __GXX_WEAK__, and only provide transactional clones if
3626 _GLIBCXX_USE_WEAK_REF is true. Don't provide stubs of libitm
3629 2016-01-18 Jonathan Wakely <jwakely@redhat.com>
3632 * testsuite/26_numerics/headers/cmath/60637.cc: Add test.
3635 * include/std/functional (_Function_base::_M_not_empty_function):
3636 Change overloads for pointers to take arguments by value.
3637 * testsuite/20_util/function/cons/57465.cc: Add tests for
3638 pointer-to-member cases.
3641 * src/c++11/cow-stdexcept.cc (_txnal_cow_string_C1_for_exceptions):
3642 Use macros for exception handling and fix unused parameter warning.
3644 2016-01-17 John David Anglin <danglin@gcc.gnu.org>
3647 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
3649 2016-01-17 Torvald Riegel <triegel@redhat.com>
3651 * src/c++11/cow-stdexcept.cc (txnal_read_ptr): Fix static_assert.
3653 2016-01-16 H.J. Lu <hongjiu.lu@intel.com>
3655 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Add
3658 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
3661 * include/bits/uses_allocator.h (__uses_alloc<true, ...>): Add
3662 static assertion that type is constructible from the arguments.
3663 * testsuite/20_util/scoped_allocator/69293_neg.cc: New.
3664 * testsuite/20_util/uses_allocator/69293_neg.cc: New.
3665 * testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error.
3668 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
3669 and isnan on AIX. Quote variables.
3670 * configure: Regenerate.
3672 2016-01-15 Torvald Riegel <triegel@redhat.com>
3674 * include/bits/basic_string.h (basic_string): Declare friends.
3675 * include/bits/c++config (_GLIBCXX_TXN_SAFE,
3676 _GLIBCXX_TXN_SAFE_DYN, _GLIBCXX_USE_ALLOCATOR_NEW): New.
3677 * include/std/stdexcept (logic_error, domain_error, invalid_argument,
3678 length_error, out_of_range, runtime_error, range_error,
3679 underflow_error, overflow_error): Declare members as transaction-safe.
3680 (logic_error, runtime_error): Declare friend functions.
3681 * libsupc++/exception (exception, bad_exception): Declare members as
3683 * src/c++11/cow-stdexcept.cc: Define transactional clones for the
3684 transaction-safe members of exceptions and helper functions.
3685 * libsupc++/eh_exception.cc: Adjust and define transactional clones.
3686 * config/abi/pre/gnu.ver (GLIBCXX_3.4.22) Add transactional clones.
3687 (CXXABI_1.3.10): New.
3688 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): New.
3689 (GLIBCXX_ENABLE_ALLOCATOR): Set ENABLE_ALLOCATOR_NEW.
3690 * configure.ac: Call GLIBCXX_CHECK_SIZE_T_MANGLING.
3691 * include/Makefile.am: Write ENABLE_ALLOCATOR_NEW to c++config.h.
3692 * include/Makefile.in: Regenerate.
3693 * config.h.in: Regenerate.
3694 * configure: Regenerate.
3695 * testsuite/util/testsuite_abi.cc (check_version): Add CXXABI_1.3.10.
3697 2016-01-15 Steve Ellcey <sellcey@imgtec.com>
3699 * include/ext/random.tcc: Use __builtin_isfinite instead of
3702 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
3704 * include/bits/std_mutex.h: Fix Doxygen @file name.
3706 2016-01-14 Edward Smith-Rowland <3dw4rd@verizon.net>
3707 Jonathan Wakely <jwakely@redhat.com>
3708 Florian Goth <CaptainSifff@gmx.de>
3710 Implement TR29124 C++ special Math Functions.
3711 * include/Makefile.am: Add new headers.
3712 * include/Makefile.in: Regenerate.
3713 * include/bits/specfun.h: New.
3714 * include/c_global/cmath: Adjust for both tr1 and tr29124 maths.
3715 * include/tr1/bessel_function.tcc: Ditto.
3716 * include/tr1/beta_function.tcc: Ditto.
3717 * include/tr1/cmath: Ditto.
3718 * include/tr1/ell_integral.tcc: Ditto.
3719 * include/tr1/exp_integral.tcc: Ditto.
3720 * include/tr1/gamma.tcc: Ditto.
3721 * include/tr1/hypergeometric.tcc: Ditto.
3722 * include/tr1/legendre_function.tcc: Ditto.
3723 * include/tr1/modified_bessel_func.tcc: Ditto.
3724 * include/tr1/poly_hermite.tcc: Ditto.
3725 * include/tr1/poly_laguerre.tcc: Ditto.
3726 * include/tr1/riemann_zeta.tcc: Ditto.
3727 * include/tr1/special_function_util.h: Ditto.
3728 * testsuite/ext/special_functions/conf_hyperg: New.
3729 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: New.
3730 * testsuite/ext/special_functions/conf_hyperg/check_value.cc: New.
3731 * testsuite/ext/special_functions/conf_hyperg/compile.cc: New.
3732 * testsuite/ext/special_functions/hyperg: New.
3733 * testsuite/ext/special_functions/hyperg/check_nan.cc: New.
3734 * testsuite/ext/special_functions/hyperg/check_value.cc: New.
3735 * testsuite/ext/special_functions/hyperg/compile.cc: New.
3736 * testsuite/libstdc++-dg/conformance.exp: Add special_functions directory.
3737 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc: New.
3738 * testsuite/special_functions/01_assoc_laguerre/check_value.cc: New.
3739 * testsuite/special_functions/01_assoc_laguerre/compile.cc: New.
3740 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: New.
3741 * testsuite/special_functions/02_assoc_legendre/check_nan.cc: New.
3742 * testsuite/special_functions/02_assoc_legendre/check_value.cc: New.
3743 * testsuite/special_functions/02_assoc_legendre/compile.cc: New.
3744 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: New.
3745 * testsuite/special_functions/03_beta/check_nan.cc: New.
3746 * testsuite/special_functions/03_beta/check_value.cc: New.
3747 * testsuite/special_functions/03_beta/compile.cc: New.
3748 * testsuite/special_functions/03_beta/compile_2.cc: New.
3749 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: New.
3750 * testsuite/special_functions/04_comp_ellint_1/check_value.cc: New.
3751 * testsuite/special_functions/04_comp_ellint_1/compile.cc: New.
3752 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: New.
3753 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: New.
3754 * testsuite/special_functions/05_comp_ellint_2/check_value.cc: New.
3755 * testsuite/special_functions/05_comp_ellint_2/compile.cc: New.
3756 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: New.
3757 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: New.
3758 * testsuite/special_functions/06_comp_ellint_3/check_value.cc: New.
3759 * testsuite/special_functions/06_comp_ellint_3/compile.cc: New.
3760 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: New.
3761 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: New.
3762 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc: New.
3763 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: New.
3764 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: New.
3765 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: New.
3766 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: New.
3767 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: New.
3768 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: New.
3769 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: New.
3770 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: New.
3771 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc: New.
3772 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: New.
3773 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: New.
3774 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: New.
3775 * testsuite/special_functions/10_cyl_neumann/check_value.cc: New.
3776 * testsuite/special_functions/10_cyl_neumann/compile.cc: New.
3777 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: New.
3778 * testsuite/special_functions/11_ellint_1/check_nan.cc: New.
3779 * testsuite/special_functions/11_ellint_1/check_value.cc: New.
3780 * testsuite/special_functions/11_ellint_1/compile.cc: New.
3781 * testsuite/special_functions/11_ellint_1/compile_2.cc: New.
3782 * testsuite/special_functions/12_ellint_2/check_nan.cc: New.
3783 * testsuite/special_functions/12_ellint_2/check_value.cc: New.
3784 * testsuite/special_functions/12_ellint_2/compile.cc: New.
3785 * testsuite/special_functions/12_ellint_2/compile_2.cc: New.
3786 * testsuite/special_functions/13_ellint_3/check_nan.cc: New.
3787 * testsuite/special_functions/13_ellint_3/check_value.cc: New.
3788 * testsuite/special_functions/13_ellint_3/compile.cc: New.
3789 * testsuite/special_functions/13_ellint_3/compile_2.cc: New.
3790 * testsuite/special_functions/14_expint/check_nan.cc: New.
3791 * testsuite/special_functions/14_expint/check_value.cc: New.
3792 * testsuite/special_functions/14_expint/compile.cc: New.
3793 * testsuite/special_functions/14_expint/compile_2.cc: New.
3794 * testsuite/special_functions/15_hermite/check_nan.cc: New.
3795 * testsuite/special_functions/15_hermite/check_value.cc: New.
3796 * testsuite/special_functions/15_hermite/compile.cc: New.
3797 * testsuite/special_functions/15_hermite/compile_2.cc: New.
3798 * testsuite/special_functions/16_laguerre/check_nan.cc: New.
3799 * testsuite/special_functions/16_laguerre/check_value.cc: New.
3800 * testsuite/special_functions/16_laguerre/compile.cc: New.
3801 * testsuite/special_functions/16_laguerre/compile_2.cc: New.
3802 * testsuite/special_functions/17_legendre/check_nan.cc: New.
3803 * testsuite/special_functions/17_legendre/check_value.cc: New.
3804 * testsuite/special_functions/17_legendre/compile.cc: New.
3805 * testsuite/special_functions/17_legendre/compile_2.cc: New.
3806 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: New.
3807 * testsuite/special_functions/18_riemann_zeta/check_value.cc: New.
3808 * testsuite/special_functions/18_riemann_zeta/compile.cc: New.
3809 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: New.
3810 * testsuite/special_functions/19_sph_bessel/check_nan.cc: New.
3811 * testsuite/special_functions/19_sph_bessel/check_value.cc: New.
3812 * testsuite/special_functions/19_sph_bessel/compile.cc: New.
3813 * testsuite/special_functions/19_sph_bessel/compile_2.cc: New.
3814 * testsuite/special_functions/20_sph_legendre/check_nan.cc: New.
3815 * testsuite/special_functions/20_sph_legendre/check_value.cc: New.
3816 * testsuite/special_functions/20_sph_legendre/compile.cc: New.
3817 * testsuite/special_functions/20_sph_legendre/compile_2.cc: New.
3818 * testsuite/special_functions/21_sph_neumann/check_nan.cc: New.
3819 * testsuite/special_functions/21_sph_neumann/check_value.cc: New.
3820 * testsuite/special_functions/21_sph_neumann/compile.cc: New.
3821 * testsuite/special_functions/21_sph_neumann/compile_2.cc: New.
3822 * testsuite/util/specfun_testcase.h: New.
3823 * testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc: More testcases.
3824 * testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc: Ditto.
3825 * testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc: Ditto.
3826 * testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc: Ditto.
3827 * testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc: Ditto.
3828 * testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc: Ditto.
3829 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc: New.
3831 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
3834 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
3835 and isnan functions.
3836 * config.h.in: Regenerate.
3837 * configure: Regenerate.
3838 * include/c_global/cmath (isinf(double), isnan(double))
3839 [_GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN]: Import via using-directive.
3840 * testsuite/26_numerics/headers/cmath/48891.cc: New.
3842 2016-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3845 * configure.host (abi_baseline_pair): Use separate baseline for
3846 Solaris 11+ and Solaris 10 with gld.
3847 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: New file.
3848 * config/abi/post/solaris2.11/baseline_symbols.txt: New file.
3849 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: New file.
3851 2016-01-12 Daniel Kruegler <daniel.kruegler@gmail.com>
3854 * include/std/type_traits: Following N4511, reimplement __is_swappable
3855 and __is_nothrow_swappable. Move __is_swappable to namespace std,
3856 adjust callers. Use __is_nothrow_swappable in swap.
3857 * include/bits/move.h: Use __is_nothrow_swappable in swap.
3858 * testsuite/20_util/is_nothrow_swappable/value.cc: Extend; remove
3859 __is_swappable related tests.
3860 * testsuite/20_util/is_swappable/value.cc: New.
3861 * testsuite/20_util/is_swappable/requirements/
3862 explicit_instantiation.cc: New.
3863 * testsuite/20_util/is_swappable/requirements/typedefs.cc: New.
3864 * testsuite/25_algorithms/swap/68877.cc: New.
3866 2016-01-12 Jonathan Wakely <jwakely@redhat.com>
3868 * testsuite/20_util/function/68995.cc: Test reference_wrapper cases.
3872 * include/std/functional (function::_Invoke): Remove, use result_of.
3873 (function::_Callable): Replace alias template with class template
3874 and use partial specialization instead of _NotSelf alias template.
3875 (function(_Functor)): Add "not self" constraint so that _Callable is
3876 not used while type is incomplete.
3877 * testsuite/20_util/function/69222.cc: New.
3879 2016-01-11 Jonathan Wakely <jwakely@redhat.com>
3882 * include/bits/alloc_traits.h (allocator_traits<allocator<_Tp>>):
3883 Define partial specialization.
3884 * testsuite/20_util/shared_ptr/cons/58659.cc: Add construct and
3885 destroy members to std::allocator explicit specialization.
3887 2016-01-08 Jonathan Wakely <jwakely@redhat.com>
3889 * testsuite/26_numerics/headers/cmath/
3890 c99_classification_macros_c++.cc: Rename to ...
3891 * testsuite/26_numerics/headers/cmath/
3892 c99_classification_macros_c++98.cc: Here and add -std=gnu++98.
3893 * testsuite/26_numerics/headers/cmath/
3894 c99_classification_macros_c++0x.cc: Rename to ...
3895 * testsuite/26_numerics/headers/cmath/
3896 c99_classification_macros_c++11.cc: Here.
3899 * include/bits/uses_allocator.h: Add missing include.
3901 2016-01-07 Jonathan Wakely <jwakely@redhat.com>
3906 * include/bits/stl_iterator.h (back_insert_iterator,
3907 front_insert_iterator, insert_iterator): Use __addressof (LWG 2324).
3908 * include/bits/uses_allocator.h (__use_alloc): Use __addressof.
3909 * include/std/future (__future::base::_State_baseV2::__setter):
3911 * include/std/scoped_allocator (__outermost): Likewise.
3912 * testsuite/20_util/scoped_allocator/69114.cc: New.
3913 * testsuite/20_util/uses_allocator/69114.cc: New.
3914 * testsuite/30_threads/promise/69106.cc: New.
3916 2016-01-06 Jonathan Wakely <jwakely@redhat.com>
3919 * include/bits/basic_string.h (basic_string::_S_copy_chars<_Iterator>):
3920 Remove _GLIBCXX_NOEXCEPT.
3921 testsuite/21_strings/basic_string/cons/char/69092.cc: New.
3923 * include/Makefile.am: Adjust.
3924 * include/Makefile.in: Regenerate.
3925 * include/bits/mutex.h: Rename to bits/std_mutex.h.
3926 * include/std/condition_variable: Adjust include.
3927 * include/std/mutex: Likewise.
3929 2016-01-04 Jakub Jelinek <jakub@redhat.com>
3931 Update copyright years.
3933 Copyright (C) 2016 Free Software Foundation, Inc.
3935 Copying and distribution of this file, with or without modification,
3936 are permitted in any medium without royalty provided the copyright
3937 notice and this notice are preserved.