1 2016-09-29 Ville Voutilainen <ville.voutilainen@gmail.com>
3 Make optional::reset noexcept, make optional::value
4 work in constant expressions.
5 * include/std/optional (_M_get): Make constexpr.
6 (reset): Make noexcept.
7 * testsuite/20_util/optional/assignment/7.cc: New.
8 * testsuite/20_util/optional/observers/6.cc: New.
10 2016-09-29 Jonathan Wakely <jwakely@redhat.com>
12 * include/c_global/cmath (hypot, __hypot3): Move C++17 overloads
13 outside _GLIBCXX_USE_C99_MATH_TR1 condition.
15 2016-09-29 Alan Modra <amodra@gmail.com>
17 * configure.ac (LONG_DOUBLE_COMPAT_FLAGS): New ACSUBST.
18 * src/Makefile.am (compatibility-ldbl.o, compatibility-ldbl.lo):
19 Use LONG_DOUBLE_COMPAT_FLAGS.
20 * Makefile.in: Regenerate.
21 * configure: Regenerate.
22 * doc/Makefile.in: Regenerate.
23 * include/Makefile.in: Regenerate.
24 * libsupc++/Makefile.in: Regenerate.
25 * po/Makefile.in: Regenerate.
26 * python/Makefile.in: Regenerate.
27 * src/Makefile.in: Regenerate.
28 * src/c++11/Makefile.in: Regenerate.
29 * src/c++98/Makefile.in: Regenerate.
30 * src/filesystem/Makefile.in: Regenerate.
31 * testsuite/Makefile.in: Regenerate.
33 2016-09-28 Jonathan Wakely <jwakely@redhat.com>
35 * include/std/chrono (system_clock): Fix typo in comment.
37 * include/experimental/bits/fs_fwd.h (file_time_type): Simplify
39 * src/filesystem/ops.cc (file_time): Take error_code parameter and
41 (do_copy_file, last_write_time): Pass error_code in file_time calls.
42 * testsuite/experimental/filesystem/operations/last_write_time.cc:
44 * testsuite/util/testsuite_fs.h (scoped_file): Define RAII helper.
47 * include/std/functional (_Any_data): Add may_alias attribute.
49 2016-09-27 Jonathan Wakely <jwakely@redhat.com>
51 * doc/xml/manual/status_cxx2017.xml: Update status.
52 * doc/html/*: Regenerate.
53 * include/std/functional (__cpp_lib_boyer_moore_searcher): Define.
54 * testsuite/20_util/function_objects/searchers.cc: Test feature macro.
56 * doc/xml/manual/status_cxx2017.xml: Update status.
57 * include/c_global/cmath (hypot): Add three-dimensional overloads.
58 * testsuite/26_numerics/headers/cmath/hypot.cc: New.
60 2016-09-26 Ville Voutilainen <ville.voutilainen@gmail.com>
63 * include/std/optional (optional(const optional<_Up>&)):
64 Default-initialize the base and use emplace.
65 (optional(optional<_Up>&&)): Likewise.
66 * testsuite/20_util/optional/cons/77727.cc: New.
68 2016-09-26 François Dumont <fdumont@gcc.gnu.org>
70 * include/debug/safe_base.h
71 (_Safe_iterator_base::_M_detach_single): Make public.
73 2016-09-26 Jonathan Wakely <jwakely@redhat.com>
75 * include/bits/range_access.h (__cpp_lib_array_constexpr): Do not
76 redefine macro defined in <bits/stl_iterator.h>.
78 * include/bits/stl_map.h (map::extract(const_iterator)): Assert that
79 iterator is not past-the-end.
80 * include/bits/stl_multimap.h (multimap::extract(const_iterator)):
82 * include/bits/stl_multiset.h (multiset::extract(const_iterator)):
84 * include/bits/stl_set.h (set::extract(const_iterator)): Likewise.
85 * include/bits/unordered_map.h (unordered_map::extract(const_iterator))
86 (unordered_multimap::extract(const_iterator)): Likewise.
87 * include/bits/unordered_set.h (unordered_set::extract(const_iterator))
88 (unordered_multiset::extract(const_iterator)): Likewise.
90 2016-09-26 Ville Voutilainen <ville.voutilainen@gmail.com>
93 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
94 Fix an out-of-bounds access.
96 2016-09-26 Marek Polacek <polacek@redhat.com>
99 * libsupc++/hash_bytes.cc: Add [[gnu::fallthrough]].
101 2016-09-25 François Dumont <fdumont@gcc.gnu.org>
103 * src/c++11/debug.cc: Include debug/vector. Include cctype. Remove
105 (get_safe_base_mutex): Get mutex based on address lowest non nil bits.
106 * testsuite/23_containers/vector/debug/mutex_association.cc: New.
108 * include/debug/bitset (bitset::reference::reference(const _Base_ref&,
109 bitset*)): Remove __unused__ attribute.
110 * include/debug/safe_base.h (_Safe_iterator_base): Make
111 _Safe_sequence_base a friend.
112 (_Safe_iterator_base::_M_attach): Make protected.
113 (_Safe_iterator_base::_M_attach_single): Likewise.
114 (_Safe_iterator_base::_M_detach): Likewise.
115 (_Safe_iterator_base::_M_detach_single): Likewise.
116 (_Safe_sequence_base): Make _Safe_iterator_base a friend.
117 (_Safe_sequence_base::_Safe_sequence_base(_Safe_sequence_base&&)): New.
118 (_Safe_sequence_base::_M_swap): Make protected.
119 (_Safe_sequence_base::_M_attach): Make private.
120 (_Safe_sequence_base::_M_attach_single): Likewise.
121 (_Safe_sequence_base::_M_detach): Likewise.
122 (_Safe_sequence_base::_M_detach_single): Likewise.
123 * include/debug/safe_container.h
124 (_Safe_container::_Safe_container(_Safe_container&&)): Make default.
125 * include/debug/safe_iterator.h
126 (_Safe_iterator::operator++()): Name __scoped_lock instance.
127 * include/debug/safe_iterator.tcc: Remove trailing line.
128 * include/debug/safe_unordered_base.h
129 (_Safe_local_iterator_base::_M_attach): Make protected.
130 (_Safe_local_iterator_base::_M_attach_single): Likewise.
131 (_Safe_local_iterator_base::_M_detach): Likewise.
132 (_Safe_local_iterator_base::_M_detach_single): Likewise.
133 (_Safe_unordered_container_base): Make _Safe_local_iterator_base friend.
134 (_Safe_unordered_container_base::_M_attach_local): Make private.
135 (_Safe_unordered_container_base::_M_attach_local_single): Likewise.
136 (_Safe_unordered_container_base::_M_detach_local): Likewise.
137 (_Safe_unordered_container_base::_M_detach_local_single): Likewise.
139 * include/parallel/algo.h: Generalize usage of std::__iterator_category.
142 2016-09-23 Jonathan Wakely <jwakely@redhat.com>
146 * include/bits/basic_string.h (basic_string::clear()): Drop reference
148 * include/ext/rc_string_base.h (__rc_string_base::_M_clear()):
150 * testsuite/21_strings/basic_string/56166.cc: New.
151 * testsuite/ext/vstring/modifiers/clear/56166.cc: New.
153 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
154 (basic_string::erase(size_type, size_type)): Add fast path for
155 truncating the string, by calling _M_set_length directly.
156 (basic_string::erase(__const_iterator, __const_iterator)): Likewise.
157 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
158 (basic_string::resize(size_type, _CharT)): Likewise.
160 2016-09-22 Jason Merrill <jason@redhat.com>
162 * configure.ac: Define HAVE_MEMALIGN for newlib.
164 2015-09-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
166 * config/cpu/m68k/atomicity.h: Adjust comment.
167 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Honor
168 explicit atomicity_dir setup via configure.host.
169 * configure.host (rtems-*): Set atomicity_dir.
170 * configure: Regenerate.
172 2016-09-22 Jonathan Wakely <jwakely@redhat.com>
174 Implement C++17 node extraction and insertion (P0083R5)
175 * doc/xml/manual/status_cxx2017.xml: Document status.
176 * doc/html/*: Regenerate.
177 * include/Makefile.am: Add bits/node_handle.h and reorder.
178 * include/Makefile.in: Regenerate.
179 * include/bits/hashtable.h (_Hashtable::node_type)
180 (_Hashtable::insert_return_type, _Hashtable::_M_reinsert_node)
181 (_Hashtable::_M_reinsert_node_multi, _Hashtable::extract)
182 (_Hashtable::_M_merge_unique, _Hashtable::_M_merge_multi): Define.
183 (_Hash_merge_helper): Define primary template.
184 * include/bits/node_handle.h: New header.
185 * include/bits/stl_map.h (map): Declare _Rb_tree_merge_helper as
187 (map::node_type, map::insert_return_type, map::extract, map::merge)
188 (map::insert(node_type&&), map::insert(const_iterator, node_type&&)):
190 (_Rb_tree_merge_helper): Specialize for map.
191 * include/bits/stl_multimap.h (multimap): Declare _Rb_tree_merge_helper
193 (multimap::node_type, multimap::extract, multimap::merge)
194 (multimap::insert(node_type&&))
195 (multimap::insert(const_iterator, node_type&&)): Define.
196 (_Rb_tree_merge_helper): Specialize for multimap.
197 * include/bits/stl_multiset.h (multiset): Declare _Rb_tree_merge_helper
199 (multiset::node_type, multiset::extract, multiset::merge)
200 (multiset::insert(node_type&&))
201 (multiset::insert(const_iterator, node_type&&)): Define.
202 * include/bits/stl_set.h (set): Declare _Rb_tree_merge_helper as
204 (set::node_type, set::insert_return_type, set::extract, set::merge)
205 (set::insert(node_type&&), set::insert(const_iterator, node_type&&)):
207 (_Rb_tree_merge_helper): Specialize for set.
208 * include/bits/stl_tree.h (_Rb_tree): Declare _Rb_tree<> as friend.
209 (_Rb_tree::node_type, _Rb_tree::insert_return_type)
210 (_Rb_tree::_M_reinsert_node_unique, _Rb_tree::_M_reinsert_node_equal)
211 (_Rb_tree::_M_reinsert_node_hint_unique)
212 (_Rb_tree::_M_reinsert_node_hint_equal, _Rb_tree::extract)
213 (_Rb_tree::_M_merge_unique, _Rb_tree::_M_merge_equal): Define.
214 (_Rb_tree_merge_helper): Specialize for multiset.
215 * include/bits/unordered_map.h (unordered_map): Declare
216 unordered_map<> and unordered_multimap<> as friends.
217 (unordered_map::node_type, unordered_map::insert_return_type)
218 (unordered_map::extract, unordered_map::merge)
219 (unordered_map::insert(node_type&&))
220 (unordered_map::insert(const_iterator, node_type&&))
221 (unordered_multimap): Declare _Hash_merge_helper as friend.
222 (unordered_multimap::node_type, unordered_multimap::extract)
223 (unordered_multimap::merge, unordered_multimap::insert(node_type&&))
224 (unordered_multimap::insert(const_iterator, node_type&&)): Define.
225 (_Hash_merge_helper): Specialize for unordered maps and multimaps.
226 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
227 Declare _Hash_merge_helper as friend.
228 (unordered_set::node_type, unordered_set::insert_return_type)
229 (unordered_set::extract, unordered_set::merge)
230 (unordered_set::insert(node_type&&))
231 (unordered_set::insert(const_iterator, node_type&&)): Define.
232 (unordered_multiset::node_type, unordered_multiset::extract)
233 (unordered_multiset::merge, unordered_multiset::insert(node_type&&))
234 (unordered_multiset::insert(const_iterator, node_type&&)): Define.
235 (_Hash_merge_helper): Specialize for unordered sets and multisets.
236 * include/debug/map.h (map): Add using declarations or forwarding
237 functions for new members.
238 * include/debug/map.h (multimap): Likewise.
239 * include/debug/map.h (multiset): Likewise.
240 * include/debug/map.h (set): Likewise.
241 * include/debug/unordered_map (unordered_map, unordered_multimap):
243 * include/debug/unordered_set( unordered_set, unordered_multiset):
245 * python/libstdcxx/v6/printers.py (get_value_from_aligned_membuf): New
247 (get_value_from_list_node, get_value_from_Rb_tree_node): Use helper.
248 (StdNodeHandlePrinter): Define printer for node handles.
249 (build_libstdcxx_dictionary): Register StdNodeHandlePrinter.
250 * testsuite/23_containers/map/modifiers/extract.cc: New.
251 * testsuite/23_containers/map/modifiers/merge.cc: New.
252 * testsuite/23_containers/multimap/modifiers/extract.cc: New.
253 * testsuite/23_containers/multimap/modifiers/merge.cc: New.
254 * testsuite/23_containers/multiset/modifiers/extract.cc: New.
255 * testsuite/23_containers/multiset/modifiers/merge.cc: New.
256 * testsuite/23_containers/set/modifiers/extract.cc: New.
257 * testsuite/23_containers/set/modifiers/merge.cc: New.
258 * testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
259 * testsuite/23_containers/unordered_map/modifiers/merge.cc: New.
260 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
262 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc: New.
263 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
265 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc: New.
266 * testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
267 * testsuite/23_containers/unordered_set/modifiers/merge.cc: New.
268 * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
270 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test node handles.
272 2016-09-22 Ville Voutilainen <ville.voutilainen@gmail.com>
274 Fix tests on old arm platforms for optional.
275 * testsuite/20_util/optional/77288.cc: Don't use exception_ptr.
277 2016-09-22 Jonathan Wakely <jwakely@redhat.com>
279 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Adjust for
280 recent change to _Variant_storage.
281 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test variant with
284 * include/bits/uses_allocator.h (__uses_allocator_construct): Qualify
285 std::forward and ::new. Cast pointer to void*.
286 * include/std/variant (_Variant_storage, _Union, _Variant_base)
287 (__access, __visit_invoke, variant, visit): Qualify std::forward.
288 * testsuite/20_util/variant/compile.cc: Test for ADL problems.
290 2016-09-22 Tim Shen <timshen@google.com>
292 * include/std/variant (variant::operator=): Fix assignment
294 * testsuite/20_util/variant/compile.cc: Add test.
296 2016-09-22 Tim Shen <timshen@google.com>
299 * include/std/variant (_Variant_storage::_Variant_storage):
300 Change _Variant_storage's union to be default constructible.
301 * testsuite/20_util/variant/compile.cc: New test.
303 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
306 * include/std/optional (__is_optional_impl, __is_optional): Remove.
307 (__converts_from_optional, __assigns_from_optional): New.
308 (optional(_Up&&)): Use is_same instead of __is_optional.
309 (optional(const optional<_Up>&)): Constrain with
310 __converts_from_optional.
311 (optional(optional<_Up>&&)): Likewise.
312 (operator=(_Up&&)): Use is_same instead of __is_optional, check
313 is_same and is_scalar.
314 (operator=(const optional<_Up>&)): Constrain with
315 __converts_from_optional and __assigns_from_optional.
316 (operator=(optional<_Up>&&)): Likewise.
317 * testsuite/20_util/optional/77288.cc: New.
318 * testsuite/20_util/optional/cons/value.cc: Adjust.
320 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
322 Implement LWG 2729 for tuple.
323 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)):
324 Suppress conditionally.
325 (_Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&&)): Likewise.
326 (__is_tuple_impl_trait_impl, __is_tuple_impl_trait): New.
327 (_Tuple_impl(const _Head&)): Constrain.
328 (_Tuple_impl(_UHead&&)): Likewise.
329 (_Tuple_impl(_Tuple_impl&&)): Suppress conditionally.
330 (_Tuple_impl(const _Tuple_impl<_Idx, _UHead>&)): Constrain.
331 (_Tuple_impl(_Tuple_impl<_Idx, _UHead>&&)): Likewise.
332 (operator=(const tuple&)): Enable conditionally.
333 (operator=(tuple&&)): Suppress conditionally.
334 (operator=(const tuple<_UElements...>&)): Constrain.
335 (operator=(tuple<_UElements...>&&)): Likewise.
336 (operator=(const tuple&)): Enable conditionally (2-param tuple).
337 (operator=(tuple&&)): Suppress conditionally (2-param tuple).
338 (operator=(const tuple<_U1, _U2>&)): Constrain.
339 (operator=(tuple<_U1, _U2>&&)): Likewise.
340 (operator=(const pair<_U1, _U2>&)): Likewise.
341 (operator=(pair<_U1, _U2>&&)): Likewise.
342 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust.
343 * testsuite/20_util/tuple/tuple_traits.cc: New.
345 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
348 Implement LWG 2729 for pair.
349 * include/bits/stl_pair.h (_PCC): New.
350 (_ConstructiblePair, _ImplicitlyConvertiblePair):
351 Turn into static member functions of _PCC.
352 (_MoveConstructiblePair, _ImplicitlyMoveConvertiblePair): Likewise.
354 (pair(const _T1&, const _T2&)): Adjust.
356 (pair(const pair<_U1, _U2>&)): Adjust.
357 (pair(_U1&&, const _T2&)): Likewise.
358 (pair(const _T1&, _U2&&)): Likewise.
359 (pair(_U1&&, _U2&&)): Likewise.
360 (pair(pair<_U1, _U2>&&)): Likewise.
361 (operator=(const pair&)): Make conditionally deleted.
362 (operator=(pair&&)): Make conditionally suppressed.
363 (operator=(const pair<_U1, _U2>&)): Constrain.
364 (operator=(pair<_U1, _U2>&&): Likewise.
365 * include/std/type_traits (__nonesuch): New.
366 * testsuite/20_util/pair/traits.cc: New.
368 2016-09-20 Ville Voutilainen <ville.voutilainen@gmail.com>
371 * include/bits/stl_construct.h: (_Construct_novalue): New.
372 (_Destroy_n_aux, _Destroy_n): New.
373 * include/bits/stl_uninitialized.h: (type_traits):
374 New include in C++11 mode.
375 (__uninitialized_default_novalue_1): New.
376 (__uninitialized_default_novalue_n_1): Likewise.
377 (__uninitialized_default_novalue): Likewise.
378 (__uninitialized_default_novalue_n): Likewise.
379 (__uninitialized_copy_n_pair): Likewise.
380 (uninitialized_default_construct):
381 Use __uninitialized_default_novalue.
382 (uninitialized_default_construct_n):
383 Use __uninitialized_default_novalue_n.
384 (uninitialized_value_construct): Use __uninitialized_default.
385 (uninitialized_value_construct_n): Use __uninitialized_default_n.
386 (uninitialized_move): Use uninitialized_copy.
387 (uninitialized_move_n): Use __uninitialized_copy_n_pair.
388 (destroy_at): Use _Destroy.
390 (destroy_n): Likewise.
391 * testsuite/20_util/specialized_algorithms/
392 memory_management_tools/1.cc: Add tests for exceptions,
393 add tests for trivial cases for construct and move.
395 2016-09-20 Jonathan Wakely <jwakely@redhat.com>
397 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
398 (DequeWorkerBase.index, VectorWorkerBase.get): Use // for division.
400 2016-09-19 Jonathan Wakely <jwakely@redhat.com>
403 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
404 (DequeWorkerBase.index, VectorWorkerBase.get): Cast results of
405 division to int to work with Python 3.
407 * testsuite/lib/gdb-test.exp (gdb-test): Fail if Python error occurs.
409 * python/libstdcxx/v6/printers.py (SingleObjContainerPrinter): Allow
410 display_hint to be set by subclasses.
411 (StdVariantPrinter): Use array for display_hint. Adjust output to be
412 more similar to std::any and std::optional output.
413 (register_type_printers): Add type printers for basic_string_view
414 typedefs and experimental::any. Adjust type printers for
415 fundamentals_v1 templates to match fundamentals_v2 and later.
416 * testsuite/libstdc++-prettyprinters/cxx17.cc: New.
419 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.index): Rename
421 (ListWorkerBase.get_value_from_node): Define new method.
422 (ListFrontWorker.__call__, ListBackWorker.__call__): Use it.
424 2016-09-17 Jonathan Wakely <jwakely@redhat.com>
426 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Define.
427 (StdExpAnyPrinter, StdExpOptionalPrinter, StdExpStringViewPrinter):
428 Register for C++17 components in namespace std. Strip inline namespace
431 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
433 * doc/xml/manual/profile_mode.xml: Fix typo.
434 * doc/html/manual/profile_mode_devel.html: Regenerate.
436 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
437 Marc Glisse <marc.glisse@inria.fr>
439 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_ALIGNED_ALLOC]
440 (operator new(size_t, align_val_t)): Replace modulus operator with
443 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
445 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_POSIX_MEMALIGN] (aligned_alloc):
446 Increase alignment if less than sizeof(void*).
447 [_GLIBCXX_HAVE_ALIGNED_ALLOC] (operator new(size_t, align_val_t)):
448 Increase size if not a multiple of alignment.
450 2016-09-15 Jonathan Wakely <jwakely@redhat.com>
452 * doc/xml/manual/debug_mode.xml: Minor editorial fixes.
453 * doc/html/*: Regenerate.
455 * testsuite/23_containers/vector/debug/insert6_neg.cc: Remove
457 * testsuite/util/debug/checks.h (generate_unique<bool>): Specialize.
459 2016-09-14 Marek Polacek <polacek@redhat.com>
461 * testsuite/23_containers/vector/debug/insert6_neg.cc: Use
464 2016-09-14 Christophe Lyon <christophe.lyon@linaro.org>
466 * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
467 Move dg-do directive before dg-skip.
468 * testsuite/21_strings/debug/iterator_self_move_assign_neg.cc:
469 Move dg-do directive before dg-require.
470 * testsuite/21_strings/debug/self_move_assign_neg.cc: Likewise.
471 * testsuite/23_containers/vector/debug/57779_neg.cc: Likewise.
472 * testsuite/23_containers/vector/debug/60587_neg.cc: Likewise.
473 * testsuite/23_containers/vector/debug/assign1_neg.cc: Likewise.
474 * testsuite/23_containers/vector/debug/assign2_neg.cc: Likewise.
475 * testsuite/23_containers/vector/debug/assign3_neg.cc: Likewise.
476 * testsuite/23_containers/vector/debug/construct1_neg.cc: Likewise.
477 * testsuite/23_containers/vector/debug/construct2_neg.cc: Likewise.
478 * testsuite/23_containers/vector/debug/construct3_neg.cc: Likewise.
479 * testsuite/23_containers/vector/debug/insert1_neg.cc: Likewise.
480 * testsuite/23_containers/vector/debug/insert2_neg.cc: Likewise.
481 * testsuite/23_containers/vector/debug/insert3_neg.cc: Likewise.
482 * testsuite/23_containers/vector/debug/insert5_neg.cc: Likewise.
483 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Likewise.
484 * testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
486 * testsuite/25_algorithms/pop_heap/empty2_neg.cc: Likewise.
487 * testsuite/25_algorithms/pop_heap/empty_neg.cc: Likewise.
488 * testsuite/27_io/objects/char/12048-5.cc: Likewise.
489 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Likewise.
490 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
492 2016-09-13 Ville Voutilainen <ville.voutilainen@gmail.com>
494 Implement P0040R3, Extending memory management tools.
495 * include/bits/stl_uninitialized.h (utility): New include
497 (uninitialized_default_construct): New.
498 (uninitialized_default_construct_n): Likewise.
499 (uninitialized_value_construct): Likewise.
500 (uninitialized_value_construct_n): Likewise.
501 (uninitialized_move): Likewise.
502 (uninitialized_move_n): Likewise.
503 (destroy_at, destroy, destroy_n): Likewise.
504 * testsuite/20_util/specialized_algorithms/memory_management_tools/
507 2016-09-12 Jason Merrill <jason@redhat.com>
509 * config/abi/pre/gnu.ver: Use [jmy] for size_t.
511 2016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
513 Implement P0253R1, Fixing a design mistake in the searchers
514 interface in Library Fundamentals.
515 * include/std/functional: (utility): New include in C++17 mode.
516 (default_searcher): Use a pair as return type, adjust the definition.
517 (boyer_moore_searcher): Likewise.
518 (boyer_moore_horspool_searcher): Likewise.
519 * testsuite/20_util/function_objects/searchers.cc: Adjust.
521 2016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
523 Implement C++17 string searchers.
524 * include/std/functional: (unordered_map, vector): New includes
526 (array, bits/stl_algo.h): Likewise.
527 (default_searcher, __boyer_moore_map_base): New.
528 (__boyer_moore_array_base, __is_std_equal_to): Likewise.
529 (__boyer_moore_base_t, boyer_moore_searcher): Likewise.
530 (boyer_moore_horspool_searcher, make_default_searcher): Likewise.
531 (make_boyer_moore_searcher): Likewise.
532 (make_boyer_moore_horspool_searcher): Likewise.
533 * testsuite/20_util/function_objects/searchers.cc: New.
535 2016-09-12 Matthew Wahab <matthew.wahab@arm.com>
537 * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
538 Move dg-do directive before dg-require.
539 * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc: Likewise.
540 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
542 * testsuite/22_locale/codecvt/utf8.cc: Likewise.
543 * testsuite/22_locale/locale/cons/unicode.cc: Likewise.
544 * testsuite/23_containers/deque/debug/assign1_neg.cc: Likewise.
545 * testsuite/23_containers/deque/debug/assign2_neg.cc: Likewise.
546 * testsuite/23_containers/deque/debug/assign3_neg.cc: Likewise.
547 * testsuite/23_containers/deque/debug/construct1_neg.cc: Likewise.
548 * testsuite/23_containers/deque/debug/construct2_neg.cc: Likewise.
549 * testsuite/23_containers/deque/debug/construct3_neg.cc: Likewise.
550 * testsuite/23_containers/deque/debug/insert1_neg.cc: Likewise.
551 * testsuite/23_containers/deque/debug/insert2_neg.cc: Likewise.
552 * testsuite/23_containers/deque/debug/insert3_neg.cc: Likewise.
553 * testsuite/23_containers/deque/debug/insert5_neg.cc: Likewise.
554 * testsuite/23_containers/deque/debug/iterator_self_move_assign_neg.cc:
556 * testsuite/23_containers/deque/debug/self_move_assign_neg.cc:
558 * testsuite/23_containers/deque/debug/shrink_to_fit.cc: Likewise.
559 * testsuite/23_containers/forward_list/debug/60499.cc: Likewise.
560 * testsuite/23_containers/forward_list/debug/construct1_neg.cc:
562 * testsuite/23_containers/forward_list/debug/construct2_neg.cc:
564 * testsuite/23_containers/forward_list/debug/construct3_neg.cc:
566 * testsuite/23_containers/forward_list/debug/erase_after1_neg.cc:
568 * testsuite/23_containers/forward_list/debug/erase_after2_neg.cc:
570 * testsuite/23_containers/forward_list/debug/erase_after3_neg.cc:
572 * testsuite/23_containers/forward_list/debug/erase_after4_neg.cc:
574 * testsuite/23_containers/forward_list/debug/erase_after5_neg.cc:
576 * testsuite/23_containers/forward_list/debug/erase_after6_neg.cc:
578 * testsuite/23_containers/forward_list/debug/erase_after7_neg.cc:
580 * testsuite/23_containers/forward_list/debug/erase_after8_neg.cc:
582 * testsuite/23_containers/forward_list/debug/erase_after9_neg.cc:
584 * testsuite/23_containers/forward_list/debug/insert_after1_neg.cc:
586 * testsuite/23_containers/forward_list/debug/insert_after2_neg.cc:
588 * testsuite/23_containers/forward_list/debug/insert_after3_neg.cc:
590 * testsuite/23_containers/forward_list/debug/insert_after4_neg.cc:
592 * testsuite/23_containers/forward_list/debug/
593 iterator_self_move_assign_neg.cc: Likewise.
594 * testsuite/23_containers/forward_list/debug/self_move_assign_neg.cc:
596 * testsuite/23_containers/forward_list/debug/splice_after1_neg.cc:
598 * testsuite/23_containers/forward_list/debug/splice_after2_neg.cc:
600 * testsuite/23_containers/forward_list/debug/splice_after3_neg.cc:
602 * testsuite/23_containers/forward_list/debug/splice_after4_neg.cc:
604 * testsuite/23_containers/forward_list/debug/splice_after5_neg.cc:
606 * testsuite/23_containers/forward_list/debug/splice_after6_neg.cc:
608 * testsuite/23_containers/forward_list/debug/splice_after7_neg.cc:
610 * testsuite/23_containers/list/debug/assign1_neg.cc: Likewise.
611 * testsuite/23_containers/list/debug/assign2_neg.cc: Likewise.
612 * testsuite/23_containers/list/debug/assign3_neg.cc: Likewise.
613 * testsuite/23_containers/list/debug/construct1_neg.cc: Likewise.
614 * testsuite/23_containers/list/debug/construct2_neg.cc: Likewise.
615 * testsuite/23_containers/list/debug/construct3_neg.cc: Likewise.
616 * testsuite/23_containers/list/debug/insert1_neg.cc: Likewise.
617 * testsuite/23_containers/list/debug/insert2_neg.cc: Likewise.
618 * testsuite/23_containers/list/debug/insert3_neg.cc: Likewise.
619 * testsuite/23_containers/list/debug/insert5_neg.cc: Likewise.
620 * testsuite/23_containers/list/debug/iterator_self_move_assign_neg.cc:
622 * testsuite/23_containers/list/debug/self_move_assign_neg.cc: Likewise.
623 * testsuite/23_containers/map/debug/60499.cc: Likewise.
624 * testsuite/23_containers/map/debug/construct1_neg.cc: Likewise.
625 * testsuite/23_containers/map/debug/construct2_neg.cc: Likewise.
626 * testsuite/23_containers/map/debug/construct3_neg.cc: Likewise.
627 * testsuite/23_containers/map/debug/insert1_neg.cc: Likewise.
628 * testsuite/23_containers/map/debug/insert2_neg.cc: Likewise.
629 * testsuite/23_containers/map/debug/insert3_neg.cc: Likewise.
630 * testsuite/23_containers/map/debug/iterator_self_move_assign_neg.cc:
632 * testsuite/23_containers/map/debug/self_move_assign_neg.cc: Likewise.
633 * testsuite/23_containers/multimap/debug/60499.cc: Likewise.
634 * testsuite/23_containers/multimap/debug/construct1_neg.cc: Likewise.
635 * testsuite/23_containers/multimap/debug/construct2_neg.cc: Likewise.
636 * testsuite/23_containers/multimap/debug/construct3_neg.cc: Likewise.
637 * testsuite/23_containers/multimap/debug/insert1_neg.cc: Likewise.
638 * testsuite/23_containers/multimap/debug/insert2_neg.cc: Likewise.
639 * testsuite/23_containers/multimap/debug/insert3_neg.cc: Likewise.
640 * testsuite/23_containers/multimap/debug/
641 iterator_self_move_assign_neg.cc: Likewise.
642 * testsuite/23_containers/multimap/debug/self_move_assign_neg.cc:
644 * testsuite/23_containers/multiset/debug/60499.cc: Likewise.
645 * testsuite/23_containers/multiset/debug/construct1_neg.cc: Likewise.
646 * testsuite/23_containers/multiset/debug/construct2_neg.cc: Likewise.
647 * testsuite/23_containers/multiset/debug/construct3_neg.cc: Likewise.
648 * testsuite/23_containers/multiset/debug/insert1_neg.cc: Likewise.
649 * testsuite/23_containers/multiset/debug/insert2_neg.cc: Likewise.
650 * testsuite/23_containers/multiset/debug/insert3_neg.cc: Likewise.
651 * testsuite/23_containers/multiset/debug/
652 iterator_self_move_assign_neg.cc: Likewise.
653 * testsuite/23_containers/multiset/debug/self_move_assign_neg.cc:
655 * testsuite/23_containers/set/debug/60499.cc: Likewise.
656 * testsuite/23_containers/set/debug/construct1_neg.cc: Likewise.
657 * testsuite/23_containers/set/debug/construct2_neg.cc: Likewise.
658 * testsuite/23_containers/set/debug/construct3_neg.cc: Likewise.
659 * testsuite/23_containers/set/debug/insert1_neg.cc: Likewise.
660 * testsuite/23_containers/set/debug/insert2_neg.cc: Likewise.
661 * testsuite/23_containers/set/debug/insert3_neg.cc: Likewise.
662 * testsuite/23_containers/set/debug/iterator_self_move_assign_neg.cc:
664 * testsuite/23_containers/set/debug/self_move_assign_neg.cc: Likewise.
665 * testsuite/23_containers/unordered_map/debug/60499.cc: Likewise.
666 * testsuite/23_containers/unordered_map/debug/begin1_neg.cc: Likewise.
667 * testsuite/23_containers/unordered_map/debug/begin2_neg.cc: Likewise.
668 * testsuite/23_containers/unordered_map/debug/bucket_size_neg.cc:
670 * testsuite/23_containers/unordered_map/debug/cbegin_neg.cc: Likewise.
671 * testsuite/23_containers/unordered_map/debug/cend_neg.cc: Likewise.
672 * testsuite/23_containers/unordered_map/debug/construct1_neg.cc:
674 * testsuite/23_containers/unordered_map/debug/construct2_neg.cc:
676 * testsuite/23_containers/unordered_map/debug/construct3_neg.cc:
678 * testsuite/23_containers/unordered_map/debug/end1_neg.cc: Likewise.
679 * testsuite/23_containers/unordered_map/debug/end2_neg.cc: Likewise.
680 * testsuite/23_containers/unordered_map/debug/insert1_neg.cc: Likewise.
681 * testsuite/23_containers/unordered_map/debug/insert2_neg.cc: Likewise.
682 * testsuite/23_containers/unordered_map/debug/insert3_neg.cc: Likewise.
683 * testsuite/23_containers/unordered_map/debug/
684 invalid_local_iterator_compare_neg.cc: Likewise.
685 * testsuite/23_containers/unordered_map/debug/
686 invalid_local_iterator_range_neg.cc: Likewise.
687 * testsuite/23_containers/unordered_map/debug/
688 iterator_self_move_assign_neg.cc: Likewise.
689 * testsuite/23_containers/unordered_map/debug/max_load_factor_neg.cc:
691 * testsuite/23_containers/unordered_map/debug/self_move_assign_neg.cc:
693 * testsuite/23_containers/unordered_map/debug/
694 use_erased_local_iterator_neg.cc: Likewise.
695 * testsuite/23_containers/unordered_map/debug/
696 use_invalid_iterator_neg.cc: Likewise.
697 * testsuite/23_containers/unordered_map/debug/
698 use_invalid_local_iterator_neg.cc: Likewise.
699 * testsuite/23_containers/unordered_multimap/debug/60499.cc: Likewise.
700 * testsuite/23_containers/unordered_multimap/debug/begin1_neg.cc:
702 * testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc:
704 * testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc:
706 * testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc:
708 * testsuite/23_containers/unordered_multimap/debug/cend_neg.cc:
710 * testsuite/23_containers/unordered_multimap/debug/construct1_neg.cc:
712 * testsuite/23_containers/unordered_multimap/debug/construct2_neg.cc:
714 * testsuite/23_containers/unordered_multimap/debug/construct3_neg.cc:
716 * testsuite/23_containers/unordered_multimap/debug/end1_neg.cc:
718 * testsuite/23_containers/unordered_multimap/debug/end2_neg.cc:
720 * testsuite/23_containers/unordered_multimap/debug/insert1_neg.cc:
722 * testsuite/23_containers/unordered_multimap/debug/insert2_neg.cc:
724 * testsuite/23_containers/unordered_multimap/debug/insert3_neg.cc:
726 * testsuite/23_containers/unordered_multimap/debug/
727 invalid_local_iterator_compare_neg.cc: Likewise.
728 * testsuite/23_containers/unordered_multimap/debug/
729 invalid_local_iterator_range_neg.cc: Likewise.
730 * testsuite/23_containers/unordered_multimap/debug/
731 iterator_self_move_assign_neg.cc: Likewise.
732 * testsuite/23_containers/unordered_multimap/debug/
733 max_load_factor_neg.cc: Likewise.
734 * testsuite/23_containers/unordered_multimap/debug/
735 self_move_assign_neg.cc: Likewise.
736 * testsuite/23_containers/unordered_multimap/debug/
737 use_erased_local_iterator_neg.cc: Likewise.
738 * testsuite/23_containers/unordered_multimap/debug/
739 use_invalid_iterator_neg.cc: Likewise.
740 * testsuite/23_containers/unordered_multimap/debug/
741 use_invalid_local_iterator_neg.cc: Likewise.
742 * testsuite/23_containers/unordered_multiset/debug/60499.cc:
744 * testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc:
746 * testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc:
748 * testsuite/23_containers/unordered_multiset/debug/bucket_size_neg.cc:
750 * testsuite/23_containers/unordered_multiset/debug/cbegin_neg.cc:
752 * testsuite/23_containers/unordered_multiset/debug/cend_neg.cc:
754 * testsuite/23_containers/unordered_multiset/debug/construct1_neg.cc:
756 * testsuite/23_containers/unordered_multiset/debug/construct2_neg.cc:
758 * testsuite/23_containers/unordered_multiset/debug/construct3_neg.cc:
760 * testsuite/23_containers/unordered_multiset/debug/end1_neg.cc:
762 * testsuite/23_containers/unordered_multiset/debug/end2_neg.cc:
764 * testsuite/23_containers/unordered_multiset/debug/insert1_neg.cc:
766 * testsuite/23_containers/unordered_multiset/debug/insert2_neg.cc:
768 * testsuite/23_containers/unordered_multiset/debug/insert3_neg.cc:
770 * testsuite/23_containers/unordered_multiset/debug/
771 invalid_local_iterator_compare_neg.cc: Likewise.
772 * testsuite/23_containers/unordered_multiset/debug/
773 invalid_local_iterator_range_neg.cc: Likewise.
774 * testsuite/23_containers/unordered_multiset/debug/
775 iterator_self_move_assign_neg.cc: Likewise.
776 * testsuite/23_containers/unordered_multiset/debug/
777 max_load_factor_neg.cc: Likewise.
778 * testsuite/23_containers/unordered_multiset/debug/
779 self_move_assign_neg.cc: Likewise.
780 * testsuite/23_containers/unordered_multiset/debug/
781 use_erased_local_iterator_neg.cc: Likewise.
782 * testsuite/23_containers/unordered_multiset/debug/
783 use_invalid_iterator_neg.cc: Likewise.
784 * testsuite/23_containers/unordered_multiset/debug/
785 use_invalid_local_iterator_neg.cc: Likewise.
786 * testsuite/23_containers/unordered_set/debug/60499.cc: Likewise.
787 * testsuite/23_containers/unordered_set/debug/begin1_neg.cc: Likewise.
788 * testsuite/23_containers/unordered_set/debug/begin2_neg.cc: Likewise.
789 * testsuite/23_containers/unordered_set/debug/bucket_size_neg.cc:
791 * testsuite/23_containers/unordered_set/debug/cbegin_neg.cc: Likewise.
792 * testsuite/23_containers/unordered_set/debug/cend_neg.cc: Likewise.
793 * testsuite/23_containers/unordered_set/debug/construct1_neg.cc:
795 * testsuite/23_containers/unordered_set/debug/construct2_neg.cc:
797 * testsuite/23_containers/unordered_set/debug/construct3_neg.cc:
799 * testsuite/23_containers/unordered_set/debug/end1_neg.cc: Likewise.
800 * testsuite/23_containers/unordered_set/debug/end2_neg.cc: Likewise.
801 * testsuite/23_containers/unordered_set/debug/insert1_neg.cc: Likewise.
802 * testsuite/23_containers/unordered_set/debug/insert2_neg.cc: Likewise.
803 * testsuite/23_containers/unordered_set/debug/insert3_neg.cc: Likewise.
804 * testsuite/23_containers/unordered_set/debug/
805 invalid_local_iterator_compare_neg.cc: Likewise.
806 * testsuite/23_containers/unordered_set/debug/
807 invalid_local_iterator_range_neg.cc: Likewise.
808 * testsuite/23_containers/unordered_set/debug/
809 iterator_self_move_assign_neg.cc: Likewise.
810 * testsuite/23_containers/unordered_set/debug/
811 max_load_factor_neg.cc: Likewise.
812 * testsuite/23_containers/unordered_set/debug/
813 self_move_assign_neg.cc: Likewise.
814 * testsuite/23_containers/unordered_set/debug/
815 use_erased_local_iterator_neg.cc: Likewise.
816 * testsuite/23_containers/unordered_set/debug/
817 use_invalid_iterator_neg.cc: Likewise.
818 * testsuite/23_containers/unordered_set/debug/
819 use_invalid_local_iterator_neg.cc: Likewise.
820 * testsuite/23_containers/vector/debug/52433.cc: Likewise.
821 * testsuite/23_containers/vector/debug/60499.cc: Likewise.
822 * testsuite/23_containers/vector/debug/bool/shrink_to_fit.cc: Likewise.
823 * testsuite/23_containers/vector/debug/
824 iterator_self_move_assign_neg.cc: Likewise.
825 * testsuite/23_containers/vector/debug/self_move_assign_neg.cc:
827 * testsuite/23_containers/vector/debug/shrink_to_fit.cc: Likewise.
828 * testsuite/25_algorithms/pop_heap/complexity.cc: Likewise.
829 * testsuite/25_algorithms/push_heap/complexity.cc: Likewise.
830 * testsuite/25_algorithms/sort_heap/complexity.cc: Likewise.
831 * testsuite/29_atomics/atomic/60658.cc: Likewise.
832 * testsuite/29_atomics/atomic/60695.cc: Likewise.
833 * testsuite/29_atomics/atomic/62259.cc: Likewise.
834 * testsuite/29_atomics/atomic/64658.cc: Likewise.
835 * testsuite/29_atomics/atomic/cons/49445.cc: Likewise.
836 * testsuite/29_atomics/atomic/operators/51811.cc: Likewise.
837 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
840 2016-09-11 Jonathan Wakely <jwakely@redhat.com>
842 * libsupc++/new_opant.cc: Include exception_defines.h.
843 * libsupc++/new_opvant.cc: Likewise.
845 2016-09-09 Jason Merrill <jason@redhat.com>
847 Implement P0035R4, C++17 new of over-aligned types.
848 * libsupc++/new: Declare aligned new/delete operators.
849 * config/abi/pre/gnu.ver: Export them.
850 * configure.ac: Check for aligned_alloc, posix_memalign, memalign,
852 * libsupc++/new_opa.cc: New.
853 * libsupc++/new_opant.cc: New.
854 * libsupc++/new_opva.cc: New.
855 * libsupc++/new_opva.cc: New.
856 * libsupc++/del_opa.cc: New.
857 * libsupc++/del_opant.cc: New.
858 * libsupc++/del_opsa.cc: New.
859 * libsupc++/del_opva.cc: New.
860 * libsupc++/del_opvant.cc: New.
861 * libsupc++/del_opvsa.cc: New.
862 * libsupc++/Makefile.am: Build them.
864 2016-09-05 Tim Shen <timshen@google.com>
866 * include/std/variant: include bits/move.h for std::addressof.
868 2016-09-05 Mikhail Strelnikov <mikhail.strelnikov@gmail.com>
870 * include/std/variant (_Variant_storage::_M_storage()): Use
871 std::addressof instead of operator& to take address.
873 2016-09-02 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
875 * acinclude.m4 (GLIBCXX_CONFIGURE_TESTSUITE): Check for presence of
876 setrlimit on both native and cross targets.
877 * configure: Regenerate.
879 2016-08-31 Jonathan Wakely <jwakely@redhat.com>
881 * include/bits/shared_ptr.h (_Assignable): New alias template.
882 (shared_ptr::operator=(const shared_ptr<_Tp1>&))
883 (shared_ptr::operator=(shared_ptr<_Tp1>&&))
884 (shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
886 * include/bits/shared_ptr_base.h (_Assignable): New alias template.
887 (__shared_ptr::operator=(const __shared_ptr<_Tp1>&))
888 (__shared_ptr::operator=(__shared_ptr<_Tp1>&&))
889 (__shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
891 (__shared_ptr::reset(_Tp1*), __shared_ptr::reset(_Tp1*, _Deleter))
892 (__shared_ptr::reset(_Tp1*, _Deleter, _Alloc)): Constrain with
894 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Change dg-error to
896 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
897 * testsuite/20_util/shared_ptr/assign/sfinae.cc: New test.
898 * testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc: Update
899 expected errors. Remove unnecessary code.
900 * testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc: New test.
902 * include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Move
904 * testsuite/23_containers/set/move_comparison.cc: New test.
906 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
909 2016-08-30 Ville Voutilainen <ville.voutilainen@gmail.com>
912 * include/std/type_traits (is_constructible): Forward-declare...
913 (__is_base_to_derived_ref): ...and use here.
914 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
915 * testsuite/20_util/is_constructible/77395.cc: New.
916 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust.
917 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
919 * testsuite/20_util/tuple/77395.cc: New.
921 2016-08-30 Uros Bizjak <ubizjak@gmail.com>
923 * testsuite/22_locale/time_get/get/char/2.cc: Move dg-do run
924 directive above dg-require-namedlocale directive.
925 * testsuite/22_locale/time_get/get/wchar_t/2.cc: Ditto.
926 * testsuite/27_io/manipulators/extended/get_time/char/2.cc: Ditto.
927 * testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc: Ditto.
928 * testsuite/27_io/manipulators/extended/put_time/char/2.cc: Ditto.
929 * testsuite/27_io/manipulators/extended/put_time/wchar_t/2.cc: Ditto.
931 2016-08-27 Tim Shen <timshen@google.com>
934 * include/bits/regex_compiler.tcc(_M_insert_bracket_matcher,
935 _M_expression_term): Modify to support dash literal.
936 * include/bits/regex_scanner.h: Add dash as a token type to make
937 a different from the mandated dash literal by escaping.
938 * include/bits/regex_scanner.tcc(_M_scan_in_bracket): Emit dash
939 token in bracket expression parsing.
940 * testsuite/28_regex/regression.cc: Add new testcases.
942 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
945 * doc/xml/manual/intro.xml: Document DR 2127 change.
946 * doc/html/*: Regenerate.
947 * include/bits/stl_raw_storage_iter.h (operator=(_Tp&&)): Add.
948 (operator++(), operator++(int)): Use injected class name.
949 * testsuite/20_util/raw_storage_iterator/dr2127.cc: New test.
951 * testsuite/*: Use { target c++11 } or { target c++14 } instead of
952 using -std in dg-options.
954 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
955 Pedro Alves <palves@redhat.com>
957 * testsuite/lib/gdb-test.exp (gdb-dg-runtest): Define wrapper to save
958 and restore dg-interpreter-batch-mode.
959 * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Use
960 gdb-dg-runtest instead of dg-runtest.
961 * testsuite/libstdc++-xmethods/xmethods.exp: Likewise.
963 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
965 * config/abi/pre/gnu.ver (GLIBCXX_3.4, GLIBCXX_3.4.21): Use more
966 precise patterns for basic_string constructors.
967 (GLIBCXX_3.4.23): Export new constructors.
968 * doc/xml/manual/intro.xml: Document LWG 2583 status.
969 * doc/html/*: Regenerate.
970 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
971 (basic_string(const basic_string&, size_type, const Alloc&)): Add
972 new constructor for LWG 2583.
973 (basic_string(const basic_string&, size_type, size_type)): Remove
975 [!_GLIBCXX_USE_CXX11_ABI]: Likewise.
976 * include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]: Define it.
977 * testsuite/21_strings/basic_string/cons/char/8.cc: New test.
978 * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: New test.
980 2016-08-24 Aditya Kumar <hiraditya@msn.com>
982 * include/bits/algorithmfwd.h: Remove trailing whitespace.
983 * include/bits/shared_ptr_base.h: Likewise.
985 2016-08-23 Jonathan Wakely <jwakely@redhat.com>
987 * include/debug/array (array): Add _GLIBCXX17_CONSTEXPR.
988 * include/profile/array (array): Likewise.
989 (array::swap): Fix exception specification for zero-sized arrays.
992 * include/bits/stl_tree.h (_Rb_tree::_M_move_assign): New functions.
993 (_Rb_tree::operator=(_Rb_tree&&)): Dispatch to _M_move_assign.
994 * testsuite/23_containers/map/77334.cc: New test.
996 * doc/xml/manual/using.xml: Remove reference to -pthreads option.
997 * doc/html/*: Regenerate.
999 * testsuite/experimental/feat-cxx14.cc: Only preprocess, not compile.
1000 * testsuite/experimental/feat-lib-fund.cc: Likewise.
1003 * include/bits/stl_iterator.h
1004 (operator-(reverse_iterator<Iter>, reverse_iterator<Iter>): Only
1005 define for C++98 mode.
1006 (operator-(move_iterator<Iter>, move_iterator<Iter>): Don't define.
1007 * testsuite/24_iterators/headers/iterator/synopsis.cc: Use
1009 * testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: New test.
1010 * testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: New test.
1011 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: New test.
1012 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Don't test
1013 difference operator.
1014 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc: Only test
1015 difference operator for C++98.
1016 * testsuite/24_iterators/reverse_iterator/71771.cc: New test.
1018 * include/bits/c++config (_GLIBCXX17_CONSTEXPR): Define.
1019 * include/bits/range_access.h (begin, end, rbegin, rend, crbegin)
1020 (crend): Add _GLIBCXX17_CONSTEXPR as per P0031R0.
1021 * include/bits/stl_iterator.h (reverse_iterator, move_iterator)
1022 (__make_reverse_iterator, make_reverse_iterator, make_move_iterator):
1024 * include/bits/stl_iterator_base_funcs.h (__distance, __advance): Add
1025 _GLIBCXX14_CONSTEXPR.
1026 (distance, advance, next, prev): Add _GLIBCXX17_CONSTEXPR.
1027 * include/std/array (array::begin, array::end, array::rbegin)
1028 (array::rend, array::cbegin, array:cend, array::crbegin)
1029 (array::crend, array::operator[], array::at, array::front)
1030 (array::back, array::data): Likewise.
1031 * testsuite/24_iterators/headers/iterator/range_access.cc: Replace
1032 with separate tests for C++11, C++14, and C++17.
1033 * testsuite/24_iterators/headers/iterator/range_access_c++11.cc: New.
1034 * testsuite/24_iterators/headers/iterator/range_access_c++14.cc: New.
1035 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc: New.
1037 2016-08-22 Tim Shen <timshen@google.com>
1039 Split _M_dfs() into smaller functions.
1040 * regex_executor.h(_M_handle_repeat, _M_handle_subexpr_begin)
1041 (_M_handle_subexpr_end, _M_handle_line_begin_assertion)
1042 (_M_handle_line_end_assertion, _M_handle_word_boundary)
1043 (_M_handle_subexpr_lookahead, _M_handle_match)
1044 (_M_handle_backref, _M_handle_accept, _M_handle_alternative):
1045 Add separate function declarations.
1046 * regex_executor.tcc: Split _M_dfs() into multiple handler functions.
1048 2016-08-22 Gleb Natapov <gleb@scylladb.com>
1051 * config/abi/pre/gnu-versioned-namespace.ver: Export
1052 __cxa_init_primary_exception and std::exception_ptr(void*).
1053 * config/abi/pre/gnu.ver (CXXABI_1.3.11) : Add new symbol version and
1054 export __cxa_init_primary_exception and std::exception_ptr(void*).
1055 * include/Makefile.am: Add new headers.
1056 * include/Makefile.in: Regenerate.
1057 * libsupc++/Makefile.am: Add new headers.
1058 * libsupc++/Makefile.in: Regenerate.
1059 * libsupc++/cxxabi.h (__cxa_allocate_exception): Move to ...
1060 * libsupc++/cxxabi_init_exception.h: New header.
1061 (__cxa_init_primary_exception): Declare.
1062 * libsupc++/eh_throw.cc (__cxa_init_primary_exception): Define.
1063 (__cxa_throw): Use __cxa_init_primary_exception.
1064 * libsupc++/exception (std::exception): Move to ...
1065 * libsupc++/exception.h: New header.
1066 * libsupc++/exception_ptr.h (__exception_ptr::exception_ptr): Add
1068 (__exception_ptr::__dest_thunk): New function template.
1069 (std::make_exception_ptr) [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]:
1070 Use __cxa_allocate_exception and __cxa_init_primary_exception to
1071 create exception_ptr.
1072 * libsupc++/typeinfo: Include bits/exception.h instead of exception.
1073 * testsuite/util/testsuite_abi.cc: Add CXXABI_1.3.11 version.
1075 2016-08-22 Jonathan Wakely <jwakely@redhat.com>
1077 * doc/xml/api.xml: Replace hardcoded links for specific versions with
1078 link to docs for all releases.
1079 * doc/html/*: Regenerate.
1082 * doc/xml/manual/intro.xml: Document DR 2062 change.
1083 * include/std/functional (function::swap): Add noexcept.
1084 (swap(function<Res(Args...)&, function<Res(Args...)&)): Likewise.
1085 * testsuite/20_util/function/77322.cc: New test.
1087 2016-08-19 Jonathan Wakely <jwakely@redhat.com>
1089 * testsuite/21_strings/basic_string/pthread18185.cc: Use -pthread for
1090 *-*-solaris* instead of -pthreads.
1091 * testsuite/21_strings/basic_string/pthread4.cc : Likewise.
1092 * testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
1093 * testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
1094 * testsuite/23_containers/list/pthread1.cc: Likewise.
1095 * testsuite/23_containers/list/pthread5.cc: Likewise.
1096 * testsuite/23_containers/map/pthread6.cc: Likewise.
1097 * testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
1098 * testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
1099 * testsuite/30_threads/shared_mutex/*: Likewise.
1100 * testsuite/ext/rope/pthread7-rope.cc: Likewise.
1101 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
1102 default_weaktoshared.cc: Likewise.
1103 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
1104 mutex_weaktoshared.cc: Likewise.
1105 * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise. Use
1106 dg-require-effective-target instead of using -std option.
1107 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
1109 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
1110 * testsuite/23_containers/vector/debug/multithreaded_swap.cc:
1112 * testsuite/30_threads/async/*: Likewise.
1113 * testsuite/30_threads/call_once/*: Likewise.
1114 * testsuite/30_threads/condition_variable/*: Likewise.
1115 * testsuite/30_threads/condition_variable_any/*: Likewise.
1116 * testsuite/30_threads/future/*: Likewise.
1117 * testsuite/30_threads/lock/*: Likewise.
1118 * testsuite/30_threads/mutex/*: Likewise.
1119 * testsuite/30_threads/packaged_task/*: Likewise.
1120 * testsuite/30_threads/promise/*: Likewise.
1121 * testsuite/30_threads/recursive_mutex/*: Likewise.
1122 * testsuite/30_threads/recursive_timed_mutex/*: Likewise.
1123 * testsuite/30_threads/shared_future/*: Likewise.
1124 * testsuite/30_threads/shared_lock/*: Likewise.
1125 * testsuite/30_threads/shared_timed_mutex/*: Likewise.
1126 * testsuite/30_threads/this_thread/*: Likewise.
1127 * testsuite/30_threads/thread/*: Likewise.
1128 * testsuite/30_threads/timed_mutex/*: Likewise.
1129 * testsuite/30_threads/try_lock/*: Likewise.
1130 * testsuite/30_threads/unique_lock/*: Likewise.
1132 * doc/xml/manual/status_cxx2017.xml: Update status of not_fn.
1133 * doc/html/*: Regenerate.
1134 * include/experimental/functional (_Not_fn, not_fn): Match C++17
1136 * include/std/functional (_Not_fn, not_fn): Define for C++17.
1137 * testsuite/20_util/not_fn/1.cc: New.
1138 * testsuite/experimental/functional/not_fn.cc: Test abstract class.
1139 Remove test for volatile-qualified wrapper.
1141 * include/std/atomic (atomic::is_always_lock_free): Define.
1142 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
1143 * testsuite/29_atomics/atomic/is_always_lock_free.cc: New.
1144 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc: New.
1145 * doc/xml/manual/status_cxx2017.xml: Update status.
1146 * doc/html/*: Regenerate.
1148 * include/experimental/tuple (apply): Qualify call to __apply_impl.
1149 * include/std/tuple (apply): Likewise.
1150 * testsuite/experimental/system_error/value.cc: Fix ambiguities in
1152 * testsuite/experimental/tuple/tuple_size.cc: Likewise.
1153 * testsuite/experimental/type_traits/value.cc: Likewise.
1155 * doc/xml/manual/status_cxx2017.xml: Update status of make_from_tuple
1157 * doc/html/*: Regenerate.
1159 2016-08-18 Ville Voutilainen <ville.voutilainen@gmail.com>
1161 Implement the latest proposed resolution of LWG 2756.
1162 * include/std/optional (Optional_base(const _Tp&))
1163 (Optional_base(_Tp&&), using _Base::_Base): Remove.
1164 (optional(nullopt_t)): New.
1165 (optional(_Up&&)): Invoke base directly with in_place
1166 rather than creating a temporary, add default template
1167 argument, change constraints.
1168 (optional(const optional<_Up>&)): Invoke base directly
1169 with in_place, remove unnecessary constraints.
1170 (optional(optional<_Up>&& __t)): Likewise.
1171 (optional(in_place_t, _Args&&...)): New.
1172 (optional(in_place_t, initializer_list<_Up>, _Args&&...)): Likewise.
1173 (operator=(_Up&&)): Add default template argument, change constraints.
1174 (operator=(const optional<_Up>&)): Put is_same first in the
1176 (operator=(optional<_Up>&&)): Likewise.
1177 * testsuite/20_util/optional/assignment/5.cc: Add a test to
1178 verify assignment from something that can't be perfect-forwarded.
1179 * testsuite/20_util/optional/cons/value.cc: Add tests to verify
1180 that a nested optional is disengaged when constructed
1181 from a disengaged element type, and to verify that assignments
1182 from an engaged element type engage the optional.
1184 2016-08-18 Tim Shen <timshen@google.com>
1188 * include/Makefile.am: Add new file std/variant.
1189 * include/Makefile.in: Generated from Makefile.am.
1190 * include/bits/enable_special_members.h: Add a tag type to allow
1191 the construction in non-default constructor.
1192 * include/bits/uses_allocator.h: Add convenience traits to
1193 detect constructibility.
1194 * include/std/variant: Implement <variant>.
1195 * testsuite/20_util/variant/compile.cc: Compile-time tests.
1196 * testsuite/20_util/variant/run.cc: Runtime tests.
1198 2016-08-18 Jonathan Wakely <jwakely@redhat.com>
1200 * doc/xml/manual/test.xml (test.run.permutations): Expand section.
1201 (test.new_tests): Rewrite section.
1202 (tests.dg.directives): New section.
1203 * doc/html/*: Regenerate.
1205 * doc/xml/manual/test.xml: Improve documentation of test targets.
1206 Document new-abi-baseline, check-debug, and check-parallel targets.
1208 * doc/xml/manual/build_hacking.xml: New section on shared library
1211 * doc/xml/manual/build_hacking.xml: Improve markup.
1212 * doc/xml/manual/test.xml: Likewise. Change section title from "Test"
1214 * doc/xml/faq.xml: Change link text to "Testing".
1216 * testsuite/tr1/3_function_objects/function/10.cc: Remove unintended
1217 dg-options directive.
1219 2016-08-17 Jonathan Wakely <jwakely@redhat.com>
1221 * testsuite/20_util/reference_wrapper/invoke-2.cc: Fix invalid dg-do
1222 directive and use effective target instead of dg-options.
1224 * testsuite/20_util/hash/chi2_q_bit_flip_set.cc: Use effective target
1225 instead of -std in dg-options.
1226 * testsuite/20_util/hash/chi2_q_bit_string_set.cc: Likewise.
1227 * testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc: Likewise.
1228 * testsuite/20_util/hash/chi2_q_uniform_random.cc: Likewise.
1229 * testsuite/20_util/hash/quality.cc: Likewise.
1230 * testsuite/25_algorithms/heap/moveable.cc: Likewise.
1231 * testsuite/25_algorithms/heap/moveable2.cc: Likewise.
1232 * testsuite/25_algorithms/nth_element/random_test.cc: Likewise.
1233 * testsuite/25_algorithms/partial_sort/random_test.cc: Likewise.
1234 * testsuite/25_algorithms/partial_sort_copy/random_test.cc: Likewise.
1235 * testsuite/25_algorithms/sort/random_test.cc: Likewise.
1237 * testsuite/20_util/tuple/67844.cc: Require c++11 effective target.
1238 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Likewise.
1239 * testsuite/27_io/rvalue_streams.cc: Likewise.
1241 * testsuite/26_numerics/complex/literals/types.cc: Add comment.
1243 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
1244 Remove duplicate dg-options directive.
1246 * testsuite/ext/profile/all.cc: Use effective target instead of
1247 -std=gnu++11. Use dg-additional-options instead of repeating options.
1249 * testsuite/20_util/bind/ref_neg.cc: Use effective target instead of
1250 -std=gnu++11. Add -fno-show-columns to dg-options. Use dg-prune-output
1251 instead of dg-excess-errors.
1253 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Disable
1255 * testsuite/experimental/chrono/value.cc: Avoid ambiguities in C++17.
1256 * testsuite/experimental/ratio/value.cc: Likewise.
1257 * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Disable test for
1259 * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
1260 * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
1261 * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
1262 * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
1263 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
1264 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
1265 * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
1266 * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
1267 * testsuite/tr1/5_numerical_facilities/special_functions/
1268 10_cyl_bessel_k/airy.cc: Adjust namespace of __detail::__airy for
1269 C++17 compatibility.
1271 * testsuite/24_iterators/headers/iterator/range_access.cc: Adjust
1272 expected signatures for C++14 compatibility.
1275 * include/bits/basic_string.h (operator=(__sv_type)
1276 (append(__sv_type), assign(__sv_type), insert(size_type, __sv_type))
1277 (replace(size_type, size_type, __sv_type))
1278 (replace(const_iterator, const_iterator, __sv_type))
1279 (find(__sv_type, size_type), rfind(__sv_type, size_type))
1280 (compare(size_type, size_type, __sv_type)): Reformat.
1281 (_If_sv): Define helper for SFINAE constaints.
1282 (append(const _Tp&, size_type, size_type))
1283 (assign(const _Tp&, size_type, size_type))
1284 (insert(size_type, const _Tp&, size_type, size_type))
1285 (replace(size_type, size_type, const _Tp&, size_type, size_type)):
1287 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc: Test
1289 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
1291 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1293 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
1295 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
1297 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
1299 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
1301 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
1303 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1305 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
1307 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
1310 2016-08-16 Jonathan Wakely <jwakely@redhat.com>
1313 * include/bits/stl_bvector.h (_Bvector_base::_M_deallocate): Zero
1314 pointers to start and end of storage.
1315 * testsuite/23_containers/vector/bool/72847.cc: New test.
1316 * include/bits/vector.tcc (vector<bool>::_M_reallocate): Only update
1317 _M_finish after deallocating.
1318 (vector<bool>::_M_fill_insert): Likewise.
1319 (vector<bool>::_M_insert_range): Likewise.
1320 (vector<bool>::_M_insert_aux): Likewise.
1322 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1324 Implement LWG 2744 and LWG 2754.
1325 * include/std/any (any(ValueType&&)): Constrain with __is_in_place_type.
1326 (any(in_place_type_t<_ValueType>, _Args&&...)): Use _Decay.
1327 (any(in_place_type_t<_ValueType>, initializer_list<_Up>, _Args&&...)):
1329 (emplace(_Args&&...)): Likewise.
1330 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
1331 * include/std/utility: (__is_in_place_type_impl): New.
1332 (__is_in_place_type): Likewise.
1333 * testsuite/20_util/any/assign/emplace.cc: Add tests for decaying
1335 * testsuite/20_util/any/cons/in_place.cc: Add tests for decaying
1336 in_place constructor.
1337 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
1338 * testsuite/20_util/any/requirements.cc: Add a test for
1339 in_place-constructing a non-default-constructible type.
1341 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1343 Add a feature macro for C++17 make_from_tuple.
1344 * include/std/tuple (__cpp_lib_make_from_tuple): New.
1345 (__make_from_tuple_impl(_Tuple&&, index_sequence<_Idx...>)):
1346 Qualify the call to get<>().
1347 * testsuite/20_util/tuple/make_from_tuple/1.cc: Adjust.
1349 2016-08-15 Uros Bizjak <ubizjak@gmail.com>
1351 * src/filesystem/ops.cc: Always include ostream and
1352 ext/stdio_filebuf.h.
1353 (do_copy_file): Check if _GLIBCXX_USE_FCHMODAT is defined.
1354 [_GLIBCXX_USE_SENDFILE]: Fallback to read/write operations in case
1355 sendfile fails with ENOSYS or EINVAL.
1357 2016-08-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
1360 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Fix dg-error
1363 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1365 Implement C++17 make_from_tuple.
1366 * include/std/tuple (__make_from_tuple_impl, make_from_tuple): New.
1367 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
1369 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1372 * include/bits/basic_string.h
1373 (append(__sv_type, size_type, size_type)): Turn into a template,
1374 change parameter type, constrain, add a conversion to __sv_type
1375 from the dependent parameter type.
1376 (assign(__sv_type, size_type, size_type)): Likewise.
1377 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
1378 (replace(size_type, size_type, __sv_type, size_type, size_type)):
1380 (compare(size_type, size_type,__sv_type, size_type, size_type)):
1382 * testsuite/21_strings/basic_string/lwg2758.cc: New.
1384 2016-08-06 Jonathan Wakely <jwakely@redhat.com>
1386 * doc/xml/manual/status_cxx2017.xml: Update status table.
1387 * doc/html/manual/status.html: Regenerate.
1389 * testsuite/lib/libstdc++.exp: Fix typo in comment.
1392 * include/std/functional (_Function_base::_Base_manager::_M_clone):
1393 Qualify new operator.
1394 * testsuite/20_util/function/cons/72820.cc: New test.
1396 * doc/xml/manual/status_cxx2017.xml: Add missing LFTSv2 features.
1397 * doc/html/manual/status.html: Regenerate.
1398 * include/Makefile.am: Add new header.
1399 * include/Makefile.in: Regenerate.
1400 * include/bits/invoke.h: New header.
1401 (__invoke): Make constexpr. Add && to types in exception specification.
1402 * include/experimental/tuple (apply, __apply_impl): Fix non-reserved
1403 names. Include <bits/invoke.h> and use std::__invoke.
1404 * include/std/functional (__invfwd, __invoke_impl, __invoke): Move to
1406 (invoke): Add && to types in exception specification.
1407 * include/std/tuple (apply, __apply_impl): Define for C++17.
1408 * testsuite/20_util/tuple/apply/1.cc: New test.
1409 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error
1412 2016-08-05 Jonathan Wakely <jwakely@redhat.com>
1414 * doc/xml/manual/status_cxx2017.xml: Correct shared_from_this status.
1415 * doc/html/manual/status.html: Regenerate.
1417 * include/std/chrono (floor, ceil, round, abs): New for C++17.
1418 * testsuite/20_util/duration_cast/rounding.cc: New test.
1419 * testsuite/20_util/time_point_cast/rounding.cc: New test.
1420 * doc/xml/manual/status_cxx2017.xml: Update status table.
1421 * doc/html/manual/status.html: Regenerate.
1422 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust
1424 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1425 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1426 * testsuite/20_util/duration/literals/range.cc: Likewise.
1428 * include/std/functional (__callable_functor): Remove.
1429 (_Function_handler::_M_invoke): Use __invoke instead of
1430 __callable_functor or mem_fn.
1431 (function::_Callable): Use lvalue in result_of expression.
1432 (function): Remove TODO comments about allocators.
1433 * testsuite/20_util/function/cons/refqual.cc: New test.
1435 2016-08-04 Jonathan Wakely <jwakely@redhat.com>
1437 * doc/xml/manual/status_cxx2017.xml: Update status table.
1438 * include/std/functional (__inv_unwrap): Move to <type_traits>.
1439 (__invoke_impl): Remove exception specifications.
1440 (__invoke, invoke): Add exception specifications using
1441 __is_nothrow_callable.
1442 * include/std/type_traits (__inv_unwrap): Move from <functional>.
1443 (__is_callable_impl, __call_is_nt, __call_is_nothrow): New helpers.
1444 (__is_callable, __is_nothrow_callable): New traits.
1445 (is_callable, is_callable_v): New C++17 traits.
1446 (is_nothrow_callable, is_nothrow_callable_v): Likewise.
1447 * testsuite/20_util/is_callable/requirements/
1448 explicit_instantiation.cc: New test.
1449 * testsuite/20_util/is_callable/requirements/
1450 explicit_instantiation_ext.cc: New test.
1451 * testsuite/20_util/is_callable/requirements/typedefs.cc: New test.
1452 * testsuite/20_util/is_callable/requirements/typedefs_ext.cc: New
1454 * testsuite/20_util/is_callable/value.cc: New test.
1455 * testsuite/20_util/is_callable/value_ext.cc: New test.
1456 * testsuite/20_util/is_nothrow_callable/requirements/
1457 explicit_instantiation.cc: New test.
1458 * testsuite/20_util/is_nothrow_callable/requirements/
1459 explicit_instantiation_ext.cc: New test.
1460 * testsuite/20_util/is_nothrow_callable/requirements/typedefs.cc:
1462 * testsuite/20_util/is_nothrow_callable/requirements/typedefs_ext.cc:
1464 * testsuite/20_util/is_nothrow_callable/value.cc: New test.
1465 * testsuite/20_util/is_nothrow_callable/value_ext.cc: New test.
1467 * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
1468 * doc/html/manual/status.html: Regenerate.
1470 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Use
1471 effective target not dg-options. Move check for feature-test macro to:
1472 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
1475 * include/std/functional (_Unwrap): Rename to __inv_unwrap.
1477 (__invoke_impl): Remove unused template parameters.
1478 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
1480 * testsuite/20_util/function_objects/invoke/ref_ext.cc: Copy 59768.cc
1481 and test __invoke extension for C++11.
1483 2016-08-03 Jonathan Wakely <jwakely@redhat.com>
1485 * include/bits/shared_ptr_base.h (__cpp_lib_enable_shared_from_this):
1486 Define feature-test macro.
1487 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Test
1490 * include/bits/shared_ptr.h (shared_ptr::weak_type): Define.
1491 * include/bits/shared_ptr_base.h (__shared_ptr::weak_type): Define.
1492 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
1493 * testsuite/20_util/shared_ptr/requirements/weak_type.cc: New test.
1494 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
1496 * include/std/utility (as_const): Define.
1497 * testsuite/20_util/as_const/1.cc: New test.
1498 * testsuite/20_util/as_const/rvalue_neg.cc: New test.
1500 * include/bits/shared_ptr.h (owner_less): Add default template
1502 * include/bits/shared_ptr_base.h (_Sp_owner_less<void, void>): Define
1504 (owner_less<void>): Define specialization.
1505 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
1507 * testsuite/20_util/owner_less/void.cc: New test.
1508 * testsuite/experimental/feat-cxx14.cc: Update macro value tested.
1510 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
1511 Define feature-test macro.
1512 * include/bits/range_access.h (__cpp_lib_array_constexpr): Likewise.
1513 * include/std/shared_mutex (__cpp_lib_shared_mutex): Uncomment.
1514 * include/std/type_traits (__cpp_lib_logical_traits): Fix value.
1515 (__cpp_lib_type_trait_variable_templates): Define.
1517 * include/bits/stl_function.h: Remove commented-out macro.
1518 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
1519 Define feature-test macro.
1520 * testsuite/experimental/feat-cxx14.cc: Add tests for more macros.
1522 * include/bits/c++config (_GLIBCXX_USE_STD_SPEC_FUNCS): Define for
1523 C++17, or for C++11/C++14 when __STDCPP_WANT_MATH_SPEC_FUNCS__ is
1525 * include/bits/specfun.h [!__STDCPP_WANT_MATH_SPEC_FUNCS__]: Don't
1526 do #error for C++17.
1527 * include/c_global/cmath: Check _GLIBCXX_USE_STD_SPEC_FUNCS instead
1528 of __STDCPP_WANT_MATH_SPEC_FUNCS__.
1529 * include/tr1/bessel_function.tcc: Likewise.
1530 * include/tr1/beta_function.tcc: Likewise.
1531 * include/tr1/cmath: Likewise.
1532 * include/tr1/ell_integral.tcc: Likewise.
1533 * include/tr1/exp_integral.tcc: Likewise.
1534 * include/tr1/gamma.tcc: Likewise.
1535 * include/tr1/hypergeometric.tcc: Likewise.
1536 * include/tr1/legendre_function.tcc: Likewise.
1537 * include/tr1/modified_bessel_func.tcc: Likewise.
1538 * include/tr1/poly_hermite.tcc: Likewise.
1539 * include/tr1/poly_laguerre.tcc: Likewise.
1540 * include/tr1/riemann_zeta.tcc: Likewise.
1541 * include/tr1/special_function_util.h: Likewise.
1542 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc: New.
1544 * include/std/type_traits (has_trivial_default_constructor): Remove.
1545 (has_trivial_copy_constructor, has_trivial_copy_assign): Likewise.
1546 * testsuite/20_util/has_trivial_copy_assign/requirements/
1547 explicit_instantiation.cc: Remove test.
1548 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
1550 * testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc:
1552 * testsuite/20_util/has_trivial_copy_assign/value.cc: Likewise.
1553 * testsuite/20_util/has_trivial_copy_constructor/requirements/
1554 explicit_instantiation.cc: Likewise.
1555 * testsuite/20_util/has_trivial_copy_constructor/requirements/
1556 typedefs.cc: Likewise.
1557 * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise.
1558 * testsuite/20_util/has_trivial_default_constructor/requirements/
1559 explicit_instantiation.cc: Likewise.
1560 * testsuite/20_util/has_trivial_default_constructor/requirements/
1561 typedefs.cc: Likewise.
1562 * testsuite/20_util/has_trivial_default_constructor/value.cc:
1564 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
1565 Check has_trivial_default_constructor, has_trivial_copy_constructor,
1566 and has_trivial_copy_assign are not defined.
1567 * testsuite/20_util/pair/requirements/dr801.cc: Remove commented out
1569 * testsuite/20_util/tuple/requirements/dr801.cc: Likewise.
1570 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
1571 dg-error line number.
1572 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1575 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
1577 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
1578 Remove reundant check for _GLIBCXX_USE_WCHAR_T and fix char type.
1579 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
1581 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
1583 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
1585 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
1587 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
1589 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
1592 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Improve
1595 * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Move
1596 dg-error to relevant line.
1597 * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc:
1599 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
1601 * scripts/testsuite_flags.in: Add -fno-show-column to cxxflags.
1603 * testsuite/18_support/bad_exception/23591_thread-1.c: Skip test if
1604 options are present that aren't valid for C.
1605 * testsuite/abi/header_cxxabi.c: Likewise.
1607 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/
1608 check_value.cc: Do not add special functions to namespace std in TR1
1611 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Only
1612 run for C++11 and later.
1613 * testsuite/ext/special_functions/conf_hyperg/check_value.cc:
1615 * testsuite/ext/special_functions/conf_hyperg/compile.cc: Likewise.
1616 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
1617 * testsuite/ext/special_functions/hyperg/check_value.cc: Likewise.
1618 * testsuite/ext/special_functions/hyperg/compile.cc: Likewise.
1619 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
1621 * testsuite/special_functions/01_assoc_laguerre/check_value.cc:
1623 * testsuite/special_functions/01_assoc_laguerre/compile.cc: Likewise.
1624 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc:
1626 * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
1628 * testsuite/special_functions/02_assoc_legendre/check_value.cc:
1630 * testsuite/special_functions/02_assoc_legendre/compile.cc: Likewise.
1631 * testsuite/special_functions/02_assoc_legendre/compile_2.cc:
1632 * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
1633 * testsuite/special_functions/03_beta/check_value.cc: Likewise.
1634 * testsuite/special_functions/03_beta/compile.cc: Likewise.
1635 * testsuite/special_functions/03_beta/compile_2.cc: Likewise.
1636 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: Likewise.
1637 * testsuite/special_functions/04_comp_ellint_1/check_value.cc:
1639 * testsuite/special_functions/04_comp_ellint_1/compile.cc: Likewise.
1640 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Likewise.
1641 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: Likewise.
1642 * testsuite/special_functions/05_comp_ellint_2/check_value.cc:
1644 * testsuite/special_functions/05_comp_ellint_2/compile.cc: Likewise.
1645 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Likewise.
1646 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: Likewise.
1647 * testsuite/special_functions/06_comp_ellint_3/check_value.cc:
1649 * testsuite/special_functions/06_comp_ellint_3/compile.cc: Likewise.
1650 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Likewise.
1651 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: Likewise.
1652 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc:
1654 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: Likewise.
1655 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Likewise.
1656 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: Likewise.
1657 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: Likewise.
1658 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc:
1660 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: Likewise.
1661 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Likewise.
1662 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: Likewise.
1663 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc:
1665 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: Likewise.
1666 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Likewise.
1667 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: Likewise.
1668 * testsuite/special_functions/10_cyl_neumann/check_value.cc: Likewise.
1669 * testsuite/special_functions/10_cyl_neumann/compile.cc: Likewise.
1670 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Likewise.
1671 * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
1672 * testsuite/special_functions/11_ellint_1/check_value.cc: Likewise.
1673 * testsuite/special_functions/11_ellint_1/compile.cc: Likewise.
1674 * testsuite/special_functions/11_ellint_1/compile_2.cc: Likewise.
1675 * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
1676 * testsuite/special_functions/12_ellint_2/check_value.cc: Likewise.
1677 * testsuite/special_functions/12_ellint_2/compile.cc: Likewise.
1678 * testsuite/special_functions/12_ellint_2/compile_2.cc: Likewise.
1679 * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
1680 * testsuite/special_functions/13_ellint_3/check_value.cc: Likewise.
1681 * testsuite/special_functions/13_ellint_3/compile.cc: Likewise.
1682 * testsuite/special_functions/13_ellint_3/compile_2.cc: Likewise.
1683 * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
1684 * testsuite/special_functions/14_expint/check_value.cc: Likewise.
1685 * testsuite/special_functions/14_expint/compile.cc: Likewise.
1686 * testsuite/special_functions/14_expint/compile_2.cc: Likewise.
1687 * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
1688 * testsuite/special_functions/15_hermite/check_value.cc: Likewise.
1689 * testsuite/special_functions/15_hermite/compile.cc: Likewise.
1690 * testsuite/special_functions/15_hermite/compile_2.cc: Likewise.
1691 * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
1692 * testsuite/special_functions/16_laguerre/check_value.cc: Likewise.
1693 * testsuite/special_functions/16_laguerre/compile.cc: Likewise.
1694 * testsuite/special_functions/16_laguerre/compile_2.cc: Likewise.
1695 * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
1696 * testsuite/special_functions/17_legendre/check_value.cc: Likewise.
1697 * testsuite/special_functions/17_legendre/compile.cc: Likewise.
1698 * testsuite/special_functions/17_legendre/compile_2.cc: Likewise.
1699 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: Likewise.
1700 * testsuite/special_functions/18_riemann_zeta/check_value.cc:
1702 * testsuite/special_functions/18_riemann_zeta/compile.cc: Likewise.
1703 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Likewise.
1704 * testsuite/special_functions/19_sph_bessel/check_nan.cc: Likewise.
1705 * testsuite/special_functions/19_sph_bessel/check_value.cc: Likewise.
1706 * testsuite/special_functions/19_sph_bessel/compile.cc: Likewise.
1707 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Likewise.
1708 * testsuite/special_functions/20_sph_legendre/check_nan.cc: Likewise.
1709 * testsuite/special_functions/20_sph_legendre/check_value.cc:
1711 * testsuite/special_functions/20_sph_legendre/compile.cc: Likewise.
1712 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Likewise.
1713 * testsuite/special_functions/21_sph_neumann/check_nan.cc: Likewise.
1714 * testsuite/special_functions/21_sph_neumann/check_value.cc: Likewise.
1715 * testsuite/special_functions/21_sph_neumann/compile.cc: Likewise.
1716 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Likewise.
1718 * testsuite/tr1/5_numerical_facilities/special_functions/
1719 08_cyl_bessel_i/check_value.cc: Use __attribute__((unused)) instead
1721 * testsuite/tr1/5_numerical_facilities/special_functions/
1722 09_cyl_bessel_j/check_value.cc: Likewise.
1723 * testsuite/tr1/5_numerical_facilities/special_functions/
1724 10_cyl_bessel_k/check_value.cc: Likewise.
1725 * testsuite/tr1/5_numerical_facilities/special_functions/
1726 11_cyl_neumann/check_value.cc: Likewise.
1727 * testsuite/tr1/5_numerical_facilities/special_functions/
1728 21_sph_bessel/check_value.cc: Likewise.
1729 * testsuite/tr1/5_numerical_facilities/special_functions/
1730 23_sph_neumann/check_value.cc: Likewise.
1732 2016-08-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1734 * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
1735 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
1736 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
1737 * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
1738 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
1739 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
1741 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
1743 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: Skip
1746 * testsuite/lib/libstdc++.exp (v3-build_support): Add -fno-lto to
1747 additional flags for compiling libtestc++.a objects.
1749 2016-08-01 Jonathan Wakely <jwakely@redhat.com>
1751 * include/bits/basic_string.h (data() const): Update comment.
1752 (data()): Add non-const overload for C++17.
1753 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
1754 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
1756 * include/bits/basic_string.tcc: Disable explicit instantiation
1757 declarations for C++17.
1759 * testsuite/23_containers/unordered_map/requirements/53339.cc: Remove
1760 ignored "xfail" from { dg-do compile { xfail selector } } directive.
1761 * testsuite/23_containers/unordered_multimap/requirements/53339.cc:
1763 * testsuite/26_numerics/headers/cmath/
1764 c99_classification_macros_c++11.cc: Likewise.
1765 * testsuite/26_numerics/headers/cmath/
1766 c99_classification_macros_c++98.cc: Likewise.
1767 * testsuite/26_numerics/headers/cmath/
1768 c99_classification_macros_c.cc: Likewise.
1770 * testsuite/backward/hash_set/check_construct_destroy.cc: Account
1771 for different construct/destroy counts in C++98 mode.
1773 * testsuite/17_intro/freestanding.cc: Remove "-x c" from dg-options.
1775 * testsuite/20_util/tuple/cons/66338.cc: Limit test to C++11 and
1777 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc:
1780 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Use
1781 C++98-compatible initialization for array.
1783 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc: Remove
1784 unused header and variable from compile-only test.
1785 * testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc: Likewise.
1786 * testsuite/28_regex/basic_regex/assign/char/cstring.cc: Likewise.
1787 * testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc: Likewise.
1788 * testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc:
1791 * testsuite/experimental/string_view/operations/rfind/char/2.cc:
1792 Remove duplicate dg-options directive.
1794 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
1795 808590.cc: Use -std=gnu++98 instead of -std=gnu++03.
1797 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Remove
1798 linker options from compile-only tests.
1799 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
1802 * testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Make test
1803 supported for C++11 and later.
1804 * testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
1805 * testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.
1807 2016-08-01 Uros Bizjak <ubizjak@gmail.com>
1809 * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
1811 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
1813 * testsuite/20_util/conditional/requirements/typedefs.cc: Change to
1816 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
1817 Ensure test is compiled with optimization.
1819 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
1820 Adjust dg-prune-output pattern for error in C++98 mode.
1822 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Only
1823 run for C++11 or later.
1825 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Fix
1826 test to not rely on GNU extension (escaped normal characters in POSIX
1827 BRE). Enable tests for other strings which are now supported.
1829 * testsuite/20_util/pair/astuple/get_neg.cc: Use effective-target
1830 c++11 instead of setting -std=gnu++14.
1833 * include/std/array (get): Use positive message for static assertions.
1834 * include/std/functional (_Safe_tuple_element_t): Fix indentation.
1835 * include/std/tuple (tuple_element<I, tuple<>>): Add partial
1836 specialization for invalid indices, with static assertion.
1837 * testsuite/20_util/tuple/element_access/get_neg.cc: New test.
1839 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Move
1840 dg-error to relevant line.
1841 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
1843 * testsuite/23_containers/forward_list/requirements/dr438/
1844 assign_neg.cc: Likewise.
1845 * testsuite/23_containers/forward_list/requirements/dr438/
1846 constructor_1_neg.cc: Likewise.
1847 * testsuite/23_containers/forward_list/requirements/dr438/
1848 constructor_2_neg.cc: Likewise.
1849 * testsuite/23_containers/forward_list/requirements/dr438/
1850 insert_neg.cc: Likewise.
1851 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc:
1853 * testsuite/26_numerics/random/linear_congruential_engine/
1854 requirements/non_uint_neg.cc: Likewise.
1855 * testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc:
1856 Likewise. Also test for std::atomic_address.
1858 2016-07-31 Ville Voutilainen <ville.voutilainen@gmail.com>
1860 Add missing variable traits, fix testsuite failures.
1861 * include/bits/uses_allocator.h (uses_allocator_v): New.
1862 * include/std/functional (is_bind_expression_v, is_placeholder_v):
1864 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
1865 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
1866 * testsuite/20_util/duration/literals/range.cc: Likewise.
1867 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
1868 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1869 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1870 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise.
1871 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1873 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
1874 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
1877 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
1879 * testsuite/18_support/numeric_limits/40856.cc [__STRICT_ANSI__]: Do
1880 not test 128-bit types.
1881 * testsuite/20_util/is_floating_point/value.cc: Likewise.
1882 * testsuite/20_util/is_integral/value.cc: Likewise.
1883 * testsuite/20_util/is_signed/value.cc: Likewise.
1884 * testsuite/20_util/is_unsigned/value.cc: Likewise.
1885 * testsuite/20_util/make_signed/requirements/typedefs-1.cc: Likewise.
1886 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
1887 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
1889 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
1892 * testsuite/26_numerics/headers/cstdlib/54686.c: Rename to 54686.cc.
1894 2016-07-29 Ville Voutilainen <ville.voutilainen@gmail.com>
1896 Implement C++17 variable templates for type traits.
1897 * include/std/chrono (treat_as_floating_point_v): New.
1898 * include/std/ratio (ratio_equal_v, ratio_not_equal_v)
1899 (ratio_less_v, ratio_less_equal_v, ratio_greater_v)
1900 (ratio_greater_equal_v): Likewise.
1901 * include/std/system_error (is_error_code_enum_v)
1902 (is_error_condition_enum_v): Likewise.
1903 * include/std/tuple (tuple_size_v): Likewise.
1904 * type_traits (conjunction_v, disjunction_v, negation_v)
1905 (is_void_v, is_null_pointer_v, is_integral_v, is_floating_point_v)
1906 (is_array_v, is_pointer_v, is_lvalue_reference_v)
1907 (is_rvalue_reference_v, is_member_object_pointer_v)
1908 (is_member_function_pointer_v, is_enum_v, is_union_v)
1909 (is_class_v, is_function_v, is_reference_v, is_arithmetic_v)
1910 (is_fundamental_v, is_object_v, is_scalar_v, is_compound_v)
1911 (is_member_pointer_v, is_const_v, is_volatile_v, is_trivial_v)
1912 (is_trivially_copyable_v, is_standard_layout_v)
1913 (is_pod_v, is_literal_type_v, is_empty_v, is_polymorphic_v)
1914 (is_abstract_v, is_final_v, is_signed_v, is_unsigned_v)
1915 (is_constructible_v, is_default_constructible_v)
1916 (is_copy_constructible_v, is_move_constructible_v)
1917 (is_assignable_v, is_copy_assignable_v, is_move_assignable_v)
1918 (is_destructible_v, is_trivially_constructible_v)
1919 (is_trivially_default_constructible_v)
1920 (is_trivially_copy_constructible_v, is_trivially_move_constructible_v)
1921 (is_trivially_assignable_v, is_trivially_copy_assignable_v)
1922 (is_trivially_move_assignable_v, is_trivially_destructible_v)
1923 (is_nothrow_constructible_v, is_nothrow_default_constructible_v)
1924 (is_nothrow_copy_constructible_v, is_nothrow_move_constructible_v)
1925 (is_nothrow_assignable_v, is_nothrow_copy_assignable_v)
1926 (is_nothrow_move_assignable_v, is_nothrow_destructible_v)
1927 (has_virtual_destructor_v, alignment_of_v, rank_v, extent_v)
1928 (is_same_v, is_base_of_v, is_convertible_v): Likewise.
1929 * testsuite/19_diagnostics/error_code/is_error_code_v.cc: Likewise.
1930 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
1932 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc: Likewise.
1933 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
1934 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
1936 2016-07-29 Andreas Schwab <schwab@linux-m68k.org>
1938 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
1939 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
1940 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
1942 2016-07-29 Jonathan Wakely <jwakely@redhat.com>
1944 * doc/xml/manual/abi.xml: Document 6.0.22 library version.
1945 * doc/html/manual/abi.html: Regenerate.
1947 * acinclude.m4 (libtool_VERSION): Bump to 6:23:0.
1948 * config/abi/pre/gnu.ver: Add 3.4.23 version for new basic_string
1950 * configure: Regenerate.
1951 * testsuite/util/testsuite_abi.cc: Add new symbol version.
1953 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
1954 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
1955 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Likewise.
1956 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
1958 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
1959 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
1960 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Likewise.
1962 2016-07-28 Jonathan Wakely <jwakely@redhat.com>
1964 * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
1965 Adjust dg-prune-output pattern for error in C++98 mode.
1966 * testsuite/23_containers/deque/requirements/dr438/
1967 constructor_1_neg.cc: Likewise.
1968 * testsuite/23_containers/deque/requirements/dr438/
1969 constructor_2_neg.cc: Likewise.
1970 * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
1972 * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
1974 * testsuite/23_containers/list/requirements/dr438/
1975 constructor_1_neg.cc: Likewise.
1976 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
1978 * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
1980 * testsuite/23_containers/vector/requirements/dr438/
1981 constructor_1_neg.cc: Likewise.
1982 * testsuite/23_containers/vector/requirements/dr438/
1983 constructor_2_neg.cc: Likewise.
1984 * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
1987 * testsuite/23_containers/vector/check_construct_destroy.cc: Account
1988 for different construct/destroy counts in C++98 mode.
1990 * testsuite/17_intro/headers/c++2011/stdc++.cc: Change target-specific
1991 dg-options to dg-additional-options so that default options are used.
1992 * testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc:
1994 * testsuite/17_intro/headers/c++2014/stdc++.cc: Likewise.
1995 * testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc:
1997 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
1998 Use dg-additional-options instead of repeating the common options.
2000 * testsuite/22_locale/conversions/string/1.cc: Remove unintended
2001 dg-do compile directive.
2002 * testsuite/26_numerics/headers/cmath/fabs_inline.cc: Fix syntax of
2004 * testsuite/26_numerics/valarray/const_bracket.cc: Likewise.
2006 2016-07-28 Ville Voutilainen <ville.voutilainen@gmail.com>
2008 Implement std::string_view and P0254r2,
2009 Integrating std::string_view and std::string.
2010 * include/Makefile.am: Add string_view and string_view.tcc
2011 to the exported headers.
2012 * include/Makefile.in: Likewise.
2013 * include/bits/basic_string.h: Include <string_view> in C++17 mode.
2015 (basic_string(__sv_type, const _Alloc&)): Likewise.
2016 (operator=(__sv_type)): Likewise.
2017 (operator __sv_type()): Likewise.
2018 (operator+=(__sv_type)): Likewise.
2019 (append(__sv_type __sv)): Likewise.
2020 (append(__sv_type, size_type, size_type)): Likewise.
2021 (assign(__sv_type)): Likewise.
2022 (assign(__sv_type, size_type, size_type)): Likewise.
2023 (insert(size_type, __sv_type)): Likewise.
2024 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
2025 (replace(size_type, size_type, __sv_type)): Likewise.
2026 (replace(size_type, size_type, __sv_type, size_type, size_type)):
2028 (replace(const_iterator, const_iterator, __sv_type)): Likewise.
2029 (find(__sv_type, size_type)): Likewise.
2030 (rfind(__sv_type, size_type)): Likewise.
2031 (find_first_of(__sv_type, size_type)): Likewise.
2032 (find_last_of(__sv_type, size_type)): Likewise.
2033 (find_first_not_of(__sv_type, size_type)): Likewise.
2034 (find_last_not_of(__sv_type, size_type)): Likewise.
2035 (compare(__sv_type)): Likewise.
2036 (compare(size_type, size_type, __sv_type)): Likewise.
2037 (compare(size_type, size_type, __sv_type, size_type, size_type)):
2039 * include/bits/string_view.tcc: New.
2040 * include/std/string_view: Likewise.
2041 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
2042 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
2043 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
2045 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
2047 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
2049 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
2051 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
2053 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
2055 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
2057 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
2059 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
2061 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
2063 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
2065 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
2067 * testsuite/21_strings/basic_string/operators/char/5.cc: Likewise.
2068 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc: Likewise.
2069 * testsuite/21_strings/basic_string_view/capacity/1.cc: Likewise.
2070 * testsuite/21_strings/basic_string_view/cons/char/1.cc: Likewise.
2071 * testsuite/21_strings/basic_string_view/cons/char/2.cc: Likewise.
2072 * testsuite/21_strings/basic_string_view/cons/char/3.cc: Likewise.
2073 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc: Likewise.
2074 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc: Likewise.
2075 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc: Likewise.
2076 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
2078 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
2080 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
2082 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
2084 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
2086 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
2088 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
2090 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
2092 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
2093 * testsuite/21_strings/basic_string_view/inserters/char/1.cc: Likewise.
2094 * testsuite/21_strings/basic_string_view/inserters/char/2.cc: Likewise.
2095 * testsuite/21_strings/basic_string_view/inserters/char/3.cc: Likewise.
2096 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
2098 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
2100 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
2102 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
2104 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
2106 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
2108 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
2110 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
2112 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
2114 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
2116 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
2118 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
2120 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
2122 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
2124 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
2126 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
2128 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
2130 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
2132 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
2134 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
2136 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
2138 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
2140 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
2142 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
2144 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
2146 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
2148 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
2150 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
2152 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
2154 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
2156 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
2158 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
2160 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
2162 * testsuite/21_strings/basic_string_view/operators/char/2.cc: Likewise.
2163 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
2165 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
2167 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
2169 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
2171 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
2173 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
2175 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
2177 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
2179 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
2181 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
2182 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
2184 2016-07-27 Jonathan Wakely <jwakely@redhat.com>
2186 * testsuite/20_util/forward/1_neg.cc: Move dg-error to right line.
2188 2016-07-25 Georeth Chow <georeth2010@gmail.com>
2190 * include/ext/ropeimpl.h (rope<>::_S_dump(_RopeRep*, int)): Qualify
2191 _S_concat enumerator.
2192 * testsuite/ext/rope/6.cc: New test.
2194 2016-07-25 Jonathan Wakely <jwakely@redhat.com>
2196 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Use
2197 std::mt19937, std::thread and std::atomic to simplify test.
2198 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
2200 2016-07-22 Jonathan Wakely <jwakely@redhat.com>
2203 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2204 (basic_string::_Alloc_hider(pointer, _Alloc&&)): Add constructor.
2205 * include/bits/stl_tree.h (_Rb_tree(_Rb_tree&&)): Move allocator.
2206 * testsuite/21_strings/basic_string/allocator/71964.cc: New test.
2207 * testsuite/23_containers/set/allocator/71964.cc: New test.
2209 * testsuite/lib/libstdc++.exp (check_v3_target_namedlocale): Use
2210 delete[] instead of delete.
2212 2016-07-21 Jonathan Wakely <jwakely@redhat.com>
2214 * include/experimental/propagate_const (propagate_const::__t): Rename
2215 to _M_t and remove comment. Qualify std::move and std::forward.
2216 * testsuite/experimental/propagate_const/cons/default.cc: Fix test.
2218 * testsuite/23_containers/vector/zero_sized_allocations.cc:
2219 Define sized deallocation function.
2220 * testsuite/util/testsuite_new_operators.h:
2221 (operator delete(void*, const std::nothrow_t&)): Define nothrow
2222 deallocation function.
2224 * testsuite/21_strings/basic_string/modifiers/append/char/1.cc: Fix
2225 reads past the end of strings.
2226 * testsuite/21_strings/basic_string/operations/compare/char/1.cc:
2228 * testsuite/21_strings/char_traits/requirements/short/1.cc: Fix
2229 invalid array accesses.
2230 * testsuite/experimental/string_view/operations/compare/char/1.cc:
2231 Fix read past the end of string.
2232 * testsuite/util/testsuite_character.cc: Fix out-of-bounds write.
2234 * testsuite/24_iterators/container_access.cc: Fix missing returns.
2235 * testsuite/24_iterators/range_access_cpp14.cc: Likewise.
2237 * testsuite/18_support/new_delete_placement.cc: Don't allocate (and
2238 leak) memory for arguments to placement delete.
2239 * testsuite/20_util/addressof/1.cc: Don't leak memory.
2240 * testsuite/22_locale/locale/global_locale_objects/3.cc: Likewise.
2241 * testsuite/23_containers/unordered_multimap/insert/55028-debug.cc:
2244 2016-07-20 Jonathan Wakely <jwakely@redhat.com>
2246 * doc/xml/manual/intro.xml: Document DR 2684 status.
2247 * doc/html/*: Regenerate.
2249 * include/std/atomic (atomic_int8_t, atomic_uint8_t, atomic_int16_t)
2250 (atomic_uint16_t, atomic_int32_t, atomic_uint32_t, atomic_int64_t)
2251 (atomic_uint64_t): Define (LWG 2441).
2252 * testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc: Remove empty
2254 * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Test for
2256 * doc/xml/manual/intro.xml: Document DR 2441 status.
2258 * include/std/istream (operator>>(basic_istream&&, _Tp&)): Adjust
2259 to use perfect forwarding (LWG 2328).
2260 * testsuite/27_io/rvalue_streams.cc: Test perfect forwarding.
2261 * doc/xml/manual/intro.xml: Document DR 2328 status.
2263 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Use
2264 static objects for catching nullptr as pointer to member types.
2266 2016-07-18 Ville Voutilainen <ville.voutilainen@gmail.com>
2268 Clean up optional's comments.
2269 * include/std/optional: Remove incorrect section headers
2270 from comments when redundant, replace bare section
2271 headers with more descriptive comments.
2273 2016-07-15 Jonathan Wakely <jwakely@redhat.com>
2275 * include/bits/algorithmfwd.h: Change C++0x to C++11 in comments.
2276 * include/bits/move.h: Likewise.
2277 * include/bits/postypes.h: Likewise.
2278 * include/debug/bitset: Likewise.
2279 * include/ext/pb_ds/detail/type_utils.hpp: Likewise.
2280 * include/ext/string_conversions.h: Change C++0x to __cxx11 in
2282 * testsuite/27_io/fpos/14320-1.cc: Change C++0x to C++11 in comment.
2283 * testsuite/util/thread/all.h: Likewise.
2285 * include/bits/stl_algo.h (for_each): Remove redundant _GLIBCXX_MOVE
2289 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Make
2290 nullptr match handlers of pointer type.
2292 2016-07-15 Edward Smith-Rowland <3dw4rd@verizon.net>
2294 Implement C++17 P0025 clamp.
2295 * include/bits/algorithmfwd.h: Declare clamp overloads.
2296 * include/bits/stl_algo.h: Implement clamp. Feature __cpp_lib_clamp.
2297 * testsuite/25_algorithms/clamp/1.cc: New test.
2298 * testsuite/25_algorithms/clamp/2.cc: New test.
2299 * testsuite/25_algorithms/clamp/constexpr.cc: New test.
2300 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
2302 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
2305 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
2307 Fix the constraints for any's assignment operator template to properly
2308 reject assignment from a non-copyable lvalue.
2309 * include/std/any (operator=(_ValueType&&)): Constrain the decayed
2310 type for is_copy_constructible,
2311 * testsuite/20_util/any/requirements.cc: Add a test for
2312 non-copyable lvalues.
2314 2016-07-14 Jonathan Wakely <jwakely@redhat.com>
2316 * include/experimental/functional: Include <parallel/algorithm> in
2319 * testsuite/experimental/functional/searchers.cc: Include <algorithm>
2323 * include/bits/forward_list.h (forward_list): Update doxygen comments
2324 to reflect allocator propagation semantics. Remove ambiguous
2325 statements about data being lost.
2326 * include/bits/stl_deque.h (deque): Likewise.
2327 * include/bits/stl_list.h (list): Likewise.
2328 * include/bits/stl_map.h (map): Likewise.
2329 * include/bits/stl_multimap.h (multimap): Likewise.
2330 * include/bits/stl_multiset.h (multiset): Likewise.
2331 * include/bits/stl_set.h (set): Likewise.
2332 * include/bits/stl_vector.h (vector): Likewise.
2333 * include/bits/unordered_map.h (unordered_map, unordered_multimap):
2335 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
2338 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
2340 Implement P0032R3, Homogeneous interface for variant, any and optional,
2341 for the parts concerning any and optional.
2342 * include/std/any (_Storage()): Make constexpr and have it
2344 (any()): Make constexpr.
2345 (any(const any&)): Adjust.
2346 (any(any&&)): Likewise.
2347 (__any_constructible_t): New.
2348 (any(_ValueType&&)): Constrain.
2349 (any(in_place_type_t<_Tp>, _Args&&...)): New.
2350 (any(in_place_type_t<_Tp>, initializer_list<_Up>, _Args&&...)):
2353 (operator=(const any&)): Likewise.
2354 (operator=(any&&)): Likewise.
2355 (operator=(_ValueType&&)): Constrain.
2356 (emplace(_Args&&...)): New.
2357 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
2360 (swap(any&)): Adjust.
2364 (_Manager_internal::_S_create(_Storage&, _Args&&...)): New.
2365 (_Manager_external::_S_create(_Storage&, _Args&&...)): Likewise.
2366 (make_any(_Args&&...)): Likewise.
2367 (make_any(initializer_list<_Up>, _Args&&...)): Likewise.
2368 * include/std/optional (in_place_t, in_place): Remove.
2369 (bad_optional_access): Add a comment referring to LEWG 72.
2370 (emplace(_Args&&...)): Constrain.
2372 (reset()): Likewise.
2373 (make_optional(_Args&&...)): Likewise.
2374 (make_optional(initializer_list<_Up>, _Args&&...)): Likewise.
2375 * include/std/utility (in_place_tag): New.
2376 (__in_place, __in_place_type, __in_place_index): Likewise.
2377 (in_place_t, in_place_type_t, in_place_index_t): Likewise.
2378 (in_place(__in_place*)): Likewise.
2379 (in_place(__in_place_type<_Tp>*)): Likewise.
2380 (in_place(__in_place_index<_Idx>*)): Likewise.
2381 * testsuite/20_util/any/assign/1.cc: Adjust.
2382 * testsuite/20_util/any/assign/emplace.cc: New.
2383 * testsuite/20_util/any/assign/self.cc: Adjust.
2384 * testsuite/20_util/any/cons/1.cc: Likewise.
2385 * testsuite/20_util/any/cons/in_place.cc: New.
2386 * testsuite/20_util/any/make_any.cc: Likewise.
2387 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
2388 * testsuite/20_util/any/misc/swap.cc: Likewise.
2389 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2390 * testsuite/20_util/any/requirements.cc: New.
2391 * testsuite/20_util/in_place/requirements.cc: Likewise.
2392 * testsuite/20_util/optional/constexpr/in_place.cc: Adjust.
2393 * testsuite/20_util/optional/in_place.cc: Likewise.
2394 * testsuite/20_util/optional/make_optional.cc: Add tests for
2395 the new overloads of make_optional.
2397 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2399 Implement P0307R2, Making Optional Greater Equal Again.
2400 * include/experimental/optional (_Has_addressof): Fix the comment.
2401 * include/std/optional (_Has_addressof): Likewise.
2402 (operator=(_Up&&)): Constrain.
2403 (operator=(const optional<_Up>&)): Likewise.
2404 (operator=(optional<_Up>&&)): Likewise.
2405 (__optional_relop_t): New.
2406 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2407 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2408 Constrain and make transparent.
2409 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2410 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2411 Constrain and make transparent.
2412 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2413 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2414 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2415 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2416 (operator!=(const optional<_Tp>&, _Tp const&)):
2417 Constrain and make transparent.
2418 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2419 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2420 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2421 (operator>(const optional<_Tp>&, const _Tp&)):
2422 Constrain and make transparent.
2423 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2424 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2425 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2426 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2427 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2428 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2429 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2430 * testsuite/20_util/optional/relops/1.cc: Likewise.
2431 * testsuite/20_util/optional/relops/2.cc: Likewise.
2432 * testsuite/20_util/optional/relops/3.cc: Likewise.
2433 * testsuite/20_util/optional/relops/4.cc: Likewise.
2434 * testsuite/20_util/optional/requirements.cc: Add tests to verify
2435 that optional's relops are transparent and don't synthesize
2436 operators. Also test that assignment sfinaes.
2438 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2441 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Define to 1 not empty.
2442 * include/parallel/compiletime_settings.h (_GLIBCXX_ASSERTIONS):
2443 Rename to _GLIBCXX_PARALLEL_ASSERTIONS and make default value depend
2444 on _GLIBCXX_ASSERTIONS.
2445 * include/parallel/balanced_quicksort.h: Rename _GLIBCXX_ASSERTIONS.
2446 Include <unistd.h> for sleep.
2447 * include/parallel/losertree.h: Rename _GLIBCXX_ASSERTIONS.
2448 * include/parallel/merge.h: Likewise.
2449 * include/parallel/multiway_merge.h: Likewise.
2450 * include/parallel/partition.h: Likewise.
2451 * include/parallel/queue.h: Likewise.
2452 * include/parallel/sort.h: Likewise.
2453 * testsuite/25_algorithms/headers/algorithm/
2454 parallel_algorithm_assert.cc: New.
2456 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2457 (replace(__const_iterator, __const_iterator, initializer_list<C>)):
2458 Forward to different overload.
2460 * include/bits/allocated_ptr.h (__allocated_ptr::_S_raw_ptr): Make
2463 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2465 Revert "Add non-const overload of std::string::data()".
2467 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2469 Implement P0307R2, Making Optional Greater Equal Again.
2470 * include/experimental/optional (_Has_addressof): Fix the comment.
2471 * include/std/optional (_Has_addressof): Likewise.
2472 (operator=(_Up&&)): Constrain.
2473 (operator=(const optional<_Up>&)): Likewise.
2474 (operator=(optional<_Up>&&)): Likewise.
2475 (__optional_relop_t): New.
2476 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2477 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2478 Constrain and make transparent.
2479 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2480 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2481 Constrain and make transparent.
2482 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2483 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2484 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2485 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2486 (operator!=(const optional<_Tp>&, _Tp const&)):
2487 Constrain and make transparent.
2488 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2489 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2490 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2491 (operator>(const optional<_Tp>&, const _Tp&)):
2492 Constrain and make transparent.
2493 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2494 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2495 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2496 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2497 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2498 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2499 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2500 * testsuite/20_util/optional/relops/1.cc: Likewise.
2501 * testsuite/20_util/optional/relops/2.cc: Likewise.
2502 * testsuite/20_util/optional/relops/3.cc: Likewise.
2503 * testsuite/20_util/optional/relops/4.cc: Likewise.
2504 * testsuite/20_util/optional/requirements.cc: Add tests to verify
2505 that optional's relops are transparent and don't synthesize
2506 operators. Also test that assignment sfinaes.
2508 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2510 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (_M_c_str):
2512 (_M_disjunct, basic_string(const basic_string&, size_t)): Use data()
2513 instead of _M_data().
2514 (basic_string(const basic_string&, size_t, size_t, const _Alloc&)):
2516 (append(const basic_string&)): Likewise.
2517 (append(const basic_string&, size_type, size_type)): Likewise.
2518 (assign(const basic_string&, size_type, size_type)): Likewise.
2519 (insert(size_type, const basic_string&)): Likewise.
2520 (insert(size_type, const basic_string&, size_type, size_type)):
2522 (replace(size_type, size_type, const basic_string&, size_type,
2523 size_type)): Likewise.
2524 (replace(__const_iterator, __const_iterator, const basic_string&)):
2526 (c_str(), data()): Use c_str() instead of _M_data().
2527 (data()): Add non-const overload as per LWG 2391 and P0272R1.
2528 (compare(const basic_string&)): Use data() instead of _M_data().
2529 [!_GLIBCXX_USE_CXX11_ABI] (data()): Add non-const overload.
2530 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI] (_M_mutate):
2531 Pass raw pointers to _S_copy.
2532 (_M_erase, _M_replace_aux): Pass raw pointers to _S_move and
2534 (find(const _CharT*, size_type, size_type)): Use data instead of
2536 * testsuite/21_strings/basic_string/allocator/char/ext_ptr.cc: New.
2537 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
2538 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
2540 2016-07-12 Jonathan Wakely <jwakely@redhat.com>
2542 * libsupc++/new: Remove nothrow sized deletes (LWG 2458).
2543 * doc/xml/manual/intro.xml: Document DR 2458 status.
2544 * doc/html*: Regenerate.
2546 * testsuite/20_util/pair/astuple/astuple.cc: Only include <utility>.
2547 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
2548 Only include <array>.
2549 * testsuite/23_containers/array/tuple_interface/tuple_size.cc:
2551 * doc/xml/manual/intro.xml: Document LWG 2212 support.
2552 * doc/html*: Regenerate.
2554 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2555 Add testcase from LWG 2164.
2557 2016-07-11 François Dumont <fdumont@gcc.gnu.org>
2559 * include/bits/stl_vector.h (push_back(const value_type&)): Forward
2560 to _M_realloc_insert.
2561 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2562 (_M_realloc_insert): Declare new function.
2563 (_M_emplace_back_aux): Remove definition.
2564 * include/bits/vector.tcc (emplace_back(_Args...)):
2565 Use _M_realloc_insert.
2566 (insert(const_iterator, const value_type&)): Likewise.
2567 (_M_insert_rval, _M_emplace_aux): Likewise.
2568 (_M_emplace_back_aux): Remove declaration.
2569 (_M_realloc_insert): Define.
2570 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2571 Adjust expected results for emplacing an lvalue with reallocation.
2573 2016-07-10 Ville Voutilainen <ville.voutilainen@gmail.com>
2575 Implement std::optional.
2576 * include/Makefile.am: Add optional to exported headers.
2577 * include/Makefile.in: Likewise.
2578 * include/std/optional: New.
2579 * testsuite/20_util/optional/typedefs.cc: Likewise.
2580 * testsuite/20_util/optional/relops/2.cc: Likewise.
2581 * testsuite/20_util/optional/relops/3.cc: Likewise.
2582 * testsuite/20_util/optional/relops/4.cc: Likewise.
2583 * testsuite/20_util/optional/relops/5.cc: Likewise.
2584 * testsuite/20_util/optional/relops/1.cc: Likewise.
2585 * testsuite/20_util/optional/relops/6.cc: Likewise.
2586 * testsuite/20_util/optional/nullopt.cc: Likewise.
2587 * testsuite/20_util/optional/in_place.cc: Likewise.
2588 * testsuite/20_util/optional/make_optional.cc: Likewise.
2589 * testsuite/20_util/optional/assignment/2.cc: Likewise.
2590 * testsuite/20_util/optional/assignment/3.cc: Likewise.
2591 * testsuite/20_util/optional/assignment/4.cc: Likewise.
2592 * testsuite/20_util/optional/assignment/5.cc: Likewise.
2593 * testsuite/20_util/optional/assignment/1.cc: Likewise.
2594 * testsuite/20_util/optional/assignment/6.cc: Likewise.
2595 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
2596 * testsuite/20_util/optional/cons/default.cc: Likewise.
2597 * testsuite/20_util/optional/cons/move.cc: Likewise.
2598 * testsuite/20_util/optional/cons/value.cc: Likewise.
2599 * testsuite/20_util/optional/cons/copy.cc: Likewise.
2600 * testsuite/20_util/optional/requirements.cc: Likewise.
2601 * testsuite/20_util/optional/observers/2.cc: Likewise.
2602 * testsuite/20_util/optional/observers/3.cc: Likewise.
2603 * testsuite/20_util/optional/observers/4.cc: Likewise.
2604 * testsuite/20_util/optional/observers/5.cc: Likewise.
2605 * testsuite/20_util/optional/observers/1.cc: Likewise.
2606 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
2607 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
2608 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2609 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
2610 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
2611 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
2612 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
2613 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
2614 * testsuite/20_util/optional/constexpr/make_optional.cc: Likewise.
2615 * testsuite/20_util/optional/constexpr/cons/default.cc: Likewise.
2616 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
2617 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
2618 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
2619 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
2620 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
2621 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
2622 * testsuite/20_util/optional/swap/1.cc: Likewise.
2624 2016-07-08 Jonathan Wakely <jwakely@redhat.com>
2626 * testsuite/23_containers/vector/modifiers/insert/aliasing.cc: New.
2628 2016-07-07 Jonathan Wakely <jwakely@redhat.com>
2630 * doc/xml/manual/status_cxx2014.xml: Update LFTS status table.
2631 * doc/html/*: Regenerate.
2633 2016-07-07 Ville Voutilainen <ville.voutilainen@gmail.com>
2636 * include/Makefile.am: Add any and c++17_warning.h to exported headers.
2637 * include/Makefile.in: Likewise.
2638 * include/std/any: New.
2639 * testsuite/20_util/any/assign/1.cc: Likewise.
2640 * testsuite/20_util/any/assign/2.cc: Likewise.
2641 * testsuite/20_util/any/assign/self.cc: Likewise.
2642 * testsuite/20_util/any/cons/1.cc: Likewise.
2643 * testsuite/20_util/any/cons/2.cc: Likewise.
2644 * testsuite/20_util/any/cons/aligned.cc: Likewise.
2645 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
2646 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
2647 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
2648 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
2649 * testsuite/20_util/any/misc/swap.cc: Likewise.
2650 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2651 * testsuite/20_util/any/observers/type.cc: Likewise.
2652 * testsuite/20_util/any/typedefs.cc: Likewise.
2654 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2656 Add a new header for diagnosing the use of C++17 facilities
2658 * include/bits/c++17_warning.h: New.
2660 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2662 Implement LWG 2451, optional<T> should 'forward' T's
2663 implicit conversions.
2664 * include/experimental/optional (__is_optional_impl, __is_optional):
2666 (optional()): Make constexpr and default.
2667 (optional(_Up&&), optional(const optional<_Up>&),
2668 optional(optional<_Up>&& __t): New.
2669 (operator=(_Up&&)): Constrain.
2670 (operator=(const optional<_Up>&), operator=(optional<_Up>&&)): New.
2671 * testsuite/experimental/optional/cons/value.cc:
2672 Add tests for the functionality added by LWG 2451.
2673 * testsuite/experimental/optional/cons/value_neg.cc: New.
2675 2016-07-05 Ville Voutilainen <ville.voutilainen@gmail.com>
2678 any_cast doesn't work with rvalue reference targets and cannot
2679 move with a value target.
2680 * include/experimental/any (any(_ValueType&&)): Constrain and
2681 add an overload that doesn't forward.
2682 (any_cast(any&&)): Constrain and add an overload that moves.
2683 * testsuite/experimental/any/misc/any_cast.cc: Add tests for
2684 the functionality added by LWG 2509.
2686 2016-07-04 François Dumont <fdumont@gcc.gnu.org>
2688 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2690 * testsuite/23_containers/vector/modifiers/insert/self_insert.cc: New
2693 2016-07-04 Jonathan Wakely <jwakely@redhat.com>
2695 * include/bits/stl_vector.h (emplace(const_iterator, _Args&&...)):
2696 Define inline. Forward to _M_emplace_aux.
2697 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2698 (_M_insert_rval, _M_emplace_aux): Declare new functions.
2699 (_Temporary_value): New RAII type using allocator to construct/destroy.
2700 (_S_insert_aux_assign): Remove.
2701 (_M_insert_aux): Make non-variadic.
2702 * include/bits/vector.tcc (insert(const_iterator, const value_type&)):
2703 Use _Temporary_value.
2704 (emplace(const_iterator, _Args&&...)): Remove definition.
2705 (_M_insert_rval, _M_emplace_aux): Define.
2706 (_M_insert_aux): Make non-variadic, stop using _S_insert_aux_assign.
2707 (_M_fill_insert): Use _Temporary_value.
2708 * testsuite/23_containers/vector/allocator/construction.cc: New test.
2709 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2710 Adjust expected results for emplacing an lvalue with reallocation.
2711 * testsuite/23_containers/vector/check_construct_destroy.cc: Adjust
2712 expected results to account for construction/destruction of temporary
2714 * testsuite/backward/hash_set/check_construct_destroy.cc: Likewise.
2716 2016-07-04 Ville Voutilainen <ville.voutilainen@gmail.com>
2719 * src/filesystem/ops.cc (remove_all(const path&, error_code&)):
2720 Call remove_all for children of a directory.
2721 * testsuite/experimental/filesystem/operations/create_directories.cc:
2724 2016-07-02 François Dumont <fdumont@gcc.gnu.org>
2726 * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Adjust
2727 dg-error line numbers.
2728 * testsuite/23_containers/array/tuple_interface/
2729 tuple_element_debug_neg.cc: Likewise.
2730 * testsuite/25_algorithms/lexicographical_compare/debug/
2731 irreflexive_neg.cc: Remove.
2733 2016-06-30 Thomas Preud'homme <thomas.preudhomme@arm.com>
2735 * testsuite/29_atomics/atomic/65913.cc: Require atomic-builtins rather
2736 than specific target.
2738 2016-06-27 François Dumont <fdumont@gcc.gnu.org>
2741 * include/bits/hashtable.h: Remove _Unique_keya parameter in _Insert
2744 2016-06-23 François Dumont <fdumont@gcc.gnu.org>
2746 * include/debug/array (array<>::swap): Fix noexcept qualificaton for
2749 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2751 * configure.host: Remove mep-* support.
2753 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2755 * configure: Regenerate.
2756 * configure.host: Remove support for knetbsd.
2757 * crossconfig.m4: Likewise.
2759 2016-06-20 François Dumont <fdumont@gcc.gnu.org>
2762 * include/tr1/hashtable_policy.h
2763 (_Prime_rehash_policy::_M_next_bkt): Make past-the-end iterator
2764 dereferenceable to avoid check on lower_bound result.
2765 (_Prime_rehash_policy::_M_bkt_for_elements): Call latter.
2766 (_Prime_rehash_policy::_M_need_rehash): Likewise.
2767 * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
2768 Always return a value greater than input value. Set _M_next_resize to
2769 max value when reaching highest prime number.
2770 * src/shared/hashtable-aux.cc (__prime_list): Add comment about sentinel
2772 * testsuite/23_containers/unordered_set/hash_policy/71181.cc: New.
2773 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc
2775 * testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc: New.
2776 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
2779 2016-06-17 Jonathan Wakely <jwakely@redhat.com>
2782 * include/bits/stl_algobase.h (lower_bound, lexicographical_compare):
2783 Remove irreflexive checks.
2784 * include/bits/stl_algo.h (lower_bound, upper_bound, equal_range,
2785 binary_search): Likewise.
2786 * testsuite/25_algorithms/equal_range/partitioned.cc: New test.
2787 * testsuite/25_algorithms/lexicographical_compare/71545.cc: New test.
2788 * testsuite/25_algorithms/lower_bound/partitioned.cc: New test.
2789 * testsuite/25_algorithms/upper_bound/partitioned.cc: New test.
2790 * testsuite/util/testsuite_iterators.h (__gnu_test::test_container):
2791 Add constructor from array.
2793 2016-06-16 François Dumont <fdumont@gcc.gnu.org>
2795 * include/debug/debug.h
2796 (__glibcxx_requires_non_empty_range, __glibcxx_requires_nonempty)
2797 (__glibcxx_requires_subscript): Move...
2798 * include/debug/assertions.h: ...here and add __builtin_expect.
2799 (_GLIBCXX_DEBUG_ONLY): Remove ; value.
2800 * include/bits/stl_deque.h
2801 (std::deque<>::operator[]): Add __glibcxx_requires_subscript check.
2802 (std::deque<>::front()): Add __glibcxx_requires_nonempty check.
2803 (std::deque<>::back()): Likewise.
2804 (std::deque<>::pop_front()): Likewise.
2805 (std::deque<>::pop_back()): Likewise.
2806 (std::deque<>::swap(deque&)): Add allocator check.
2807 * include/bits/stl_vector.h
2808 (std::vector<>::operator[]): Add __glibcxx_requires_subscript check.
2809 (std::vector<>::front()): Add __glibcxx_requires_nonempty check.
2810 (std::vector<>::back()): Likewise.
2811 (std::vector<>::pop_back()): Likewise.
2812 (std::vector<>::swap(vector&)): Add allocator check.
2814 2016-06-16 Daniel Kruegler <daniel.kruegler@gmail.com>
2816 Provide swappable traits (p0185r1)
2817 * include/std/type_traits (is_swappable, is_nothrow_swappable,
2818 is_swappable_with, is_nothrow_swappable_with, is_swappable_v,
2819 is_nothrow_swappable_v, is_swappable_with_v,
2820 is_nothrow_swappable_with_v): New.
2821 * include/bits/stl_pair.h: Use it as per p0185r1.
2822 * include/bits/stl_queue.h: Likewise.
2823 * include/bits/stl_stack.h: Likewise.
2824 * include/bits/unique_ptr.h: Likewise.
2825 * include/std/tuple: Likewise.
2826 * include/std/array: Likewise. Fix zero-size member swap.
2827 * include/bits/hashtable.h: Use __and_.
2828 * testsuite/20_util/is_nothrow_swappable/requirements/
2829 explicit_instantiation.cc: Change test options to std=gnu++17.
2830 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
2832 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
2833 * testsuite/20_util/is_swappable/requirements/
2834 explicit_instantiation.cc: Likewise.
2835 * testsuite/20_util/is_swappable/requirements/typedefs.cc: Likewise.
2836 * testsuite/20_util/is_swappable/value.cc: Likewise.
2837 * testsuite/20_util/is_nothrow_swappable/requirements/
2838 explicit_instantiation_ext.cc: New.
2839 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs_ext.cc:
2841 * testsuite/20_util/is_nothrow_swappable/value.h: New.
2842 * testsuite/20_util/is_nothrow_swappable/value_ext.cc: New.
2843 * testsuite/20_util/is_nothrow_swappable_with/requirements/
2844 explicit_instantiation.cc: New.
2845 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
2847 * testsuite/20_util/is_nothrow_swappable_with/value.cc: New.
2848 * testsuite/20_util/is_swappable/requirements/
2849 explicit_instantiation_ext.cc: New.
2850 * testsuite/20_util/is_swappable/requirements/typedefs_ext.cc: New.
2851 * testsuite/20_util/is_swappable/value.h: New.
2852 * testsuite/20_util/is_swappable/value_ext.cc: New.
2853 * testsuite/20_util/is_swappable_with/requirements/
2854 explicit_instantiation.cc: New.
2855 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc: New.
2856 * testsuite/20_util/is_swappable_with/value.cc: New.
2857 * testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
2858 dg-error line numbers.
2859 * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
2862 2016-06-16 Jonathan Wakely <jwakely@redhat.com>
2864 * include/std/array: Remove trailing whitespace.
2865 * include/std/atomic: Likewise.
2866 * include/std/bitset: Likewise.
2867 * include/std/chrono: Likewise.
2868 * include/std/complex: Likewise.
2869 * include/std/condition_variable: Likewise.
2870 * include/std/fstream: Likewise.
2871 * include/std/functional: Likewise.
2872 * include/std/future: Likewise.
2873 * include/std/iomanip: Likewise.
2874 * include/std/iosfwd: Likewise.
2875 * include/std/istream: Likewise.
2876 * include/std/limits: Likewise.
2877 * include/std/ratio: Likewise.
2878 * include/std/scoped_allocator: Likewise.
2879 * include/std/sstream: Likewise.
2880 * include/std/stdexcept: Likewise.
2881 * include/std/string: Likewise.
2882 * include/std/system_error: Likewise.
2883 * include/std/thread: Likewise.
2884 * include/std/tuple: Likewise.
2885 * include/std/type_traits: Likewise.
2886 * include/std/utility: Likewise.
2887 * include/std/valarray: Likewise.
2888 * include/std/vector: Likewise.
2890 * include/bits/stl_vector.h (vector::_S_insert_aux_assign): Define
2891 new overloaded functions.
2892 * include/bits/vector.tcc (vector::_M_insert_aux): Use new functions
2893 to avoid creating a redundant temporary.
2894 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc: New
2897 2016-06-15 François Dumont <fdumont@gcc.gnu.org>
2899 * include/bits/stl_deque.h
2900 (std::deque<>::operator=): Call _M_assign_aux.
2901 (std::deque<>::assign(initializer_list<>)): Likewise.
2902 (std::deque<>::resize(size_t, const value_type&)): Call _M_fill_insert.
2903 (std::deque<>::insert(const_iterator, initializer_list<>)):
2904 Call _M_range_insert_aux.
2905 (std::deque<>::_M_assign_aux<It>(It, It, std::forward_iterator_tag):
2907 (std::deque<>::_M_fill_assign): Call _M_fill_insert.
2908 (std::deque<>::_M_move_assign2): Call _M_assign_aux.
2909 * include/bits/deque.tcc
2910 (std::deque<>::operator=): Call _M_range_insert_aux.
2911 (std::deque<>::_M_assign_aux<It>(It, It, std::input_iterator_tag)):
2913 * include/bits/stl_vector.h
2914 (std::vector<>::operator=): Call _M_assign_aux.
2915 (std::vector<>::assign(initializer_list<>)): Likewise.
2916 (std::vector<>::resize(size_t, const value_type&)): Call _M_fill_insert.
2917 (std::vector<>::insert(const_iterator, initializer_list<>)):
2918 Call _M_range_insert.
2919 * include/bits/vector.tcc (std::vector<>::_M_assign_aux): Likewise.
2921 2016-06-07 François Dumont <fdumont@gcc.gnu.org>
2923 * include/std/tuple (_Head_base<>): Default specialization condition at
2926 2016-06-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2928 Support allocators in tuples of zero size.
2929 * include/std/tuple (tuple<>::tuple(),
2930 tuple<>::tuple(allocator_arg_t, const _Alloc&),
2931 tuple<>::tuple(allocator_arg_t, const _Alloc&, const tuple&)): New.
2932 * testsuite/20_util/tuple/cons/allocators.cc: Adjust.
2934 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
2937 * src/filesystem/ops.cc (permissions(const path&, perms, error_code&)):
2938 Add or remove permissions according to perms argument.
2939 * testsuite/experimental/filesystem/operations/permissions.cc: New
2942 2016-06-05 Ville Voutilainen <ville.voutilainen@gmail.com>
2944 Protect allocator-overloads of tuple-from-tuple constructors
2945 from cases that would create dangling references.
2946 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2947 const tuple<_UElements...>&), tuple(allocator_arg_t, const _Alloc&,
2948 tuple<_UElements...>&&)): Add a check for _NonNestedTuple.
2949 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Adjust.
2951 2016-05-29 Gerald Pfeifer <gerald@pfeifer.com>
2953 * doc/xml/manual/backwards_compatibility.xml: Adjust
2954 lists.debian.org link to https.
2955 * doc/html/manual/backwards.html: Regenerate.
2957 2016-05-27 Jonathan Wakely <jwakely@redhat.com>
2959 * doc/xml/manual/abi.xml: Adjust URL to use https.
2960 * doc/html/manual/*: Regenerate.
2962 2016-05-27 Ville Voutilainen <ville.voutilainen@gmail.com>
2965 * include/std/tuple (_TMC): Add a check for _NotSameTuple.
2966 * include/std/tuple (tuple(_UElements&&...)): Remove the separate
2967 check for _NotSameTuple.
2968 * include/std/tuple (_TMCT): New.
2969 * include/std/tuple (tuple(const tuple<_UElements...>&)): Use it.
2970 * include/std/tuple (tuple(tuple<_UElements...>&&)): Likewise.
2971 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2972 const tuple<_UElements...>&)): Likewise.
2973 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2974 tuple<_UElements...>&&)): Likewise.
2975 * testsuite/20_util/tuple/cons/66338.cc: New.
2977 2016-05-25 Jonathan Wakely <jwakely@redhat.com>
2979 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Fix test for sendfile.
2980 * configure: Regenerate.
2981 * config.h.in: Regenerate.
2983 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): Remove it.
2984 * include/bits/hashtable_policy.h (_Power2_rehash_policy::_M_next_bkt):
2985 Remove const qualification on function. Replace
2986 _GLIBCXX14_USE_CONSTEXPR on automatic variables with const.
2987 (_Power2_rehash_policy::_M_need_rehash): Remove const qualification.
2988 (_Power2_rehash_policy::_M_next_bkt): Remove mutable specifier.
2990 2016-05-24 François Dumont <fdumont@gcc.gnu.org>
2992 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): New.
2993 * include/bits/hashtable_policy.h
2994 (_Prime_rehash_policy::__has_load_factor): New. Mark rehash policy
2995 having load factor management.
2996 (_Mask_range_hashing): New.
2998 (_Power2_rehash_policy): New.
2999 (_Inserts<>): Remove last template parameter, _Unique_keys, so that
3000 partial specializations only depend on whether iterators are constant
3002 * testsuite/23_containers/unordered_set/hash_policy/26132.cc: Adapt to
3003 test new hash policy.
3004 * testsuite/23_containers/unordered_set/hash_policy/load_factor.cc:
3006 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
3008 * testsuite/23_containers/unordered_set/insert/hash_policy.cc:
3010 * testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
3012 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc:
3014 * testsuite/performance/23_containers/insert/54075.cc: Add benchmark
3015 using the new hash policy.
3016 * testsuite/performance/23_containers/insert_erase/41975.cc: Likewise.
3018 2016-05-24 Jonathan Wakely <jwakely@redhat.com>
3020 * include/bits/stl_queue.h (priority_queue::value_compare): Define.
3022 2016-05-23 François Dumont <fdumont@gcc.gnu.org>
3024 * include/debug/safe_iterator.h
3025 (_Safe_iterator<>::operator->()): Implement using underlying iterator
3027 * include/debug/safe_local_iterator.h
3028 (_Safe_local_iterator<>::operator->()): Likewise.
3030 2016-05-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
3032 * testsuite/experimental/memory_resource/1.cc: Add required argument
3033 to dg-require-atomic-builtins.
3035 2016-05-13 Jonathan Wakely <jwakely@redhat.com>
3038 * include/debug/bitset: Add #pragma GCC system_header.
3039 * include/debug/deque: Likewise.
3040 * include/debug/list: Likewise.
3041 * include/debug/map: Likewise.
3042 * include/debug/set: Likewise.
3043 * include/debug/string: Likewise.
3044 * include/debug/unordered_map: Likewise.
3045 * include/debug/unordered_set: Likewise.
3046 * include/debug/vector: Likewise.
3047 * include/debug/functions.h: Adjust whitespace.
3049 2016-05-12 Jonathan Wakely <jwakely@redhat.com>
3052 * testsuite/experimental/memory_resource/1.cc: Require atomics.
3054 2016-05-11 Jonathan Wakely <jwakely@redhat.com>
3057 * src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_DUAL_ABI]: Don't define
3058 exception constructors with __sso_string parameters.
3060 2016-05-10 Jonathan Wakely <jwakely@redhat.com>
3062 * include/experimental/bits/fs_dir.h (begin, end): Add noexcept.
3063 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
3064 Test begin and end functions.
3065 * testsuite/experimental/filesystem/iterators/
3066 recursive_directory_iterator.cc: Likewise.
3069 * src/filesystem/ops.cc (do_copy_file): Fix backwards conditions.
3070 * testsuite/experimental/filesystem/operations/copy_file.cc: New test.
3072 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
3073 Overload operator* to move from rvalues.
3076 * src/filesystem/ops.cc (create_dir): Handle EEXIST from mkdir.
3077 * testsuite/experimental/filesystem/operations/create_directory.cc:
3081 * src/filesystem/ops.cc (canonical(const path&, const path&)): Add
3082 base path to exception.
3083 * testsuite/experimental/filesystem/operations/canonical.cc: Test
3084 paths contained in exception.
3086 * testsuite/experimental/type_erased_allocator/2.cc: Remove unused
3090 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
3092 (directory_iterator::operator++(int)): Return proxy.
3093 (recursive_directory_iterator::operator++(int)): Likewise.
3094 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
3095 Test post-increment.
3096 * testsuite/experimental/filesystem/iterators/
3097 recursive_directory_iterator.cc: Likewise.
3099 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
3102 * testsuite/experimental/filesystem/iterators/
3103 recursive_directory_iterator.cc: Fix test02 to not call member
3104 functions on invalid iterator, and use VERIFY not assert.
3106 2016-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
3108 Avoid endless run-time recursion for copying single-element
3109 tuples where the element type is by-value constructible
3111 * include/std/tuple (_NotSameTuple): New.
3112 * include/std/tuple (tuple(_UElements&&...): Use it.
3113 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc: New.
3115 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
3118 * include/experimental/bits/fs_dir.h (recursive_directory_iterator):
3119 Initialize scalar member variables in default constructor.
3120 * testsuite/experimental/filesystem/iterators/
3121 recursive_directory_iterator.cc: Test default construction.
3123 2016-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3125 * testsuite/lib/libstdc++.exp (libstdc++_init): Enable on *-*-solaris*.
3127 2016-05-05 Jonathan Wakely <jwakely@redhat.com>
3129 * testsuite/experimental/filesystem/path/native/string.cc: Add
3130 dg-require-filesystem-ts directive.
3132 2016-05-04 Jonathan Wakely <jwakely@redhat.com>
3135 * include/experimental/memory_resource
3136 (__resource_adaptor_imp::do_allocate): Do not default-construct
3138 (__resource_adaptor_imp::do_deallocate): Likewise. Use
3139 allocator_traits to get pointer type.
3140 (__null_memory_resource::do_allocate): Remove unused parameters.
3141 (__null_memory_resource::do_deallocate): Likewise.
3142 (__null_memory_resource::do_is_equal): Likewise. Add return statement.
3143 * testsuite/experimental/type_erased_allocator/1.cc: Combine with ...
3144 * testsuite/experimental/type_erased_allocator/1_neg.cc: This, and
3146 * testsuite/experimental/memory_resource/1.cc: Here.
3147 * testsuite/experimental/memory_resource/null_memory_resource.cc: New.
3148 * testsuite/experimental/memory_resource/resource_adaptor.cc: New.
3150 2016-04-29 Chris Gregory <czipperz@gmail.com>
3152 * config/*: Remove trailing whitespace.
3154 * testsuite/tr1/*: Likewise.
3155 * testsuite/util/*: Likewise.
3157 2016-04-28 Jonathan Wakely <jwakely@redhat.com>
3160 * include/bits/basic_ios.tcc (basic_ios::_M_cache_locale): Use
3162 * include/bits/stream_iterator.h (istream_iterator, ostream_iterator):
3164 * include/std/atomic (atomic<_Tp>): Likewise.
3165 * include/std/shared_mutex (shared_lock): Likewise.
3166 * testsuite/24_iterators/istream_iterator/70766.cc: New test.
3167 * testsuite/24_iterators/ostream_iterator/70766.cc : New test.
3168 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
3169 * testsuite/29_atomics/atomic/70766.cc: New test.
3170 * testsuite/30_threads/shared_lock/70766.cc: New test.
3172 * include/bits/hashtable_policy.h (__detail::_Insert_base,
3173 __detail::_Insert): Improve comments.
3175 2016-04-27 Jonathan Wakely <jwakely@redhat.com>
3178 * include/std/limits: Update comments about DRs.
3179 (numeric_limits<const _Tp>, numeric_limits<volatile _Tp>,
3180 numeric_limits<const volatile _Tp>): Define unconditionally.
3182 2016-04-24 Jonathan Wakely <jwakely@redhat.com>
3185 * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path): Use
3186 static counter to return a different path on every call.
3188 2016-04-22 Tim Shen <timshen@google.com>
3191 * include/bits/regex_executor.tcc (_Executor<>::_M_word_boundary):
3192 Fix the match_not_bow and match_not_eow behavior.
3193 * testsuite/28_regex/regression.cc: Add testcase.
3195 2016-04-20 Jonathan Wakely <jwakely@redhat.com>
3198 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in,
3199 __codecvt_utf8_utf16_base<char16_t>::do_in): Fix mask operations.
3201 2016-04-19 Jonathan Wakely <jwakely@redhat.com>
3204 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in):
3205 Override endianness bit in mode.
3206 * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: New test.
3207 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc: Test
3208 that little_endian mode is ignored.
3209 * testsuite/experimental/filesystem/path/native/string.cc: New test.
3212 * src/filesystem/ops.cc (close_fd): New function.
3213 (do_copy_file): Set permissions before copying file contents. Check
3214 result of closing file descriptors. Don't copy streambuf when file
3216 (copy(const path&, const path&, copy_options, error_code&)): Use
3217 lstat for source file when copy_symlinks is set.
3218 * testsuite/experimental/filesystem/operations/copy.cc: Test copy().
3220 * include/experimental/bits/fs_fwd.h (operator&, operator|, operator^,
3221 operator~ operator&=, operator|=, operator^=): Add noexcept to
3222 overloaded operators for copy_options, perms and directory_options.
3223 * src/filesystem/ops.cc (make_file_type, make_file_status,
3224 is_not_found_errno, file_time): Add noexcept.
3226 2016-04-19 Edward Smith-Rowland <3dw4rd@verizon.net>
3228 * include/bits/c++14_warning.h: Do not refer C++14 as experimental.
3230 2016-04-18 Jonathan Wakely <jwakely@redhat.com>
3233 * include/bits/random.h: Reword static assertion messages to state
3234 positive conditions.
3235 * include/bits/random.tcc: Likewise.
3236 * include/bits/uniform_int_dist.h: Likewise.
3237 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3240 * include/std/function (_Bind, _Bind_result): Remove unused typedefs.
3242 * config/cpu/sh/atomicity.h: Fix typo in comment.
3245 * include/std/thread (operator<, operator==): Move definitions to
3247 * testsuite/30_threads/thread/id/70294.cc: New test.
3249 * testsuite/18_support/bad_exception/23591_thread-1.c: Add
3250 -Wno-pedantic to dg-options.
3251 * testsuite/20_util/align/2.cc: Use type as operand of alignof.
3252 * testsuite/20_util/is_floating_point/value.cc: Add -Wno-pedantic
3254 * testsuite/20_util/specialized_algorithms/uninitialized_fill/32158.cc:
3255 Remove extra semi-colon.
3256 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
3257 Always supply second argument to static_assert.
3258 * testsuite/25_algorithms/lower_bound/no_operator_ne.cc: Remove extra
3260 * testsuite/26_numerics/complex/c99.cc: Add -Wno-pedantic to
3262 * testsuite/26_numerics/complex/literals/values.cc: Likewise.
3263 * testsuite/29_atomics/atomic/60695.cc: Likewise.
3264 * testsuite/29_atomics/atomic/62259.cc: use __alignof__ instead of
3265 alignof when operand is an object not a type.
3266 * testsuite/decimal/ctor.cc: Add -Wno-pedantic to dg-options.
3267 * testsuite/decimal/make-decimal.cc: Likewise.
3268 * testsuite/experimental/type_traits/value.cc: Always supply second
3269 argument to static_assert.
3270 * testsuite/util/testsuite_common_types.h: Use __extension__ for
3273 * testsuite/experimental/type_erased_allocator/1.cc: Don't include
3275 * testsuite/experimental/type_erased_allocator/1_neg.cc: Likewise.
3276 * testsuite/experimental/type_erased_allocator/2.cc: Likewise.
3277 * testsuite/experimental/type_erased_allocator/uses_allocator.cc:
3278 Likewise. Add licence and change to compile-only test.
3280 * include/bits/locale_facets.h (ctype::do_narrow): Add attribute to
3282 * include/bits/regex_automaton.h (_NFA::_M_insert_alt): Likewise.
3284 * include/ext/string_conversions.h (__stoa): Avoid -Wsign-compare
3287 2016-04-17 Edward Smith-Rowland <3dw4rd@verizon.net>
3289 * include/bits/specfun.h: Trivial comment misspelling.
3291 2016-04-14 Jason Merrill <jason@redhat.com>
3293 Revert Jonathan's empty ABI change from yesterday.
3295 2016-04-13 Martin Sebor <msebor@redhat.com>
3298 * testsuite/25_algorithms/rotate/moveable2.cc: Make sure VLA
3299 upper bound is positive.
3301 2016-04-13 Jonathan Wakely <jwakely@redhat.com>
3303 * include/bits/c++config (_GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES,
3304 _GLIBCXX_END_NAMESPACE_EMPTY_TYPES, _GLIBCXX_ABI_TAG_EMPTY): Define.
3305 * include/bits/hashtable.h (_Hashtable::_M_emplace): Change signatures
3306 of functions taking empty structs by value. Add a template parameter
3307 to overloads without hints. Rename overloads with hints to
3309 (_Hashtable::_M_erase(true_type, const_iterator),
3310 _Hashtable::_M_erase(false_type, const_iterator)): Change signatures
3311 by reordering parameters.
3312 * include/bits/hashtable_policy.h (_Insert::insert): Adjust to call
3313 _M_emplace_hint instead of _M_emplace.
3314 * include/bits/shared_ptr.h (shared_ptr(_Tp1*, _Deleter, _Alloc),
3315 shared_ptr(nullptr_t, _Deleter, _Alloc)): Use _GLIBCXX_ABI_TAG_EMPTY.
3316 * include/bits/shared_ptr_base.h (_Sp_counted_deleter, __shared_count,
3317 __shared_ptr): Likewise.
3318 * include/bits/stl_algo.h (replace_if): Likewise.
3319 * include/bits/stl_pair.h (piecewise_construct_t,
3320 piecewise_construct): Use _GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES.
3321 * include/bits/uses_allocator.h (allocator_arg_t, allocator_arg,
3322 __uses_alloc0): Likewise.
3323 * include/ext/pb_ds/assoc_container.hpp (basic_hash_table): Likewise.
3324 * testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error.
3325 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
3326 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
3327 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
3328 * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
3329 * testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.
3331 2016-04-12 Edward Smith-Rowland <3dw4rd@verizon.net>
3333 Document C++17/TR29124 C++ Special Math Functions.
3334 * include/bits/specfun.h: Add Doxygen markup.
3336 2016-04-07 Jonathan Wakely <jwakely@redhat.com>
3338 * testsuite/30_threads/thread/70503.cc: Adjust from xfail to pass.
3340 2016-04-06 Eric Botcazou <ebotcazou@adacore.com>
3342 * src/Makefile.am (libstdc++-symbols.ver): Remove useless /dev/null.
3343 * src/Makefile.in: Regenerate.
3345 2016-04-05 Jonathan Wakely <jwakely@redhat.com>
3348 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Don't test
3349 __atomic_fetch_add for bool.
3350 * configure: Regenerate.
3352 * testsuite/30_threads/thread/70503.cc: Require -static to work.
3355 * src/c++11/thread.cc (execute_native_thread_routine,
3356 execute_native_thread_routine_compat): Give internal linkage.
3357 * testsuite/30_threads/thread/70503.cc: New test.
3359 2016-04-05 Ville Voutilainen <ville.voutilainen@gmail.com>
3362 * include/bits/stl_pair.h (_ConstructiblePair,
3363 _ImplicitlyConvertiblePair, _MoveConstructiblePair,
3364 _ImplicitlyMoveConvertiblePair): Add shortcut conditions
3365 for same-type cases.
3366 * testsuite/20_util/pair/70437.cc: New.
3368 2016-03-24 Jonathan Wakely <jwakely@redhat.com>
3371 * config/abi/pre/gnu.ver: Add new symbol.
3372 * libsupc++/eh_alloc.cc (__gnu_cxx::__freeres): Define.
3373 * testsuite/18_support/free_eh_pool.cc: New test.
3375 2016-03-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
3377 * include/Makefile.am (install-freestanding-headers): Add
3378 concept_check.h and move.h to the installed headers.
3379 * include/Makefile.in: Regenerated.
3380 * include/bits/concept_check.h: Ignore _GLIBCXX_CONCEPT_CHECKS for
3381 freestanding implementations.
3382 * doc/xml/manual/using.xml (_GLIBCXX_CONCEPT_CHECKS): Mention
3383 that this macro has no effect for freestanding implementations.
3384 * doc/html/manual/using_macros.html: Likewise.
3386 2016-02-24 Jonathan Wakely <jwakely@redhat.com>
3389 * include/experimental/tuple (__apply_impl): Qualify get and forward.
3391 2016-02-23 Jonathan Wakely <jwakely@redhat.com>
3393 * doc/xml/manual/using.xml: Document __STDCPP_WANT_MATH_SPEC_FUNCS__.
3394 * doc/html/*: Regenerate.
3397 * include/tr1/cmath (acosh, asinh, atanh, cbrt, copysign, erf, erfc,
3398 exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma, llrint,
3399 llround, log1p, log2, logb, lrint, lround, nan, nearbyint, nextafter,
3400 nexttoward, remainder, remquo, rint, round, scalbln, scalbn, tgamma,
3401 trunc) [__cplusplus >= 201103L]: Import from namespace std.
3402 (fabs) [__cplusplus < 201103L]: Import from namespace std.
3403 * include/tr1/complex (acosh, asinh, atanh) [__cplusplus >= 201103L]:
3405 * testsuite/tr1/headers/c++200x/complex.cc: Add std::fabs to global
3406 namespace before including TR1 headers.
3407 * testsuite/tr1/headers/c++200x/math.cc: New test.
3409 2016-02-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
3412 * include/c_global/cstdarg: Undefine __need___va_list.
3413 * include/c_global/cstddef: Undefine all kinds of __need_*.
3415 2016-02-16 Tim Shen <timshen@google.com>
3418 * include/bits/regex_scanner.h: Add different special character
3419 sets for grep and egrep regex.
3420 * include/bits/regex_scanner.tcc: Use _M_spec_char more uniformly.
3421 * testsuite/28_regex/regression.cc: Add new testcase.
3423 2016-02-08 Jonathan Wakely <jwakely@redhat.com>
3425 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Remove accidentally
3426 added 'constexpr' in previous commit.
3427 * configure: Regenerate.
3430 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Enable isinf and isnan
3431 checks for all targets except *-*-solaris2.* and ensure we find the
3432 libc math.h header not our own.
3433 * configure: Regenerate.
3435 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
3437 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt (FUNC):
3438 New file. Copied over from s390-linux-gnu.
3440 2016-02-04 Jonathan Wakely <jwakely@redhat.com>
3443 * acinclude.m4 (GLIBCXX_ENABLE_C99): Check C99 stdlib.h functions
3444 with -std=c++98 and define _GLIBCXX98_USE_C99_STDLIB.
3445 * config.h.in: Regenerate.
3446 * configure: Regenerate.
3447 * testsuite/21_strings/c_strings/char/69626.cc: New.
3449 * doc/html/index.html: Regenerate.
3451 * doc/xml/manual/containers.xml: Add cross-reference to Dual ABI.
3452 * doc/xml/manual/spine.xml: Update copyright years and author blurb.
3453 * doc/html/*: Regenerate.
3455 2016-02-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
3458 * include/c_compatibility/math.h: Move header guards.
3459 * include/c_compatibility/stdlib.h: Likewise.
3461 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
3464 * config/os/newlib/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3466 2016-01-28 John David Anglin <danglin@gcc.gnu.org>
3469 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Split check for obsolete
3470 isinf and isnan functions into two independent checks. Check on hpux.
3471 * config.h.in: Regenerate.
3472 * configure: Regenerate.
3473 * include/c_global/cmath (isinf(double), isnan(double)): Use
3474 _GLIBCXX_HAVE_OBSOLETE_ISINF and _GLIBCXX_HAVE_OBSOLETE_ISNAN,
3477 2016-01-27 Jakub Jelinek <jakub@redhat.com>
3479 * testsuite/libstdc++-prettyprinters/whatis.cc: Include <random>.
3481 2016-01-27 Jonathan Wakely <jwakely@redhat.com>
3484 * testsuite/ext/special_functions/hyperg/check_value.cc: Use
3485 -ffp-contract=off, and -ffloat-store to disable excess precision.
3486 * testsuite/special_functions/02_assoc_legendre/check_value.cc: Use
3489 2016-01-26 Jonathan Wakely <jwakely@redhat.com>
3492 * include/bits/stl_algobase.h (__copy_move<_IsMove, true,
3493 random_access_iterator_tag>): Check is_move_assignable when moving.
3494 (__copy_move_backwards<_IsMove, true, random_access_iterator_tag>):
3496 * testsuite/25_algorithms/copy/move_iterators/69478.cc: New.
3497 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc: New.
3498 * testsuite/25_algorithms/move/69478.cc: New.
3499 * testsuite/25_algorithms/move_backward/69478.cc: new.
3501 2016-01-26 Andris Pavenis <andris.pavenis@iki.fi>
3503 * include/c_compatibility/stdlib.h: Include wide character related
3504 definitions only when they are available in cstdlib.
3506 2016-01-25 Jonathan Wakely <jwakely@redhat.com>
3509 * include/Makefile.am: Add new header.
3510 * include/Makefile.in: Regenerate.
3511 * include/bits/random.h (uniform_int_distribution): Move to
3512 bits/uniform_int_dist.h.
3513 * include/bits/random.tcc (uniform_int_distribution::operator(),
3514 uniform_int_distribution::__generate_impl): Likewise.
3515 * include/bits/uniform_int_dist.h: New header.
3516 * include/bits/stl_algo.h [__cplusplus >= 201103L]: Include
3517 <bits/uniform_int_dist.h> instead of <random>.
3518 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
3519 move_iterators/1.cc: Include correct header for uninitialized_copy.
3520 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
3521 move_iterators/1.cc: Likewise.
3522 * testsuite/25_algorithms/nth_element/58800.cc: Include correct
3524 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lines.
3526 2016-01-23 John David Anglin <danglin@gcc.gnu.org>
3529 * config/os/hpux/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3531 2016-01-22 Edward Smith-Rowland <3dw4rd@verizon.net>
3533 TR29124 C++ Special Math - <math.h> pulls funcs into global namespace.
3534 * include/c_compatibility/math.h: Import the TR29124 functions
3535 into the global namespace.
3536 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: Remove
3537 xfail and make compile-only.
3538 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: Ditto.
3539 * testsuite/special_functions/03_beta/compile_2.cc: Ditto.
3540 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Ditto.
3541 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Ditto.
3542 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Ditto.
3543 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Ditto.
3544 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Ditto.
3545 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Ditto.
3546 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Ditto.
3547 * testsuite/special_functions/11_ellint_1/compile_2.cc: Ditto.
3548 * testsuite/special_functions/12_ellint_2/compile_2.cc: Ditto.
3549 * testsuite/special_functions/13_ellint_3/compile_2.cc: Ditto.
3550 * testsuite/special_functions/14_expint/compile_2.cc: Ditto.
3551 * testsuite/special_functions/15_hermite/compile_2.cc: Ditto.
3552 * testsuite/special_functions/16_laguerre/compile_2.cc: Ditto.
3553 * testsuite/special_functions/17_legendre/compile_2.cc: Ditto.
3554 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Ditto.
3555 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Ditto.
3556 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Ditto.
3557 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Ditto.
3559 2016-01-22 Jonathan Wakely <jwakely@redhat.com>
3562 * include/bits/valarray_before.h (__fun, __fun_with_valarray): Only
3563 define result_type for types which can be safely used with valarrays.
3564 * testsuite/26_numerics/valarray/69116.cc: New.
3567 * config/os/gnu-linux/os_defines.h: Define
3568 _GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC.
3569 * include/c_global/cmath (isinf, isnan): Check it.
3570 * doc/xml/manual/internals.xml: Document it.
3571 * doc/html/*: Regenerate.
3573 2016-01-21 Jonathan Wakely <jwakely@redhat.com>
3576 * include/bits/cpp_type_traits.h: Ensure C++ language linkage.
3577 * include/ext/type_traits.h: Likewise.
3578 * testsuite/17_intro/headers/c++2011/linkage.cc: Check autoconf macros
3579 for presence of C headers.
3580 * testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Adjust
3581 dg-error line number.
3582 * testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise.
3583 * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise.
3584 * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Likewise.
3586 2016-01-20 Torvald Riegel <triegel@redhat.com>
3589 * config/os/bsd/darwin/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3591 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
3594 * include/c_compatibility/math.h (acosh, asinh, atanh, acbrt,
3595 copysign, erf, erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb,
3596 lgamma, llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
3597 nextafter, nexttoward, remainder, remquo, rint, round, scalbln, scalbn,
3598 tgamma, trunc) [__cplusplus >= 201103L && _GLIBCXX_USE_C99_MATH_TR1]:
3599 Add using declarations.
3600 * testsuite/26_numerics/headers/cmath/60401.cc: New.
3603 * include/c_global/ccomplex: Ensure C++ language linkage.
3604 * include/c_global/cmath: Likewise.
3605 * include/c_global/cstdlib: Likewise.
3606 * include/c_global/ctgmath: Likewise.
3607 * testsuite/17_intro/headers/c++2011/linkage.cc: New.
3609 2016-01-19 Jonathan Wakely <jwakely@redhat.com>
3613 * include/Makefile.am: Use c_compatibility math.h and stdlib.h for
3614 --enable-cheaders=c_global configs.
3615 * include/Makefile.in: Regenerate.
3616 * include/c_compatibility/math.h: Remove obsolete _GLIBCXX_NAMESPACE_C
3617 test and allow inclusion from C files.
3618 * include/c_compatibility/stdlib.h: Likewise. Support freestanding.
3619 (at_quick_exit, quick_exit): Add using directives.
3620 * include/c_global/cmath: Use #include_next for math.h.
3621 * include/c_global/cstdlib: Use #include_next for stdlib.h.
3622 * testsuite/26_numerics/headers/cmath/14608.cc: New.
3623 * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
3624 Remove xfail for most targets.
3625 * testsuite/26_numerics/headers/cstdlib/60401.cc: New.
3627 2016-01-18 Torvald Riegel <triegel@redhat.com>
3629 * include/bits/c++config (_GLIBCXX_USE_WEAK_REF): New.
3630 (_GLIBCXX_TXN_SAFE, _GLIBCXX_TXN_SAFE_DYN): Use _GLIBCXX_USE_WEAK_REF
3631 and move after its definition.
3632 * config/os/aix/os_defines.h (_GLIBCXX_USE_WEAK_REF): Override.
3633 * src/c++11/cow-stdexcept.cc: Use _GLIBCXX_USE_WEAK_REF instead of
3634 __GXX_WEAK__, and only provide transactional clones if
3635 _GLIBCXX_USE_WEAK_REF is true. Don't provide stubs of libitm
3638 2016-01-18 Jonathan Wakely <jwakely@redhat.com>
3641 * testsuite/26_numerics/headers/cmath/60637.cc: Add test.
3644 * include/std/functional (_Function_base::_M_not_empty_function):
3645 Change overloads for pointers to take arguments by value.
3646 * testsuite/20_util/function/cons/57465.cc: Add tests for
3647 pointer-to-member cases.
3650 * src/c++11/cow-stdexcept.cc (_txnal_cow_string_C1_for_exceptions):
3651 Use macros for exception handling and fix unused parameter warning.
3653 2016-01-17 John David Anglin <danglin@gcc.gnu.org>
3656 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
3658 2016-01-17 Torvald Riegel <triegel@redhat.com>
3660 * src/c++11/cow-stdexcept.cc (txnal_read_ptr): Fix static_assert.
3662 2016-01-16 H.J. Lu <hongjiu.lu@intel.com>
3664 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Add
3667 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
3670 * include/bits/uses_allocator.h (__uses_alloc<true, ...>): Add
3671 static assertion that type is constructible from the arguments.
3672 * testsuite/20_util/scoped_allocator/69293_neg.cc: New.
3673 * testsuite/20_util/uses_allocator/69293_neg.cc: New.
3674 * testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error.
3677 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
3678 and isnan on AIX. Quote variables.
3679 * configure: Regenerate.
3681 2016-01-15 Torvald Riegel <triegel@redhat.com>
3683 * include/bits/basic_string.h (basic_string): Declare friends.
3684 * include/bits/c++config (_GLIBCXX_TXN_SAFE,
3685 _GLIBCXX_TXN_SAFE_DYN, _GLIBCXX_USE_ALLOCATOR_NEW): New.
3686 * include/std/stdexcept (logic_error, domain_error, invalid_argument,
3687 length_error, out_of_range, runtime_error, range_error,
3688 underflow_error, overflow_error): Declare members as transaction-safe.
3689 (logic_error, runtime_error): Declare friend functions.
3690 * libsupc++/exception (exception, bad_exception): Declare members as
3692 * src/c++11/cow-stdexcept.cc: Define transactional clones for the
3693 transaction-safe members of exceptions and helper functions.
3694 * libsupc++/eh_exception.cc: Adjust and define transactional clones.
3695 * config/abi/pre/gnu.ver (GLIBCXX_3.4.22) Add transactional clones.
3696 (CXXABI_1.3.10): New.
3697 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): New.
3698 (GLIBCXX_ENABLE_ALLOCATOR): Set ENABLE_ALLOCATOR_NEW.
3699 * configure.ac: Call GLIBCXX_CHECK_SIZE_T_MANGLING.
3700 * include/Makefile.am: Write ENABLE_ALLOCATOR_NEW to c++config.h.
3701 * include/Makefile.in: Regenerate.
3702 * config.h.in: Regenerate.
3703 * configure: Regenerate.
3704 * testsuite/util/testsuite_abi.cc (check_version): Add CXXABI_1.3.10.
3706 2016-01-15 Steve Ellcey <sellcey@imgtec.com>
3708 * include/ext/random.tcc: Use __builtin_isfinite instead of
3711 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
3713 * include/bits/std_mutex.h: Fix Doxygen @file name.
3715 2016-01-14 Edward Smith-Rowland <3dw4rd@verizon.net>
3716 Jonathan Wakely <jwakely@redhat.com>
3717 Florian Goth <CaptainSifff@gmx.de>
3719 Implement TR29124 C++ special Math Functions.
3720 * include/Makefile.am: Add new headers.
3721 * include/Makefile.in: Regenerate.
3722 * include/bits/specfun.h: New.
3723 * include/c_global/cmath: Adjust for both tr1 and tr29124 maths.
3724 * include/tr1/bessel_function.tcc: Ditto.
3725 * include/tr1/beta_function.tcc: Ditto.
3726 * include/tr1/cmath: Ditto.
3727 * include/tr1/ell_integral.tcc: Ditto.
3728 * include/tr1/exp_integral.tcc: Ditto.
3729 * include/tr1/gamma.tcc: Ditto.
3730 * include/tr1/hypergeometric.tcc: Ditto.
3731 * include/tr1/legendre_function.tcc: Ditto.
3732 * include/tr1/modified_bessel_func.tcc: Ditto.
3733 * include/tr1/poly_hermite.tcc: Ditto.
3734 * include/tr1/poly_laguerre.tcc: Ditto.
3735 * include/tr1/riemann_zeta.tcc: Ditto.
3736 * include/tr1/special_function_util.h: Ditto.
3737 * testsuite/ext/special_functions/conf_hyperg: New.
3738 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: New.
3739 * testsuite/ext/special_functions/conf_hyperg/check_value.cc: New.
3740 * testsuite/ext/special_functions/conf_hyperg/compile.cc: New.
3741 * testsuite/ext/special_functions/hyperg: New.
3742 * testsuite/ext/special_functions/hyperg/check_nan.cc: New.
3743 * testsuite/ext/special_functions/hyperg/check_value.cc: New.
3744 * testsuite/ext/special_functions/hyperg/compile.cc: New.
3745 * testsuite/libstdc++-dg/conformance.exp: Add special_functions directory.
3746 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc: New.
3747 * testsuite/special_functions/01_assoc_laguerre/check_value.cc: New.
3748 * testsuite/special_functions/01_assoc_laguerre/compile.cc: New.
3749 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: New.
3750 * testsuite/special_functions/02_assoc_legendre/check_nan.cc: New.
3751 * testsuite/special_functions/02_assoc_legendre/check_value.cc: New.
3752 * testsuite/special_functions/02_assoc_legendre/compile.cc: New.
3753 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: New.
3754 * testsuite/special_functions/03_beta/check_nan.cc: New.
3755 * testsuite/special_functions/03_beta/check_value.cc: New.
3756 * testsuite/special_functions/03_beta/compile.cc: New.
3757 * testsuite/special_functions/03_beta/compile_2.cc: New.
3758 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: New.
3759 * testsuite/special_functions/04_comp_ellint_1/check_value.cc: New.
3760 * testsuite/special_functions/04_comp_ellint_1/compile.cc: New.
3761 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: New.
3762 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: New.
3763 * testsuite/special_functions/05_comp_ellint_2/check_value.cc: New.
3764 * testsuite/special_functions/05_comp_ellint_2/compile.cc: New.
3765 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: New.
3766 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: New.
3767 * testsuite/special_functions/06_comp_ellint_3/check_value.cc: New.
3768 * testsuite/special_functions/06_comp_ellint_3/compile.cc: New.
3769 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: New.
3770 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: New.
3771 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc: New.
3772 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: New.
3773 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: New.
3774 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: New.
3775 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: New.
3776 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: New.
3777 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: New.
3778 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: New.
3779 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: New.
3780 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc: New.
3781 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: New.
3782 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: New.
3783 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: New.
3784 * testsuite/special_functions/10_cyl_neumann/check_value.cc: New.
3785 * testsuite/special_functions/10_cyl_neumann/compile.cc: New.
3786 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: New.
3787 * testsuite/special_functions/11_ellint_1/check_nan.cc: New.
3788 * testsuite/special_functions/11_ellint_1/check_value.cc: New.
3789 * testsuite/special_functions/11_ellint_1/compile.cc: New.
3790 * testsuite/special_functions/11_ellint_1/compile_2.cc: New.
3791 * testsuite/special_functions/12_ellint_2/check_nan.cc: New.
3792 * testsuite/special_functions/12_ellint_2/check_value.cc: New.
3793 * testsuite/special_functions/12_ellint_2/compile.cc: New.
3794 * testsuite/special_functions/12_ellint_2/compile_2.cc: New.
3795 * testsuite/special_functions/13_ellint_3/check_nan.cc: New.
3796 * testsuite/special_functions/13_ellint_3/check_value.cc: New.
3797 * testsuite/special_functions/13_ellint_3/compile.cc: New.
3798 * testsuite/special_functions/13_ellint_3/compile_2.cc: New.
3799 * testsuite/special_functions/14_expint/check_nan.cc: New.
3800 * testsuite/special_functions/14_expint/check_value.cc: New.
3801 * testsuite/special_functions/14_expint/compile.cc: New.
3802 * testsuite/special_functions/14_expint/compile_2.cc: New.
3803 * testsuite/special_functions/15_hermite/check_nan.cc: New.
3804 * testsuite/special_functions/15_hermite/check_value.cc: New.
3805 * testsuite/special_functions/15_hermite/compile.cc: New.
3806 * testsuite/special_functions/15_hermite/compile_2.cc: New.
3807 * testsuite/special_functions/16_laguerre/check_nan.cc: New.
3808 * testsuite/special_functions/16_laguerre/check_value.cc: New.
3809 * testsuite/special_functions/16_laguerre/compile.cc: New.
3810 * testsuite/special_functions/16_laguerre/compile_2.cc: New.
3811 * testsuite/special_functions/17_legendre/check_nan.cc: New.
3812 * testsuite/special_functions/17_legendre/check_value.cc: New.
3813 * testsuite/special_functions/17_legendre/compile.cc: New.
3814 * testsuite/special_functions/17_legendre/compile_2.cc: New.
3815 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: New.
3816 * testsuite/special_functions/18_riemann_zeta/check_value.cc: New.
3817 * testsuite/special_functions/18_riemann_zeta/compile.cc: New.
3818 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: New.
3819 * testsuite/special_functions/19_sph_bessel/check_nan.cc: New.
3820 * testsuite/special_functions/19_sph_bessel/check_value.cc: New.
3821 * testsuite/special_functions/19_sph_bessel/compile.cc: New.
3822 * testsuite/special_functions/19_sph_bessel/compile_2.cc: New.
3823 * testsuite/special_functions/20_sph_legendre/check_nan.cc: New.
3824 * testsuite/special_functions/20_sph_legendre/check_value.cc: New.
3825 * testsuite/special_functions/20_sph_legendre/compile.cc: New.
3826 * testsuite/special_functions/20_sph_legendre/compile_2.cc: New.
3827 * testsuite/special_functions/21_sph_neumann/check_nan.cc: New.
3828 * testsuite/special_functions/21_sph_neumann/check_value.cc: New.
3829 * testsuite/special_functions/21_sph_neumann/compile.cc: New.
3830 * testsuite/special_functions/21_sph_neumann/compile_2.cc: New.
3831 * testsuite/util/specfun_testcase.h: New.
3832 * testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc: More testcases.
3833 * testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc: Ditto.
3834 * testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc: Ditto.
3835 * testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc: Ditto.
3836 * testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc: Ditto.
3837 * testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc: Ditto.
3838 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc: New.
3840 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
3843 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
3844 and isnan functions.
3845 * config.h.in: Regenerate.
3846 * configure: Regenerate.
3847 * include/c_global/cmath (isinf(double), isnan(double))
3848 [_GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN]: Import via using-directive.
3849 * testsuite/26_numerics/headers/cmath/48891.cc: New.
3851 2016-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3854 * configure.host (abi_baseline_pair): Use separate baseline for
3855 Solaris 11+ and Solaris 10 with gld.
3856 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: New file.
3857 * config/abi/post/solaris2.11/baseline_symbols.txt: New file.
3858 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: New file.
3860 2016-01-12 Daniel Kruegler <daniel.kruegler@gmail.com>
3863 * include/std/type_traits: Following N4511, reimplement __is_swappable
3864 and __is_nothrow_swappable. Move __is_swappable to namespace std,
3865 adjust callers. Use __is_nothrow_swappable in swap.
3866 * include/bits/move.h: Use __is_nothrow_swappable in swap.
3867 * testsuite/20_util/is_nothrow_swappable/value.cc: Extend; remove
3868 __is_swappable related tests.
3869 * testsuite/20_util/is_swappable/value.cc: New.
3870 * testsuite/20_util/is_swappable/requirements/
3871 explicit_instantiation.cc: New.
3872 * testsuite/20_util/is_swappable/requirements/typedefs.cc: New.
3873 * testsuite/25_algorithms/swap/68877.cc: New.
3875 2016-01-12 Jonathan Wakely <jwakely@redhat.com>
3877 * testsuite/20_util/function/68995.cc: Test reference_wrapper cases.
3881 * include/std/functional (function::_Invoke): Remove, use result_of.
3882 (function::_Callable): Replace alias template with class template
3883 and use partial specialization instead of _NotSelf alias template.
3884 (function(_Functor)): Add "not self" constraint so that _Callable is
3885 not used while type is incomplete.
3886 * testsuite/20_util/function/69222.cc: New.
3888 2016-01-11 Jonathan Wakely <jwakely@redhat.com>
3891 * include/bits/alloc_traits.h (allocator_traits<allocator<_Tp>>):
3892 Define partial specialization.
3893 * testsuite/20_util/shared_ptr/cons/58659.cc: Add construct and
3894 destroy members to std::allocator explicit specialization.
3896 2016-01-08 Jonathan Wakely <jwakely@redhat.com>
3898 * testsuite/26_numerics/headers/cmath/
3899 c99_classification_macros_c++.cc: Rename to ...
3900 * testsuite/26_numerics/headers/cmath/
3901 c99_classification_macros_c++98.cc: Here and add -std=gnu++98.
3902 * testsuite/26_numerics/headers/cmath/
3903 c99_classification_macros_c++0x.cc: Rename to ...
3904 * testsuite/26_numerics/headers/cmath/
3905 c99_classification_macros_c++11.cc: Here.
3908 * include/bits/uses_allocator.h: Add missing include.
3910 2016-01-07 Jonathan Wakely <jwakely@redhat.com>
3915 * include/bits/stl_iterator.h (back_insert_iterator,
3916 front_insert_iterator, insert_iterator): Use __addressof (LWG 2324).
3917 * include/bits/uses_allocator.h (__use_alloc): Use __addressof.
3918 * include/std/future (__future::base::_State_baseV2::__setter):
3920 * include/std/scoped_allocator (__outermost): Likewise.
3921 * testsuite/20_util/scoped_allocator/69114.cc: New.
3922 * testsuite/20_util/uses_allocator/69114.cc: New.
3923 * testsuite/30_threads/promise/69106.cc: New.
3925 2016-01-06 Jonathan Wakely <jwakely@redhat.com>
3928 * include/bits/basic_string.h (basic_string::_S_copy_chars<_Iterator>):
3929 Remove _GLIBCXX_NOEXCEPT.
3930 testsuite/21_strings/basic_string/cons/char/69092.cc: New.
3932 * include/Makefile.am: Adjust.
3933 * include/Makefile.in: Regenerate.
3934 * include/bits/mutex.h: Rename to bits/std_mutex.h.
3935 * include/std/condition_variable: Adjust include.
3936 * include/std/mutex: Likewise.
3938 2016-01-04 Jakub Jelinek <jakub@redhat.com>
3940 Update copyright years.
3942 Copyright (C) 2016 Free Software Foundation, Inc.
3944 Copying and distribution of this file, with or without modification,
3945 are permitted in any medium without royalty provided the copyright
3946 notice and this notice are preserved.