1 2016-09-30 Jonathan Wakely <jwakely@redhat.com>
3 * doc/xml/manual/intro.xml: Document LWG 2192 changes.
4 * doc/html/*: Regenerate.
5 * include/Makefile.am: Add bits/std_abs.h.
6 * include/Makefile.in: Regenerate.
7 * include/bits/std_abs.h: New header defining all required overloads
8 of std::abs in one place (LWG 2294).
9 * include/c_global/cmath (abs(double), abs(float), abs(long double)):
10 Move to bits/std_abs.h.
11 (abs<_Tp>(_Tp)): Remove.
12 * include/c_global/cstdlib (abs(long), abs(long long), abs(__int<N>)):
13 Move to bits/std_abs.h.
14 * testsuite/26_numerics/headers/cmath/dr2192.cc: New test.
15 * testsuite/26_numerics/headers/cmath/dr2192_neg.cc: New test.
16 * testsuite/26_numerics/headers/cstdlib/dr2192.cc: New test.
17 * testsuite/26_numerics/headers/cstdlib/dr2192_neg.cc: New test.
20 * include/experimental/numeric: Include <numeric>.
22 (gcd, lcm): Use __abs instead of std::abs.
23 * testsuite/experimental/numeric/77801.cc: New test.
24 * testsuite/experimental/numeric/gcd.cc: Test unsigned inputs.
25 * testsuite/experimental/numeric/lcm.cc: Likewise.
27 2016-09-29 Ville Voutilainen <ville.voutilainen@gmail.com>
29 Make optional::reset noexcept, make optional::value
30 work in constant expressions.
31 * include/std/optional (_M_get): Make constexpr.
32 (reset): Make noexcept.
33 * testsuite/20_util/optional/assignment/7.cc: New.
34 * testsuite/20_util/optional/observers/6.cc: New.
36 2016-09-29 Jonathan Wakely <jwakely@redhat.com>
38 * include/c_global/cmath (hypot, __hypot3): Move C++17 overloads
39 outside _GLIBCXX_USE_C99_MATH_TR1 condition.
41 2016-09-29 Alan Modra <amodra@gmail.com>
43 * configure.ac (LONG_DOUBLE_COMPAT_FLAGS): New ACSUBST.
44 * src/Makefile.am (compatibility-ldbl.o, compatibility-ldbl.lo):
45 Use LONG_DOUBLE_COMPAT_FLAGS.
46 * Makefile.in: Regenerate.
47 * configure: Regenerate.
48 * doc/Makefile.in: Regenerate.
49 * include/Makefile.in: Regenerate.
50 * libsupc++/Makefile.in: Regenerate.
51 * po/Makefile.in: Regenerate.
52 * python/Makefile.in: Regenerate.
53 * src/Makefile.in: Regenerate.
54 * src/c++11/Makefile.in: Regenerate.
55 * src/c++98/Makefile.in: Regenerate.
56 * src/filesystem/Makefile.in: Regenerate.
57 * testsuite/Makefile.in: Regenerate.
59 2016-09-28 Jonathan Wakely <jwakely@redhat.com>
61 * include/std/chrono (system_clock): Fix typo in comment.
63 * include/experimental/bits/fs_fwd.h (file_time_type): Simplify
65 * src/filesystem/ops.cc (file_time): Take error_code parameter and
67 (do_copy_file, last_write_time): Pass error_code in file_time calls.
68 * testsuite/experimental/filesystem/operations/last_write_time.cc:
70 * testsuite/util/testsuite_fs.h (scoped_file): Define RAII helper.
73 * include/std/functional (_Any_data): Add may_alias attribute.
75 2016-09-27 Jonathan Wakely <jwakely@redhat.com>
77 * doc/xml/manual/status_cxx2017.xml: Update status.
78 * doc/html/*: Regenerate.
79 * include/std/functional (__cpp_lib_boyer_moore_searcher): Define.
80 * testsuite/20_util/function_objects/searchers.cc: Test feature macro.
82 * doc/xml/manual/status_cxx2017.xml: Update status.
83 * include/c_global/cmath (hypot): Add three-dimensional overloads.
84 * testsuite/26_numerics/headers/cmath/hypot.cc: New.
86 2016-09-26 Ville Voutilainen <ville.voutilainen@gmail.com>
89 * include/std/optional (optional(const optional<_Up>&)):
90 Default-initialize the base and use emplace.
91 (optional(optional<_Up>&&)): Likewise.
92 * testsuite/20_util/optional/cons/77727.cc: New.
94 2016-09-26 François Dumont <fdumont@gcc.gnu.org>
96 * include/debug/safe_base.h
97 (_Safe_iterator_base::_M_detach_single): Make public.
99 2016-09-26 Jonathan Wakely <jwakely@redhat.com>
101 * include/bits/range_access.h (__cpp_lib_array_constexpr): Do not
102 redefine macro defined in <bits/stl_iterator.h>.
104 * include/bits/stl_map.h (map::extract(const_iterator)): Assert that
105 iterator is not past-the-end.
106 * include/bits/stl_multimap.h (multimap::extract(const_iterator)):
108 * include/bits/stl_multiset.h (multiset::extract(const_iterator)):
110 * include/bits/stl_set.h (set::extract(const_iterator)): Likewise.
111 * include/bits/unordered_map.h (unordered_map::extract(const_iterator))
112 (unordered_multimap::extract(const_iterator)): Likewise.
113 * include/bits/unordered_set.h (unordered_set::extract(const_iterator))
114 (unordered_multiset::extract(const_iterator)): Likewise.
116 2016-09-26 Ville Voutilainen <ville.voutilainen@gmail.com>
119 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
120 Fix an out-of-bounds access.
122 2016-09-26 Marek Polacek <polacek@redhat.com>
125 * libsupc++/hash_bytes.cc: Add [[gnu::fallthrough]].
127 2016-09-25 François Dumont <fdumont@gcc.gnu.org>
129 * src/c++11/debug.cc: Include debug/vector. Include cctype. Remove
131 (get_safe_base_mutex): Get mutex based on address lowest non nil bits.
132 * testsuite/23_containers/vector/debug/mutex_association.cc: New.
134 * include/debug/bitset (bitset::reference::reference(const _Base_ref&,
135 bitset*)): Remove __unused__ attribute.
136 * include/debug/safe_base.h (_Safe_iterator_base): Make
137 _Safe_sequence_base a friend.
138 (_Safe_iterator_base::_M_attach): Make protected.
139 (_Safe_iterator_base::_M_attach_single): Likewise.
140 (_Safe_iterator_base::_M_detach): Likewise.
141 (_Safe_iterator_base::_M_detach_single): Likewise.
142 (_Safe_sequence_base): Make _Safe_iterator_base a friend.
143 (_Safe_sequence_base::_Safe_sequence_base(_Safe_sequence_base&&)): New.
144 (_Safe_sequence_base::_M_swap): Make protected.
145 (_Safe_sequence_base::_M_attach): Make private.
146 (_Safe_sequence_base::_M_attach_single): Likewise.
147 (_Safe_sequence_base::_M_detach): Likewise.
148 (_Safe_sequence_base::_M_detach_single): Likewise.
149 * include/debug/safe_container.h
150 (_Safe_container::_Safe_container(_Safe_container&&)): Make default.
151 * include/debug/safe_iterator.h
152 (_Safe_iterator::operator++()): Name __scoped_lock instance.
153 * include/debug/safe_iterator.tcc: Remove trailing line.
154 * include/debug/safe_unordered_base.h
155 (_Safe_local_iterator_base::_M_attach): Make protected.
156 (_Safe_local_iterator_base::_M_attach_single): Likewise.
157 (_Safe_local_iterator_base::_M_detach): Likewise.
158 (_Safe_local_iterator_base::_M_detach_single): Likewise.
159 (_Safe_unordered_container_base): Make _Safe_local_iterator_base friend.
160 (_Safe_unordered_container_base::_M_attach_local): Make private.
161 (_Safe_unordered_container_base::_M_attach_local_single): Likewise.
162 (_Safe_unordered_container_base::_M_detach_local): Likewise.
163 (_Safe_unordered_container_base::_M_detach_local_single): Likewise.
165 * include/parallel/algo.h: Generalize usage of std::__iterator_category.
168 2016-09-23 Jonathan Wakely <jwakely@redhat.com>
172 * include/bits/basic_string.h (basic_string::clear()): Drop reference
174 * include/ext/rc_string_base.h (__rc_string_base::_M_clear()):
176 * testsuite/21_strings/basic_string/56166.cc: New.
177 * testsuite/ext/vstring/modifiers/clear/56166.cc: New.
179 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
180 (basic_string::erase(size_type, size_type)): Add fast path for
181 truncating the string, by calling _M_set_length directly.
182 (basic_string::erase(__const_iterator, __const_iterator)): Likewise.
183 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
184 (basic_string::resize(size_type, _CharT)): Likewise.
186 2016-09-22 Jason Merrill <jason@redhat.com>
188 * configure.ac: Define HAVE_MEMALIGN for newlib.
190 2015-09-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
192 * config/cpu/m68k/atomicity.h: Adjust comment.
193 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Honor
194 explicit atomicity_dir setup via configure.host.
195 * configure.host (rtems-*): Set atomicity_dir.
196 * configure: Regenerate.
198 2016-09-22 Jonathan Wakely <jwakely@redhat.com>
200 Implement C++17 node extraction and insertion (P0083R5)
201 * doc/xml/manual/status_cxx2017.xml: Document status.
202 * doc/html/*: Regenerate.
203 * include/Makefile.am: Add bits/node_handle.h and reorder.
204 * include/Makefile.in: Regenerate.
205 * include/bits/hashtable.h (_Hashtable::node_type)
206 (_Hashtable::insert_return_type, _Hashtable::_M_reinsert_node)
207 (_Hashtable::_M_reinsert_node_multi, _Hashtable::extract)
208 (_Hashtable::_M_merge_unique, _Hashtable::_M_merge_multi): Define.
209 (_Hash_merge_helper): Define primary template.
210 * include/bits/node_handle.h: New header.
211 * include/bits/stl_map.h (map): Declare _Rb_tree_merge_helper as
213 (map::node_type, map::insert_return_type, map::extract, map::merge)
214 (map::insert(node_type&&), map::insert(const_iterator, node_type&&)):
216 (_Rb_tree_merge_helper): Specialize for map.
217 * include/bits/stl_multimap.h (multimap): Declare _Rb_tree_merge_helper
219 (multimap::node_type, multimap::extract, multimap::merge)
220 (multimap::insert(node_type&&))
221 (multimap::insert(const_iterator, node_type&&)): Define.
222 (_Rb_tree_merge_helper): Specialize for multimap.
223 * include/bits/stl_multiset.h (multiset): Declare _Rb_tree_merge_helper
225 (multiset::node_type, multiset::extract, multiset::merge)
226 (multiset::insert(node_type&&))
227 (multiset::insert(const_iterator, node_type&&)): Define.
228 * include/bits/stl_set.h (set): Declare _Rb_tree_merge_helper as
230 (set::node_type, set::insert_return_type, set::extract, set::merge)
231 (set::insert(node_type&&), set::insert(const_iterator, node_type&&)):
233 (_Rb_tree_merge_helper): Specialize for set.
234 * include/bits/stl_tree.h (_Rb_tree): Declare _Rb_tree<> as friend.
235 (_Rb_tree::node_type, _Rb_tree::insert_return_type)
236 (_Rb_tree::_M_reinsert_node_unique, _Rb_tree::_M_reinsert_node_equal)
237 (_Rb_tree::_M_reinsert_node_hint_unique)
238 (_Rb_tree::_M_reinsert_node_hint_equal, _Rb_tree::extract)
239 (_Rb_tree::_M_merge_unique, _Rb_tree::_M_merge_equal): Define.
240 (_Rb_tree_merge_helper): Specialize for multiset.
241 * include/bits/unordered_map.h (unordered_map): Declare
242 unordered_map<> and unordered_multimap<> as friends.
243 (unordered_map::node_type, unordered_map::insert_return_type)
244 (unordered_map::extract, unordered_map::merge)
245 (unordered_map::insert(node_type&&))
246 (unordered_map::insert(const_iterator, node_type&&))
247 (unordered_multimap): Declare _Hash_merge_helper as friend.
248 (unordered_multimap::node_type, unordered_multimap::extract)
249 (unordered_multimap::merge, unordered_multimap::insert(node_type&&))
250 (unordered_multimap::insert(const_iterator, node_type&&)): Define.
251 (_Hash_merge_helper): Specialize for unordered maps and multimaps.
252 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
253 Declare _Hash_merge_helper as friend.
254 (unordered_set::node_type, unordered_set::insert_return_type)
255 (unordered_set::extract, unordered_set::merge)
256 (unordered_set::insert(node_type&&))
257 (unordered_set::insert(const_iterator, node_type&&)): Define.
258 (unordered_multiset::node_type, unordered_multiset::extract)
259 (unordered_multiset::merge, unordered_multiset::insert(node_type&&))
260 (unordered_multiset::insert(const_iterator, node_type&&)): Define.
261 (_Hash_merge_helper): Specialize for unordered sets and multisets.
262 * include/debug/map.h (map): Add using declarations or forwarding
263 functions for new members.
264 * include/debug/map.h (multimap): Likewise.
265 * include/debug/map.h (multiset): Likewise.
266 * include/debug/map.h (set): Likewise.
267 * include/debug/unordered_map (unordered_map, unordered_multimap):
269 * include/debug/unordered_set( unordered_set, unordered_multiset):
271 * python/libstdcxx/v6/printers.py (get_value_from_aligned_membuf): New
273 (get_value_from_list_node, get_value_from_Rb_tree_node): Use helper.
274 (StdNodeHandlePrinter): Define printer for node handles.
275 (build_libstdcxx_dictionary): Register StdNodeHandlePrinter.
276 * testsuite/23_containers/map/modifiers/extract.cc: New.
277 * testsuite/23_containers/map/modifiers/merge.cc: New.
278 * testsuite/23_containers/multimap/modifiers/extract.cc: New.
279 * testsuite/23_containers/multimap/modifiers/merge.cc: New.
280 * testsuite/23_containers/multiset/modifiers/extract.cc: New.
281 * testsuite/23_containers/multiset/modifiers/merge.cc: New.
282 * testsuite/23_containers/set/modifiers/extract.cc: New.
283 * testsuite/23_containers/set/modifiers/merge.cc: New.
284 * testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
285 * testsuite/23_containers/unordered_map/modifiers/merge.cc: New.
286 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
288 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc: New.
289 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
291 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc: New.
292 * testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
293 * testsuite/23_containers/unordered_set/modifiers/merge.cc: New.
294 * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
296 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test node handles.
298 2016-09-22 Ville Voutilainen <ville.voutilainen@gmail.com>
300 Fix tests on old arm platforms for optional.
301 * testsuite/20_util/optional/77288.cc: Don't use exception_ptr.
303 2016-09-22 Jonathan Wakely <jwakely@redhat.com>
305 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Adjust for
306 recent change to _Variant_storage.
307 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test variant with
310 * include/bits/uses_allocator.h (__uses_allocator_construct): Qualify
311 std::forward and ::new. Cast pointer to void*.
312 * include/std/variant (_Variant_storage, _Union, _Variant_base)
313 (__access, __visit_invoke, variant, visit): Qualify std::forward.
314 * testsuite/20_util/variant/compile.cc: Test for ADL problems.
316 2016-09-22 Tim Shen <timshen@google.com>
318 * include/std/variant (variant::operator=): Fix assignment
320 * testsuite/20_util/variant/compile.cc: Add test.
322 2016-09-22 Tim Shen <timshen@google.com>
325 * include/std/variant (_Variant_storage::_Variant_storage):
326 Change _Variant_storage's union to be default constructible.
327 * testsuite/20_util/variant/compile.cc: New test.
329 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
332 * include/std/optional (__is_optional_impl, __is_optional): Remove.
333 (__converts_from_optional, __assigns_from_optional): New.
334 (optional(_Up&&)): Use is_same instead of __is_optional.
335 (optional(const optional<_Up>&)): Constrain with
336 __converts_from_optional.
337 (optional(optional<_Up>&&)): Likewise.
338 (operator=(_Up&&)): Use is_same instead of __is_optional, check
339 is_same and is_scalar.
340 (operator=(const optional<_Up>&)): Constrain with
341 __converts_from_optional and __assigns_from_optional.
342 (operator=(optional<_Up>&&)): Likewise.
343 * testsuite/20_util/optional/77288.cc: New.
344 * testsuite/20_util/optional/cons/value.cc: Adjust.
346 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
348 Implement LWG 2729 for tuple.
349 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)):
350 Suppress conditionally.
351 (_Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&&)): Likewise.
352 (__is_tuple_impl_trait_impl, __is_tuple_impl_trait): New.
353 (_Tuple_impl(const _Head&)): Constrain.
354 (_Tuple_impl(_UHead&&)): Likewise.
355 (_Tuple_impl(_Tuple_impl&&)): Suppress conditionally.
356 (_Tuple_impl(const _Tuple_impl<_Idx, _UHead>&)): Constrain.
357 (_Tuple_impl(_Tuple_impl<_Idx, _UHead>&&)): Likewise.
358 (operator=(const tuple&)): Enable conditionally.
359 (operator=(tuple&&)): Suppress conditionally.
360 (operator=(const tuple<_UElements...>&)): Constrain.
361 (operator=(tuple<_UElements...>&&)): Likewise.
362 (operator=(const tuple&)): Enable conditionally (2-param tuple).
363 (operator=(tuple&&)): Suppress conditionally (2-param tuple).
364 (operator=(const tuple<_U1, _U2>&)): Constrain.
365 (operator=(tuple<_U1, _U2>&&)): Likewise.
366 (operator=(const pair<_U1, _U2>&)): Likewise.
367 (operator=(pair<_U1, _U2>&&)): Likewise.
368 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust.
369 * testsuite/20_util/tuple/tuple_traits.cc: New.
371 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
374 Implement LWG 2729 for pair.
375 * include/bits/stl_pair.h (_PCC): New.
376 (_ConstructiblePair, _ImplicitlyConvertiblePair):
377 Turn into static member functions of _PCC.
378 (_MoveConstructiblePair, _ImplicitlyMoveConvertiblePair): Likewise.
380 (pair(const _T1&, const _T2&)): Adjust.
382 (pair(const pair<_U1, _U2>&)): Adjust.
383 (pair(_U1&&, const _T2&)): Likewise.
384 (pair(const _T1&, _U2&&)): Likewise.
385 (pair(_U1&&, _U2&&)): Likewise.
386 (pair(pair<_U1, _U2>&&)): Likewise.
387 (operator=(const pair&)): Make conditionally deleted.
388 (operator=(pair&&)): Make conditionally suppressed.
389 (operator=(const pair<_U1, _U2>&)): Constrain.
390 (operator=(pair<_U1, _U2>&&): Likewise.
391 * include/std/type_traits (__nonesuch): New.
392 * testsuite/20_util/pair/traits.cc: New.
394 2016-09-20 Ville Voutilainen <ville.voutilainen@gmail.com>
397 * include/bits/stl_construct.h: (_Construct_novalue): New.
398 (_Destroy_n_aux, _Destroy_n): New.
399 * include/bits/stl_uninitialized.h: (type_traits):
400 New include in C++11 mode.
401 (__uninitialized_default_novalue_1): New.
402 (__uninitialized_default_novalue_n_1): Likewise.
403 (__uninitialized_default_novalue): Likewise.
404 (__uninitialized_default_novalue_n): Likewise.
405 (__uninitialized_copy_n_pair): Likewise.
406 (uninitialized_default_construct):
407 Use __uninitialized_default_novalue.
408 (uninitialized_default_construct_n):
409 Use __uninitialized_default_novalue_n.
410 (uninitialized_value_construct): Use __uninitialized_default.
411 (uninitialized_value_construct_n): Use __uninitialized_default_n.
412 (uninitialized_move): Use uninitialized_copy.
413 (uninitialized_move_n): Use __uninitialized_copy_n_pair.
414 (destroy_at): Use _Destroy.
416 (destroy_n): Likewise.
417 * testsuite/20_util/specialized_algorithms/
418 memory_management_tools/1.cc: Add tests for exceptions,
419 add tests for trivial cases for construct and move.
421 2016-09-20 Jonathan Wakely <jwakely@redhat.com>
423 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
424 (DequeWorkerBase.index, VectorWorkerBase.get): Use // for division.
426 2016-09-19 Jonathan Wakely <jwakely@redhat.com>
429 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
430 (DequeWorkerBase.index, VectorWorkerBase.get): Cast results of
431 division to int to work with Python 3.
433 * testsuite/lib/gdb-test.exp (gdb-test): Fail if Python error occurs.
435 * python/libstdcxx/v6/printers.py (SingleObjContainerPrinter): Allow
436 display_hint to be set by subclasses.
437 (StdVariantPrinter): Use array for display_hint. Adjust output to be
438 more similar to std::any and std::optional output.
439 (register_type_printers): Add type printers for basic_string_view
440 typedefs and experimental::any. Adjust type printers for
441 fundamentals_v1 templates to match fundamentals_v2 and later.
442 * testsuite/libstdc++-prettyprinters/cxx17.cc: New.
445 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.index): Rename
447 (ListWorkerBase.get_value_from_node): Define new method.
448 (ListFrontWorker.__call__, ListBackWorker.__call__): Use it.
450 2016-09-17 Jonathan Wakely <jwakely@redhat.com>
452 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Define.
453 (StdExpAnyPrinter, StdExpOptionalPrinter, StdExpStringViewPrinter):
454 Register for C++17 components in namespace std. Strip inline namespace
457 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
459 * doc/xml/manual/profile_mode.xml: Fix typo.
460 * doc/html/manual/profile_mode_devel.html: Regenerate.
462 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
463 Marc Glisse <marc.glisse@inria.fr>
465 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_ALIGNED_ALLOC]
466 (operator new(size_t, align_val_t)): Replace modulus operator with
469 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
471 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_POSIX_MEMALIGN] (aligned_alloc):
472 Increase alignment if less than sizeof(void*).
473 [_GLIBCXX_HAVE_ALIGNED_ALLOC] (operator new(size_t, align_val_t)):
474 Increase size if not a multiple of alignment.
476 2016-09-15 Jonathan Wakely <jwakely@redhat.com>
478 * doc/xml/manual/debug_mode.xml: Minor editorial fixes.
479 * doc/html/*: Regenerate.
481 * testsuite/23_containers/vector/debug/insert6_neg.cc: Remove
483 * testsuite/util/debug/checks.h (generate_unique<bool>): Specialize.
485 2016-09-14 Marek Polacek <polacek@redhat.com>
487 * testsuite/23_containers/vector/debug/insert6_neg.cc: Use
490 2016-09-14 Christophe Lyon <christophe.lyon@linaro.org>
492 * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
493 Move dg-do directive before dg-skip.
494 * testsuite/21_strings/debug/iterator_self_move_assign_neg.cc:
495 Move dg-do directive before dg-require.
496 * testsuite/21_strings/debug/self_move_assign_neg.cc: Likewise.
497 * testsuite/23_containers/vector/debug/57779_neg.cc: Likewise.
498 * testsuite/23_containers/vector/debug/60587_neg.cc: Likewise.
499 * testsuite/23_containers/vector/debug/assign1_neg.cc: Likewise.
500 * testsuite/23_containers/vector/debug/assign2_neg.cc: Likewise.
501 * testsuite/23_containers/vector/debug/assign3_neg.cc: Likewise.
502 * testsuite/23_containers/vector/debug/construct1_neg.cc: Likewise.
503 * testsuite/23_containers/vector/debug/construct2_neg.cc: Likewise.
504 * testsuite/23_containers/vector/debug/construct3_neg.cc: Likewise.
505 * testsuite/23_containers/vector/debug/insert1_neg.cc: Likewise.
506 * testsuite/23_containers/vector/debug/insert2_neg.cc: Likewise.
507 * testsuite/23_containers/vector/debug/insert3_neg.cc: Likewise.
508 * testsuite/23_containers/vector/debug/insert5_neg.cc: Likewise.
509 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Likewise.
510 * testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
512 * testsuite/25_algorithms/pop_heap/empty2_neg.cc: Likewise.
513 * testsuite/25_algorithms/pop_heap/empty_neg.cc: Likewise.
514 * testsuite/27_io/objects/char/12048-5.cc: Likewise.
515 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Likewise.
516 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
518 2016-09-13 Ville Voutilainen <ville.voutilainen@gmail.com>
520 Implement P0040R3, Extending memory management tools.
521 * include/bits/stl_uninitialized.h (utility): New include
523 (uninitialized_default_construct): New.
524 (uninitialized_default_construct_n): Likewise.
525 (uninitialized_value_construct): Likewise.
526 (uninitialized_value_construct_n): Likewise.
527 (uninitialized_move): Likewise.
528 (uninitialized_move_n): Likewise.
529 (destroy_at, destroy, destroy_n): Likewise.
530 * testsuite/20_util/specialized_algorithms/memory_management_tools/
533 2016-09-12 Jason Merrill <jason@redhat.com>
535 * config/abi/pre/gnu.ver: Use [jmy] for size_t.
537 2016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
539 Implement P0253R1, Fixing a design mistake in the searchers
540 interface in Library Fundamentals.
541 * include/std/functional: (utility): New include in C++17 mode.
542 (default_searcher): Use a pair as return type, adjust the definition.
543 (boyer_moore_searcher): Likewise.
544 (boyer_moore_horspool_searcher): Likewise.
545 * testsuite/20_util/function_objects/searchers.cc: Adjust.
547 2016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
549 Implement C++17 string searchers.
550 * include/std/functional: (unordered_map, vector): New includes
552 (array, bits/stl_algo.h): Likewise.
553 (default_searcher, __boyer_moore_map_base): New.
554 (__boyer_moore_array_base, __is_std_equal_to): Likewise.
555 (__boyer_moore_base_t, boyer_moore_searcher): Likewise.
556 (boyer_moore_horspool_searcher, make_default_searcher): Likewise.
557 (make_boyer_moore_searcher): Likewise.
558 (make_boyer_moore_horspool_searcher): Likewise.
559 * testsuite/20_util/function_objects/searchers.cc: New.
561 2016-09-12 Matthew Wahab <matthew.wahab@arm.com>
563 * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
564 Move dg-do directive before dg-require.
565 * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc: Likewise.
566 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
568 * testsuite/22_locale/codecvt/utf8.cc: Likewise.
569 * testsuite/22_locale/locale/cons/unicode.cc: Likewise.
570 * testsuite/23_containers/deque/debug/assign1_neg.cc: Likewise.
571 * testsuite/23_containers/deque/debug/assign2_neg.cc: Likewise.
572 * testsuite/23_containers/deque/debug/assign3_neg.cc: Likewise.
573 * testsuite/23_containers/deque/debug/construct1_neg.cc: Likewise.
574 * testsuite/23_containers/deque/debug/construct2_neg.cc: Likewise.
575 * testsuite/23_containers/deque/debug/construct3_neg.cc: Likewise.
576 * testsuite/23_containers/deque/debug/insert1_neg.cc: Likewise.
577 * testsuite/23_containers/deque/debug/insert2_neg.cc: Likewise.
578 * testsuite/23_containers/deque/debug/insert3_neg.cc: Likewise.
579 * testsuite/23_containers/deque/debug/insert5_neg.cc: Likewise.
580 * testsuite/23_containers/deque/debug/iterator_self_move_assign_neg.cc:
582 * testsuite/23_containers/deque/debug/self_move_assign_neg.cc:
584 * testsuite/23_containers/deque/debug/shrink_to_fit.cc: Likewise.
585 * testsuite/23_containers/forward_list/debug/60499.cc: Likewise.
586 * testsuite/23_containers/forward_list/debug/construct1_neg.cc:
588 * testsuite/23_containers/forward_list/debug/construct2_neg.cc:
590 * testsuite/23_containers/forward_list/debug/construct3_neg.cc:
592 * testsuite/23_containers/forward_list/debug/erase_after1_neg.cc:
594 * testsuite/23_containers/forward_list/debug/erase_after2_neg.cc:
596 * testsuite/23_containers/forward_list/debug/erase_after3_neg.cc:
598 * testsuite/23_containers/forward_list/debug/erase_after4_neg.cc:
600 * testsuite/23_containers/forward_list/debug/erase_after5_neg.cc:
602 * testsuite/23_containers/forward_list/debug/erase_after6_neg.cc:
604 * testsuite/23_containers/forward_list/debug/erase_after7_neg.cc:
606 * testsuite/23_containers/forward_list/debug/erase_after8_neg.cc:
608 * testsuite/23_containers/forward_list/debug/erase_after9_neg.cc:
610 * testsuite/23_containers/forward_list/debug/insert_after1_neg.cc:
612 * testsuite/23_containers/forward_list/debug/insert_after2_neg.cc:
614 * testsuite/23_containers/forward_list/debug/insert_after3_neg.cc:
616 * testsuite/23_containers/forward_list/debug/insert_after4_neg.cc:
618 * testsuite/23_containers/forward_list/debug/
619 iterator_self_move_assign_neg.cc: Likewise.
620 * testsuite/23_containers/forward_list/debug/self_move_assign_neg.cc:
622 * testsuite/23_containers/forward_list/debug/splice_after1_neg.cc:
624 * testsuite/23_containers/forward_list/debug/splice_after2_neg.cc:
626 * testsuite/23_containers/forward_list/debug/splice_after3_neg.cc:
628 * testsuite/23_containers/forward_list/debug/splice_after4_neg.cc:
630 * testsuite/23_containers/forward_list/debug/splice_after5_neg.cc:
632 * testsuite/23_containers/forward_list/debug/splice_after6_neg.cc:
634 * testsuite/23_containers/forward_list/debug/splice_after7_neg.cc:
636 * testsuite/23_containers/list/debug/assign1_neg.cc: Likewise.
637 * testsuite/23_containers/list/debug/assign2_neg.cc: Likewise.
638 * testsuite/23_containers/list/debug/assign3_neg.cc: Likewise.
639 * testsuite/23_containers/list/debug/construct1_neg.cc: Likewise.
640 * testsuite/23_containers/list/debug/construct2_neg.cc: Likewise.
641 * testsuite/23_containers/list/debug/construct3_neg.cc: Likewise.
642 * testsuite/23_containers/list/debug/insert1_neg.cc: Likewise.
643 * testsuite/23_containers/list/debug/insert2_neg.cc: Likewise.
644 * testsuite/23_containers/list/debug/insert3_neg.cc: Likewise.
645 * testsuite/23_containers/list/debug/insert5_neg.cc: Likewise.
646 * testsuite/23_containers/list/debug/iterator_self_move_assign_neg.cc:
648 * testsuite/23_containers/list/debug/self_move_assign_neg.cc: Likewise.
649 * testsuite/23_containers/map/debug/60499.cc: Likewise.
650 * testsuite/23_containers/map/debug/construct1_neg.cc: Likewise.
651 * testsuite/23_containers/map/debug/construct2_neg.cc: Likewise.
652 * testsuite/23_containers/map/debug/construct3_neg.cc: Likewise.
653 * testsuite/23_containers/map/debug/insert1_neg.cc: Likewise.
654 * testsuite/23_containers/map/debug/insert2_neg.cc: Likewise.
655 * testsuite/23_containers/map/debug/insert3_neg.cc: Likewise.
656 * testsuite/23_containers/map/debug/iterator_self_move_assign_neg.cc:
658 * testsuite/23_containers/map/debug/self_move_assign_neg.cc: Likewise.
659 * testsuite/23_containers/multimap/debug/60499.cc: Likewise.
660 * testsuite/23_containers/multimap/debug/construct1_neg.cc: Likewise.
661 * testsuite/23_containers/multimap/debug/construct2_neg.cc: Likewise.
662 * testsuite/23_containers/multimap/debug/construct3_neg.cc: Likewise.
663 * testsuite/23_containers/multimap/debug/insert1_neg.cc: Likewise.
664 * testsuite/23_containers/multimap/debug/insert2_neg.cc: Likewise.
665 * testsuite/23_containers/multimap/debug/insert3_neg.cc: Likewise.
666 * testsuite/23_containers/multimap/debug/
667 iterator_self_move_assign_neg.cc: Likewise.
668 * testsuite/23_containers/multimap/debug/self_move_assign_neg.cc:
670 * testsuite/23_containers/multiset/debug/60499.cc: Likewise.
671 * testsuite/23_containers/multiset/debug/construct1_neg.cc: Likewise.
672 * testsuite/23_containers/multiset/debug/construct2_neg.cc: Likewise.
673 * testsuite/23_containers/multiset/debug/construct3_neg.cc: Likewise.
674 * testsuite/23_containers/multiset/debug/insert1_neg.cc: Likewise.
675 * testsuite/23_containers/multiset/debug/insert2_neg.cc: Likewise.
676 * testsuite/23_containers/multiset/debug/insert3_neg.cc: Likewise.
677 * testsuite/23_containers/multiset/debug/
678 iterator_self_move_assign_neg.cc: Likewise.
679 * testsuite/23_containers/multiset/debug/self_move_assign_neg.cc:
681 * testsuite/23_containers/set/debug/60499.cc: Likewise.
682 * testsuite/23_containers/set/debug/construct1_neg.cc: Likewise.
683 * testsuite/23_containers/set/debug/construct2_neg.cc: Likewise.
684 * testsuite/23_containers/set/debug/construct3_neg.cc: Likewise.
685 * testsuite/23_containers/set/debug/insert1_neg.cc: Likewise.
686 * testsuite/23_containers/set/debug/insert2_neg.cc: Likewise.
687 * testsuite/23_containers/set/debug/insert3_neg.cc: Likewise.
688 * testsuite/23_containers/set/debug/iterator_self_move_assign_neg.cc:
690 * testsuite/23_containers/set/debug/self_move_assign_neg.cc: Likewise.
691 * testsuite/23_containers/unordered_map/debug/60499.cc: Likewise.
692 * testsuite/23_containers/unordered_map/debug/begin1_neg.cc: Likewise.
693 * testsuite/23_containers/unordered_map/debug/begin2_neg.cc: Likewise.
694 * testsuite/23_containers/unordered_map/debug/bucket_size_neg.cc:
696 * testsuite/23_containers/unordered_map/debug/cbegin_neg.cc: Likewise.
697 * testsuite/23_containers/unordered_map/debug/cend_neg.cc: Likewise.
698 * testsuite/23_containers/unordered_map/debug/construct1_neg.cc:
700 * testsuite/23_containers/unordered_map/debug/construct2_neg.cc:
702 * testsuite/23_containers/unordered_map/debug/construct3_neg.cc:
704 * testsuite/23_containers/unordered_map/debug/end1_neg.cc: Likewise.
705 * testsuite/23_containers/unordered_map/debug/end2_neg.cc: Likewise.
706 * testsuite/23_containers/unordered_map/debug/insert1_neg.cc: Likewise.
707 * testsuite/23_containers/unordered_map/debug/insert2_neg.cc: Likewise.
708 * testsuite/23_containers/unordered_map/debug/insert3_neg.cc: Likewise.
709 * testsuite/23_containers/unordered_map/debug/
710 invalid_local_iterator_compare_neg.cc: Likewise.
711 * testsuite/23_containers/unordered_map/debug/
712 invalid_local_iterator_range_neg.cc: Likewise.
713 * testsuite/23_containers/unordered_map/debug/
714 iterator_self_move_assign_neg.cc: Likewise.
715 * testsuite/23_containers/unordered_map/debug/max_load_factor_neg.cc:
717 * testsuite/23_containers/unordered_map/debug/self_move_assign_neg.cc:
719 * testsuite/23_containers/unordered_map/debug/
720 use_erased_local_iterator_neg.cc: Likewise.
721 * testsuite/23_containers/unordered_map/debug/
722 use_invalid_iterator_neg.cc: Likewise.
723 * testsuite/23_containers/unordered_map/debug/
724 use_invalid_local_iterator_neg.cc: Likewise.
725 * testsuite/23_containers/unordered_multimap/debug/60499.cc: Likewise.
726 * testsuite/23_containers/unordered_multimap/debug/begin1_neg.cc:
728 * testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc:
730 * testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc:
732 * testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc:
734 * testsuite/23_containers/unordered_multimap/debug/cend_neg.cc:
736 * testsuite/23_containers/unordered_multimap/debug/construct1_neg.cc:
738 * testsuite/23_containers/unordered_multimap/debug/construct2_neg.cc:
740 * testsuite/23_containers/unordered_multimap/debug/construct3_neg.cc:
742 * testsuite/23_containers/unordered_multimap/debug/end1_neg.cc:
744 * testsuite/23_containers/unordered_multimap/debug/end2_neg.cc:
746 * testsuite/23_containers/unordered_multimap/debug/insert1_neg.cc:
748 * testsuite/23_containers/unordered_multimap/debug/insert2_neg.cc:
750 * testsuite/23_containers/unordered_multimap/debug/insert3_neg.cc:
752 * testsuite/23_containers/unordered_multimap/debug/
753 invalid_local_iterator_compare_neg.cc: Likewise.
754 * testsuite/23_containers/unordered_multimap/debug/
755 invalid_local_iterator_range_neg.cc: Likewise.
756 * testsuite/23_containers/unordered_multimap/debug/
757 iterator_self_move_assign_neg.cc: Likewise.
758 * testsuite/23_containers/unordered_multimap/debug/
759 max_load_factor_neg.cc: Likewise.
760 * testsuite/23_containers/unordered_multimap/debug/
761 self_move_assign_neg.cc: Likewise.
762 * testsuite/23_containers/unordered_multimap/debug/
763 use_erased_local_iterator_neg.cc: Likewise.
764 * testsuite/23_containers/unordered_multimap/debug/
765 use_invalid_iterator_neg.cc: Likewise.
766 * testsuite/23_containers/unordered_multimap/debug/
767 use_invalid_local_iterator_neg.cc: Likewise.
768 * testsuite/23_containers/unordered_multiset/debug/60499.cc:
770 * testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc:
772 * testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc:
774 * testsuite/23_containers/unordered_multiset/debug/bucket_size_neg.cc:
776 * testsuite/23_containers/unordered_multiset/debug/cbegin_neg.cc:
778 * testsuite/23_containers/unordered_multiset/debug/cend_neg.cc:
780 * testsuite/23_containers/unordered_multiset/debug/construct1_neg.cc:
782 * testsuite/23_containers/unordered_multiset/debug/construct2_neg.cc:
784 * testsuite/23_containers/unordered_multiset/debug/construct3_neg.cc:
786 * testsuite/23_containers/unordered_multiset/debug/end1_neg.cc:
788 * testsuite/23_containers/unordered_multiset/debug/end2_neg.cc:
790 * testsuite/23_containers/unordered_multiset/debug/insert1_neg.cc:
792 * testsuite/23_containers/unordered_multiset/debug/insert2_neg.cc:
794 * testsuite/23_containers/unordered_multiset/debug/insert3_neg.cc:
796 * testsuite/23_containers/unordered_multiset/debug/
797 invalid_local_iterator_compare_neg.cc: Likewise.
798 * testsuite/23_containers/unordered_multiset/debug/
799 invalid_local_iterator_range_neg.cc: Likewise.
800 * testsuite/23_containers/unordered_multiset/debug/
801 iterator_self_move_assign_neg.cc: Likewise.
802 * testsuite/23_containers/unordered_multiset/debug/
803 max_load_factor_neg.cc: Likewise.
804 * testsuite/23_containers/unordered_multiset/debug/
805 self_move_assign_neg.cc: Likewise.
806 * testsuite/23_containers/unordered_multiset/debug/
807 use_erased_local_iterator_neg.cc: Likewise.
808 * testsuite/23_containers/unordered_multiset/debug/
809 use_invalid_iterator_neg.cc: Likewise.
810 * testsuite/23_containers/unordered_multiset/debug/
811 use_invalid_local_iterator_neg.cc: Likewise.
812 * testsuite/23_containers/unordered_set/debug/60499.cc: Likewise.
813 * testsuite/23_containers/unordered_set/debug/begin1_neg.cc: Likewise.
814 * testsuite/23_containers/unordered_set/debug/begin2_neg.cc: Likewise.
815 * testsuite/23_containers/unordered_set/debug/bucket_size_neg.cc:
817 * testsuite/23_containers/unordered_set/debug/cbegin_neg.cc: Likewise.
818 * testsuite/23_containers/unordered_set/debug/cend_neg.cc: Likewise.
819 * testsuite/23_containers/unordered_set/debug/construct1_neg.cc:
821 * testsuite/23_containers/unordered_set/debug/construct2_neg.cc:
823 * testsuite/23_containers/unordered_set/debug/construct3_neg.cc:
825 * testsuite/23_containers/unordered_set/debug/end1_neg.cc: Likewise.
826 * testsuite/23_containers/unordered_set/debug/end2_neg.cc: Likewise.
827 * testsuite/23_containers/unordered_set/debug/insert1_neg.cc: Likewise.
828 * testsuite/23_containers/unordered_set/debug/insert2_neg.cc: Likewise.
829 * testsuite/23_containers/unordered_set/debug/insert3_neg.cc: Likewise.
830 * testsuite/23_containers/unordered_set/debug/
831 invalid_local_iterator_compare_neg.cc: Likewise.
832 * testsuite/23_containers/unordered_set/debug/
833 invalid_local_iterator_range_neg.cc: Likewise.
834 * testsuite/23_containers/unordered_set/debug/
835 iterator_self_move_assign_neg.cc: Likewise.
836 * testsuite/23_containers/unordered_set/debug/
837 max_load_factor_neg.cc: Likewise.
838 * testsuite/23_containers/unordered_set/debug/
839 self_move_assign_neg.cc: Likewise.
840 * testsuite/23_containers/unordered_set/debug/
841 use_erased_local_iterator_neg.cc: Likewise.
842 * testsuite/23_containers/unordered_set/debug/
843 use_invalid_iterator_neg.cc: Likewise.
844 * testsuite/23_containers/unordered_set/debug/
845 use_invalid_local_iterator_neg.cc: Likewise.
846 * testsuite/23_containers/vector/debug/52433.cc: Likewise.
847 * testsuite/23_containers/vector/debug/60499.cc: Likewise.
848 * testsuite/23_containers/vector/debug/bool/shrink_to_fit.cc: Likewise.
849 * testsuite/23_containers/vector/debug/
850 iterator_self_move_assign_neg.cc: Likewise.
851 * testsuite/23_containers/vector/debug/self_move_assign_neg.cc:
853 * testsuite/23_containers/vector/debug/shrink_to_fit.cc: Likewise.
854 * testsuite/25_algorithms/pop_heap/complexity.cc: Likewise.
855 * testsuite/25_algorithms/push_heap/complexity.cc: Likewise.
856 * testsuite/25_algorithms/sort_heap/complexity.cc: Likewise.
857 * testsuite/29_atomics/atomic/60658.cc: Likewise.
858 * testsuite/29_atomics/atomic/60695.cc: Likewise.
859 * testsuite/29_atomics/atomic/62259.cc: Likewise.
860 * testsuite/29_atomics/atomic/64658.cc: Likewise.
861 * testsuite/29_atomics/atomic/cons/49445.cc: Likewise.
862 * testsuite/29_atomics/atomic/operators/51811.cc: Likewise.
863 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
866 2016-09-11 Jonathan Wakely <jwakely@redhat.com>
868 * libsupc++/new_opant.cc: Include exception_defines.h.
869 * libsupc++/new_opvant.cc: Likewise.
871 2016-09-09 Jason Merrill <jason@redhat.com>
873 Implement P0035R4, C++17 new of over-aligned types.
874 * libsupc++/new: Declare aligned new/delete operators.
875 * config/abi/pre/gnu.ver: Export them.
876 * configure.ac: Check for aligned_alloc, posix_memalign, memalign,
878 * libsupc++/new_opa.cc: New.
879 * libsupc++/new_opant.cc: New.
880 * libsupc++/new_opva.cc: New.
881 * libsupc++/new_opva.cc: New.
882 * libsupc++/del_opa.cc: New.
883 * libsupc++/del_opant.cc: New.
884 * libsupc++/del_opsa.cc: New.
885 * libsupc++/del_opva.cc: New.
886 * libsupc++/del_opvant.cc: New.
887 * libsupc++/del_opvsa.cc: New.
888 * libsupc++/Makefile.am: Build them.
890 2016-09-05 Tim Shen <timshen@google.com>
892 * include/std/variant: include bits/move.h for std::addressof.
894 2016-09-05 Mikhail Strelnikov <mikhail.strelnikov@gmail.com>
896 * include/std/variant (_Variant_storage::_M_storage()): Use
897 std::addressof instead of operator& to take address.
899 2016-09-02 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
901 * acinclude.m4 (GLIBCXX_CONFIGURE_TESTSUITE): Check for presence of
902 setrlimit on both native and cross targets.
903 * configure: Regenerate.
905 2016-08-31 Jonathan Wakely <jwakely@redhat.com>
907 * include/bits/shared_ptr.h (_Assignable): New alias template.
908 (shared_ptr::operator=(const shared_ptr<_Tp1>&))
909 (shared_ptr::operator=(shared_ptr<_Tp1>&&))
910 (shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
912 * include/bits/shared_ptr_base.h (_Assignable): New alias template.
913 (__shared_ptr::operator=(const __shared_ptr<_Tp1>&))
914 (__shared_ptr::operator=(__shared_ptr<_Tp1>&&))
915 (__shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
917 (__shared_ptr::reset(_Tp1*), __shared_ptr::reset(_Tp1*, _Deleter))
918 (__shared_ptr::reset(_Tp1*, _Deleter, _Alloc)): Constrain with
920 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Change dg-error to
922 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
923 * testsuite/20_util/shared_ptr/assign/sfinae.cc: New test.
924 * testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc: Update
925 expected errors. Remove unnecessary code.
926 * testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc: New test.
928 * include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Move
930 * testsuite/23_containers/set/move_comparison.cc: New test.
932 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
935 2016-08-30 Ville Voutilainen <ville.voutilainen@gmail.com>
938 * include/std/type_traits (is_constructible): Forward-declare...
939 (__is_base_to_derived_ref): ...and use here.
940 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
941 * testsuite/20_util/is_constructible/77395.cc: New.
942 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust.
943 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
945 * testsuite/20_util/tuple/77395.cc: New.
947 2016-08-30 Uros Bizjak <ubizjak@gmail.com>
949 * testsuite/22_locale/time_get/get/char/2.cc: Move dg-do run
950 directive above dg-require-namedlocale directive.
951 * testsuite/22_locale/time_get/get/wchar_t/2.cc: Ditto.
952 * testsuite/27_io/manipulators/extended/get_time/char/2.cc: Ditto.
953 * testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc: Ditto.
954 * testsuite/27_io/manipulators/extended/put_time/char/2.cc: Ditto.
955 * testsuite/27_io/manipulators/extended/put_time/wchar_t/2.cc: Ditto.
957 2016-08-27 Tim Shen <timshen@google.com>
960 * include/bits/regex_compiler.tcc(_M_insert_bracket_matcher,
961 _M_expression_term): Modify to support dash literal.
962 * include/bits/regex_scanner.h: Add dash as a token type to make
963 a different from the mandated dash literal by escaping.
964 * include/bits/regex_scanner.tcc(_M_scan_in_bracket): Emit dash
965 token in bracket expression parsing.
966 * testsuite/28_regex/regression.cc: Add new testcases.
968 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
971 * doc/xml/manual/intro.xml: Document DR 2127 change.
972 * doc/html/*: Regenerate.
973 * include/bits/stl_raw_storage_iter.h (operator=(_Tp&&)): Add.
974 (operator++(), operator++(int)): Use injected class name.
975 * testsuite/20_util/raw_storage_iterator/dr2127.cc: New test.
977 * testsuite/*: Use { target c++11 } or { target c++14 } instead of
978 using -std in dg-options.
980 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
981 Pedro Alves <palves@redhat.com>
983 * testsuite/lib/gdb-test.exp (gdb-dg-runtest): Define wrapper to save
984 and restore dg-interpreter-batch-mode.
985 * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Use
986 gdb-dg-runtest instead of dg-runtest.
987 * testsuite/libstdc++-xmethods/xmethods.exp: Likewise.
989 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
991 * config/abi/pre/gnu.ver (GLIBCXX_3.4, GLIBCXX_3.4.21): Use more
992 precise patterns for basic_string constructors.
993 (GLIBCXX_3.4.23): Export new constructors.
994 * doc/xml/manual/intro.xml: Document LWG 2583 status.
995 * doc/html/*: Regenerate.
996 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
997 (basic_string(const basic_string&, size_type, const Alloc&)): Add
998 new constructor for LWG 2583.
999 (basic_string(const basic_string&, size_type, size_type)): Remove
1001 [!_GLIBCXX_USE_CXX11_ABI]: Likewise.
1002 * include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]: Define it.
1003 * testsuite/21_strings/basic_string/cons/char/8.cc: New test.
1004 * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: New test.
1006 2016-08-24 Aditya Kumar <hiraditya@msn.com>
1008 * include/bits/algorithmfwd.h: Remove trailing whitespace.
1009 * include/bits/shared_ptr_base.h: Likewise.
1011 2016-08-23 Jonathan Wakely <jwakely@redhat.com>
1013 * include/debug/array (array): Add _GLIBCXX17_CONSTEXPR.
1014 * include/profile/array (array): Likewise.
1015 (array::swap): Fix exception specification for zero-sized arrays.
1018 * include/bits/stl_tree.h (_Rb_tree::_M_move_assign): New functions.
1019 (_Rb_tree::operator=(_Rb_tree&&)): Dispatch to _M_move_assign.
1020 * testsuite/23_containers/map/77334.cc: New test.
1022 * doc/xml/manual/using.xml: Remove reference to -pthreads option.
1023 * doc/html/*: Regenerate.
1025 * testsuite/experimental/feat-cxx14.cc: Only preprocess, not compile.
1026 * testsuite/experimental/feat-lib-fund.cc: Likewise.
1029 * include/bits/stl_iterator.h
1030 (operator-(reverse_iterator<Iter>, reverse_iterator<Iter>): Only
1031 define for C++98 mode.
1032 (operator-(move_iterator<Iter>, move_iterator<Iter>): Don't define.
1033 * testsuite/24_iterators/headers/iterator/synopsis.cc: Use
1035 * testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: New test.
1036 * testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: New test.
1037 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: New test.
1038 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Don't test
1039 difference operator.
1040 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc: Only test
1041 difference operator for C++98.
1042 * testsuite/24_iterators/reverse_iterator/71771.cc: New test.
1044 * include/bits/c++config (_GLIBCXX17_CONSTEXPR): Define.
1045 * include/bits/range_access.h (begin, end, rbegin, rend, crbegin)
1046 (crend): Add _GLIBCXX17_CONSTEXPR as per P0031R0.
1047 * include/bits/stl_iterator.h (reverse_iterator, move_iterator)
1048 (__make_reverse_iterator, make_reverse_iterator, make_move_iterator):
1050 * include/bits/stl_iterator_base_funcs.h (__distance, __advance): Add
1051 _GLIBCXX14_CONSTEXPR.
1052 (distance, advance, next, prev): Add _GLIBCXX17_CONSTEXPR.
1053 * include/std/array (array::begin, array::end, array::rbegin)
1054 (array::rend, array::cbegin, array:cend, array::crbegin)
1055 (array::crend, array::operator[], array::at, array::front)
1056 (array::back, array::data): Likewise.
1057 * testsuite/24_iterators/headers/iterator/range_access.cc: Replace
1058 with separate tests for C++11, C++14, and C++17.
1059 * testsuite/24_iterators/headers/iterator/range_access_c++11.cc: New.
1060 * testsuite/24_iterators/headers/iterator/range_access_c++14.cc: New.
1061 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc: New.
1063 2016-08-22 Tim Shen <timshen@google.com>
1065 Split _M_dfs() into smaller functions.
1066 * regex_executor.h(_M_handle_repeat, _M_handle_subexpr_begin)
1067 (_M_handle_subexpr_end, _M_handle_line_begin_assertion)
1068 (_M_handle_line_end_assertion, _M_handle_word_boundary)
1069 (_M_handle_subexpr_lookahead, _M_handle_match)
1070 (_M_handle_backref, _M_handle_accept, _M_handle_alternative):
1071 Add separate function declarations.
1072 * regex_executor.tcc: Split _M_dfs() into multiple handler functions.
1074 2016-08-22 Gleb Natapov <gleb@scylladb.com>
1077 * config/abi/pre/gnu-versioned-namespace.ver: Export
1078 __cxa_init_primary_exception and std::exception_ptr(void*).
1079 * config/abi/pre/gnu.ver (CXXABI_1.3.11) : Add new symbol version and
1080 export __cxa_init_primary_exception and std::exception_ptr(void*).
1081 * include/Makefile.am: Add new headers.
1082 * include/Makefile.in: Regenerate.
1083 * libsupc++/Makefile.am: Add new headers.
1084 * libsupc++/Makefile.in: Regenerate.
1085 * libsupc++/cxxabi.h (__cxa_allocate_exception): Move to ...
1086 * libsupc++/cxxabi_init_exception.h: New header.
1087 (__cxa_init_primary_exception): Declare.
1088 * libsupc++/eh_throw.cc (__cxa_init_primary_exception): Define.
1089 (__cxa_throw): Use __cxa_init_primary_exception.
1090 * libsupc++/exception (std::exception): Move to ...
1091 * libsupc++/exception.h: New header.
1092 * libsupc++/exception_ptr.h (__exception_ptr::exception_ptr): Add
1094 (__exception_ptr::__dest_thunk): New function template.
1095 (std::make_exception_ptr) [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]:
1096 Use __cxa_allocate_exception and __cxa_init_primary_exception to
1097 create exception_ptr.
1098 * libsupc++/typeinfo: Include bits/exception.h instead of exception.
1099 * testsuite/util/testsuite_abi.cc: Add CXXABI_1.3.11 version.
1101 2016-08-22 Jonathan Wakely <jwakely@redhat.com>
1103 * doc/xml/api.xml: Replace hardcoded links for specific versions with
1104 link to docs for all releases.
1105 * doc/html/*: Regenerate.
1108 * doc/xml/manual/intro.xml: Document DR 2062 change.
1109 * include/std/functional (function::swap): Add noexcept.
1110 (swap(function<Res(Args...)&, function<Res(Args...)&)): Likewise.
1111 * testsuite/20_util/function/77322.cc: New test.
1113 2016-08-19 Jonathan Wakely <jwakely@redhat.com>
1115 * testsuite/21_strings/basic_string/pthread18185.cc: Use -pthread for
1116 *-*-solaris* instead of -pthreads.
1117 * testsuite/21_strings/basic_string/pthread4.cc : Likewise.
1118 * testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
1119 * testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
1120 * testsuite/23_containers/list/pthread1.cc: Likewise.
1121 * testsuite/23_containers/list/pthread5.cc: Likewise.
1122 * testsuite/23_containers/map/pthread6.cc: Likewise.
1123 * testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
1124 * testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
1125 * testsuite/30_threads/shared_mutex/*: Likewise.
1126 * testsuite/ext/rope/pthread7-rope.cc: Likewise.
1127 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
1128 default_weaktoshared.cc: Likewise.
1129 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
1130 mutex_weaktoshared.cc: Likewise.
1131 * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise. Use
1132 dg-require-effective-target instead of using -std option.
1133 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
1135 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
1136 * testsuite/23_containers/vector/debug/multithreaded_swap.cc:
1138 * testsuite/30_threads/async/*: Likewise.
1139 * testsuite/30_threads/call_once/*: Likewise.
1140 * testsuite/30_threads/condition_variable/*: Likewise.
1141 * testsuite/30_threads/condition_variable_any/*: Likewise.
1142 * testsuite/30_threads/future/*: Likewise.
1143 * testsuite/30_threads/lock/*: Likewise.
1144 * testsuite/30_threads/mutex/*: Likewise.
1145 * testsuite/30_threads/packaged_task/*: Likewise.
1146 * testsuite/30_threads/promise/*: Likewise.
1147 * testsuite/30_threads/recursive_mutex/*: Likewise.
1148 * testsuite/30_threads/recursive_timed_mutex/*: Likewise.
1149 * testsuite/30_threads/shared_future/*: Likewise.
1150 * testsuite/30_threads/shared_lock/*: Likewise.
1151 * testsuite/30_threads/shared_timed_mutex/*: Likewise.
1152 * testsuite/30_threads/this_thread/*: Likewise.
1153 * testsuite/30_threads/thread/*: Likewise.
1154 * testsuite/30_threads/timed_mutex/*: Likewise.
1155 * testsuite/30_threads/try_lock/*: Likewise.
1156 * testsuite/30_threads/unique_lock/*: Likewise.
1158 * doc/xml/manual/status_cxx2017.xml: Update status of not_fn.
1159 * doc/html/*: Regenerate.
1160 * include/experimental/functional (_Not_fn, not_fn): Match C++17
1162 * include/std/functional (_Not_fn, not_fn): Define for C++17.
1163 * testsuite/20_util/not_fn/1.cc: New.
1164 * testsuite/experimental/functional/not_fn.cc: Test abstract class.
1165 Remove test for volatile-qualified wrapper.
1167 * include/std/atomic (atomic::is_always_lock_free): Define.
1168 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
1169 * testsuite/29_atomics/atomic/is_always_lock_free.cc: New.
1170 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc: New.
1171 * doc/xml/manual/status_cxx2017.xml: Update status.
1172 * doc/html/*: Regenerate.
1174 * include/experimental/tuple (apply): Qualify call to __apply_impl.
1175 * include/std/tuple (apply): Likewise.
1176 * testsuite/experimental/system_error/value.cc: Fix ambiguities in
1178 * testsuite/experimental/tuple/tuple_size.cc: Likewise.
1179 * testsuite/experimental/type_traits/value.cc: Likewise.
1181 * doc/xml/manual/status_cxx2017.xml: Update status of make_from_tuple
1183 * doc/html/*: Regenerate.
1185 2016-08-18 Ville Voutilainen <ville.voutilainen@gmail.com>
1187 Implement the latest proposed resolution of LWG 2756.
1188 * include/std/optional (Optional_base(const _Tp&))
1189 (Optional_base(_Tp&&), using _Base::_Base): Remove.
1190 (optional(nullopt_t)): New.
1191 (optional(_Up&&)): Invoke base directly with in_place
1192 rather than creating a temporary, add default template
1193 argument, change constraints.
1194 (optional(const optional<_Up>&)): Invoke base directly
1195 with in_place, remove unnecessary constraints.
1196 (optional(optional<_Up>&& __t)): Likewise.
1197 (optional(in_place_t, _Args&&...)): New.
1198 (optional(in_place_t, initializer_list<_Up>, _Args&&...)): Likewise.
1199 (operator=(_Up&&)): Add default template argument, change constraints.
1200 (operator=(const optional<_Up>&)): Put is_same first in the
1202 (operator=(optional<_Up>&&)): Likewise.
1203 * testsuite/20_util/optional/assignment/5.cc: Add a test to
1204 verify assignment from something that can't be perfect-forwarded.
1205 * testsuite/20_util/optional/cons/value.cc: Add tests to verify
1206 that a nested optional is disengaged when constructed
1207 from a disengaged element type, and to verify that assignments
1208 from an engaged element type engage the optional.
1210 2016-08-18 Tim Shen <timshen@google.com>
1214 * include/Makefile.am: Add new file std/variant.
1215 * include/Makefile.in: Generated from Makefile.am.
1216 * include/bits/enable_special_members.h: Add a tag type to allow
1217 the construction in non-default constructor.
1218 * include/bits/uses_allocator.h: Add convenience traits to
1219 detect constructibility.
1220 * include/std/variant: Implement <variant>.
1221 * testsuite/20_util/variant/compile.cc: Compile-time tests.
1222 * testsuite/20_util/variant/run.cc: Runtime tests.
1224 2016-08-18 Jonathan Wakely <jwakely@redhat.com>
1226 * doc/xml/manual/test.xml (test.run.permutations): Expand section.
1227 (test.new_tests): Rewrite section.
1228 (tests.dg.directives): New section.
1229 * doc/html/*: Regenerate.
1231 * doc/xml/manual/test.xml: Improve documentation of test targets.
1232 Document new-abi-baseline, check-debug, and check-parallel targets.
1234 * doc/xml/manual/build_hacking.xml: New section on shared library
1237 * doc/xml/manual/build_hacking.xml: Improve markup.
1238 * doc/xml/manual/test.xml: Likewise. Change section title from "Test"
1240 * doc/xml/faq.xml: Change link text to "Testing".
1242 * testsuite/tr1/3_function_objects/function/10.cc: Remove unintended
1243 dg-options directive.
1245 2016-08-17 Jonathan Wakely <jwakely@redhat.com>
1247 * testsuite/20_util/reference_wrapper/invoke-2.cc: Fix invalid dg-do
1248 directive and use effective target instead of dg-options.
1250 * testsuite/20_util/hash/chi2_q_bit_flip_set.cc: Use effective target
1251 instead of -std in dg-options.
1252 * testsuite/20_util/hash/chi2_q_bit_string_set.cc: Likewise.
1253 * testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc: Likewise.
1254 * testsuite/20_util/hash/chi2_q_uniform_random.cc: Likewise.
1255 * testsuite/20_util/hash/quality.cc: Likewise.
1256 * testsuite/25_algorithms/heap/moveable.cc: Likewise.
1257 * testsuite/25_algorithms/heap/moveable2.cc: Likewise.
1258 * testsuite/25_algorithms/nth_element/random_test.cc: Likewise.
1259 * testsuite/25_algorithms/partial_sort/random_test.cc: Likewise.
1260 * testsuite/25_algorithms/partial_sort_copy/random_test.cc: Likewise.
1261 * testsuite/25_algorithms/sort/random_test.cc: Likewise.
1263 * testsuite/20_util/tuple/67844.cc: Require c++11 effective target.
1264 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Likewise.
1265 * testsuite/27_io/rvalue_streams.cc: Likewise.
1267 * testsuite/26_numerics/complex/literals/types.cc: Add comment.
1269 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
1270 Remove duplicate dg-options directive.
1272 * testsuite/ext/profile/all.cc: Use effective target instead of
1273 -std=gnu++11. Use dg-additional-options instead of repeating options.
1275 * testsuite/20_util/bind/ref_neg.cc: Use effective target instead of
1276 -std=gnu++11. Add -fno-show-columns to dg-options. Use dg-prune-output
1277 instead of dg-excess-errors.
1279 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Disable
1281 * testsuite/experimental/chrono/value.cc: Avoid ambiguities in C++17.
1282 * testsuite/experimental/ratio/value.cc: Likewise.
1283 * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Disable test for
1285 * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
1286 * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
1287 * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
1288 * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
1289 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
1290 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
1291 * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
1292 * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
1293 * testsuite/tr1/5_numerical_facilities/special_functions/
1294 10_cyl_bessel_k/airy.cc: Adjust namespace of __detail::__airy for
1295 C++17 compatibility.
1297 * testsuite/24_iterators/headers/iterator/range_access.cc: Adjust
1298 expected signatures for C++14 compatibility.
1301 * include/bits/basic_string.h (operator=(__sv_type)
1302 (append(__sv_type), assign(__sv_type), insert(size_type, __sv_type))
1303 (replace(size_type, size_type, __sv_type))
1304 (replace(const_iterator, const_iterator, __sv_type))
1305 (find(__sv_type, size_type), rfind(__sv_type, size_type))
1306 (compare(size_type, size_type, __sv_type)): Reformat.
1307 (_If_sv): Define helper for SFINAE constaints.
1308 (append(const _Tp&, size_type, size_type))
1309 (assign(const _Tp&, size_type, size_type))
1310 (insert(size_type, const _Tp&, size_type, size_type))
1311 (replace(size_type, size_type, const _Tp&, size_type, size_type)):
1313 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc: Test
1315 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
1317 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1319 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
1321 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
1323 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
1325 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
1327 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
1329 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1331 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
1333 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
1336 2016-08-16 Jonathan Wakely <jwakely@redhat.com>
1339 * include/bits/stl_bvector.h (_Bvector_base::_M_deallocate): Zero
1340 pointers to start and end of storage.
1341 * testsuite/23_containers/vector/bool/72847.cc: New test.
1342 * include/bits/vector.tcc (vector<bool>::_M_reallocate): Only update
1343 _M_finish after deallocating.
1344 (vector<bool>::_M_fill_insert): Likewise.
1345 (vector<bool>::_M_insert_range): Likewise.
1346 (vector<bool>::_M_insert_aux): Likewise.
1348 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1350 Implement LWG 2744 and LWG 2754.
1351 * include/std/any (any(ValueType&&)): Constrain with __is_in_place_type.
1352 (any(in_place_type_t<_ValueType>, _Args&&...)): Use _Decay.
1353 (any(in_place_type_t<_ValueType>, initializer_list<_Up>, _Args&&...)):
1355 (emplace(_Args&&...)): Likewise.
1356 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
1357 * include/std/utility: (__is_in_place_type_impl): New.
1358 (__is_in_place_type): Likewise.
1359 * testsuite/20_util/any/assign/emplace.cc: Add tests for decaying
1361 * testsuite/20_util/any/cons/in_place.cc: Add tests for decaying
1362 in_place constructor.
1363 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
1364 * testsuite/20_util/any/requirements.cc: Add a test for
1365 in_place-constructing a non-default-constructible type.
1367 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1369 Add a feature macro for C++17 make_from_tuple.
1370 * include/std/tuple (__cpp_lib_make_from_tuple): New.
1371 (__make_from_tuple_impl(_Tuple&&, index_sequence<_Idx...>)):
1372 Qualify the call to get<>().
1373 * testsuite/20_util/tuple/make_from_tuple/1.cc: Adjust.
1375 2016-08-15 Uros Bizjak <ubizjak@gmail.com>
1377 * src/filesystem/ops.cc: Always include ostream and
1378 ext/stdio_filebuf.h.
1379 (do_copy_file): Check if _GLIBCXX_USE_FCHMODAT is defined.
1380 [_GLIBCXX_USE_SENDFILE]: Fallback to read/write operations in case
1381 sendfile fails with ENOSYS or EINVAL.
1383 2016-08-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
1386 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Fix dg-error
1389 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1391 Implement C++17 make_from_tuple.
1392 * include/std/tuple (__make_from_tuple_impl, make_from_tuple): New.
1393 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
1395 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1398 * include/bits/basic_string.h
1399 (append(__sv_type, size_type, size_type)): Turn into a template,
1400 change parameter type, constrain, add a conversion to __sv_type
1401 from the dependent parameter type.
1402 (assign(__sv_type, size_type, size_type)): Likewise.
1403 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
1404 (replace(size_type, size_type, __sv_type, size_type, size_type)):
1406 (compare(size_type, size_type,__sv_type, size_type, size_type)):
1408 * testsuite/21_strings/basic_string/lwg2758.cc: New.
1410 2016-08-06 Jonathan Wakely <jwakely@redhat.com>
1412 * doc/xml/manual/status_cxx2017.xml: Update status table.
1413 * doc/html/manual/status.html: Regenerate.
1415 * testsuite/lib/libstdc++.exp: Fix typo in comment.
1418 * include/std/functional (_Function_base::_Base_manager::_M_clone):
1419 Qualify new operator.
1420 * testsuite/20_util/function/cons/72820.cc: New test.
1422 * doc/xml/manual/status_cxx2017.xml: Add missing LFTSv2 features.
1423 * doc/html/manual/status.html: Regenerate.
1424 * include/Makefile.am: Add new header.
1425 * include/Makefile.in: Regenerate.
1426 * include/bits/invoke.h: New header.
1427 (__invoke): Make constexpr. Add && to types in exception specification.
1428 * include/experimental/tuple (apply, __apply_impl): Fix non-reserved
1429 names. Include <bits/invoke.h> and use std::__invoke.
1430 * include/std/functional (__invfwd, __invoke_impl, __invoke): Move to
1432 (invoke): Add && to types in exception specification.
1433 * include/std/tuple (apply, __apply_impl): Define for C++17.
1434 * testsuite/20_util/tuple/apply/1.cc: New test.
1435 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error
1438 2016-08-05 Jonathan Wakely <jwakely@redhat.com>
1440 * doc/xml/manual/status_cxx2017.xml: Correct shared_from_this status.
1441 * doc/html/manual/status.html: Regenerate.
1443 * include/std/chrono (floor, ceil, round, abs): New for C++17.
1444 * testsuite/20_util/duration_cast/rounding.cc: New test.
1445 * testsuite/20_util/time_point_cast/rounding.cc: New test.
1446 * doc/xml/manual/status_cxx2017.xml: Update status table.
1447 * doc/html/manual/status.html: Regenerate.
1448 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust
1450 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1451 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1452 * testsuite/20_util/duration/literals/range.cc: Likewise.
1454 * include/std/functional (__callable_functor): Remove.
1455 (_Function_handler::_M_invoke): Use __invoke instead of
1456 __callable_functor or mem_fn.
1457 (function::_Callable): Use lvalue in result_of expression.
1458 (function): Remove TODO comments about allocators.
1459 * testsuite/20_util/function/cons/refqual.cc: New test.
1461 2016-08-04 Jonathan Wakely <jwakely@redhat.com>
1463 * doc/xml/manual/status_cxx2017.xml: Update status table.
1464 * include/std/functional (__inv_unwrap): Move to <type_traits>.
1465 (__invoke_impl): Remove exception specifications.
1466 (__invoke, invoke): Add exception specifications using
1467 __is_nothrow_callable.
1468 * include/std/type_traits (__inv_unwrap): Move from <functional>.
1469 (__is_callable_impl, __call_is_nt, __call_is_nothrow): New helpers.
1470 (__is_callable, __is_nothrow_callable): New traits.
1471 (is_callable, is_callable_v): New C++17 traits.
1472 (is_nothrow_callable, is_nothrow_callable_v): Likewise.
1473 * testsuite/20_util/is_callable/requirements/
1474 explicit_instantiation.cc: New test.
1475 * testsuite/20_util/is_callable/requirements/
1476 explicit_instantiation_ext.cc: New test.
1477 * testsuite/20_util/is_callable/requirements/typedefs.cc: New test.
1478 * testsuite/20_util/is_callable/requirements/typedefs_ext.cc: New
1480 * testsuite/20_util/is_callable/value.cc: New test.
1481 * testsuite/20_util/is_callable/value_ext.cc: New test.
1482 * testsuite/20_util/is_nothrow_callable/requirements/
1483 explicit_instantiation.cc: New test.
1484 * testsuite/20_util/is_nothrow_callable/requirements/
1485 explicit_instantiation_ext.cc: New test.
1486 * testsuite/20_util/is_nothrow_callable/requirements/typedefs.cc:
1488 * testsuite/20_util/is_nothrow_callable/requirements/typedefs_ext.cc:
1490 * testsuite/20_util/is_nothrow_callable/value.cc: New test.
1491 * testsuite/20_util/is_nothrow_callable/value_ext.cc: New test.
1493 * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
1494 * doc/html/manual/status.html: Regenerate.
1496 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Use
1497 effective target not dg-options. Move check for feature-test macro to:
1498 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
1501 * include/std/functional (_Unwrap): Rename to __inv_unwrap.
1503 (__invoke_impl): Remove unused template parameters.
1504 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
1506 * testsuite/20_util/function_objects/invoke/ref_ext.cc: Copy 59768.cc
1507 and test __invoke extension for C++11.
1509 2016-08-03 Jonathan Wakely <jwakely@redhat.com>
1511 * include/bits/shared_ptr_base.h (__cpp_lib_enable_shared_from_this):
1512 Define feature-test macro.
1513 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Test
1516 * include/bits/shared_ptr.h (shared_ptr::weak_type): Define.
1517 * include/bits/shared_ptr_base.h (__shared_ptr::weak_type): Define.
1518 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
1519 * testsuite/20_util/shared_ptr/requirements/weak_type.cc: New test.
1520 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
1522 * include/std/utility (as_const): Define.
1523 * testsuite/20_util/as_const/1.cc: New test.
1524 * testsuite/20_util/as_const/rvalue_neg.cc: New test.
1526 * include/bits/shared_ptr.h (owner_less): Add default template
1528 * include/bits/shared_ptr_base.h (_Sp_owner_less<void, void>): Define
1530 (owner_less<void>): Define specialization.
1531 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
1533 * testsuite/20_util/owner_less/void.cc: New test.
1534 * testsuite/experimental/feat-cxx14.cc: Update macro value tested.
1536 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
1537 Define feature-test macro.
1538 * include/bits/range_access.h (__cpp_lib_array_constexpr): Likewise.
1539 * include/std/shared_mutex (__cpp_lib_shared_mutex): Uncomment.
1540 * include/std/type_traits (__cpp_lib_logical_traits): Fix value.
1541 (__cpp_lib_type_trait_variable_templates): Define.
1543 * include/bits/stl_function.h: Remove commented-out macro.
1544 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
1545 Define feature-test macro.
1546 * testsuite/experimental/feat-cxx14.cc: Add tests for more macros.
1548 * include/bits/c++config (_GLIBCXX_USE_STD_SPEC_FUNCS): Define for
1549 C++17, or for C++11/C++14 when __STDCPP_WANT_MATH_SPEC_FUNCS__ is
1551 * include/bits/specfun.h [!__STDCPP_WANT_MATH_SPEC_FUNCS__]: Don't
1552 do #error for C++17.
1553 * include/c_global/cmath: Check _GLIBCXX_USE_STD_SPEC_FUNCS instead
1554 of __STDCPP_WANT_MATH_SPEC_FUNCS__.
1555 * include/tr1/bessel_function.tcc: Likewise.
1556 * include/tr1/beta_function.tcc: Likewise.
1557 * include/tr1/cmath: Likewise.
1558 * include/tr1/ell_integral.tcc: Likewise.
1559 * include/tr1/exp_integral.tcc: Likewise.
1560 * include/tr1/gamma.tcc: Likewise.
1561 * include/tr1/hypergeometric.tcc: Likewise.
1562 * include/tr1/legendre_function.tcc: Likewise.
1563 * include/tr1/modified_bessel_func.tcc: Likewise.
1564 * include/tr1/poly_hermite.tcc: Likewise.
1565 * include/tr1/poly_laguerre.tcc: Likewise.
1566 * include/tr1/riemann_zeta.tcc: Likewise.
1567 * include/tr1/special_function_util.h: Likewise.
1568 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc: New.
1570 * include/std/type_traits (has_trivial_default_constructor): Remove.
1571 (has_trivial_copy_constructor, has_trivial_copy_assign): Likewise.
1572 * testsuite/20_util/has_trivial_copy_assign/requirements/
1573 explicit_instantiation.cc: Remove test.
1574 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
1576 * testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc:
1578 * testsuite/20_util/has_trivial_copy_assign/value.cc: Likewise.
1579 * testsuite/20_util/has_trivial_copy_constructor/requirements/
1580 explicit_instantiation.cc: Likewise.
1581 * testsuite/20_util/has_trivial_copy_constructor/requirements/
1582 typedefs.cc: Likewise.
1583 * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise.
1584 * testsuite/20_util/has_trivial_default_constructor/requirements/
1585 explicit_instantiation.cc: Likewise.
1586 * testsuite/20_util/has_trivial_default_constructor/requirements/
1587 typedefs.cc: Likewise.
1588 * testsuite/20_util/has_trivial_default_constructor/value.cc:
1590 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
1591 Check has_trivial_default_constructor, has_trivial_copy_constructor,
1592 and has_trivial_copy_assign are not defined.
1593 * testsuite/20_util/pair/requirements/dr801.cc: Remove commented out
1595 * testsuite/20_util/tuple/requirements/dr801.cc: Likewise.
1596 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
1597 dg-error line number.
1598 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1601 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
1603 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
1604 Remove reundant check for _GLIBCXX_USE_WCHAR_T and fix char type.
1605 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
1607 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
1609 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
1611 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
1613 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
1615 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
1618 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Improve
1621 * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Move
1622 dg-error to relevant line.
1623 * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc:
1625 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
1627 * scripts/testsuite_flags.in: Add -fno-show-column to cxxflags.
1629 * testsuite/18_support/bad_exception/23591_thread-1.c: Skip test if
1630 options are present that aren't valid for C.
1631 * testsuite/abi/header_cxxabi.c: Likewise.
1633 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/
1634 check_value.cc: Do not add special functions to namespace std in TR1
1637 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Only
1638 run for C++11 and later.
1639 * testsuite/ext/special_functions/conf_hyperg/check_value.cc:
1641 * testsuite/ext/special_functions/conf_hyperg/compile.cc: Likewise.
1642 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
1643 * testsuite/ext/special_functions/hyperg/check_value.cc: Likewise.
1644 * testsuite/ext/special_functions/hyperg/compile.cc: Likewise.
1645 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
1647 * testsuite/special_functions/01_assoc_laguerre/check_value.cc:
1649 * testsuite/special_functions/01_assoc_laguerre/compile.cc: Likewise.
1650 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc:
1652 * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
1654 * testsuite/special_functions/02_assoc_legendre/check_value.cc:
1656 * testsuite/special_functions/02_assoc_legendre/compile.cc: Likewise.
1657 * testsuite/special_functions/02_assoc_legendre/compile_2.cc:
1658 * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
1659 * testsuite/special_functions/03_beta/check_value.cc: Likewise.
1660 * testsuite/special_functions/03_beta/compile.cc: Likewise.
1661 * testsuite/special_functions/03_beta/compile_2.cc: Likewise.
1662 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: Likewise.
1663 * testsuite/special_functions/04_comp_ellint_1/check_value.cc:
1665 * testsuite/special_functions/04_comp_ellint_1/compile.cc: Likewise.
1666 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Likewise.
1667 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: Likewise.
1668 * testsuite/special_functions/05_comp_ellint_2/check_value.cc:
1670 * testsuite/special_functions/05_comp_ellint_2/compile.cc: Likewise.
1671 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Likewise.
1672 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: Likewise.
1673 * testsuite/special_functions/06_comp_ellint_3/check_value.cc:
1675 * testsuite/special_functions/06_comp_ellint_3/compile.cc: Likewise.
1676 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Likewise.
1677 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: Likewise.
1678 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc:
1680 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: Likewise.
1681 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Likewise.
1682 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: Likewise.
1683 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: Likewise.
1684 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc:
1686 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: Likewise.
1687 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Likewise.
1688 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: Likewise.
1689 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc:
1691 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: Likewise.
1692 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Likewise.
1693 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: Likewise.
1694 * testsuite/special_functions/10_cyl_neumann/check_value.cc: Likewise.
1695 * testsuite/special_functions/10_cyl_neumann/compile.cc: Likewise.
1696 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Likewise.
1697 * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
1698 * testsuite/special_functions/11_ellint_1/check_value.cc: Likewise.
1699 * testsuite/special_functions/11_ellint_1/compile.cc: Likewise.
1700 * testsuite/special_functions/11_ellint_1/compile_2.cc: Likewise.
1701 * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
1702 * testsuite/special_functions/12_ellint_2/check_value.cc: Likewise.
1703 * testsuite/special_functions/12_ellint_2/compile.cc: Likewise.
1704 * testsuite/special_functions/12_ellint_2/compile_2.cc: Likewise.
1705 * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
1706 * testsuite/special_functions/13_ellint_3/check_value.cc: Likewise.
1707 * testsuite/special_functions/13_ellint_3/compile.cc: Likewise.
1708 * testsuite/special_functions/13_ellint_3/compile_2.cc: Likewise.
1709 * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
1710 * testsuite/special_functions/14_expint/check_value.cc: Likewise.
1711 * testsuite/special_functions/14_expint/compile.cc: Likewise.
1712 * testsuite/special_functions/14_expint/compile_2.cc: Likewise.
1713 * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
1714 * testsuite/special_functions/15_hermite/check_value.cc: Likewise.
1715 * testsuite/special_functions/15_hermite/compile.cc: Likewise.
1716 * testsuite/special_functions/15_hermite/compile_2.cc: Likewise.
1717 * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
1718 * testsuite/special_functions/16_laguerre/check_value.cc: Likewise.
1719 * testsuite/special_functions/16_laguerre/compile.cc: Likewise.
1720 * testsuite/special_functions/16_laguerre/compile_2.cc: Likewise.
1721 * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
1722 * testsuite/special_functions/17_legendre/check_value.cc: Likewise.
1723 * testsuite/special_functions/17_legendre/compile.cc: Likewise.
1724 * testsuite/special_functions/17_legendre/compile_2.cc: Likewise.
1725 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: Likewise.
1726 * testsuite/special_functions/18_riemann_zeta/check_value.cc:
1728 * testsuite/special_functions/18_riemann_zeta/compile.cc: Likewise.
1729 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Likewise.
1730 * testsuite/special_functions/19_sph_bessel/check_nan.cc: Likewise.
1731 * testsuite/special_functions/19_sph_bessel/check_value.cc: Likewise.
1732 * testsuite/special_functions/19_sph_bessel/compile.cc: Likewise.
1733 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Likewise.
1734 * testsuite/special_functions/20_sph_legendre/check_nan.cc: Likewise.
1735 * testsuite/special_functions/20_sph_legendre/check_value.cc:
1737 * testsuite/special_functions/20_sph_legendre/compile.cc: Likewise.
1738 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Likewise.
1739 * testsuite/special_functions/21_sph_neumann/check_nan.cc: Likewise.
1740 * testsuite/special_functions/21_sph_neumann/check_value.cc: Likewise.
1741 * testsuite/special_functions/21_sph_neumann/compile.cc: Likewise.
1742 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Likewise.
1744 * testsuite/tr1/5_numerical_facilities/special_functions/
1745 08_cyl_bessel_i/check_value.cc: Use __attribute__((unused)) instead
1747 * testsuite/tr1/5_numerical_facilities/special_functions/
1748 09_cyl_bessel_j/check_value.cc: Likewise.
1749 * testsuite/tr1/5_numerical_facilities/special_functions/
1750 10_cyl_bessel_k/check_value.cc: Likewise.
1751 * testsuite/tr1/5_numerical_facilities/special_functions/
1752 11_cyl_neumann/check_value.cc: Likewise.
1753 * testsuite/tr1/5_numerical_facilities/special_functions/
1754 21_sph_bessel/check_value.cc: Likewise.
1755 * testsuite/tr1/5_numerical_facilities/special_functions/
1756 23_sph_neumann/check_value.cc: Likewise.
1758 2016-08-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1760 * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
1761 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
1762 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
1763 * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
1764 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
1765 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
1767 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
1769 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: Skip
1772 * testsuite/lib/libstdc++.exp (v3-build_support): Add -fno-lto to
1773 additional flags for compiling libtestc++.a objects.
1775 2016-08-01 Jonathan Wakely <jwakely@redhat.com>
1777 * include/bits/basic_string.h (data() const): Update comment.
1778 (data()): Add non-const overload for C++17.
1779 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
1780 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
1782 * include/bits/basic_string.tcc: Disable explicit instantiation
1783 declarations for C++17.
1785 * testsuite/23_containers/unordered_map/requirements/53339.cc: Remove
1786 ignored "xfail" from { dg-do compile { xfail selector } } directive.
1787 * testsuite/23_containers/unordered_multimap/requirements/53339.cc:
1789 * testsuite/26_numerics/headers/cmath/
1790 c99_classification_macros_c++11.cc: Likewise.
1791 * testsuite/26_numerics/headers/cmath/
1792 c99_classification_macros_c++98.cc: Likewise.
1793 * testsuite/26_numerics/headers/cmath/
1794 c99_classification_macros_c.cc: Likewise.
1796 * testsuite/backward/hash_set/check_construct_destroy.cc: Account
1797 for different construct/destroy counts in C++98 mode.
1799 * testsuite/17_intro/freestanding.cc: Remove "-x c" from dg-options.
1801 * testsuite/20_util/tuple/cons/66338.cc: Limit test to C++11 and
1803 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc:
1806 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Use
1807 C++98-compatible initialization for array.
1809 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc: Remove
1810 unused header and variable from compile-only test.
1811 * testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc: Likewise.
1812 * testsuite/28_regex/basic_regex/assign/char/cstring.cc: Likewise.
1813 * testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc: Likewise.
1814 * testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc:
1817 * testsuite/experimental/string_view/operations/rfind/char/2.cc:
1818 Remove duplicate dg-options directive.
1820 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
1821 808590.cc: Use -std=gnu++98 instead of -std=gnu++03.
1823 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Remove
1824 linker options from compile-only tests.
1825 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
1828 * testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Make test
1829 supported for C++11 and later.
1830 * testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
1831 * testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.
1833 2016-08-01 Uros Bizjak <ubizjak@gmail.com>
1835 * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
1837 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
1839 * testsuite/20_util/conditional/requirements/typedefs.cc: Change to
1842 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
1843 Ensure test is compiled with optimization.
1845 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
1846 Adjust dg-prune-output pattern for error in C++98 mode.
1848 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Only
1849 run for C++11 or later.
1851 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Fix
1852 test to not rely on GNU extension (escaped normal characters in POSIX
1853 BRE). Enable tests for other strings which are now supported.
1855 * testsuite/20_util/pair/astuple/get_neg.cc: Use effective-target
1856 c++11 instead of setting -std=gnu++14.
1859 * include/std/array (get): Use positive message for static assertions.
1860 * include/std/functional (_Safe_tuple_element_t): Fix indentation.
1861 * include/std/tuple (tuple_element<I, tuple<>>): Add partial
1862 specialization for invalid indices, with static assertion.
1863 * testsuite/20_util/tuple/element_access/get_neg.cc: New test.
1865 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Move
1866 dg-error to relevant line.
1867 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
1869 * testsuite/23_containers/forward_list/requirements/dr438/
1870 assign_neg.cc: Likewise.
1871 * testsuite/23_containers/forward_list/requirements/dr438/
1872 constructor_1_neg.cc: Likewise.
1873 * testsuite/23_containers/forward_list/requirements/dr438/
1874 constructor_2_neg.cc: Likewise.
1875 * testsuite/23_containers/forward_list/requirements/dr438/
1876 insert_neg.cc: Likewise.
1877 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc:
1879 * testsuite/26_numerics/random/linear_congruential_engine/
1880 requirements/non_uint_neg.cc: Likewise.
1881 * testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc:
1882 Likewise. Also test for std::atomic_address.
1884 2016-07-31 Ville Voutilainen <ville.voutilainen@gmail.com>
1886 Add missing variable traits, fix testsuite failures.
1887 * include/bits/uses_allocator.h (uses_allocator_v): New.
1888 * include/std/functional (is_bind_expression_v, is_placeholder_v):
1890 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
1891 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
1892 * testsuite/20_util/duration/literals/range.cc: Likewise.
1893 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
1894 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1895 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1896 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise.
1897 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1899 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
1900 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
1903 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
1905 * testsuite/18_support/numeric_limits/40856.cc [__STRICT_ANSI__]: Do
1906 not test 128-bit types.
1907 * testsuite/20_util/is_floating_point/value.cc: Likewise.
1908 * testsuite/20_util/is_integral/value.cc: Likewise.
1909 * testsuite/20_util/is_signed/value.cc: Likewise.
1910 * testsuite/20_util/is_unsigned/value.cc: Likewise.
1911 * testsuite/20_util/make_signed/requirements/typedefs-1.cc: Likewise.
1912 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
1913 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
1915 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
1918 * testsuite/26_numerics/headers/cstdlib/54686.c: Rename to 54686.cc.
1920 2016-07-29 Ville Voutilainen <ville.voutilainen@gmail.com>
1922 Implement C++17 variable templates for type traits.
1923 * include/std/chrono (treat_as_floating_point_v): New.
1924 * include/std/ratio (ratio_equal_v, ratio_not_equal_v)
1925 (ratio_less_v, ratio_less_equal_v, ratio_greater_v)
1926 (ratio_greater_equal_v): Likewise.
1927 * include/std/system_error (is_error_code_enum_v)
1928 (is_error_condition_enum_v): Likewise.
1929 * include/std/tuple (tuple_size_v): Likewise.
1930 * type_traits (conjunction_v, disjunction_v, negation_v)
1931 (is_void_v, is_null_pointer_v, is_integral_v, is_floating_point_v)
1932 (is_array_v, is_pointer_v, is_lvalue_reference_v)
1933 (is_rvalue_reference_v, is_member_object_pointer_v)
1934 (is_member_function_pointer_v, is_enum_v, is_union_v)
1935 (is_class_v, is_function_v, is_reference_v, is_arithmetic_v)
1936 (is_fundamental_v, is_object_v, is_scalar_v, is_compound_v)
1937 (is_member_pointer_v, is_const_v, is_volatile_v, is_trivial_v)
1938 (is_trivially_copyable_v, is_standard_layout_v)
1939 (is_pod_v, is_literal_type_v, is_empty_v, is_polymorphic_v)
1940 (is_abstract_v, is_final_v, is_signed_v, is_unsigned_v)
1941 (is_constructible_v, is_default_constructible_v)
1942 (is_copy_constructible_v, is_move_constructible_v)
1943 (is_assignable_v, is_copy_assignable_v, is_move_assignable_v)
1944 (is_destructible_v, is_trivially_constructible_v)
1945 (is_trivially_default_constructible_v)
1946 (is_trivially_copy_constructible_v, is_trivially_move_constructible_v)
1947 (is_trivially_assignable_v, is_trivially_copy_assignable_v)
1948 (is_trivially_move_assignable_v, is_trivially_destructible_v)
1949 (is_nothrow_constructible_v, is_nothrow_default_constructible_v)
1950 (is_nothrow_copy_constructible_v, is_nothrow_move_constructible_v)
1951 (is_nothrow_assignable_v, is_nothrow_copy_assignable_v)
1952 (is_nothrow_move_assignable_v, is_nothrow_destructible_v)
1953 (has_virtual_destructor_v, alignment_of_v, rank_v, extent_v)
1954 (is_same_v, is_base_of_v, is_convertible_v): Likewise.
1955 * testsuite/19_diagnostics/error_code/is_error_code_v.cc: Likewise.
1956 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
1958 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc: Likewise.
1959 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
1960 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
1962 2016-07-29 Andreas Schwab <schwab@linux-m68k.org>
1964 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
1965 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
1966 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
1968 2016-07-29 Jonathan Wakely <jwakely@redhat.com>
1970 * doc/xml/manual/abi.xml: Document 6.0.22 library version.
1971 * doc/html/manual/abi.html: Regenerate.
1973 * acinclude.m4 (libtool_VERSION): Bump to 6:23:0.
1974 * config/abi/pre/gnu.ver: Add 3.4.23 version for new basic_string
1976 * configure: Regenerate.
1977 * testsuite/util/testsuite_abi.cc: Add new symbol version.
1979 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
1980 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
1981 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Likewise.
1982 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
1984 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
1985 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
1986 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Likewise.
1988 2016-07-28 Jonathan Wakely <jwakely@redhat.com>
1990 * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
1991 Adjust dg-prune-output pattern for error in C++98 mode.
1992 * testsuite/23_containers/deque/requirements/dr438/
1993 constructor_1_neg.cc: Likewise.
1994 * testsuite/23_containers/deque/requirements/dr438/
1995 constructor_2_neg.cc: Likewise.
1996 * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
1998 * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
2000 * testsuite/23_containers/list/requirements/dr438/
2001 constructor_1_neg.cc: Likewise.
2002 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
2004 * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
2006 * testsuite/23_containers/vector/requirements/dr438/
2007 constructor_1_neg.cc: Likewise.
2008 * testsuite/23_containers/vector/requirements/dr438/
2009 constructor_2_neg.cc: Likewise.
2010 * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
2013 * testsuite/23_containers/vector/check_construct_destroy.cc: Account
2014 for different construct/destroy counts in C++98 mode.
2016 * testsuite/17_intro/headers/c++2011/stdc++.cc: Change target-specific
2017 dg-options to dg-additional-options so that default options are used.
2018 * testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc:
2020 * testsuite/17_intro/headers/c++2014/stdc++.cc: Likewise.
2021 * testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc:
2023 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
2024 Use dg-additional-options instead of repeating the common options.
2026 * testsuite/22_locale/conversions/string/1.cc: Remove unintended
2027 dg-do compile directive.
2028 * testsuite/26_numerics/headers/cmath/fabs_inline.cc: Fix syntax of
2030 * testsuite/26_numerics/valarray/const_bracket.cc: Likewise.
2032 2016-07-28 Ville Voutilainen <ville.voutilainen@gmail.com>
2034 Implement std::string_view and P0254r2,
2035 Integrating std::string_view and std::string.
2036 * include/Makefile.am: Add string_view and string_view.tcc
2037 to the exported headers.
2038 * include/Makefile.in: Likewise.
2039 * include/bits/basic_string.h: Include <string_view> in C++17 mode.
2041 (basic_string(__sv_type, const _Alloc&)): Likewise.
2042 (operator=(__sv_type)): Likewise.
2043 (operator __sv_type()): Likewise.
2044 (operator+=(__sv_type)): Likewise.
2045 (append(__sv_type __sv)): Likewise.
2046 (append(__sv_type, size_type, size_type)): Likewise.
2047 (assign(__sv_type)): Likewise.
2048 (assign(__sv_type, size_type, size_type)): Likewise.
2049 (insert(size_type, __sv_type)): Likewise.
2050 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
2051 (replace(size_type, size_type, __sv_type)): Likewise.
2052 (replace(size_type, size_type, __sv_type, size_type, size_type)):
2054 (replace(const_iterator, const_iterator, __sv_type)): Likewise.
2055 (find(__sv_type, size_type)): Likewise.
2056 (rfind(__sv_type, size_type)): Likewise.
2057 (find_first_of(__sv_type, size_type)): Likewise.
2058 (find_last_of(__sv_type, size_type)): Likewise.
2059 (find_first_not_of(__sv_type, size_type)): Likewise.
2060 (find_last_not_of(__sv_type, size_type)): Likewise.
2061 (compare(__sv_type)): Likewise.
2062 (compare(size_type, size_type, __sv_type)): Likewise.
2063 (compare(size_type, size_type, __sv_type, size_type, size_type)):
2065 * include/bits/string_view.tcc: New.
2066 * include/std/string_view: Likewise.
2067 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
2068 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
2069 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
2071 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
2073 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
2075 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
2077 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
2079 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
2081 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
2083 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
2085 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
2087 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
2089 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
2091 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
2093 * testsuite/21_strings/basic_string/operators/char/5.cc: Likewise.
2094 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc: Likewise.
2095 * testsuite/21_strings/basic_string_view/capacity/1.cc: Likewise.
2096 * testsuite/21_strings/basic_string_view/cons/char/1.cc: Likewise.
2097 * testsuite/21_strings/basic_string_view/cons/char/2.cc: Likewise.
2098 * testsuite/21_strings/basic_string_view/cons/char/3.cc: Likewise.
2099 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc: Likewise.
2100 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc: Likewise.
2101 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc: Likewise.
2102 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
2104 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
2106 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
2108 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
2110 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
2112 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
2114 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
2116 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
2118 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
2119 * testsuite/21_strings/basic_string_view/inserters/char/1.cc: Likewise.
2120 * testsuite/21_strings/basic_string_view/inserters/char/2.cc: Likewise.
2121 * testsuite/21_strings/basic_string_view/inserters/char/3.cc: Likewise.
2122 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
2124 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
2126 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
2128 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
2130 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
2132 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
2134 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
2136 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
2138 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
2140 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
2142 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
2144 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
2146 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
2148 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
2150 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
2152 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
2154 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
2156 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
2158 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
2160 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
2162 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
2164 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
2166 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
2168 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
2170 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
2172 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
2174 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
2176 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
2178 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
2180 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
2182 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
2184 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
2186 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
2188 * testsuite/21_strings/basic_string_view/operators/char/2.cc: Likewise.
2189 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
2191 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
2193 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
2195 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
2197 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
2199 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
2201 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
2203 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
2205 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
2207 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
2208 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
2210 2016-07-27 Jonathan Wakely <jwakely@redhat.com>
2212 * testsuite/20_util/forward/1_neg.cc: Move dg-error to right line.
2214 2016-07-25 Georeth Chow <georeth2010@gmail.com>
2216 * include/ext/ropeimpl.h (rope<>::_S_dump(_RopeRep*, int)): Qualify
2217 _S_concat enumerator.
2218 * testsuite/ext/rope/6.cc: New test.
2220 2016-07-25 Jonathan Wakely <jwakely@redhat.com>
2222 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Use
2223 std::mt19937, std::thread and std::atomic to simplify test.
2224 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
2226 2016-07-22 Jonathan Wakely <jwakely@redhat.com>
2229 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2230 (basic_string::_Alloc_hider(pointer, _Alloc&&)): Add constructor.
2231 * include/bits/stl_tree.h (_Rb_tree(_Rb_tree&&)): Move allocator.
2232 * testsuite/21_strings/basic_string/allocator/71964.cc: New test.
2233 * testsuite/23_containers/set/allocator/71964.cc: New test.
2235 * testsuite/lib/libstdc++.exp (check_v3_target_namedlocale): Use
2236 delete[] instead of delete.
2238 2016-07-21 Jonathan Wakely <jwakely@redhat.com>
2240 * include/experimental/propagate_const (propagate_const::__t): Rename
2241 to _M_t and remove comment. Qualify std::move and std::forward.
2242 * testsuite/experimental/propagate_const/cons/default.cc: Fix test.
2244 * testsuite/23_containers/vector/zero_sized_allocations.cc:
2245 Define sized deallocation function.
2246 * testsuite/util/testsuite_new_operators.h:
2247 (operator delete(void*, const std::nothrow_t&)): Define nothrow
2248 deallocation function.
2250 * testsuite/21_strings/basic_string/modifiers/append/char/1.cc: Fix
2251 reads past the end of strings.
2252 * testsuite/21_strings/basic_string/operations/compare/char/1.cc:
2254 * testsuite/21_strings/char_traits/requirements/short/1.cc: Fix
2255 invalid array accesses.
2256 * testsuite/experimental/string_view/operations/compare/char/1.cc:
2257 Fix read past the end of string.
2258 * testsuite/util/testsuite_character.cc: Fix out-of-bounds write.
2260 * testsuite/24_iterators/container_access.cc: Fix missing returns.
2261 * testsuite/24_iterators/range_access_cpp14.cc: Likewise.
2263 * testsuite/18_support/new_delete_placement.cc: Don't allocate (and
2264 leak) memory for arguments to placement delete.
2265 * testsuite/20_util/addressof/1.cc: Don't leak memory.
2266 * testsuite/22_locale/locale/global_locale_objects/3.cc: Likewise.
2267 * testsuite/23_containers/unordered_multimap/insert/55028-debug.cc:
2270 2016-07-20 Jonathan Wakely <jwakely@redhat.com>
2272 * doc/xml/manual/intro.xml: Document DR 2684 status.
2273 * doc/html/*: Regenerate.
2275 * include/std/atomic (atomic_int8_t, atomic_uint8_t, atomic_int16_t)
2276 (atomic_uint16_t, atomic_int32_t, atomic_uint32_t, atomic_int64_t)
2277 (atomic_uint64_t): Define (LWG 2441).
2278 * testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc: Remove empty
2280 * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Test for
2282 * doc/xml/manual/intro.xml: Document DR 2441 status.
2284 * include/std/istream (operator>>(basic_istream&&, _Tp&)): Adjust
2285 to use perfect forwarding (LWG 2328).
2286 * testsuite/27_io/rvalue_streams.cc: Test perfect forwarding.
2287 * doc/xml/manual/intro.xml: Document DR 2328 status.
2289 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Use
2290 static objects for catching nullptr as pointer to member types.
2292 2016-07-18 Ville Voutilainen <ville.voutilainen@gmail.com>
2294 Clean up optional's comments.
2295 * include/std/optional: Remove incorrect section headers
2296 from comments when redundant, replace bare section
2297 headers with more descriptive comments.
2299 2016-07-15 Jonathan Wakely <jwakely@redhat.com>
2301 * include/bits/algorithmfwd.h: Change C++0x to C++11 in comments.
2302 * include/bits/move.h: Likewise.
2303 * include/bits/postypes.h: Likewise.
2304 * include/debug/bitset: Likewise.
2305 * include/ext/pb_ds/detail/type_utils.hpp: Likewise.
2306 * include/ext/string_conversions.h: Change C++0x to __cxx11 in
2308 * testsuite/27_io/fpos/14320-1.cc: Change C++0x to C++11 in comment.
2309 * testsuite/util/thread/all.h: Likewise.
2311 * include/bits/stl_algo.h (for_each): Remove redundant _GLIBCXX_MOVE
2315 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Make
2316 nullptr match handlers of pointer type.
2318 2016-07-15 Edward Smith-Rowland <3dw4rd@verizon.net>
2320 Implement C++17 P0025 clamp.
2321 * include/bits/algorithmfwd.h: Declare clamp overloads.
2322 * include/bits/stl_algo.h: Implement clamp. Feature __cpp_lib_clamp.
2323 * testsuite/25_algorithms/clamp/1.cc: New test.
2324 * testsuite/25_algorithms/clamp/2.cc: New test.
2325 * testsuite/25_algorithms/clamp/constexpr.cc: New test.
2326 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
2328 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
2331 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
2333 Fix the constraints for any's assignment operator template to properly
2334 reject assignment from a non-copyable lvalue.
2335 * include/std/any (operator=(_ValueType&&)): Constrain the decayed
2336 type for is_copy_constructible,
2337 * testsuite/20_util/any/requirements.cc: Add a test for
2338 non-copyable lvalues.
2340 2016-07-14 Jonathan Wakely <jwakely@redhat.com>
2342 * include/experimental/functional: Include <parallel/algorithm> in
2345 * testsuite/experimental/functional/searchers.cc: Include <algorithm>
2349 * include/bits/forward_list.h (forward_list): Update doxygen comments
2350 to reflect allocator propagation semantics. Remove ambiguous
2351 statements about data being lost.
2352 * include/bits/stl_deque.h (deque): Likewise.
2353 * include/bits/stl_list.h (list): Likewise.
2354 * include/bits/stl_map.h (map): Likewise.
2355 * include/bits/stl_multimap.h (multimap): Likewise.
2356 * include/bits/stl_multiset.h (multiset): Likewise.
2357 * include/bits/stl_set.h (set): Likewise.
2358 * include/bits/stl_vector.h (vector): Likewise.
2359 * include/bits/unordered_map.h (unordered_map, unordered_multimap):
2361 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
2364 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
2366 Implement P0032R3, Homogeneous interface for variant, any and optional,
2367 for the parts concerning any and optional.
2368 * include/std/any (_Storage()): Make constexpr and have it
2370 (any()): Make constexpr.
2371 (any(const any&)): Adjust.
2372 (any(any&&)): Likewise.
2373 (__any_constructible_t): New.
2374 (any(_ValueType&&)): Constrain.
2375 (any(in_place_type_t<_Tp>, _Args&&...)): New.
2376 (any(in_place_type_t<_Tp>, initializer_list<_Up>, _Args&&...)):
2379 (operator=(const any&)): Likewise.
2380 (operator=(any&&)): Likewise.
2381 (operator=(_ValueType&&)): Constrain.
2382 (emplace(_Args&&...)): New.
2383 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
2386 (swap(any&)): Adjust.
2390 (_Manager_internal::_S_create(_Storage&, _Args&&...)): New.
2391 (_Manager_external::_S_create(_Storage&, _Args&&...)): Likewise.
2392 (make_any(_Args&&...)): Likewise.
2393 (make_any(initializer_list<_Up>, _Args&&...)): Likewise.
2394 * include/std/optional (in_place_t, in_place): Remove.
2395 (bad_optional_access): Add a comment referring to LEWG 72.
2396 (emplace(_Args&&...)): Constrain.
2398 (reset()): Likewise.
2399 (make_optional(_Args&&...)): Likewise.
2400 (make_optional(initializer_list<_Up>, _Args&&...)): Likewise.
2401 * include/std/utility (in_place_tag): New.
2402 (__in_place, __in_place_type, __in_place_index): Likewise.
2403 (in_place_t, in_place_type_t, in_place_index_t): Likewise.
2404 (in_place(__in_place*)): Likewise.
2405 (in_place(__in_place_type<_Tp>*)): Likewise.
2406 (in_place(__in_place_index<_Idx>*)): Likewise.
2407 * testsuite/20_util/any/assign/1.cc: Adjust.
2408 * testsuite/20_util/any/assign/emplace.cc: New.
2409 * testsuite/20_util/any/assign/self.cc: Adjust.
2410 * testsuite/20_util/any/cons/1.cc: Likewise.
2411 * testsuite/20_util/any/cons/in_place.cc: New.
2412 * testsuite/20_util/any/make_any.cc: Likewise.
2413 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
2414 * testsuite/20_util/any/misc/swap.cc: Likewise.
2415 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2416 * testsuite/20_util/any/requirements.cc: New.
2417 * testsuite/20_util/in_place/requirements.cc: Likewise.
2418 * testsuite/20_util/optional/constexpr/in_place.cc: Adjust.
2419 * testsuite/20_util/optional/in_place.cc: Likewise.
2420 * testsuite/20_util/optional/make_optional.cc: Add tests for
2421 the new overloads of make_optional.
2423 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2425 Implement P0307R2, Making Optional Greater Equal Again.
2426 * include/experimental/optional (_Has_addressof): Fix the comment.
2427 * include/std/optional (_Has_addressof): Likewise.
2428 (operator=(_Up&&)): Constrain.
2429 (operator=(const optional<_Up>&)): Likewise.
2430 (operator=(optional<_Up>&&)): Likewise.
2431 (__optional_relop_t): New.
2432 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2433 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2434 Constrain and make transparent.
2435 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2436 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2437 Constrain and make transparent.
2438 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2439 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2440 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2441 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2442 (operator!=(const optional<_Tp>&, _Tp const&)):
2443 Constrain and make transparent.
2444 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2445 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2446 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2447 (operator>(const optional<_Tp>&, const _Tp&)):
2448 Constrain and make transparent.
2449 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2450 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2451 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2452 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2453 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2454 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2455 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2456 * testsuite/20_util/optional/relops/1.cc: Likewise.
2457 * testsuite/20_util/optional/relops/2.cc: Likewise.
2458 * testsuite/20_util/optional/relops/3.cc: Likewise.
2459 * testsuite/20_util/optional/relops/4.cc: Likewise.
2460 * testsuite/20_util/optional/requirements.cc: Add tests to verify
2461 that optional's relops are transparent and don't synthesize
2462 operators. Also test that assignment sfinaes.
2464 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2467 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Define to 1 not empty.
2468 * include/parallel/compiletime_settings.h (_GLIBCXX_ASSERTIONS):
2469 Rename to _GLIBCXX_PARALLEL_ASSERTIONS and make default value depend
2470 on _GLIBCXX_ASSERTIONS.
2471 * include/parallel/balanced_quicksort.h: Rename _GLIBCXX_ASSERTIONS.
2472 Include <unistd.h> for sleep.
2473 * include/parallel/losertree.h: Rename _GLIBCXX_ASSERTIONS.
2474 * include/parallel/merge.h: Likewise.
2475 * include/parallel/multiway_merge.h: Likewise.
2476 * include/parallel/partition.h: Likewise.
2477 * include/parallel/queue.h: Likewise.
2478 * include/parallel/sort.h: Likewise.
2479 * testsuite/25_algorithms/headers/algorithm/
2480 parallel_algorithm_assert.cc: New.
2482 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2483 (replace(__const_iterator, __const_iterator, initializer_list<C>)):
2484 Forward to different overload.
2486 * include/bits/allocated_ptr.h (__allocated_ptr::_S_raw_ptr): Make
2489 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2491 Revert "Add non-const overload of std::string::data()".
2493 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2495 Implement P0307R2, Making Optional Greater Equal Again.
2496 * include/experimental/optional (_Has_addressof): Fix the comment.
2497 * include/std/optional (_Has_addressof): Likewise.
2498 (operator=(_Up&&)): Constrain.
2499 (operator=(const optional<_Up>&)): Likewise.
2500 (operator=(optional<_Up>&&)): Likewise.
2501 (__optional_relop_t): New.
2502 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2503 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2504 Constrain and make transparent.
2505 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2506 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2507 Constrain and make transparent.
2508 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2509 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2510 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2511 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2512 (operator!=(const optional<_Tp>&, _Tp const&)):
2513 Constrain and make transparent.
2514 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2515 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2516 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2517 (operator>(const optional<_Tp>&, const _Tp&)):
2518 Constrain and make transparent.
2519 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2520 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2521 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2522 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2523 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2524 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2525 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2526 * testsuite/20_util/optional/relops/1.cc: Likewise.
2527 * testsuite/20_util/optional/relops/2.cc: Likewise.
2528 * testsuite/20_util/optional/relops/3.cc: Likewise.
2529 * testsuite/20_util/optional/relops/4.cc: Likewise.
2530 * testsuite/20_util/optional/requirements.cc: Add tests to verify
2531 that optional's relops are transparent and don't synthesize
2532 operators. Also test that assignment sfinaes.
2534 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2536 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (_M_c_str):
2538 (_M_disjunct, basic_string(const basic_string&, size_t)): Use data()
2539 instead of _M_data().
2540 (basic_string(const basic_string&, size_t, size_t, const _Alloc&)):
2542 (append(const basic_string&)): Likewise.
2543 (append(const basic_string&, size_type, size_type)): Likewise.
2544 (assign(const basic_string&, size_type, size_type)): Likewise.
2545 (insert(size_type, const basic_string&)): Likewise.
2546 (insert(size_type, const basic_string&, size_type, size_type)):
2548 (replace(size_type, size_type, const basic_string&, size_type,
2549 size_type)): Likewise.
2550 (replace(__const_iterator, __const_iterator, const basic_string&)):
2552 (c_str(), data()): Use c_str() instead of _M_data().
2553 (data()): Add non-const overload as per LWG 2391 and P0272R1.
2554 (compare(const basic_string&)): Use data() instead of _M_data().
2555 [!_GLIBCXX_USE_CXX11_ABI] (data()): Add non-const overload.
2556 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI] (_M_mutate):
2557 Pass raw pointers to _S_copy.
2558 (_M_erase, _M_replace_aux): Pass raw pointers to _S_move and
2560 (find(const _CharT*, size_type, size_type)): Use data instead of
2562 * testsuite/21_strings/basic_string/allocator/char/ext_ptr.cc: New.
2563 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
2564 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
2566 2016-07-12 Jonathan Wakely <jwakely@redhat.com>
2568 * libsupc++/new: Remove nothrow sized deletes (LWG 2458).
2569 * doc/xml/manual/intro.xml: Document DR 2458 status.
2570 * doc/html*: Regenerate.
2572 * testsuite/20_util/pair/astuple/astuple.cc: Only include <utility>.
2573 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
2574 Only include <array>.
2575 * testsuite/23_containers/array/tuple_interface/tuple_size.cc:
2577 * doc/xml/manual/intro.xml: Document LWG 2212 support.
2578 * doc/html*: Regenerate.
2580 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2581 Add testcase from LWG 2164.
2583 2016-07-11 François Dumont <fdumont@gcc.gnu.org>
2585 * include/bits/stl_vector.h (push_back(const value_type&)): Forward
2586 to _M_realloc_insert.
2587 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2588 (_M_realloc_insert): Declare new function.
2589 (_M_emplace_back_aux): Remove definition.
2590 * include/bits/vector.tcc (emplace_back(_Args...)):
2591 Use _M_realloc_insert.
2592 (insert(const_iterator, const value_type&)): Likewise.
2593 (_M_insert_rval, _M_emplace_aux): Likewise.
2594 (_M_emplace_back_aux): Remove declaration.
2595 (_M_realloc_insert): Define.
2596 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2597 Adjust expected results for emplacing an lvalue with reallocation.
2599 2016-07-10 Ville Voutilainen <ville.voutilainen@gmail.com>
2601 Implement std::optional.
2602 * include/Makefile.am: Add optional to exported headers.
2603 * include/Makefile.in: Likewise.
2604 * include/std/optional: New.
2605 * testsuite/20_util/optional/typedefs.cc: Likewise.
2606 * testsuite/20_util/optional/relops/2.cc: Likewise.
2607 * testsuite/20_util/optional/relops/3.cc: Likewise.
2608 * testsuite/20_util/optional/relops/4.cc: Likewise.
2609 * testsuite/20_util/optional/relops/5.cc: Likewise.
2610 * testsuite/20_util/optional/relops/1.cc: Likewise.
2611 * testsuite/20_util/optional/relops/6.cc: Likewise.
2612 * testsuite/20_util/optional/nullopt.cc: Likewise.
2613 * testsuite/20_util/optional/in_place.cc: Likewise.
2614 * testsuite/20_util/optional/make_optional.cc: Likewise.
2615 * testsuite/20_util/optional/assignment/2.cc: Likewise.
2616 * testsuite/20_util/optional/assignment/3.cc: Likewise.
2617 * testsuite/20_util/optional/assignment/4.cc: Likewise.
2618 * testsuite/20_util/optional/assignment/5.cc: Likewise.
2619 * testsuite/20_util/optional/assignment/1.cc: Likewise.
2620 * testsuite/20_util/optional/assignment/6.cc: Likewise.
2621 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
2622 * testsuite/20_util/optional/cons/default.cc: Likewise.
2623 * testsuite/20_util/optional/cons/move.cc: Likewise.
2624 * testsuite/20_util/optional/cons/value.cc: Likewise.
2625 * testsuite/20_util/optional/cons/copy.cc: Likewise.
2626 * testsuite/20_util/optional/requirements.cc: Likewise.
2627 * testsuite/20_util/optional/observers/2.cc: Likewise.
2628 * testsuite/20_util/optional/observers/3.cc: Likewise.
2629 * testsuite/20_util/optional/observers/4.cc: Likewise.
2630 * testsuite/20_util/optional/observers/5.cc: Likewise.
2631 * testsuite/20_util/optional/observers/1.cc: Likewise.
2632 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
2633 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
2634 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2635 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
2636 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
2637 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
2638 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
2639 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
2640 * testsuite/20_util/optional/constexpr/make_optional.cc: Likewise.
2641 * testsuite/20_util/optional/constexpr/cons/default.cc: Likewise.
2642 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
2643 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
2644 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
2645 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
2646 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
2647 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
2648 * testsuite/20_util/optional/swap/1.cc: Likewise.
2650 2016-07-08 Jonathan Wakely <jwakely@redhat.com>
2652 * testsuite/23_containers/vector/modifiers/insert/aliasing.cc: New.
2654 2016-07-07 Jonathan Wakely <jwakely@redhat.com>
2656 * doc/xml/manual/status_cxx2014.xml: Update LFTS status table.
2657 * doc/html/*: Regenerate.
2659 2016-07-07 Ville Voutilainen <ville.voutilainen@gmail.com>
2662 * include/Makefile.am: Add any and c++17_warning.h to exported headers.
2663 * include/Makefile.in: Likewise.
2664 * include/std/any: New.
2665 * testsuite/20_util/any/assign/1.cc: Likewise.
2666 * testsuite/20_util/any/assign/2.cc: Likewise.
2667 * testsuite/20_util/any/assign/self.cc: Likewise.
2668 * testsuite/20_util/any/cons/1.cc: Likewise.
2669 * testsuite/20_util/any/cons/2.cc: Likewise.
2670 * testsuite/20_util/any/cons/aligned.cc: Likewise.
2671 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
2672 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
2673 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
2674 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
2675 * testsuite/20_util/any/misc/swap.cc: Likewise.
2676 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2677 * testsuite/20_util/any/observers/type.cc: Likewise.
2678 * testsuite/20_util/any/typedefs.cc: Likewise.
2680 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2682 Add a new header for diagnosing the use of C++17 facilities
2684 * include/bits/c++17_warning.h: New.
2686 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2688 Implement LWG 2451, optional<T> should 'forward' T's
2689 implicit conversions.
2690 * include/experimental/optional (__is_optional_impl, __is_optional):
2692 (optional()): Make constexpr and default.
2693 (optional(_Up&&), optional(const optional<_Up>&),
2694 optional(optional<_Up>&& __t): New.
2695 (operator=(_Up&&)): Constrain.
2696 (operator=(const optional<_Up>&), operator=(optional<_Up>&&)): New.
2697 * testsuite/experimental/optional/cons/value.cc:
2698 Add tests for the functionality added by LWG 2451.
2699 * testsuite/experimental/optional/cons/value_neg.cc: New.
2701 2016-07-05 Ville Voutilainen <ville.voutilainen@gmail.com>
2704 any_cast doesn't work with rvalue reference targets and cannot
2705 move with a value target.
2706 * include/experimental/any (any(_ValueType&&)): Constrain and
2707 add an overload that doesn't forward.
2708 (any_cast(any&&)): Constrain and add an overload that moves.
2709 * testsuite/experimental/any/misc/any_cast.cc: Add tests for
2710 the functionality added by LWG 2509.
2712 2016-07-04 François Dumont <fdumont@gcc.gnu.org>
2714 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2716 * testsuite/23_containers/vector/modifiers/insert/self_insert.cc: New
2719 2016-07-04 Jonathan Wakely <jwakely@redhat.com>
2721 * include/bits/stl_vector.h (emplace(const_iterator, _Args&&...)):
2722 Define inline. Forward to _M_emplace_aux.
2723 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2724 (_M_insert_rval, _M_emplace_aux): Declare new functions.
2725 (_Temporary_value): New RAII type using allocator to construct/destroy.
2726 (_S_insert_aux_assign): Remove.
2727 (_M_insert_aux): Make non-variadic.
2728 * include/bits/vector.tcc (insert(const_iterator, const value_type&)):
2729 Use _Temporary_value.
2730 (emplace(const_iterator, _Args&&...)): Remove definition.
2731 (_M_insert_rval, _M_emplace_aux): Define.
2732 (_M_insert_aux): Make non-variadic, stop using _S_insert_aux_assign.
2733 (_M_fill_insert): Use _Temporary_value.
2734 * testsuite/23_containers/vector/allocator/construction.cc: New test.
2735 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2736 Adjust expected results for emplacing an lvalue with reallocation.
2737 * testsuite/23_containers/vector/check_construct_destroy.cc: Adjust
2738 expected results to account for construction/destruction of temporary
2740 * testsuite/backward/hash_set/check_construct_destroy.cc: Likewise.
2742 2016-07-04 Ville Voutilainen <ville.voutilainen@gmail.com>
2745 * src/filesystem/ops.cc (remove_all(const path&, error_code&)):
2746 Call remove_all for children of a directory.
2747 * testsuite/experimental/filesystem/operations/create_directories.cc:
2750 2016-07-02 François Dumont <fdumont@gcc.gnu.org>
2752 * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Adjust
2753 dg-error line numbers.
2754 * testsuite/23_containers/array/tuple_interface/
2755 tuple_element_debug_neg.cc: Likewise.
2756 * testsuite/25_algorithms/lexicographical_compare/debug/
2757 irreflexive_neg.cc: Remove.
2759 2016-06-30 Thomas Preud'homme <thomas.preudhomme@arm.com>
2761 * testsuite/29_atomics/atomic/65913.cc: Require atomic-builtins rather
2762 than specific target.
2764 2016-06-27 François Dumont <fdumont@gcc.gnu.org>
2767 * include/bits/hashtable.h: Remove _Unique_keya parameter in _Insert
2770 2016-06-23 François Dumont <fdumont@gcc.gnu.org>
2772 * include/debug/array (array<>::swap): Fix noexcept qualificaton for
2775 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2777 * configure.host: Remove mep-* support.
2779 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2781 * configure: Regenerate.
2782 * configure.host: Remove support for knetbsd.
2783 * crossconfig.m4: Likewise.
2785 2016-06-20 François Dumont <fdumont@gcc.gnu.org>
2788 * include/tr1/hashtable_policy.h
2789 (_Prime_rehash_policy::_M_next_bkt): Make past-the-end iterator
2790 dereferenceable to avoid check on lower_bound result.
2791 (_Prime_rehash_policy::_M_bkt_for_elements): Call latter.
2792 (_Prime_rehash_policy::_M_need_rehash): Likewise.
2793 * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
2794 Always return a value greater than input value. Set _M_next_resize to
2795 max value when reaching highest prime number.
2796 * src/shared/hashtable-aux.cc (__prime_list): Add comment about sentinel
2798 * testsuite/23_containers/unordered_set/hash_policy/71181.cc: New.
2799 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc
2801 * testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc: New.
2802 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
2805 2016-06-17 Jonathan Wakely <jwakely@redhat.com>
2808 * include/bits/stl_algobase.h (lower_bound, lexicographical_compare):
2809 Remove irreflexive checks.
2810 * include/bits/stl_algo.h (lower_bound, upper_bound, equal_range,
2811 binary_search): Likewise.
2812 * testsuite/25_algorithms/equal_range/partitioned.cc: New test.
2813 * testsuite/25_algorithms/lexicographical_compare/71545.cc: New test.
2814 * testsuite/25_algorithms/lower_bound/partitioned.cc: New test.
2815 * testsuite/25_algorithms/upper_bound/partitioned.cc: New test.
2816 * testsuite/util/testsuite_iterators.h (__gnu_test::test_container):
2817 Add constructor from array.
2819 2016-06-16 François Dumont <fdumont@gcc.gnu.org>
2821 * include/debug/debug.h
2822 (__glibcxx_requires_non_empty_range, __glibcxx_requires_nonempty)
2823 (__glibcxx_requires_subscript): Move...
2824 * include/debug/assertions.h: ...here and add __builtin_expect.
2825 (_GLIBCXX_DEBUG_ONLY): Remove ; value.
2826 * include/bits/stl_deque.h
2827 (std::deque<>::operator[]): Add __glibcxx_requires_subscript check.
2828 (std::deque<>::front()): Add __glibcxx_requires_nonempty check.
2829 (std::deque<>::back()): Likewise.
2830 (std::deque<>::pop_front()): Likewise.
2831 (std::deque<>::pop_back()): Likewise.
2832 (std::deque<>::swap(deque&)): Add allocator check.
2833 * include/bits/stl_vector.h
2834 (std::vector<>::operator[]): Add __glibcxx_requires_subscript check.
2835 (std::vector<>::front()): Add __glibcxx_requires_nonempty check.
2836 (std::vector<>::back()): Likewise.
2837 (std::vector<>::pop_back()): Likewise.
2838 (std::vector<>::swap(vector&)): Add allocator check.
2840 2016-06-16 Daniel Kruegler <daniel.kruegler@gmail.com>
2842 Provide swappable traits (p0185r1)
2843 * include/std/type_traits (is_swappable, is_nothrow_swappable,
2844 is_swappable_with, is_nothrow_swappable_with, is_swappable_v,
2845 is_nothrow_swappable_v, is_swappable_with_v,
2846 is_nothrow_swappable_with_v): New.
2847 * include/bits/stl_pair.h: Use it as per p0185r1.
2848 * include/bits/stl_queue.h: Likewise.
2849 * include/bits/stl_stack.h: Likewise.
2850 * include/bits/unique_ptr.h: Likewise.
2851 * include/std/tuple: Likewise.
2852 * include/std/array: Likewise. Fix zero-size member swap.
2853 * include/bits/hashtable.h: Use __and_.
2854 * testsuite/20_util/is_nothrow_swappable/requirements/
2855 explicit_instantiation.cc: Change test options to std=gnu++17.
2856 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
2858 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
2859 * testsuite/20_util/is_swappable/requirements/
2860 explicit_instantiation.cc: Likewise.
2861 * testsuite/20_util/is_swappable/requirements/typedefs.cc: Likewise.
2862 * testsuite/20_util/is_swappable/value.cc: Likewise.
2863 * testsuite/20_util/is_nothrow_swappable/requirements/
2864 explicit_instantiation_ext.cc: New.
2865 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs_ext.cc:
2867 * testsuite/20_util/is_nothrow_swappable/value.h: New.
2868 * testsuite/20_util/is_nothrow_swappable/value_ext.cc: New.
2869 * testsuite/20_util/is_nothrow_swappable_with/requirements/
2870 explicit_instantiation.cc: New.
2871 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
2873 * testsuite/20_util/is_nothrow_swappable_with/value.cc: New.
2874 * testsuite/20_util/is_swappable/requirements/
2875 explicit_instantiation_ext.cc: New.
2876 * testsuite/20_util/is_swappable/requirements/typedefs_ext.cc: New.
2877 * testsuite/20_util/is_swappable/value.h: New.
2878 * testsuite/20_util/is_swappable/value_ext.cc: New.
2879 * testsuite/20_util/is_swappable_with/requirements/
2880 explicit_instantiation.cc: New.
2881 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc: New.
2882 * testsuite/20_util/is_swappable_with/value.cc: New.
2883 * testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
2884 dg-error line numbers.
2885 * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
2888 2016-06-16 Jonathan Wakely <jwakely@redhat.com>
2890 * include/std/array: Remove trailing whitespace.
2891 * include/std/atomic: Likewise.
2892 * include/std/bitset: Likewise.
2893 * include/std/chrono: Likewise.
2894 * include/std/complex: Likewise.
2895 * include/std/condition_variable: Likewise.
2896 * include/std/fstream: Likewise.
2897 * include/std/functional: Likewise.
2898 * include/std/future: Likewise.
2899 * include/std/iomanip: Likewise.
2900 * include/std/iosfwd: Likewise.
2901 * include/std/istream: Likewise.
2902 * include/std/limits: Likewise.
2903 * include/std/ratio: Likewise.
2904 * include/std/scoped_allocator: Likewise.
2905 * include/std/sstream: Likewise.
2906 * include/std/stdexcept: Likewise.
2907 * include/std/string: Likewise.
2908 * include/std/system_error: Likewise.
2909 * include/std/thread: Likewise.
2910 * include/std/tuple: Likewise.
2911 * include/std/type_traits: Likewise.
2912 * include/std/utility: Likewise.
2913 * include/std/valarray: Likewise.
2914 * include/std/vector: Likewise.
2916 * include/bits/stl_vector.h (vector::_S_insert_aux_assign): Define
2917 new overloaded functions.
2918 * include/bits/vector.tcc (vector::_M_insert_aux): Use new functions
2919 to avoid creating a redundant temporary.
2920 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc: New
2923 2016-06-15 François Dumont <fdumont@gcc.gnu.org>
2925 * include/bits/stl_deque.h
2926 (std::deque<>::operator=): Call _M_assign_aux.
2927 (std::deque<>::assign(initializer_list<>)): Likewise.
2928 (std::deque<>::resize(size_t, const value_type&)): Call _M_fill_insert.
2929 (std::deque<>::insert(const_iterator, initializer_list<>)):
2930 Call _M_range_insert_aux.
2931 (std::deque<>::_M_assign_aux<It>(It, It, std::forward_iterator_tag):
2933 (std::deque<>::_M_fill_assign): Call _M_fill_insert.
2934 (std::deque<>::_M_move_assign2): Call _M_assign_aux.
2935 * include/bits/deque.tcc
2936 (std::deque<>::operator=): Call _M_range_insert_aux.
2937 (std::deque<>::_M_assign_aux<It>(It, It, std::input_iterator_tag)):
2939 * include/bits/stl_vector.h
2940 (std::vector<>::operator=): Call _M_assign_aux.
2941 (std::vector<>::assign(initializer_list<>)): Likewise.
2942 (std::vector<>::resize(size_t, const value_type&)): Call _M_fill_insert.
2943 (std::vector<>::insert(const_iterator, initializer_list<>)):
2944 Call _M_range_insert.
2945 * include/bits/vector.tcc (std::vector<>::_M_assign_aux): Likewise.
2947 2016-06-07 François Dumont <fdumont@gcc.gnu.org>
2949 * include/std/tuple (_Head_base<>): Default specialization condition at
2952 2016-06-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2954 Support allocators in tuples of zero size.
2955 * include/std/tuple (tuple<>::tuple(),
2956 tuple<>::tuple(allocator_arg_t, const _Alloc&),
2957 tuple<>::tuple(allocator_arg_t, const _Alloc&, const tuple&)): New.
2958 * testsuite/20_util/tuple/cons/allocators.cc: Adjust.
2960 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
2963 * src/filesystem/ops.cc (permissions(const path&, perms, error_code&)):
2964 Add or remove permissions according to perms argument.
2965 * testsuite/experimental/filesystem/operations/permissions.cc: New
2968 2016-06-05 Ville Voutilainen <ville.voutilainen@gmail.com>
2970 Protect allocator-overloads of tuple-from-tuple constructors
2971 from cases that would create dangling references.
2972 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2973 const tuple<_UElements...>&), tuple(allocator_arg_t, const _Alloc&,
2974 tuple<_UElements...>&&)): Add a check for _NonNestedTuple.
2975 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Adjust.
2977 2016-05-29 Gerald Pfeifer <gerald@pfeifer.com>
2979 * doc/xml/manual/backwards_compatibility.xml: Adjust
2980 lists.debian.org link to https.
2981 * doc/html/manual/backwards.html: Regenerate.
2983 2016-05-27 Jonathan Wakely <jwakely@redhat.com>
2985 * doc/xml/manual/abi.xml: Adjust URL to use https.
2986 * doc/html/manual/*: Regenerate.
2988 2016-05-27 Ville Voutilainen <ville.voutilainen@gmail.com>
2991 * include/std/tuple (_TMC): Add a check for _NotSameTuple.
2992 * include/std/tuple (tuple(_UElements&&...)): Remove the separate
2993 check for _NotSameTuple.
2994 * include/std/tuple (_TMCT): New.
2995 * include/std/tuple (tuple(const tuple<_UElements...>&)): Use it.
2996 * include/std/tuple (tuple(tuple<_UElements...>&&)): Likewise.
2997 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2998 const tuple<_UElements...>&)): Likewise.
2999 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
3000 tuple<_UElements...>&&)): Likewise.
3001 * testsuite/20_util/tuple/cons/66338.cc: New.
3003 2016-05-25 Jonathan Wakely <jwakely@redhat.com>
3005 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Fix test for sendfile.
3006 * configure: Regenerate.
3007 * config.h.in: Regenerate.
3009 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): Remove it.
3010 * include/bits/hashtable_policy.h (_Power2_rehash_policy::_M_next_bkt):
3011 Remove const qualification on function. Replace
3012 _GLIBCXX14_USE_CONSTEXPR on automatic variables with const.
3013 (_Power2_rehash_policy::_M_need_rehash): Remove const qualification.
3014 (_Power2_rehash_policy::_M_next_bkt): Remove mutable specifier.
3016 2016-05-24 François Dumont <fdumont@gcc.gnu.org>
3018 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): New.
3019 * include/bits/hashtable_policy.h
3020 (_Prime_rehash_policy::__has_load_factor): New. Mark rehash policy
3021 having load factor management.
3022 (_Mask_range_hashing): New.
3024 (_Power2_rehash_policy): New.
3025 (_Inserts<>): Remove last template parameter, _Unique_keys, so that
3026 partial specializations only depend on whether iterators are constant
3028 * testsuite/23_containers/unordered_set/hash_policy/26132.cc: Adapt to
3029 test new hash policy.
3030 * testsuite/23_containers/unordered_set/hash_policy/load_factor.cc:
3032 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
3034 * testsuite/23_containers/unordered_set/insert/hash_policy.cc:
3036 * testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
3038 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc:
3040 * testsuite/performance/23_containers/insert/54075.cc: Add benchmark
3041 using the new hash policy.
3042 * testsuite/performance/23_containers/insert_erase/41975.cc: Likewise.
3044 2016-05-24 Jonathan Wakely <jwakely@redhat.com>
3046 * include/bits/stl_queue.h (priority_queue::value_compare): Define.
3048 2016-05-23 François Dumont <fdumont@gcc.gnu.org>
3050 * include/debug/safe_iterator.h
3051 (_Safe_iterator<>::operator->()): Implement using underlying iterator
3053 * include/debug/safe_local_iterator.h
3054 (_Safe_local_iterator<>::operator->()): Likewise.
3056 2016-05-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
3058 * testsuite/experimental/memory_resource/1.cc: Add required argument
3059 to dg-require-atomic-builtins.
3061 2016-05-13 Jonathan Wakely <jwakely@redhat.com>
3064 * include/debug/bitset: Add #pragma GCC system_header.
3065 * include/debug/deque: Likewise.
3066 * include/debug/list: Likewise.
3067 * include/debug/map: Likewise.
3068 * include/debug/set: Likewise.
3069 * include/debug/string: Likewise.
3070 * include/debug/unordered_map: Likewise.
3071 * include/debug/unordered_set: Likewise.
3072 * include/debug/vector: Likewise.
3073 * include/debug/functions.h: Adjust whitespace.
3075 2016-05-12 Jonathan Wakely <jwakely@redhat.com>
3078 * testsuite/experimental/memory_resource/1.cc: Require atomics.
3080 2016-05-11 Jonathan Wakely <jwakely@redhat.com>
3083 * src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_DUAL_ABI]: Don't define
3084 exception constructors with __sso_string parameters.
3086 2016-05-10 Jonathan Wakely <jwakely@redhat.com>
3088 * include/experimental/bits/fs_dir.h (begin, end): Add noexcept.
3089 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
3090 Test begin and end functions.
3091 * testsuite/experimental/filesystem/iterators/
3092 recursive_directory_iterator.cc: Likewise.
3095 * src/filesystem/ops.cc (do_copy_file): Fix backwards conditions.
3096 * testsuite/experimental/filesystem/operations/copy_file.cc: New test.
3098 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
3099 Overload operator* to move from rvalues.
3102 * src/filesystem/ops.cc (create_dir): Handle EEXIST from mkdir.
3103 * testsuite/experimental/filesystem/operations/create_directory.cc:
3107 * src/filesystem/ops.cc (canonical(const path&, const path&)): Add
3108 base path to exception.
3109 * testsuite/experimental/filesystem/operations/canonical.cc: Test
3110 paths contained in exception.
3112 * testsuite/experimental/type_erased_allocator/2.cc: Remove unused
3116 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
3118 (directory_iterator::operator++(int)): Return proxy.
3119 (recursive_directory_iterator::operator++(int)): Likewise.
3120 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
3121 Test post-increment.
3122 * testsuite/experimental/filesystem/iterators/
3123 recursive_directory_iterator.cc: Likewise.
3125 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
3128 * testsuite/experimental/filesystem/iterators/
3129 recursive_directory_iterator.cc: Fix test02 to not call member
3130 functions on invalid iterator, and use VERIFY not assert.
3132 2016-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
3134 Avoid endless run-time recursion for copying single-element
3135 tuples where the element type is by-value constructible
3137 * include/std/tuple (_NotSameTuple): New.
3138 * include/std/tuple (tuple(_UElements&&...): Use it.
3139 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc: New.
3141 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
3144 * include/experimental/bits/fs_dir.h (recursive_directory_iterator):
3145 Initialize scalar member variables in default constructor.
3146 * testsuite/experimental/filesystem/iterators/
3147 recursive_directory_iterator.cc: Test default construction.
3149 2016-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3151 * testsuite/lib/libstdc++.exp (libstdc++_init): Enable on *-*-solaris*.
3153 2016-05-05 Jonathan Wakely <jwakely@redhat.com>
3155 * testsuite/experimental/filesystem/path/native/string.cc: Add
3156 dg-require-filesystem-ts directive.
3158 2016-05-04 Jonathan Wakely <jwakely@redhat.com>
3161 * include/experimental/memory_resource
3162 (__resource_adaptor_imp::do_allocate): Do not default-construct
3164 (__resource_adaptor_imp::do_deallocate): Likewise. Use
3165 allocator_traits to get pointer type.
3166 (__null_memory_resource::do_allocate): Remove unused parameters.
3167 (__null_memory_resource::do_deallocate): Likewise.
3168 (__null_memory_resource::do_is_equal): Likewise. Add return statement.
3169 * testsuite/experimental/type_erased_allocator/1.cc: Combine with ...
3170 * testsuite/experimental/type_erased_allocator/1_neg.cc: This, and
3172 * testsuite/experimental/memory_resource/1.cc: Here.
3173 * testsuite/experimental/memory_resource/null_memory_resource.cc: New.
3174 * testsuite/experimental/memory_resource/resource_adaptor.cc: New.
3176 2016-04-29 Chris Gregory <czipperz@gmail.com>
3178 * config/*: Remove trailing whitespace.
3180 * testsuite/tr1/*: Likewise.
3181 * testsuite/util/*: Likewise.
3183 2016-04-28 Jonathan Wakely <jwakely@redhat.com>
3186 * include/bits/basic_ios.tcc (basic_ios::_M_cache_locale): Use
3188 * include/bits/stream_iterator.h (istream_iterator, ostream_iterator):
3190 * include/std/atomic (atomic<_Tp>): Likewise.
3191 * include/std/shared_mutex (shared_lock): Likewise.
3192 * testsuite/24_iterators/istream_iterator/70766.cc: New test.
3193 * testsuite/24_iterators/ostream_iterator/70766.cc : New test.
3194 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
3195 * testsuite/29_atomics/atomic/70766.cc: New test.
3196 * testsuite/30_threads/shared_lock/70766.cc: New test.
3198 * include/bits/hashtable_policy.h (__detail::_Insert_base,
3199 __detail::_Insert): Improve comments.
3201 2016-04-27 Jonathan Wakely <jwakely@redhat.com>
3204 * include/std/limits: Update comments about DRs.
3205 (numeric_limits<const _Tp>, numeric_limits<volatile _Tp>,
3206 numeric_limits<const volatile _Tp>): Define unconditionally.
3208 2016-04-24 Jonathan Wakely <jwakely@redhat.com>
3211 * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path): Use
3212 static counter to return a different path on every call.
3214 2016-04-22 Tim Shen <timshen@google.com>
3217 * include/bits/regex_executor.tcc (_Executor<>::_M_word_boundary):
3218 Fix the match_not_bow and match_not_eow behavior.
3219 * testsuite/28_regex/regression.cc: Add testcase.
3221 2016-04-20 Jonathan Wakely <jwakely@redhat.com>
3224 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in,
3225 __codecvt_utf8_utf16_base<char16_t>::do_in): Fix mask operations.
3227 2016-04-19 Jonathan Wakely <jwakely@redhat.com>
3230 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in):
3231 Override endianness bit in mode.
3232 * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: New test.
3233 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc: Test
3234 that little_endian mode is ignored.
3235 * testsuite/experimental/filesystem/path/native/string.cc: New test.
3238 * src/filesystem/ops.cc (close_fd): New function.
3239 (do_copy_file): Set permissions before copying file contents. Check
3240 result of closing file descriptors. Don't copy streambuf when file
3242 (copy(const path&, const path&, copy_options, error_code&)): Use
3243 lstat for source file when copy_symlinks is set.
3244 * testsuite/experimental/filesystem/operations/copy.cc: Test copy().
3246 * include/experimental/bits/fs_fwd.h (operator&, operator|, operator^,
3247 operator~ operator&=, operator|=, operator^=): Add noexcept to
3248 overloaded operators for copy_options, perms and directory_options.
3249 * src/filesystem/ops.cc (make_file_type, make_file_status,
3250 is_not_found_errno, file_time): Add noexcept.
3252 2016-04-19 Edward Smith-Rowland <3dw4rd@verizon.net>
3254 * include/bits/c++14_warning.h: Do not refer C++14 as experimental.
3256 2016-04-18 Jonathan Wakely <jwakely@redhat.com>
3259 * include/bits/random.h: Reword static assertion messages to state
3260 positive conditions.
3261 * include/bits/random.tcc: Likewise.
3262 * include/bits/uniform_int_dist.h: Likewise.
3263 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3266 * include/std/function (_Bind, _Bind_result): Remove unused typedefs.
3268 * config/cpu/sh/atomicity.h: Fix typo in comment.
3271 * include/std/thread (operator<, operator==): Move definitions to
3273 * testsuite/30_threads/thread/id/70294.cc: New test.
3275 * testsuite/18_support/bad_exception/23591_thread-1.c: Add
3276 -Wno-pedantic to dg-options.
3277 * testsuite/20_util/align/2.cc: Use type as operand of alignof.
3278 * testsuite/20_util/is_floating_point/value.cc: Add -Wno-pedantic
3280 * testsuite/20_util/specialized_algorithms/uninitialized_fill/32158.cc:
3281 Remove extra semi-colon.
3282 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
3283 Always supply second argument to static_assert.
3284 * testsuite/25_algorithms/lower_bound/no_operator_ne.cc: Remove extra
3286 * testsuite/26_numerics/complex/c99.cc: Add -Wno-pedantic to
3288 * testsuite/26_numerics/complex/literals/values.cc: Likewise.
3289 * testsuite/29_atomics/atomic/60695.cc: Likewise.
3290 * testsuite/29_atomics/atomic/62259.cc: use __alignof__ instead of
3291 alignof when operand is an object not a type.
3292 * testsuite/decimal/ctor.cc: Add -Wno-pedantic to dg-options.
3293 * testsuite/decimal/make-decimal.cc: Likewise.
3294 * testsuite/experimental/type_traits/value.cc: Always supply second
3295 argument to static_assert.
3296 * testsuite/util/testsuite_common_types.h: Use __extension__ for
3299 * testsuite/experimental/type_erased_allocator/1.cc: Don't include
3301 * testsuite/experimental/type_erased_allocator/1_neg.cc: Likewise.
3302 * testsuite/experimental/type_erased_allocator/2.cc: Likewise.
3303 * testsuite/experimental/type_erased_allocator/uses_allocator.cc:
3304 Likewise. Add licence and change to compile-only test.
3306 * include/bits/locale_facets.h (ctype::do_narrow): Add attribute to
3308 * include/bits/regex_automaton.h (_NFA::_M_insert_alt): Likewise.
3310 * include/ext/string_conversions.h (__stoa): Avoid -Wsign-compare
3313 2016-04-17 Edward Smith-Rowland <3dw4rd@verizon.net>
3315 * include/bits/specfun.h: Trivial comment misspelling.
3317 2016-04-14 Jason Merrill <jason@redhat.com>
3319 Revert Jonathan's empty ABI change from yesterday.
3321 2016-04-13 Martin Sebor <msebor@redhat.com>
3324 * testsuite/25_algorithms/rotate/moveable2.cc: Make sure VLA
3325 upper bound is positive.
3327 2016-04-13 Jonathan Wakely <jwakely@redhat.com>
3329 * include/bits/c++config (_GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES,
3330 _GLIBCXX_END_NAMESPACE_EMPTY_TYPES, _GLIBCXX_ABI_TAG_EMPTY): Define.
3331 * include/bits/hashtable.h (_Hashtable::_M_emplace): Change signatures
3332 of functions taking empty structs by value. Add a template parameter
3333 to overloads without hints. Rename overloads with hints to
3335 (_Hashtable::_M_erase(true_type, const_iterator),
3336 _Hashtable::_M_erase(false_type, const_iterator)): Change signatures
3337 by reordering parameters.
3338 * include/bits/hashtable_policy.h (_Insert::insert): Adjust to call
3339 _M_emplace_hint instead of _M_emplace.
3340 * include/bits/shared_ptr.h (shared_ptr(_Tp1*, _Deleter, _Alloc),
3341 shared_ptr(nullptr_t, _Deleter, _Alloc)): Use _GLIBCXX_ABI_TAG_EMPTY.
3342 * include/bits/shared_ptr_base.h (_Sp_counted_deleter, __shared_count,
3343 __shared_ptr): Likewise.
3344 * include/bits/stl_algo.h (replace_if): Likewise.
3345 * include/bits/stl_pair.h (piecewise_construct_t,
3346 piecewise_construct): Use _GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES.
3347 * include/bits/uses_allocator.h (allocator_arg_t, allocator_arg,
3348 __uses_alloc0): Likewise.
3349 * include/ext/pb_ds/assoc_container.hpp (basic_hash_table): Likewise.
3350 * testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error.
3351 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
3352 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
3353 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
3354 * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
3355 * testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.
3357 2016-04-12 Edward Smith-Rowland <3dw4rd@verizon.net>
3359 Document C++17/TR29124 C++ Special Math Functions.
3360 * include/bits/specfun.h: Add Doxygen markup.
3362 2016-04-07 Jonathan Wakely <jwakely@redhat.com>
3364 * testsuite/30_threads/thread/70503.cc: Adjust from xfail to pass.
3366 2016-04-06 Eric Botcazou <ebotcazou@adacore.com>
3368 * src/Makefile.am (libstdc++-symbols.ver): Remove useless /dev/null.
3369 * src/Makefile.in: Regenerate.
3371 2016-04-05 Jonathan Wakely <jwakely@redhat.com>
3374 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Don't test
3375 __atomic_fetch_add for bool.
3376 * configure: Regenerate.
3378 * testsuite/30_threads/thread/70503.cc: Require -static to work.
3381 * src/c++11/thread.cc (execute_native_thread_routine,
3382 execute_native_thread_routine_compat): Give internal linkage.
3383 * testsuite/30_threads/thread/70503.cc: New test.
3385 2016-04-05 Ville Voutilainen <ville.voutilainen@gmail.com>
3388 * include/bits/stl_pair.h (_ConstructiblePair,
3389 _ImplicitlyConvertiblePair, _MoveConstructiblePair,
3390 _ImplicitlyMoveConvertiblePair): Add shortcut conditions
3391 for same-type cases.
3392 * testsuite/20_util/pair/70437.cc: New.
3394 2016-03-24 Jonathan Wakely <jwakely@redhat.com>
3397 * config/abi/pre/gnu.ver: Add new symbol.
3398 * libsupc++/eh_alloc.cc (__gnu_cxx::__freeres): Define.
3399 * testsuite/18_support/free_eh_pool.cc: New test.
3401 2016-03-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
3403 * include/Makefile.am (install-freestanding-headers): Add
3404 concept_check.h and move.h to the installed headers.
3405 * include/Makefile.in: Regenerated.
3406 * include/bits/concept_check.h: Ignore _GLIBCXX_CONCEPT_CHECKS for
3407 freestanding implementations.
3408 * doc/xml/manual/using.xml (_GLIBCXX_CONCEPT_CHECKS): Mention
3409 that this macro has no effect for freestanding implementations.
3410 * doc/html/manual/using_macros.html: Likewise.
3412 2016-02-24 Jonathan Wakely <jwakely@redhat.com>
3415 * include/experimental/tuple (__apply_impl): Qualify get and forward.
3417 2016-02-23 Jonathan Wakely <jwakely@redhat.com>
3419 * doc/xml/manual/using.xml: Document __STDCPP_WANT_MATH_SPEC_FUNCS__.
3420 * doc/html/*: Regenerate.
3423 * include/tr1/cmath (acosh, asinh, atanh, cbrt, copysign, erf, erfc,
3424 exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma, llrint,
3425 llround, log1p, log2, logb, lrint, lround, nan, nearbyint, nextafter,
3426 nexttoward, remainder, remquo, rint, round, scalbln, scalbn, tgamma,
3427 trunc) [__cplusplus >= 201103L]: Import from namespace std.
3428 (fabs) [__cplusplus < 201103L]: Import from namespace std.
3429 * include/tr1/complex (acosh, asinh, atanh) [__cplusplus >= 201103L]:
3431 * testsuite/tr1/headers/c++200x/complex.cc: Add std::fabs to global
3432 namespace before including TR1 headers.
3433 * testsuite/tr1/headers/c++200x/math.cc: New test.
3435 2016-02-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
3438 * include/c_global/cstdarg: Undefine __need___va_list.
3439 * include/c_global/cstddef: Undefine all kinds of __need_*.
3441 2016-02-16 Tim Shen <timshen@google.com>
3444 * include/bits/regex_scanner.h: Add different special character
3445 sets for grep and egrep regex.
3446 * include/bits/regex_scanner.tcc: Use _M_spec_char more uniformly.
3447 * testsuite/28_regex/regression.cc: Add new testcase.
3449 2016-02-08 Jonathan Wakely <jwakely@redhat.com>
3451 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Remove accidentally
3452 added 'constexpr' in previous commit.
3453 * configure: Regenerate.
3456 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Enable isinf and isnan
3457 checks for all targets except *-*-solaris2.* and ensure we find the
3458 libc math.h header not our own.
3459 * configure: Regenerate.
3461 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
3463 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt (FUNC):
3464 New file. Copied over from s390-linux-gnu.
3466 2016-02-04 Jonathan Wakely <jwakely@redhat.com>
3469 * acinclude.m4 (GLIBCXX_ENABLE_C99): Check C99 stdlib.h functions
3470 with -std=c++98 and define _GLIBCXX98_USE_C99_STDLIB.
3471 * config.h.in: Regenerate.
3472 * configure: Regenerate.
3473 * testsuite/21_strings/c_strings/char/69626.cc: New.
3475 * doc/html/index.html: Regenerate.
3477 * doc/xml/manual/containers.xml: Add cross-reference to Dual ABI.
3478 * doc/xml/manual/spine.xml: Update copyright years and author blurb.
3479 * doc/html/*: Regenerate.
3481 2016-02-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
3484 * include/c_compatibility/math.h: Move header guards.
3485 * include/c_compatibility/stdlib.h: Likewise.
3487 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
3490 * config/os/newlib/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3492 2016-01-28 John David Anglin <danglin@gcc.gnu.org>
3495 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Split check for obsolete
3496 isinf and isnan functions into two independent checks. Check on hpux.
3497 * config.h.in: Regenerate.
3498 * configure: Regenerate.
3499 * include/c_global/cmath (isinf(double), isnan(double)): Use
3500 _GLIBCXX_HAVE_OBSOLETE_ISINF and _GLIBCXX_HAVE_OBSOLETE_ISNAN,
3503 2016-01-27 Jakub Jelinek <jakub@redhat.com>
3505 * testsuite/libstdc++-prettyprinters/whatis.cc: Include <random>.
3507 2016-01-27 Jonathan Wakely <jwakely@redhat.com>
3510 * testsuite/ext/special_functions/hyperg/check_value.cc: Use
3511 -ffp-contract=off, and -ffloat-store to disable excess precision.
3512 * testsuite/special_functions/02_assoc_legendre/check_value.cc: Use
3515 2016-01-26 Jonathan Wakely <jwakely@redhat.com>
3518 * include/bits/stl_algobase.h (__copy_move<_IsMove, true,
3519 random_access_iterator_tag>): Check is_move_assignable when moving.
3520 (__copy_move_backwards<_IsMove, true, random_access_iterator_tag>):
3522 * testsuite/25_algorithms/copy/move_iterators/69478.cc: New.
3523 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc: New.
3524 * testsuite/25_algorithms/move/69478.cc: New.
3525 * testsuite/25_algorithms/move_backward/69478.cc: new.
3527 2016-01-26 Andris Pavenis <andris.pavenis@iki.fi>
3529 * include/c_compatibility/stdlib.h: Include wide character related
3530 definitions only when they are available in cstdlib.
3532 2016-01-25 Jonathan Wakely <jwakely@redhat.com>
3535 * include/Makefile.am: Add new header.
3536 * include/Makefile.in: Regenerate.
3537 * include/bits/random.h (uniform_int_distribution): Move to
3538 bits/uniform_int_dist.h.
3539 * include/bits/random.tcc (uniform_int_distribution::operator(),
3540 uniform_int_distribution::__generate_impl): Likewise.
3541 * include/bits/uniform_int_dist.h: New header.
3542 * include/bits/stl_algo.h [__cplusplus >= 201103L]: Include
3543 <bits/uniform_int_dist.h> instead of <random>.
3544 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
3545 move_iterators/1.cc: Include correct header for uninitialized_copy.
3546 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
3547 move_iterators/1.cc: Likewise.
3548 * testsuite/25_algorithms/nth_element/58800.cc: Include correct
3550 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lines.
3552 2016-01-23 John David Anglin <danglin@gcc.gnu.org>
3555 * config/os/hpux/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3557 2016-01-22 Edward Smith-Rowland <3dw4rd@verizon.net>
3559 TR29124 C++ Special Math - <math.h> pulls funcs into global namespace.
3560 * include/c_compatibility/math.h: Import the TR29124 functions
3561 into the global namespace.
3562 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: Remove
3563 xfail and make compile-only.
3564 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: Ditto.
3565 * testsuite/special_functions/03_beta/compile_2.cc: Ditto.
3566 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Ditto.
3567 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Ditto.
3568 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Ditto.
3569 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Ditto.
3570 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Ditto.
3571 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Ditto.
3572 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Ditto.
3573 * testsuite/special_functions/11_ellint_1/compile_2.cc: Ditto.
3574 * testsuite/special_functions/12_ellint_2/compile_2.cc: Ditto.
3575 * testsuite/special_functions/13_ellint_3/compile_2.cc: Ditto.
3576 * testsuite/special_functions/14_expint/compile_2.cc: Ditto.
3577 * testsuite/special_functions/15_hermite/compile_2.cc: Ditto.
3578 * testsuite/special_functions/16_laguerre/compile_2.cc: Ditto.
3579 * testsuite/special_functions/17_legendre/compile_2.cc: Ditto.
3580 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Ditto.
3581 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Ditto.
3582 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Ditto.
3583 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Ditto.
3585 2016-01-22 Jonathan Wakely <jwakely@redhat.com>
3588 * include/bits/valarray_before.h (__fun, __fun_with_valarray): Only
3589 define result_type for types which can be safely used with valarrays.
3590 * testsuite/26_numerics/valarray/69116.cc: New.
3593 * config/os/gnu-linux/os_defines.h: Define
3594 _GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC.
3595 * include/c_global/cmath (isinf, isnan): Check it.
3596 * doc/xml/manual/internals.xml: Document it.
3597 * doc/html/*: Regenerate.
3599 2016-01-21 Jonathan Wakely <jwakely@redhat.com>
3602 * include/bits/cpp_type_traits.h: Ensure C++ language linkage.
3603 * include/ext/type_traits.h: Likewise.
3604 * testsuite/17_intro/headers/c++2011/linkage.cc: Check autoconf macros
3605 for presence of C headers.
3606 * testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Adjust
3607 dg-error line number.
3608 * testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise.
3609 * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise.
3610 * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Likewise.
3612 2016-01-20 Torvald Riegel <triegel@redhat.com>
3615 * config/os/bsd/darwin/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3617 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
3620 * include/c_compatibility/math.h (acosh, asinh, atanh, acbrt,
3621 copysign, erf, erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb,
3622 lgamma, llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
3623 nextafter, nexttoward, remainder, remquo, rint, round, scalbln, scalbn,
3624 tgamma, trunc) [__cplusplus >= 201103L && _GLIBCXX_USE_C99_MATH_TR1]:
3625 Add using declarations.
3626 * testsuite/26_numerics/headers/cmath/60401.cc: New.
3629 * include/c_global/ccomplex: Ensure C++ language linkage.
3630 * include/c_global/cmath: Likewise.
3631 * include/c_global/cstdlib: Likewise.
3632 * include/c_global/ctgmath: Likewise.
3633 * testsuite/17_intro/headers/c++2011/linkage.cc: New.
3635 2016-01-19 Jonathan Wakely <jwakely@redhat.com>
3639 * include/Makefile.am: Use c_compatibility math.h and stdlib.h for
3640 --enable-cheaders=c_global configs.
3641 * include/Makefile.in: Regenerate.
3642 * include/c_compatibility/math.h: Remove obsolete _GLIBCXX_NAMESPACE_C
3643 test and allow inclusion from C files.
3644 * include/c_compatibility/stdlib.h: Likewise. Support freestanding.
3645 (at_quick_exit, quick_exit): Add using directives.
3646 * include/c_global/cmath: Use #include_next for math.h.
3647 * include/c_global/cstdlib: Use #include_next for stdlib.h.
3648 * testsuite/26_numerics/headers/cmath/14608.cc: New.
3649 * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
3650 Remove xfail for most targets.
3651 * testsuite/26_numerics/headers/cstdlib/60401.cc: New.
3653 2016-01-18 Torvald Riegel <triegel@redhat.com>
3655 * include/bits/c++config (_GLIBCXX_USE_WEAK_REF): New.
3656 (_GLIBCXX_TXN_SAFE, _GLIBCXX_TXN_SAFE_DYN): Use _GLIBCXX_USE_WEAK_REF
3657 and move after its definition.
3658 * config/os/aix/os_defines.h (_GLIBCXX_USE_WEAK_REF): Override.
3659 * src/c++11/cow-stdexcept.cc: Use _GLIBCXX_USE_WEAK_REF instead of
3660 __GXX_WEAK__, and only provide transactional clones if
3661 _GLIBCXX_USE_WEAK_REF is true. Don't provide stubs of libitm
3664 2016-01-18 Jonathan Wakely <jwakely@redhat.com>
3667 * testsuite/26_numerics/headers/cmath/60637.cc: Add test.
3670 * include/std/functional (_Function_base::_M_not_empty_function):
3671 Change overloads for pointers to take arguments by value.
3672 * testsuite/20_util/function/cons/57465.cc: Add tests for
3673 pointer-to-member cases.
3676 * src/c++11/cow-stdexcept.cc (_txnal_cow_string_C1_for_exceptions):
3677 Use macros for exception handling and fix unused parameter warning.
3679 2016-01-17 John David Anglin <danglin@gcc.gnu.org>
3682 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
3684 2016-01-17 Torvald Riegel <triegel@redhat.com>
3686 * src/c++11/cow-stdexcept.cc (txnal_read_ptr): Fix static_assert.
3688 2016-01-16 H.J. Lu <hongjiu.lu@intel.com>
3690 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Add
3693 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
3696 * include/bits/uses_allocator.h (__uses_alloc<true, ...>): Add
3697 static assertion that type is constructible from the arguments.
3698 * testsuite/20_util/scoped_allocator/69293_neg.cc: New.
3699 * testsuite/20_util/uses_allocator/69293_neg.cc: New.
3700 * testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error.
3703 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
3704 and isnan on AIX. Quote variables.
3705 * configure: Regenerate.
3707 2016-01-15 Torvald Riegel <triegel@redhat.com>
3709 * include/bits/basic_string.h (basic_string): Declare friends.
3710 * include/bits/c++config (_GLIBCXX_TXN_SAFE,
3711 _GLIBCXX_TXN_SAFE_DYN, _GLIBCXX_USE_ALLOCATOR_NEW): New.
3712 * include/std/stdexcept (logic_error, domain_error, invalid_argument,
3713 length_error, out_of_range, runtime_error, range_error,
3714 underflow_error, overflow_error): Declare members as transaction-safe.
3715 (logic_error, runtime_error): Declare friend functions.
3716 * libsupc++/exception (exception, bad_exception): Declare members as
3718 * src/c++11/cow-stdexcept.cc: Define transactional clones for the
3719 transaction-safe members of exceptions and helper functions.
3720 * libsupc++/eh_exception.cc: Adjust and define transactional clones.
3721 * config/abi/pre/gnu.ver (GLIBCXX_3.4.22) Add transactional clones.
3722 (CXXABI_1.3.10): New.
3723 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): New.
3724 (GLIBCXX_ENABLE_ALLOCATOR): Set ENABLE_ALLOCATOR_NEW.
3725 * configure.ac: Call GLIBCXX_CHECK_SIZE_T_MANGLING.
3726 * include/Makefile.am: Write ENABLE_ALLOCATOR_NEW to c++config.h.
3727 * include/Makefile.in: Regenerate.
3728 * config.h.in: Regenerate.
3729 * configure: Regenerate.
3730 * testsuite/util/testsuite_abi.cc (check_version): Add CXXABI_1.3.10.
3732 2016-01-15 Steve Ellcey <sellcey@imgtec.com>
3734 * include/ext/random.tcc: Use __builtin_isfinite instead of
3737 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
3739 * include/bits/std_mutex.h: Fix Doxygen @file name.
3741 2016-01-14 Edward Smith-Rowland <3dw4rd@verizon.net>
3742 Jonathan Wakely <jwakely@redhat.com>
3743 Florian Goth <CaptainSifff@gmx.de>
3745 Implement TR29124 C++ special Math Functions.
3746 * include/Makefile.am: Add new headers.
3747 * include/Makefile.in: Regenerate.
3748 * include/bits/specfun.h: New.
3749 * include/c_global/cmath: Adjust for both tr1 and tr29124 maths.
3750 * include/tr1/bessel_function.tcc: Ditto.
3751 * include/tr1/beta_function.tcc: Ditto.
3752 * include/tr1/cmath: Ditto.
3753 * include/tr1/ell_integral.tcc: Ditto.
3754 * include/tr1/exp_integral.tcc: Ditto.
3755 * include/tr1/gamma.tcc: Ditto.
3756 * include/tr1/hypergeometric.tcc: Ditto.
3757 * include/tr1/legendre_function.tcc: Ditto.
3758 * include/tr1/modified_bessel_func.tcc: Ditto.
3759 * include/tr1/poly_hermite.tcc: Ditto.
3760 * include/tr1/poly_laguerre.tcc: Ditto.
3761 * include/tr1/riemann_zeta.tcc: Ditto.
3762 * include/tr1/special_function_util.h: Ditto.
3763 * testsuite/ext/special_functions/conf_hyperg: New.
3764 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: New.
3765 * testsuite/ext/special_functions/conf_hyperg/check_value.cc: New.
3766 * testsuite/ext/special_functions/conf_hyperg/compile.cc: New.
3767 * testsuite/ext/special_functions/hyperg: New.
3768 * testsuite/ext/special_functions/hyperg/check_nan.cc: New.
3769 * testsuite/ext/special_functions/hyperg/check_value.cc: New.
3770 * testsuite/ext/special_functions/hyperg/compile.cc: New.
3771 * testsuite/libstdc++-dg/conformance.exp: Add special_functions directory.
3772 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc: New.
3773 * testsuite/special_functions/01_assoc_laguerre/check_value.cc: New.
3774 * testsuite/special_functions/01_assoc_laguerre/compile.cc: New.
3775 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: New.
3776 * testsuite/special_functions/02_assoc_legendre/check_nan.cc: New.
3777 * testsuite/special_functions/02_assoc_legendre/check_value.cc: New.
3778 * testsuite/special_functions/02_assoc_legendre/compile.cc: New.
3779 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: New.
3780 * testsuite/special_functions/03_beta/check_nan.cc: New.
3781 * testsuite/special_functions/03_beta/check_value.cc: New.
3782 * testsuite/special_functions/03_beta/compile.cc: New.
3783 * testsuite/special_functions/03_beta/compile_2.cc: New.
3784 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: New.
3785 * testsuite/special_functions/04_comp_ellint_1/check_value.cc: New.
3786 * testsuite/special_functions/04_comp_ellint_1/compile.cc: New.
3787 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: New.
3788 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: New.
3789 * testsuite/special_functions/05_comp_ellint_2/check_value.cc: New.
3790 * testsuite/special_functions/05_comp_ellint_2/compile.cc: New.
3791 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: New.
3792 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: New.
3793 * testsuite/special_functions/06_comp_ellint_3/check_value.cc: New.
3794 * testsuite/special_functions/06_comp_ellint_3/compile.cc: New.
3795 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: New.
3796 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: New.
3797 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc: New.
3798 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: New.
3799 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: New.
3800 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: New.
3801 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: New.
3802 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: New.
3803 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: New.
3804 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: New.
3805 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: New.
3806 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc: New.
3807 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: New.
3808 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: New.
3809 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: New.
3810 * testsuite/special_functions/10_cyl_neumann/check_value.cc: New.
3811 * testsuite/special_functions/10_cyl_neumann/compile.cc: New.
3812 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: New.
3813 * testsuite/special_functions/11_ellint_1/check_nan.cc: New.
3814 * testsuite/special_functions/11_ellint_1/check_value.cc: New.
3815 * testsuite/special_functions/11_ellint_1/compile.cc: New.
3816 * testsuite/special_functions/11_ellint_1/compile_2.cc: New.
3817 * testsuite/special_functions/12_ellint_2/check_nan.cc: New.
3818 * testsuite/special_functions/12_ellint_2/check_value.cc: New.
3819 * testsuite/special_functions/12_ellint_2/compile.cc: New.
3820 * testsuite/special_functions/12_ellint_2/compile_2.cc: New.
3821 * testsuite/special_functions/13_ellint_3/check_nan.cc: New.
3822 * testsuite/special_functions/13_ellint_3/check_value.cc: New.
3823 * testsuite/special_functions/13_ellint_3/compile.cc: New.
3824 * testsuite/special_functions/13_ellint_3/compile_2.cc: New.
3825 * testsuite/special_functions/14_expint/check_nan.cc: New.
3826 * testsuite/special_functions/14_expint/check_value.cc: New.
3827 * testsuite/special_functions/14_expint/compile.cc: New.
3828 * testsuite/special_functions/14_expint/compile_2.cc: New.
3829 * testsuite/special_functions/15_hermite/check_nan.cc: New.
3830 * testsuite/special_functions/15_hermite/check_value.cc: New.
3831 * testsuite/special_functions/15_hermite/compile.cc: New.
3832 * testsuite/special_functions/15_hermite/compile_2.cc: New.
3833 * testsuite/special_functions/16_laguerre/check_nan.cc: New.
3834 * testsuite/special_functions/16_laguerre/check_value.cc: New.
3835 * testsuite/special_functions/16_laguerre/compile.cc: New.
3836 * testsuite/special_functions/16_laguerre/compile_2.cc: New.
3837 * testsuite/special_functions/17_legendre/check_nan.cc: New.
3838 * testsuite/special_functions/17_legendre/check_value.cc: New.
3839 * testsuite/special_functions/17_legendre/compile.cc: New.
3840 * testsuite/special_functions/17_legendre/compile_2.cc: New.
3841 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: New.
3842 * testsuite/special_functions/18_riemann_zeta/check_value.cc: New.
3843 * testsuite/special_functions/18_riemann_zeta/compile.cc: New.
3844 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: New.
3845 * testsuite/special_functions/19_sph_bessel/check_nan.cc: New.
3846 * testsuite/special_functions/19_sph_bessel/check_value.cc: New.
3847 * testsuite/special_functions/19_sph_bessel/compile.cc: New.
3848 * testsuite/special_functions/19_sph_bessel/compile_2.cc: New.
3849 * testsuite/special_functions/20_sph_legendre/check_nan.cc: New.
3850 * testsuite/special_functions/20_sph_legendre/check_value.cc: New.
3851 * testsuite/special_functions/20_sph_legendre/compile.cc: New.
3852 * testsuite/special_functions/20_sph_legendre/compile_2.cc: New.
3853 * testsuite/special_functions/21_sph_neumann/check_nan.cc: New.
3854 * testsuite/special_functions/21_sph_neumann/check_value.cc: New.
3855 * testsuite/special_functions/21_sph_neumann/compile.cc: New.
3856 * testsuite/special_functions/21_sph_neumann/compile_2.cc: New.
3857 * testsuite/util/specfun_testcase.h: New.
3858 * testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc: More testcases.
3859 * testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc: Ditto.
3860 * testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc: Ditto.
3861 * testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc: Ditto.
3862 * testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc: Ditto.
3863 * testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc: Ditto.
3864 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc: New.
3866 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
3869 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
3870 and isnan functions.
3871 * config.h.in: Regenerate.
3872 * configure: Regenerate.
3873 * include/c_global/cmath (isinf(double), isnan(double))
3874 [_GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN]: Import via using-directive.
3875 * testsuite/26_numerics/headers/cmath/48891.cc: New.
3877 2016-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3880 * configure.host (abi_baseline_pair): Use separate baseline for
3881 Solaris 11+ and Solaris 10 with gld.
3882 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: New file.
3883 * config/abi/post/solaris2.11/baseline_symbols.txt: New file.
3884 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: New file.
3886 2016-01-12 Daniel Kruegler <daniel.kruegler@gmail.com>
3889 * include/std/type_traits: Following N4511, reimplement __is_swappable
3890 and __is_nothrow_swappable. Move __is_swappable to namespace std,
3891 adjust callers. Use __is_nothrow_swappable in swap.
3892 * include/bits/move.h: Use __is_nothrow_swappable in swap.
3893 * testsuite/20_util/is_nothrow_swappable/value.cc: Extend; remove
3894 __is_swappable related tests.
3895 * testsuite/20_util/is_swappable/value.cc: New.
3896 * testsuite/20_util/is_swappable/requirements/
3897 explicit_instantiation.cc: New.
3898 * testsuite/20_util/is_swappable/requirements/typedefs.cc: New.
3899 * testsuite/25_algorithms/swap/68877.cc: New.
3901 2016-01-12 Jonathan Wakely <jwakely@redhat.com>
3903 * testsuite/20_util/function/68995.cc: Test reference_wrapper cases.
3907 * include/std/functional (function::_Invoke): Remove, use result_of.
3908 (function::_Callable): Replace alias template with class template
3909 and use partial specialization instead of _NotSelf alias template.
3910 (function(_Functor)): Add "not self" constraint so that _Callable is
3911 not used while type is incomplete.
3912 * testsuite/20_util/function/69222.cc: New.
3914 2016-01-11 Jonathan Wakely <jwakely@redhat.com>
3917 * include/bits/alloc_traits.h (allocator_traits<allocator<_Tp>>):
3918 Define partial specialization.
3919 * testsuite/20_util/shared_ptr/cons/58659.cc: Add construct and
3920 destroy members to std::allocator explicit specialization.
3922 2016-01-08 Jonathan Wakely <jwakely@redhat.com>
3924 * testsuite/26_numerics/headers/cmath/
3925 c99_classification_macros_c++.cc: Rename to ...
3926 * testsuite/26_numerics/headers/cmath/
3927 c99_classification_macros_c++98.cc: Here and add -std=gnu++98.
3928 * testsuite/26_numerics/headers/cmath/
3929 c99_classification_macros_c++0x.cc: Rename to ...
3930 * testsuite/26_numerics/headers/cmath/
3931 c99_classification_macros_c++11.cc: Here.
3934 * include/bits/uses_allocator.h: Add missing include.
3936 2016-01-07 Jonathan Wakely <jwakely@redhat.com>
3941 * include/bits/stl_iterator.h (back_insert_iterator,
3942 front_insert_iterator, insert_iterator): Use __addressof (LWG 2324).
3943 * include/bits/uses_allocator.h (__use_alloc): Use __addressof.
3944 * include/std/future (__future::base::_State_baseV2::__setter):
3946 * include/std/scoped_allocator (__outermost): Likewise.
3947 * testsuite/20_util/scoped_allocator/69114.cc: New.
3948 * testsuite/20_util/uses_allocator/69114.cc: New.
3949 * testsuite/30_threads/promise/69106.cc: New.
3951 2016-01-06 Jonathan Wakely <jwakely@redhat.com>
3954 * include/bits/basic_string.h (basic_string::_S_copy_chars<_Iterator>):
3955 Remove _GLIBCXX_NOEXCEPT.
3956 testsuite/21_strings/basic_string/cons/char/69092.cc: New.
3958 * include/Makefile.am: Adjust.
3959 * include/Makefile.in: Regenerate.
3960 * include/bits/mutex.h: Rename to bits/std_mutex.h.
3961 * include/std/condition_variable: Adjust include.
3962 * include/std/mutex: Likewise.
3964 2016-01-04 Jakub Jelinek <jakub@redhat.com>
3966 Update copyright years.
3968 Copyright (C) 2016 Free Software Foundation, Inc.
3970 Copying and distribution of this file, with or without modification,
3971 are permitted in any medium without royalty provided the copyright
3972 notice and this notice are preserved.