1 2016-10-10 Jonathan Wakely <jwakely@redhat.com>
3 * include/bits/allocator.h (allocator<T>::is_always_equal): Define.
4 * testsuite/20_util/allocator/requirements/typedefs.cc: Test for
6 * testsuite/util/testsuite_allocator.h
7 (uneq_allocator::is_always_equal): Define as false_type.
9 * include/experimental/numeric (gcd, lcm): Make bool arguments
11 * include/std/numeric (gcd, lcm): Likewise.
12 * testsuite/26_numerics/gcd/gcd_neg.cc: New test.
13 * testsuite/26_numerics/lcm/lcm_neg.cc: New test.
15 * include/bits/shared_ptr.h (enable_shared_from_this::weak_from_this):
17 * include/bits/shared_ptr_base.h
18 (__enable_shared_from_this::weak_from_this): Likewise.
19 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
20 Test exception-specification of weak_from_this.
22 2016-10-07 Jonathan Wakely <jwakely@redhat.com>
24 * doc/xml/manual/status_cxx1998.xml: Improve documentation of
25 implementation-defined properties.
26 * doc/xml/manual/status_cxx2011.xml: Likewise.
27 * doc/xml/manual/status_cxx2017.xml: Likewise.
29 * doc/xml/manual/status_cxx2017.xml: Update status.
30 * include/std/type_traits (has_unique_object_representations): Define.
31 * testsuite/20_util/has_unique_object_representations/value.cc: New.
32 * testsuite/20_util/has_unique_object_representations/requirements/
33 explicit_instantiation.cc: New.
34 * testsuite/20_util/has_unique_object_representations/requirements/
37 2016-10-06 Jonathan Wakely <jwakely@redhat.com>
39 * doc/xml/manual/status_cxx2011.xml: Update status.
40 * include/std/scoped_allocator (__outer_allocator_t, __outermost_type):
41 New helpers for recursive OUTERMOST.
42 (__outermost): Use __outermost_type::_S_outermost.
43 (__do_outermost, scoped_allocator_adaptor::__outermost_type): Remove.
44 (scoped_allocator_adaptor::__outermost_alloc_traits): Use new
45 __outermost_type helper.
46 (scoped_allocator_adaptor::_Constructible): New alias template.
47 (scoped_allocator_adaptor::scoped_allocator_adaptor<_Outer2>):
48 Constrain template constructors.
49 * testsuite/20_util/scoped_allocator/3.cc: New test.
50 * testsuite/20_util/scoped_allocator/outermost.cc: New test.
52 2016-10-05 Jonathan Wakely <jwakely@redhat.com>
55 * testsuite/20_util/not_fn/1.cc: Fix test.
56 * testsuite/experimental/functional/not_fn.cc: Likewise.
59 * include/bits/stl_queue.h (priority_queue): Fix allocator-extended
61 * testsuite/23_containers/priority_queue/allocator.cc: New test.
64 * include/bits/stl_map.h (map::map()): Use nothrow constructibility
65 of comparison function in conditional noexcept.
66 * include/bits/stl_multimap.h (multimap::multimap()): Likewise.
67 * include/bits/stl_multiset.h (multiset::multiset()): Likewise.
68 * include/bits/stl_set.h (set::set()): Likewise.
69 * testsuite/23_containers/map/cons/noexcept_default_construct.cc:
71 * testsuite/23_containers/multimap/cons/noexcept_default_construct.cc:
73 * testsuite/23_containers/multiset/cons/noexcept_default_construct.cc:
75 * testsuite/23_containers/set/cons/noexcept_default_construct.cc:
78 * include/bits/node_handle.h (_Node_handle): Remove invalid and unused
82 * include/experimental/functional (_Not_fn): Remove.
83 (not_fn): Use std::_Not_fn.
84 * include/std/functional (_Not_fn): Add second parameter to
85 disambiguate copying from initialization by not_fn. Define for C++14.
86 (not_fn): Add second argument to initialization.
87 * testsuite/20_util/not_fn/1.cc: Copy call wrapper using
88 direct-initialization.
90 2016-10-03 François Dumont <fdumont@gcc.gnu.org>
92 * src/c++11/shared_ptr.cc (mask, invalid, get_mutex): Move
94 * src/c++11/mutex_pool.h: ... here. New.
95 * src/c++11/debug.cc: Use latter.
97 2016-10-03 Jonathan Wakely <jwakely@redhat.com>
99 * doc/xml/manual/status_cxx2017.xml: Update gcd/lcm status.
100 * doc/html/*: Regenerate.
101 * include/experimental/numeric (__abs): Move to <numeric>.
102 (gcd, lcm): Use __detail::gcd and __detail::lcm.
103 * include/std/numeric (__detail::__abs_integral)
104 (__detail::__gcd, __detail::__lcm): Define.
105 (gcd, lcm): Define for C++17.
106 * testsuite/26_numerics/gcd/1.cc: New test.
107 * testsuite/26_numerics/lcm/1.cc: New test.
108 * testsuite/experimental/numeric/gcd.cc: Swap contents with ...
109 * testsuite/experimental/numeric/lcd.cc: ... this.
113 * config/abi/pre/gnu-versioned-namespace.ver: Add exports for
114 __cxa_thread_atexit and __gnu_cxx::__freeres.
115 * include/Makefile.am: Add <experimental/bits/lfts_config.h>
116 * include/Makefile.in: Regenerate.
117 * include.bits/basic_string.h: Fix nesting of versioned namespaces.
118 * include/bits/c++config: Declare versioned namespaces for literals.
119 * include/bits/regex.h (basic_regex, match_results): Add workarounds
121 * include/bits/uniform_int_dist.h: Fix nesting of versioned namespace.
122 * include/std/chrono: Likewise.
123 * include/std/complex: Likewise.
124 * include/std/string_view: Likewise.
125 * include/std/variant: Likewise. Add workaround for PR c++/59256.
126 * include/experimental/bits/fs_fwd.h: Declare versioned namespace.
127 * include/experimental/bits/lfts_config.h: Declare versioned
129 * include/experimental/algorithm: Include
130 <experimental/bits/lfts_config.h>.
131 * include/experimental/any: Likewise.
132 * include/experimental/bits/erase_if.h: Likewise.
133 * include/experimental/chrono: Likewise.
134 * include/experimental/functional: Likewise.
135 * include/experimental/memory_resource: Likewise.
136 * include/experimental/optional: Likewise.
137 * include/experimental/propagate_const: Likewise.
138 * include/experimental/random: Likewise.
139 * include/experimental/ratio: Likewise.
140 * include/experimental/system_error: Likewise.
141 * include/experimental/tuple: Likewise.
142 * include/experimental/type_traits: Likewise.
143 * include/experimental/utility: Likewise.
144 * include/experimental/string_view: Likewise. Fix nesting of
145 versioned namespaces.
146 * include/experimental/bits/string_view.tcc: Reopen inline namespace
147 for non-inline function definitions.
148 * testsuite/17_intro/using_namespace_std_exp_neg.cc: New test.
149 * testsuite/20_util/duration/literals/range.cc: Adjust dg-error line.
150 * testsuite/experimental/any/misc/any_cast_neg.cc: Likewise.
151 * testsuite/experimental/propagate_const/assignment/move_neg.cc:
153 * testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
154 * testsuite/experimental/propagate_const/requirements2.cc: Likewise.
155 * testsuite/experimental/propagate_const/requirements3.cc: Likewise.
156 * testsuite/experimental/propagate_const/requirements4.cc: Likewise.
157 * testsuite/experimental/propagate_const/requirements5.cc: Likewise.
158 * testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.
161 * include/bits/std_abs.h: Use "C++" language linkage.
162 * testsuite/17_intro/headers/c++2011/linkage.cc: Move <complex.h> to
163 the end. Add <stdalign.h>.
165 2016-10-03 Ville Voutilainen <ville.voutilainen@gmail.com>
168 * testsuite/20_util/tuple/77802.cc: New.
171 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
172 Implement LWG 2729 for tuple.
173 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)):
174 Suppress conditionally.
175 (_Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&&)): Likewise.
176 (__is_tuple_impl_trait_impl, __is_tuple_impl_trait): New.
177 (_Tuple_impl(const _Head&)): Constrain.
178 (_Tuple_impl(_UHead&&)): Likewise.
179 (_Tuple_impl(_Tuple_impl&&)): Suppress conditionally.
180 (_Tuple_impl(const _Tuple_impl<_Idx, _UHead>&)): Constrain.
181 (_Tuple_impl(_Tuple_impl<_Idx, _UHead>&&)): Likewise.
182 (operator=(const tuple&)): Enable conditionally.
183 (operator=(tuple&&)): Suppress conditionally.
184 (operator=(const tuple<_UElements...>&)): Constrain.
185 (operator=(tuple<_UElements...>&&)): Likewise.
186 (operator=(const tuple&)): Enable conditionally (2-param tuple).
187 (operator=(tuple&&)): Suppress conditionally (2-param tuple).
188 (operator=(const tuple<_U1, _U2>&)): Constrain.
189 (operator=(tuple<_U1, _U2>&&)): Likewise.
190 (operator=(const pair<_U1, _U2>&)): Likewise.
191 (operator=(pair<_U1, _U2>&&)): Likewise.
192 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust.
193 * testsuite/20_util/tuple/tuple_traits.cc: New.
195 2016-09-30 Jonathan Wakely <jwakely@redhat.com>
198 * acinclude.m4 (GLIBCXX_CHECK_STDIO_PROTO): Use -std=gnu++11 to check
200 * config.h.in: Regenerate.
201 * configure: Regenerate.
202 * include/c_global/cstdio [!_GLIBCXX_HAVE_GETS] (gets): Only declare
204 * include/c_std/cstdio [!_GLIBCXX_HAVE_GETS] (gets): Likewise.
205 * testsuite/27_io/headers/cstdio/functions_neg.cc: New test.
207 * doc/xml/manual/intro.xml: Document LWG 2192 changes.
208 * doc/html/*: Regenerate.
209 * include/Makefile.am: Add bits/std_abs.h.
210 * include/Makefile.in: Regenerate.
211 * include/bits/std_abs.h: New header defining all required overloads
212 of std::abs in one place (LWG 2294).
213 * include/c_global/cmath (abs(double), abs(float), abs(long double)):
214 Move to bits/std_abs.h.
215 (abs<_Tp>(_Tp)): Remove.
216 * include/c_global/cstdlib (abs(long), abs(long long), abs(__int<N>)):
217 Move to bits/std_abs.h.
218 * testsuite/26_numerics/headers/cmath/dr2192.cc: New test.
219 * testsuite/26_numerics/headers/cmath/dr2192_neg.cc: New test.
220 * testsuite/26_numerics/headers/cstdlib/dr2192.cc: New test.
221 * testsuite/26_numerics/headers/cstdlib/dr2192_neg.cc: New test.
224 * include/experimental/numeric: Include <numeric>.
226 (gcd, lcm): Use __abs instead of std::abs.
227 * testsuite/experimental/numeric/77801.cc: New test.
228 * testsuite/experimental/numeric/gcd.cc: Test unsigned inputs.
229 * testsuite/experimental/numeric/lcm.cc: Likewise.
231 2016-09-29 Ville Voutilainen <ville.voutilainen@gmail.com>
233 Make optional::reset noexcept, make optional::value
234 work in constant expressions.
235 * include/std/optional (_M_get): Make constexpr.
236 (reset): Make noexcept.
237 * testsuite/20_util/optional/assignment/7.cc: New.
238 * testsuite/20_util/optional/observers/6.cc: New.
240 2016-09-29 Jonathan Wakely <jwakely@redhat.com>
242 * include/c_global/cmath (hypot, __hypot3): Move C++17 overloads
243 outside _GLIBCXX_USE_C99_MATH_TR1 condition.
245 2016-09-29 Alan Modra <amodra@gmail.com>
247 * configure.ac (LONG_DOUBLE_COMPAT_FLAGS): New ACSUBST.
248 * src/Makefile.am (compatibility-ldbl.o, compatibility-ldbl.lo):
249 Use LONG_DOUBLE_COMPAT_FLAGS.
250 * Makefile.in: Regenerate.
251 * configure: Regenerate.
252 * doc/Makefile.in: Regenerate.
253 * include/Makefile.in: Regenerate.
254 * libsupc++/Makefile.in: Regenerate.
255 * po/Makefile.in: Regenerate.
256 * python/Makefile.in: Regenerate.
257 * src/Makefile.in: Regenerate.
258 * src/c++11/Makefile.in: Regenerate.
259 * src/c++98/Makefile.in: Regenerate.
260 * src/filesystem/Makefile.in: Regenerate.
261 * testsuite/Makefile.in: Regenerate.
263 2016-09-28 Jonathan Wakely <jwakely@redhat.com>
265 * include/std/chrono (system_clock): Fix typo in comment.
267 * include/experimental/bits/fs_fwd.h (file_time_type): Simplify
269 * src/filesystem/ops.cc (file_time): Take error_code parameter and
271 (do_copy_file, last_write_time): Pass error_code in file_time calls.
272 * testsuite/experimental/filesystem/operations/last_write_time.cc:
274 * testsuite/util/testsuite_fs.h (scoped_file): Define RAII helper.
277 * include/std/functional (_Any_data): Add may_alias attribute.
279 2016-09-27 Jonathan Wakely <jwakely@redhat.com>
281 * doc/xml/manual/status_cxx2017.xml: Update status.
282 * doc/html/*: Regenerate.
283 * include/std/functional (__cpp_lib_boyer_moore_searcher): Define.
284 * testsuite/20_util/function_objects/searchers.cc: Test feature macro.
286 * doc/xml/manual/status_cxx2017.xml: Update status.
287 * include/c_global/cmath (hypot): Add three-dimensional overloads.
288 * testsuite/26_numerics/headers/cmath/hypot.cc: New.
290 2016-09-26 Ville Voutilainen <ville.voutilainen@gmail.com>
293 * include/std/optional (optional(const optional<_Up>&)):
294 Default-initialize the base and use emplace.
295 (optional(optional<_Up>&&)): Likewise.
296 * testsuite/20_util/optional/cons/77727.cc: New.
298 2016-09-26 François Dumont <fdumont@gcc.gnu.org>
300 * include/debug/safe_base.h
301 (_Safe_iterator_base::_M_detach_single): Make public.
303 2016-09-26 Jonathan Wakely <jwakely@redhat.com>
305 * include/bits/range_access.h (__cpp_lib_array_constexpr): Do not
306 redefine macro defined in <bits/stl_iterator.h>.
308 * include/bits/stl_map.h (map::extract(const_iterator)): Assert that
309 iterator is not past-the-end.
310 * include/bits/stl_multimap.h (multimap::extract(const_iterator)):
312 * include/bits/stl_multiset.h (multiset::extract(const_iterator)):
314 * include/bits/stl_set.h (set::extract(const_iterator)): Likewise.
315 * include/bits/unordered_map.h (unordered_map::extract(const_iterator))
316 (unordered_multimap::extract(const_iterator)): Likewise.
317 * include/bits/unordered_set.h (unordered_set::extract(const_iterator))
318 (unordered_multiset::extract(const_iterator)): Likewise.
320 2016-09-26 Ville Voutilainen <ville.voutilainen@gmail.com>
323 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
324 Fix an out-of-bounds access.
326 2016-09-26 Marek Polacek <polacek@redhat.com>
329 * libsupc++/hash_bytes.cc: Add [[gnu::fallthrough]].
331 2016-09-25 François Dumont <fdumont@gcc.gnu.org>
333 * src/c++11/debug.cc: Include debug/vector. Include cctype. Remove
335 (get_safe_base_mutex): Get mutex based on address lowest non nil bits.
336 * testsuite/23_containers/vector/debug/mutex_association.cc: New.
338 * include/debug/bitset (bitset::reference::reference(const _Base_ref&,
339 bitset*)): Remove __unused__ attribute.
340 * include/debug/safe_base.h (_Safe_iterator_base): Make
341 _Safe_sequence_base a friend.
342 (_Safe_iterator_base::_M_attach): Make protected.
343 (_Safe_iterator_base::_M_attach_single): Likewise.
344 (_Safe_iterator_base::_M_detach): Likewise.
345 (_Safe_iterator_base::_M_detach_single): Likewise.
346 (_Safe_sequence_base): Make _Safe_iterator_base a friend.
347 (_Safe_sequence_base::_Safe_sequence_base(_Safe_sequence_base&&)): New.
348 (_Safe_sequence_base::_M_swap): Make protected.
349 (_Safe_sequence_base::_M_attach): Make private.
350 (_Safe_sequence_base::_M_attach_single): Likewise.
351 (_Safe_sequence_base::_M_detach): Likewise.
352 (_Safe_sequence_base::_M_detach_single): Likewise.
353 * include/debug/safe_container.h
354 (_Safe_container::_Safe_container(_Safe_container&&)): Make default.
355 * include/debug/safe_iterator.h
356 (_Safe_iterator::operator++()): Name __scoped_lock instance.
357 * include/debug/safe_iterator.tcc: Remove trailing line.
358 * include/debug/safe_unordered_base.h
359 (_Safe_local_iterator_base::_M_attach): Make protected.
360 (_Safe_local_iterator_base::_M_attach_single): Likewise.
361 (_Safe_local_iterator_base::_M_detach): Likewise.
362 (_Safe_local_iterator_base::_M_detach_single): Likewise.
363 (_Safe_unordered_container_base): Make _Safe_local_iterator_base friend.
364 (_Safe_unordered_container_base::_M_attach_local): Make private.
365 (_Safe_unordered_container_base::_M_attach_local_single): Likewise.
366 (_Safe_unordered_container_base::_M_detach_local): Likewise.
367 (_Safe_unordered_container_base::_M_detach_local_single): Likewise.
369 * include/parallel/algo.h: Generalize usage of std::__iterator_category.
372 2016-09-23 Jonathan Wakely <jwakely@redhat.com>
376 * include/bits/basic_string.h (basic_string::clear()): Drop reference
378 * include/ext/rc_string_base.h (__rc_string_base::_M_clear()):
380 * testsuite/21_strings/basic_string/56166.cc: New.
381 * testsuite/ext/vstring/modifiers/clear/56166.cc: New.
383 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
384 (basic_string::erase(size_type, size_type)): Add fast path for
385 truncating the string, by calling _M_set_length directly.
386 (basic_string::erase(__const_iterator, __const_iterator)): Likewise.
387 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
388 (basic_string::resize(size_type, _CharT)): Likewise.
390 2016-09-22 Jason Merrill <jason@redhat.com>
392 * configure.ac: Define HAVE_MEMALIGN for newlib.
394 2015-09-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
396 * config/cpu/m68k/atomicity.h: Adjust comment.
397 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Honor
398 explicit atomicity_dir setup via configure.host.
399 * configure.host (rtems-*): Set atomicity_dir.
400 * configure: Regenerate.
402 2016-09-22 Jonathan Wakely <jwakely@redhat.com>
404 Implement C++17 node extraction and insertion (P0083R5)
405 * doc/xml/manual/status_cxx2017.xml: Document status.
406 * doc/html/*: Regenerate.
407 * include/Makefile.am: Add bits/node_handle.h and reorder.
408 * include/Makefile.in: Regenerate.
409 * include/bits/hashtable.h (_Hashtable::node_type)
410 (_Hashtable::insert_return_type, _Hashtable::_M_reinsert_node)
411 (_Hashtable::_M_reinsert_node_multi, _Hashtable::extract)
412 (_Hashtable::_M_merge_unique, _Hashtable::_M_merge_multi): Define.
413 (_Hash_merge_helper): Define primary template.
414 * include/bits/node_handle.h: New header.
415 * include/bits/stl_map.h (map): Declare _Rb_tree_merge_helper as
417 (map::node_type, map::insert_return_type, map::extract, map::merge)
418 (map::insert(node_type&&), map::insert(const_iterator, node_type&&)):
420 (_Rb_tree_merge_helper): Specialize for map.
421 * include/bits/stl_multimap.h (multimap): Declare _Rb_tree_merge_helper
423 (multimap::node_type, multimap::extract, multimap::merge)
424 (multimap::insert(node_type&&))
425 (multimap::insert(const_iterator, node_type&&)): Define.
426 (_Rb_tree_merge_helper): Specialize for multimap.
427 * include/bits/stl_multiset.h (multiset): Declare _Rb_tree_merge_helper
429 (multiset::node_type, multiset::extract, multiset::merge)
430 (multiset::insert(node_type&&))
431 (multiset::insert(const_iterator, node_type&&)): Define.
432 * include/bits/stl_set.h (set): Declare _Rb_tree_merge_helper as
434 (set::node_type, set::insert_return_type, set::extract, set::merge)
435 (set::insert(node_type&&), set::insert(const_iterator, node_type&&)):
437 (_Rb_tree_merge_helper): Specialize for set.
438 * include/bits/stl_tree.h (_Rb_tree): Declare _Rb_tree<> as friend.
439 (_Rb_tree::node_type, _Rb_tree::insert_return_type)
440 (_Rb_tree::_M_reinsert_node_unique, _Rb_tree::_M_reinsert_node_equal)
441 (_Rb_tree::_M_reinsert_node_hint_unique)
442 (_Rb_tree::_M_reinsert_node_hint_equal, _Rb_tree::extract)
443 (_Rb_tree::_M_merge_unique, _Rb_tree::_M_merge_equal): Define.
444 (_Rb_tree_merge_helper): Specialize for multiset.
445 * include/bits/unordered_map.h (unordered_map): Declare
446 unordered_map<> and unordered_multimap<> as friends.
447 (unordered_map::node_type, unordered_map::insert_return_type)
448 (unordered_map::extract, unordered_map::merge)
449 (unordered_map::insert(node_type&&))
450 (unordered_map::insert(const_iterator, node_type&&))
451 (unordered_multimap): Declare _Hash_merge_helper as friend.
452 (unordered_multimap::node_type, unordered_multimap::extract)
453 (unordered_multimap::merge, unordered_multimap::insert(node_type&&))
454 (unordered_multimap::insert(const_iterator, node_type&&)): Define.
455 (_Hash_merge_helper): Specialize for unordered maps and multimaps.
456 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
457 Declare _Hash_merge_helper as friend.
458 (unordered_set::node_type, unordered_set::insert_return_type)
459 (unordered_set::extract, unordered_set::merge)
460 (unordered_set::insert(node_type&&))
461 (unordered_set::insert(const_iterator, node_type&&)): Define.
462 (unordered_multiset::node_type, unordered_multiset::extract)
463 (unordered_multiset::merge, unordered_multiset::insert(node_type&&))
464 (unordered_multiset::insert(const_iterator, node_type&&)): Define.
465 (_Hash_merge_helper): Specialize for unordered sets and multisets.
466 * include/debug/map.h (map): Add using declarations or forwarding
467 functions for new members.
468 * include/debug/map.h (multimap): Likewise.
469 * include/debug/map.h (multiset): Likewise.
470 * include/debug/map.h (set): Likewise.
471 * include/debug/unordered_map (unordered_map, unordered_multimap):
473 * include/debug/unordered_set( unordered_set, unordered_multiset):
475 * python/libstdcxx/v6/printers.py (get_value_from_aligned_membuf): New
477 (get_value_from_list_node, get_value_from_Rb_tree_node): Use helper.
478 (StdNodeHandlePrinter): Define printer for node handles.
479 (build_libstdcxx_dictionary): Register StdNodeHandlePrinter.
480 * testsuite/23_containers/map/modifiers/extract.cc: New.
481 * testsuite/23_containers/map/modifiers/merge.cc: New.
482 * testsuite/23_containers/multimap/modifiers/extract.cc: New.
483 * testsuite/23_containers/multimap/modifiers/merge.cc: New.
484 * testsuite/23_containers/multiset/modifiers/extract.cc: New.
485 * testsuite/23_containers/multiset/modifiers/merge.cc: New.
486 * testsuite/23_containers/set/modifiers/extract.cc: New.
487 * testsuite/23_containers/set/modifiers/merge.cc: New.
488 * testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
489 * testsuite/23_containers/unordered_map/modifiers/merge.cc: New.
490 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
492 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc: New.
493 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
495 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc: New.
496 * testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
497 * testsuite/23_containers/unordered_set/modifiers/merge.cc: New.
498 * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
500 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test node handles.
502 2016-09-22 Ville Voutilainen <ville.voutilainen@gmail.com>
504 Fix tests on old arm platforms for optional.
505 * testsuite/20_util/optional/77288.cc: Don't use exception_ptr.
507 2016-09-22 Jonathan Wakely <jwakely@redhat.com>
509 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Adjust for
510 recent change to _Variant_storage.
511 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test variant with
514 * include/bits/uses_allocator.h (__uses_allocator_construct): Qualify
515 std::forward and ::new. Cast pointer to void*.
516 * include/std/variant (_Variant_storage, _Union, _Variant_base)
517 (__access, __visit_invoke, variant, visit): Qualify std::forward.
518 * testsuite/20_util/variant/compile.cc: Test for ADL problems.
520 2016-09-22 Tim Shen <timshen@google.com>
522 * include/std/variant (variant::operator=): Fix assignment
524 * testsuite/20_util/variant/compile.cc: Add test.
526 2016-09-22 Tim Shen <timshen@google.com>
529 * include/std/variant (_Variant_storage::_Variant_storage):
530 Change _Variant_storage's union to be default constructible.
531 * testsuite/20_util/variant/compile.cc: New test.
533 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
536 * include/std/optional (__is_optional_impl, __is_optional): Remove.
537 (__converts_from_optional, __assigns_from_optional): New.
538 (optional(_Up&&)): Use is_same instead of __is_optional.
539 (optional(const optional<_Up>&)): Constrain with
540 __converts_from_optional.
541 (optional(optional<_Up>&&)): Likewise.
542 (operator=(_Up&&)): Use is_same instead of __is_optional, check
543 is_same and is_scalar.
544 (operator=(const optional<_Up>&)): Constrain with
545 __converts_from_optional and __assigns_from_optional.
546 (operator=(optional<_Up>&&)): Likewise.
547 * testsuite/20_util/optional/77288.cc: New.
548 * testsuite/20_util/optional/cons/value.cc: Adjust.
550 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
552 Implement LWG 2729 for tuple.
553 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)):
554 Suppress conditionally.
555 (_Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&&)): Likewise.
556 (__is_tuple_impl_trait_impl, __is_tuple_impl_trait): New.
557 (_Tuple_impl(const _Head&)): Constrain.
558 (_Tuple_impl(_UHead&&)): Likewise.
559 (_Tuple_impl(_Tuple_impl&&)): Suppress conditionally.
560 (_Tuple_impl(const _Tuple_impl<_Idx, _UHead>&)): Constrain.
561 (_Tuple_impl(_Tuple_impl<_Idx, _UHead>&&)): Likewise.
562 (operator=(const tuple&)): Enable conditionally.
563 (operator=(tuple&&)): Suppress conditionally.
564 (operator=(const tuple<_UElements...>&)): Constrain.
565 (operator=(tuple<_UElements...>&&)): Likewise.
566 (operator=(const tuple&)): Enable conditionally (2-param tuple).
567 (operator=(tuple&&)): Suppress conditionally (2-param tuple).
568 (operator=(const tuple<_U1, _U2>&)): Constrain.
569 (operator=(tuple<_U1, _U2>&&)): Likewise.
570 (operator=(const pair<_U1, _U2>&)): Likewise.
571 (operator=(pair<_U1, _U2>&&)): Likewise.
572 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust.
573 * testsuite/20_util/tuple/tuple_traits.cc: New.
575 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
578 Implement LWG 2729 for pair.
579 * include/bits/stl_pair.h (_PCC): New.
580 (_ConstructiblePair, _ImplicitlyConvertiblePair):
581 Turn into static member functions of _PCC.
582 (_MoveConstructiblePair, _ImplicitlyMoveConvertiblePair): Likewise.
584 (pair(const _T1&, const _T2&)): Adjust.
586 (pair(const pair<_U1, _U2>&)): Adjust.
587 (pair(_U1&&, const _T2&)): Likewise.
588 (pair(const _T1&, _U2&&)): Likewise.
589 (pair(_U1&&, _U2&&)): Likewise.
590 (pair(pair<_U1, _U2>&&)): Likewise.
591 (operator=(const pair&)): Make conditionally deleted.
592 (operator=(pair&&)): Make conditionally suppressed.
593 (operator=(const pair<_U1, _U2>&)): Constrain.
594 (operator=(pair<_U1, _U2>&&): Likewise.
595 * include/std/type_traits (__nonesuch): New.
596 * testsuite/20_util/pair/traits.cc: New.
598 2016-09-20 Ville Voutilainen <ville.voutilainen@gmail.com>
601 * include/bits/stl_construct.h: (_Construct_novalue): New.
602 (_Destroy_n_aux, _Destroy_n): New.
603 * include/bits/stl_uninitialized.h: (type_traits):
604 New include in C++11 mode.
605 (__uninitialized_default_novalue_1): New.
606 (__uninitialized_default_novalue_n_1): Likewise.
607 (__uninitialized_default_novalue): Likewise.
608 (__uninitialized_default_novalue_n): Likewise.
609 (__uninitialized_copy_n_pair): Likewise.
610 (uninitialized_default_construct):
611 Use __uninitialized_default_novalue.
612 (uninitialized_default_construct_n):
613 Use __uninitialized_default_novalue_n.
614 (uninitialized_value_construct): Use __uninitialized_default.
615 (uninitialized_value_construct_n): Use __uninitialized_default_n.
616 (uninitialized_move): Use uninitialized_copy.
617 (uninitialized_move_n): Use __uninitialized_copy_n_pair.
618 (destroy_at): Use _Destroy.
620 (destroy_n): Likewise.
621 * testsuite/20_util/specialized_algorithms/
622 memory_management_tools/1.cc: Add tests for exceptions,
623 add tests for trivial cases for construct and move.
625 2016-09-20 Jonathan Wakely <jwakely@redhat.com>
627 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
628 (DequeWorkerBase.index, VectorWorkerBase.get): Use // for division.
630 2016-09-19 Jonathan Wakely <jwakely@redhat.com>
633 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
634 (DequeWorkerBase.index, VectorWorkerBase.get): Cast results of
635 division to int to work with Python 3.
637 * testsuite/lib/gdb-test.exp (gdb-test): Fail if Python error occurs.
639 * python/libstdcxx/v6/printers.py (SingleObjContainerPrinter): Allow
640 display_hint to be set by subclasses.
641 (StdVariantPrinter): Use array for display_hint. Adjust output to be
642 more similar to std::any and std::optional output.
643 (register_type_printers): Add type printers for basic_string_view
644 typedefs and experimental::any. Adjust type printers for
645 fundamentals_v1 templates to match fundamentals_v2 and later.
646 * testsuite/libstdc++-prettyprinters/cxx17.cc: New.
649 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.index): Rename
651 (ListWorkerBase.get_value_from_node): Define new method.
652 (ListFrontWorker.__call__, ListBackWorker.__call__): Use it.
654 2016-09-17 Jonathan Wakely <jwakely@redhat.com>
656 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Define.
657 (StdExpAnyPrinter, StdExpOptionalPrinter, StdExpStringViewPrinter):
658 Register for C++17 components in namespace std. Strip inline namespace
661 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
663 * doc/xml/manual/profile_mode.xml: Fix typo.
664 * doc/html/manual/profile_mode_devel.html: Regenerate.
666 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
667 Marc Glisse <marc.glisse@inria.fr>
669 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_ALIGNED_ALLOC]
670 (operator new(size_t, align_val_t)): Replace modulus operator with
673 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
675 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_POSIX_MEMALIGN] (aligned_alloc):
676 Increase alignment if less than sizeof(void*).
677 [_GLIBCXX_HAVE_ALIGNED_ALLOC] (operator new(size_t, align_val_t)):
678 Increase size if not a multiple of alignment.
680 2016-09-15 Jonathan Wakely <jwakely@redhat.com>
682 * doc/xml/manual/debug_mode.xml: Minor editorial fixes.
683 * doc/html/*: Regenerate.
685 * testsuite/23_containers/vector/debug/insert6_neg.cc: Remove
687 * testsuite/util/debug/checks.h (generate_unique<bool>): Specialize.
689 2016-09-14 Marek Polacek <polacek@redhat.com>
691 * testsuite/23_containers/vector/debug/insert6_neg.cc: Use
694 2016-09-14 Christophe Lyon <christophe.lyon@linaro.org>
696 * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
697 Move dg-do directive before dg-skip.
698 * testsuite/21_strings/debug/iterator_self_move_assign_neg.cc:
699 Move dg-do directive before dg-require.
700 * testsuite/21_strings/debug/self_move_assign_neg.cc: Likewise.
701 * testsuite/23_containers/vector/debug/57779_neg.cc: Likewise.
702 * testsuite/23_containers/vector/debug/60587_neg.cc: Likewise.
703 * testsuite/23_containers/vector/debug/assign1_neg.cc: Likewise.
704 * testsuite/23_containers/vector/debug/assign2_neg.cc: Likewise.
705 * testsuite/23_containers/vector/debug/assign3_neg.cc: Likewise.
706 * testsuite/23_containers/vector/debug/construct1_neg.cc: Likewise.
707 * testsuite/23_containers/vector/debug/construct2_neg.cc: Likewise.
708 * testsuite/23_containers/vector/debug/construct3_neg.cc: Likewise.
709 * testsuite/23_containers/vector/debug/insert1_neg.cc: Likewise.
710 * testsuite/23_containers/vector/debug/insert2_neg.cc: Likewise.
711 * testsuite/23_containers/vector/debug/insert3_neg.cc: Likewise.
712 * testsuite/23_containers/vector/debug/insert5_neg.cc: Likewise.
713 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Likewise.
714 * testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
716 * testsuite/25_algorithms/pop_heap/empty2_neg.cc: Likewise.
717 * testsuite/25_algorithms/pop_heap/empty_neg.cc: Likewise.
718 * testsuite/27_io/objects/char/12048-5.cc: Likewise.
719 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Likewise.
720 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
722 2016-09-13 Ville Voutilainen <ville.voutilainen@gmail.com>
724 Implement P0040R3, Extending memory management tools.
725 * include/bits/stl_uninitialized.h (utility): New include
727 (uninitialized_default_construct): New.
728 (uninitialized_default_construct_n): Likewise.
729 (uninitialized_value_construct): Likewise.
730 (uninitialized_value_construct_n): Likewise.
731 (uninitialized_move): Likewise.
732 (uninitialized_move_n): Likewise.
733 (destroy_at, destroy, destroy_n): Likewise.
734 * testsuite/20_util/specialized_algorithms/memory_management_tools/
737 2016-09-12 Jason Merrill <jason@redhat.com>
739 * config/abi/pre/gnu.ver: Use [jmy] for size_t.
741 2016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
743 Implement P0253R1, Fixing a design mistake in the searchers
744 interface in Library Fundamentals.
745 * include/std/functional: (utility): New include in C++17 mode.
746 (default_searcher): Use a pair as return type, adjust the definition.
747 (boyer_moore_searcher): Likewise.
748 (boyer_moore_horspool_searcher): Likewise.
749 * testsuite/20_util/function_objects/searchers.cc: Adjust.
751 2016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
753 Implement C++17 string searchers.
754 * include/std/functional: (unordered_map, vector): New includes
756 (array, bits/stl_algo.h): Likewise.
757 (default_searcher, __boyer_moore_map_base): New.
758 (__boyer_moore_array_base, __is_std_equal_to): Likewise.
759 (__boyer_moore_base_t, boyer_moore_searcher): Likewise.
760 (boyer_moore_horspool_searcher, make_default_searcher): Likewise.
761 (make_boyer_moore_searcher): Likewise.
762 (make_boyer_moore_horspool_searcher): Likewise.
763 * testsuite/20_util/function_objects/searchers.cc: New.
765 2016-09-12 Matthew Wahab <matthew.wahab@arm.com>
767 * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
768 Move dg-do directive before dg-require.
769 * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc: Likewise.
770 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
772 * testsuite/22_locale/codecvt/utf8.cc: Likewise.
773 * testsuite/22_locale/locale/cons/unicode.cc: Likewise.
774 * testsuite/23_containers/deque/debug/assign1_neg.cc: Likewise.
775 * testsuite/23_containers/deque/debug/assign2_neg.cc: Likewise.
776 * testsuite/23_containers/deque/debug/assign3_neg.cc: Likewise.
777 * testsuite/23_containers/deque/debug/construct1_neg.cc: Likewise.
778 * testsuite/23_containers/deque/debug/construct2_neg.cc: Likewise.
779 * testsuite/23_containers/deque/debug/construct3_neg.cc: Likewise.
780 * testsuite/23_containers/deque/debug/insert1_neg.cc: Likewise.
781 * testsuite/23_containers/deque/debug/insert2_neg.cc: Likewise.
782 * testsuite/23_containers/deque/debug/insert3_neg.cc: Likewise.
783 * testsuite/23_containers/deque/debug/insert5_neg.cc: Likewise.
784 * testsuite/23_containers/deque/debug/iterator_self_move_assign_neg.cc:
786 * testsuite/23_containers/deque/debug/self_move_assign_neg.cc:
788 * testsuite/23_containers/deque/debug/shrink_to_fit.cc: Likewise.
789 * testsuite/23_containers/forward_list/debug/60499.cc: Likewise.
790 * testsuite/23_containers/forward_list/debug/construct1_neg.cc:
792 * testsuite/23_containers/forward_list/debug/construct2_neg.cc:
794 * testsuite/23_containers/forward_list/debug/construct3_neg.cc:
796 * testsuite/23_containers/forward_list/debug/erase_after1_neg.cc:
798 * testsuite/23_containers/forward_list/debug/erase_after2_neg.cc:
800 * testsuite/23_containers/forward_list/debug/erase_after3_neg.cc:
802 * testsuite/23_containers/forward_list/debug/erase_after4_neg.cc:
804 * testsuite/23_containers/forward_list/debug/erase_after5_neg.cc:
806 * testsuite/23_containers/forward_list/debug/erase_after6_neg.cc:
808 * testsuite/23_containers/forward_list/debug/erase_after7_neg.cc:
810 * testsuite/23_containers/forward_list/debug/erase_after8_neg.cc:
812 * testsuite/23_containers/forward_list/debug/erase_after9_neg.cc:
814 * testsuite/23_containers/forward_list/debug/insert_after1_neg.cc:
816 * testsuite/23_containers/forward_list/debug/insert_after2_neg.cc:
818 * testsuite/23_containers/forward_list/debug/insert_after3_neg.cc:
820 * testsuite/23_containers/forward_list/debug/insert_after4_neg.cc:
822 * testsuite/23_containers/forward_list/debug/
823 iterator_self_move_assign_neg.cc: Likewise.
824 * testsuite/23_containers/forward_list/debug/self_move_assign_neg.cc:
826 * testsuite/23_containers/forward_list/debug/splice_after1_neg.cc:
828 * testsuite/23_containers/forward_list/debug/splice_after2_neg.cc:
830 * testsuite/23_containers/forward_list/debug/splice_after3_neg.cc:
832 * testsuite/23_containers/forward_list/debug/splice_after4_neg.cc:
834 * testsuite/23_containers/forward_list/debug/splice_after5_neg.cc:
836 * testsuite/23_containers/forward_list/debug/splice_after6_neg.cc:
838 * testsuite/23_containers/forward_list/debug/splice_after7_neg.cc:
840 * testsuite/23_containers/list/debug/assign1_neg.cc: Likewise.
841 * testsuite/23_containers/list/debug/assign2_neg.cc: Likewise.
842 * testsuite/23_containers/list/debug/assign3_neg.cc: Likewise.
843 * testsuite/23_containers/list/debug/construct1_neg.cc: Likewise.
844 * testsuite/23_containers/list/debug/construct2_neg.cc: Likewise.
845 * testsuite/23_containers/list/debug/construct3_neg.cc: Likewise.
846 * testsuite/23_containers/list/debug/insert1_neg.cc: Likewise.
847 * testsuite/23_containers/list/debug/insert2_neg.cc: Likewise.
848 * testsuite/23_containers/list/debug/insert3_neg.cc: Likewise.
849 * testsuite/23_containers/list/debug/insert5_neg.cc: Likewise.
850 * testsuite/23_containers/list/debug/iterator_self_move_assign_neg.cc:
852 * testsuite/23_containers/list/debug/self_move_assign_neg.cc: Likewise.
853 * testsuite/23_containers/map/debug/60499.cc: Likewise.
854 * testsuite/23_containers/map/debug/construct1_neg.cc: Likewise.
855 * testsuite/23_containers/map/debug/construct2_neg.cc: Likewise.
856 * testsuite/23_containers/map/debug/construct3_neg.cc: Likewise.
857 * testsuite/23_containers/map/debug/insert1_neg.cc: Likewise.
858 * testsuite/23_containers/map/debug/insert2_neg.cc: Likewise.
859 * testsuite/23_containers/map/debug/insert3_neg.cc: Likewise.
860 * testsuite/23_containers/map/debug/iterator_self_move_assign_neg.cc:
862 * testsuite/23_containers/map/debug/self_move_assign_neg.cc: Likewise.
863 * testsuite/23_containers/multimap/debug/60499.cc: Likewise.
864 * testsuite/23_containers/multimap/debug/construct1_neg.cc: Likewise.
865 * testsuite/23_containers/multimap/debug/construct2_neg.cc: Likewise.
866 * testsuite/23_containers/multimap/debug/construct3_neg.cc: Likewise.
867 * testsuite/23_containers/multimap/debug/insert1_neg.cc: Likewise.
868 * testsuite/23_containers/multimap/debug/insert2_neg.cc: Likewise.
869 * testsuite/23_containers/multimap/debug/insert3_neg.cc: Likewise.
870 * testsuite/23_containers/multimap/debug/
871 iterator_self_move_assign_neg.cc: Likewise.
872 * testsuite/23_containers/multimap/debug/self_move_assign_neg.cc:
874 * testsuite/23_containers/multiset/debug/60499.cc: Likewise.
875 * testsuite/23_containers/multiset/debug/construct1_neg.cc: Likewise.
876 * testsuite/23_containers/multiset/debug/construct2_neg.cc: Likewise.
877 * testsuite/23_containers/multiset/debug/construct3_neg.cc: Likewise.
878 * testsuite/23_containers/multiset/debug/insert1_neg.cc: Likewise.
879 * testsuite/23_containers/multiset/debug/insert2_neg.cc: Likewise.
880 * testsuite/23_containers/multiset/debug/insert3_neg.cc: Likewise.
881 * testsuite/23_containers/multiset/debug/
882 iterator_self_move_assign_neg.cc: Likewise.
883 * testsuite/23_containers/multiset/debug/self_move_assign_neg.cc:
885 * testsuite/23_containers/set/debug/60499.cc: Likewise.
886 * testsuite/23_containers/set/debug/construct1_neg.cc: Likewise.
887 * testsuite/23_containers/set/debug/construct2_neg.cc: Likewise.
888 * testsuite/23_containers/set/debug/construct3_neg.cc: Likewise.
889 * testsuite/23_containers/set/debug/insert1_neg.cc: Likewise.
890 * testsuite/23_containers/set/debug/insert2_neg.cc: Likewise.
891 * testsuite/23_containers/set/debug/insert3_neg.cc: Likewise.
892 * testsuite/23_containers/set/debug/iterator_self_move_assign_neg.cc:
894 * testsuite/23_containers/set/debug/self_move_assign_neg.cc: Likewise.
895 * testsuite/23_containers/unordered_map/debug/60499.cc: Likewise.
896 * testsuite/23_containers/unordered_map/debug/begin1_neg.cc: Likewise.
897 * testsuite/23_containers/unordered_map/debug/begin2_neg.cc: Likewise.
898 * testsuite/23_containers/unordered_map/debug/bucket_size_neg.cc:
900 * testsuite/23_containers/unordered_map/debug/cbegin_neg.cc: Likewise.
901 * testsuite/23_containers/unordered_map/debug/cend_neg.cc: Likewise.
902 * testsuite/23_containers/unordered_map/debug/construct1_neg.cc:
904 * testsuite/23_containers/unordered_map/debug/construct2_neg.cc:
906 * testsuite/23_containers/unordered_map/debug/construct3_neg.cc:
908 * testsuite/23_containers/unordered_map/debug/end1_neg.cc: Likewise.
909 * testsuite/23_containers/unordered_map/debug/end2_neg.cc: Likewise.
910 * testsuite/23_containers/unordered_map/debug/insert1_neg.cc: Likewise.
911 * testsuite/23_containers/unordered_map/debug/insert2_neg.cc: Likewise.
912 * testsuite/23_containers/unordered_map/debug/insert3_neg.cc: Likewise.
913 * testsuite/23_containers/unordered_map/debug/
914 invalid_local_iterator_compare_neg.cc: Likewise.
915 * testsuite/23_containers/unordered_map/debug/
916 invalid_local_iterator_range_neg.cc: Likewise.
917 * testsuite/23_containers/unordered_map/debug/
918 iterator_self_move_assign_neg.cc: Likewise.
919 * testsuite/23_containers/unordered_map/debug/max_load_factor_neg.cc:
921 * testsuite/23_containers/unordered_map/debug/self_move_assign_neg.cc:
923 * testsuite/23_containers/unordered_map/debug/
924 use_erased_local_iterator_neg.cc: Likewise.
925 * testsuite/23_containers/unordered_map/debug/
926 use_invalid_iterator_neg.cc: Likewise.
927 * testsuite/23_containers/unordered_map/debug/
928 use_invalid_local_iterator_neg.cc: Likewise.
929 * testsuite/23_containers/unordered_multimap/debug/60499.cc: Likewise.
930 * testsuite/23_containers/unordered_multimap/debug/begin1_neg.cc:
932 * testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc:
934 * testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc:
936 * testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc:
938 * testsuite/23_containers/unordered_multimap/debug/cend_neg.cc:
940 * testsuite/23_containers/unordered_multimap/debug/construct1_neg.cc:
942 * testsuite/23_containers/unordered_multimap/debug/construct2_neg.cc:
944 * testsuite/23_containers/unordered_multimap/debug/construct3_neg.cc:
946 * testsuite/23_containers/unordered_multimap/debug/end1_neg.cc:
948 * testsuite/23_containers/unordered_multimap/debug/end2_neg.cc:
950 * testsuite/23_containers/unordered_multimap/debug/insert1_neg.cc:
952 * testsuite/23_containers/unordered_multimap/debug/insert2_neg.cc:
954 * testsuite/23_containers/unordered_multimap/debug/insert3_neg.cc:
956 * testsuite/23_containers/unordered_multimap/debug/
957 invalid_local_iterator_compare_neg.cc: Likewise.
958 * testsuite/23_containers/unordered_multimap/debug/
959 invalid_local_iterator_range_neg.cc: Likewise.
960 * testsuite/23_containers/unordered_multimap/debug/
961 iterator_self_move_assign_neg.cc: Likewise.
962 * testsuite/23_containers/unordered_multimap/debug/
963 max_load_factor_neg.cc: Likewise.
964 * testsuite/23_containers/unordered_multimap/debug/
965 self_move_assign_neg.cc: Likewise.
966 * testsuite/23_containers/unordered_multimap/debug/
967 use_erased_local_iterator_neg.cc: Likewise.
968 * testsuite/23_containers/unordered_multimap/debug/
969 use_invalid_iterator_neg.cc: Likewise.
970 * testsuite/23_containers/unordered_multimap/debug/
971 use_invalid_local_iterator_neg.cc: Likewise.
972 * testsuite/23_containers/unordered_multiset/debug/60499.cc:
974 * testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc:
976 * testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc:
978 * testsuite/23_containers/unordered_multiset/debug/bucket_size_neg.cc:
980 * testsuite/23_containers/unordered_multiset/debug/cbegin_neg.cc:
982 * testsuite/23_containers/unordered_multiset/debug/cend_neg.cc:
984 * testsuite/23_containers/unordered_multiset/debug/construct1_neg.cc:
986 * testsuite/23_containers/unordered_multiset/debug/construct2_neg.cc:
988 * testsuite/23_containers/unordered_multiset/debug/construct3_neg.cc:
990 * testsuite/23_containers/unordered_multiset/debug/end1_neg.cc:
992 * testsuite/23_containers/unordered_multiset/debug/end2_neg.cc:
994 * testsuite/23_containers/unordered_multiset/debug/insert1_neg.cc:
996 * testsuite/23_containers/unordered_multiset/debug/insert2_neg.cc:
998 * testsuite/23_containers/unordered_multiset/debug/insert3_neg.cc:
1000 * testsuite/23_containers/unordered_multiset/debug/
1001 invalid_local_iterator_compare_neg.cc: Likewise.
1002 * testsuite/23_containers/unordered_multiset/debug/
1003 invalid_local_iterator_range_neg.cc: Likewise.
1004 * testsuite/23_containers/unordered_multiset/debug/
1005 iterator_self_move_assign_neg.cc: Likewise.
1006 * testsuite/23_containers/unordered_multiset/debug/
1007 max_load_factor_neg.cc: Likewise.
1008 * testsuite/23_containers/unordered_multiset/debug/
1009 self_move_assign_neg.cc: Likewise.
1010 * testsuite/23_containers/unordered_multiset/debug/
1011 use_erased_local_iterator_neg.cc: Likewise.
1012 * testsuite/23_containers/unordered_multiset/debug/
1013 use_invalid_iterator_neg.cc: Likewise.
1014 * testsuite/23_containers/unordered_multiset/debug/
1015 use_invalid_local_iterator_neg.cc: Likewise.
1016 * testsuite/23_containers/unordered_set/debug/60499.cc: Likewise.
1017 * testsuite/23_containers/unordered_set/debug/begin1_neg.cc: Likewise.
1018 * testsuite/23_containers/unordered_set/debug/begin2_neg.cc: Likewise.
1019 * testsuite/23_containers/unordered_set/debug/bucket_size_neg.cc:
1021 * testsuite/23_containers/unordered_set/debug/cbegin_neg.cc: Likewise.
1022 * testsuite/23_containers/unordered_set/debug/cend_neg.cc: Likewise.
1023 * testsuite/23_containers/unordered_set/debug/construct1_neg.cc:
1025 * testsuite/23_containers/unordered_set/debug/construct2_neg.cc:
1027 * testsuite/23_containers/unordered_set/debug/construct3_neg.cc:
1029 * testsuite/23_containers/unordered_set/debug/end1_neg.cc: Likewise.
1030 * testsuite/23_containers/unordered_set/debug/end2_neg.cc: Likewise.
1031 * testsuite/23_containers/unordered_set/debug/insert1_neg.cc: Likewise.
1032 * testsuite/23_containers/unordered_set/debug/insert2_neg.cc: Likewise.
1033 * testsuite/23_containers/unordered_set/debug/insert3_neg.cc: Likewise.
1034 * testsuite/23_containers/unordered_set/debug/
1035 invalid_local_iterator_compare_neg.cc: Likewise.
1036 * testsuite/23_containers/unordered_set/debug/
1037 invalid_local_iterator_range_neg.cc: Likewise.
1038 * testsuite/23_containers/unordered_set/debug/
1039 iterator_self_move_assign_neg.cc: Likewise.
1040 * testsuite/23_containers/unordered_set/debug/
1041 max_load_factor_neg.cc: Likewise.
1042 * testsuite/23_containers/unordered_set/debug/
1043 self_move_assign_neg.cc: Likewise.
1044 * testsuite/23_containers/unordered_set/debug/
1045 use_erased_local_iterator_neg.cc: Likewise.
1046 * testsuite/23_containers/unordered_set/debug/
1047 use_invalid_iterator_neg.cc: Likewise.
1048 * testsuite/23_containers/unordered_set/debug/
1049 use_invalid_local_iterator_neg.cc: Likewise.
1050 * testsuite/23_containers/vector/debug/52433.cc: Likewise.
1051 * testsuite/23_containers/vector/debug/60499.cc: Likewise.
1052 * testsuite/23_containers/vector/debug/bool/shrink_to_fit.cc: Likewise.
1053 * testsuite/23_containers/vector/debug/
1054 iterator_self_move_assign_neg.cc: Likewise.
1055 * testsuite/23_containers/vector/debug/self_move_assign_neg.cc:
1057 * testsuite/23_containers/vector/debug/shrink_to_fit.cc: Likewise.
1058 * testsuite/25_algorithms/pop_heap/complexity.cc: Likewise.
1059 * testsuite/25_algorithms/push_heap/complexity.cc: Likewise.
1060 * testsuite/25_algorithms/sort_heap/complexity.cc: Likewise.
1061 * testsuite/29_atomics/atomic/60658.cc: Likewise.
1062 * testsuite/29_atomics/atomic/60695.cc: Likewise.
1063 * testsuite/29_atomics/atomic/62259.cc: Likewise.
1064 * testsuite/29_atomics/atomic/64658.cc: Likewise.
1065 * testsuite/29_atomics/atomic/cons/49445.cc: Likewise.
1066 * testsuite/29_atomics/atomic/operators/51811.cc: Likewise.
1067 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
1070 2016-09-11 Jonathan Wakely <jwakely@redhat.com>
1072 * libsupc++/new_opant.cc: Include exception_defines.h.
1073 * libsupc++/new_opvant.cc: Likewise.
1075 2016-09-09 Jason Merrill <jason@redhat.com>
1077 Implement P0035R4, C++17 new of over-aligned types.
1078 * libsupc++/new: Declare aligned new/delete operators.
1079 * config/abi/pre/gnu.ver: Export them.
1080 * configure.ac: Check for aligned_alloc, posix_memalign, memalign,
1082 * libsupc++/new_opa.cc: New.
1083 * libsupc++/new_opant.cc: New.
1084 * libsupc++/new_opva.cc: New.
1085 * libsupc++/new_opva.cc: New.
1086 * libsupc++/del_opa.cc: New.
1087 * libsupc++/del_opant.cc: New.
1088 * libsupc++/del_opsa.cc: New.
1089 * libsupc++/del_opva.cc: New.
1090 * libsupc++/del_opvant.cc: New.
1091 * libsupc++/del_opvsa.cc: New.
1092 * libsupc++/Makefile.am: Build them.
1094 2016-09-05 Tim Shen <timshen@google.com>
1096 * include/std/variant: include bits/move.h for std::addressof.
1098 2016-09-05 Mikhail Strelnikov <mikhail.strelnikov@gmail.com>
1100 * include/std/variant (_Variant_storage::_M_storage()): Use
1101 std::addressof instead of operator& to take address.
1103 2016-09-02 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
1105 * acinclude.m4 (GLIBCXX_CONFIGURE_TESTSUITE): Check for presence of
1106 setrlimit on both native and cross targets.
1107 * configure: Regenerate.
1109 2016-08-31 Jonathan Wakely <jwakely@redhat.com>
1111 * include/bits/shared_ptr.h (_Assignable): New alias template.
1112 (shared_ptr::operator=(const shared_ptr<_Tp1>&))
1113 (shared_ptr::operator=(shared_ptr<_Tp1>&&))
1114 (shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
1116 * include/bits/shared_ptr_base.h (_Assignable): New alias template.
1117 (__shared_ptr::operator=(const __shared_ptr<_Tp1>&))
1118 (__shared_ptr::operator=(__shared_ptr<_Tp1>&&))
1119 (__shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
1121 (__shared_ptr::reset(_Tp1*), __shared_ptr::reset(_Tp1*, _Deleter))
1122 (__shared_ptr::reset(_Tp1*, _Deleter, _Alloc)): Constrain with
1124 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Change dg-error to
1126 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
1127 * testsuite/20_util/shared_ptr/assign/sfinae.cc: New test.
1128 * testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc: Update
1129 expected errors. Remove unnecessary code.
1130 * testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc: New test.
1132 * include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Move
1134 * testsuite/23_containers/set/move_comparison.cc: New test.
1136 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
1139 2016-08-30 Ville Voutilainen <ville.voutilainen@gmail.com>
1142 * include/std/type_traits (is_constructible): Forward-declare...
1143 (__is_base_to_derived_ref): ...and use here.
1144 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
1145 * testsuite/20_util/is_constructible/77395.cc: New.
1146 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust.
1147 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1149 * testsuite/20_util/tuple/77395.cc: New.
1151 2016-08-30 Uros Bizjak <ubizjak@gmail.com>
1153 * testsuite/22_locale/time_get/get/char/2.cc: Move dg-do run
1154 directive above dg-require-namedlocale directive.
1155 * testsuite/22_locale/time_get/get/wchar_t/2.cc: Ditto.
1156 * testsuite/27_io/manipulators/extended/get_time/char/2.cc: Ditto.
1157 * testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc: Ditto.
1158 * testsuite/27_io/manipulators/extended/put_time/char/2.cc: Ditto.
1159 * testsuite/27_io/manipulators/extended/put_time/wchar_t/2.cc: Ditto.
1161 2016-08-27 Tim Shen <timshen@google.com>
1164 * include/bits/regex_compiler.tcc(_M_insert_bracket_matcher,
1165 _M_expression_term): Modify to support dash literal.
1166 * include/bits/regex_scanner.h: Add dash as a token type to make
1167 a different from the mandated dash literal by escaping.
1168 * include/bits/regex_scanner.tcc(_M_scan_in_bracket): Emit dash
1169 token in bracket expression parsing.
1170 * testsuite/28_regex/regression.cc: Add new testcases.
1172 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
1175 * doc/xml/manual/intro.xml: Document DR 2127 change.
1176 * doc/html/*: Regenerate.
1177 * include/bits/stl_raw_storage_iter.h (operator=(_Tp&&)): Add.
1178 (operator++(), operator++(int)): Use injected class name.
1179 * testsuite/20_util/raw_storage_iterator/dr2127.cc: New test.
1181 * testsuite/*: Use { target c++11 } or { target c++14 } instead of
1182 using -std in dg-options.
1184 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
1185 Pedro Alves <palves@redhat.com>
1187 * testsuite/lib/gdb-test.exp (gdb-dg-runtest): Define wrapper to save
1188 and restore dg-interpreter-batch-mode.
1189 * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Use
1190 gdb-dg-runtest instead of dg-runtest.
1191 * testsuite/libstdc++-xmethods/xmethods.exp: Likewise.
1193 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
1195 * config/abi/pre/gnu.ver (GLIBCXX_3.4, GLIBCXX_3.4.21): Use more
1196 precise patterns for basic_string constructors.
1197 (GLIBCXX_3.4.23): Export new constructors.
1198 * doc/xml/manual/intro.xml: Document LWG 2583 status.
1199 * doc/html/*: Regenerate.
1200 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1201 (basic_string(const basic_string&, size_type, const Alloc&)): Add
1202 new constructor for LWG 2583.
1203 (basic_string(const basic_string&, size_type, size_type)): Remove
1205 [!_GLIBCXX_USE_CXX11_ABI]: Likewise.
1206 * include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]: Define it.
1207 * testsuite/21_strings/basic_string/cons/char/8.cc: New test.
1208 * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: New test.
1210 2016-08-24 Aditya Kumar <hiraditya@msn.com>
1212 * include/bits/algorithmfwd.h: Remove trailing whitespace.
1213 * include/bits/shared_ptr_base.h: Likewise.
1215 2016-08-23 Jonathan Wakely <jwakely@redhat.com>
1217 * include/debug/array (array): Add _GLIBCXX17_CONSTEXPR.
1218 * include/profile/array (array): Likewise.
1219 (array::swap): Fix exception specification for zero-sized arrays.
1222 * include/bits/stl_tree.h (_Rb_tree::_M_move_assign): New functions.
1223 (_Rb_tree::operator=(_Rb_tree&&)): Dispatch to _M_move_assign.
1224 * testsuite/23_containers/map/77334.cc: New test.
1226 * doc/xml/manual/using.xml: Remove reference to -pthreads option.
1227 * doc/html/*: Regenerate.
1229 * testsuite/experimental/feat-cxx14.cc: Only preprocess, not compile.
1230 * testsuite/experimental/feat-lib-fund.cc: Likewise.
1233 * include/bits/stl_iterator.h
1234 (operator-(reverse_iterator<Iter>, reverse_iterator<Iter>): Only
1235 define for C++98 mode.
1236 (operator-(move_iterator<Iter>, move_iterator<Iter>): Don't define.
1237 * testsuite/24_iterators/headers/iterator/synopsis.cc: Use
1239 * testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: New test.
1240 * testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: New test.
1241 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: New test.
1242 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Don't test
1243 difference operator.
1244 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc: Only test
1245 difference operator for C++98.
1246 * testsuite/24_iterators/reverse_iterator/71771.cc: New test.
1248 * include/bits/c++config (_GLIBCXX17_CONSTEXPR): Define.
1249 * include/bits/range_access.h (begin, end, rbegin, rend, crbegin)
1250 (crend): Add _GLIBCXX17_CONSTEXPR as per P0031R0.
1251 * include/bits/stl_iterator.h (reverse_iterator, move_iterator)
1252 (__make_reverse_iterator, make_reverse_iterator, make_move_iterator):
1254 * include/bits/stl_iterator_base_funcs.h (__distance, __advance): Add
1255 _GLIBCXX14_CONSTEXPR.
1256 (distance, advance, next, prev): Add _GLIBCXX17_CONSTEXPR.
1257 * include/std/array (array::begin, array::end, array::rbegin)
1258 (array::rend, array::cbegin, array:cend, array::crbegin)
1259 (array::crend, array::operator[], array::at, array::front)
1260 (array::back, array::data): Likewise.
1261 * testsuite/24_iterators/headers/iterator/range_access.cc: Replace
1262 with separate tests for C++11, C++14, and C++17.
1263 * testsuite/24_iterators/headers/iterator/range_access_c++11.cc: New.
1264 * testsuite/24_iterators/headers/iterator/range_access_c++14.cc: New.
1265 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc: New.
1267 2016-08-22 Tim Shen <timshen@google.com>
1269 Split _M_dfs() into smaller functions.
1270 * regex_executor.h(_M_handle_repeat, _M_handle_subexpr_begin)
1271 (_M_handle_subexpr_end, _M_handle_line_begin_assertion)
1272 (_M_handle_line_end_assertion, _M_handle_word_boundary)
1273 (_M_handle_subexpr_lookahead, _M_handle_match)
1274 (_M_handle_backref, _M_handle_accept, _M_handle_alternative):
1275 Add separate function declarations.
1276 * regex_executor.tcc: Split _M_dfs() into multiple handler functions.
1278 2016-08-22 Gleb Natapov <gleb@scylladb.com>
1281 * config/abi/pre/gnu-versioned-namespace.ver: Export
1282 __cxa_init_primary_exception and std::exception_ptr(void*).
1283 * config/abi/pre/gnu.ver (CXXABI_1.3.11) : Add new symbol version and
1284 export __cxa_init_primary_exception and std::exception_ptr(void*).
1285 * include/Makefile.am: Add new headers.
1286 * include/Makefile.in: Regenerate.
1287 * libsupc++/Makefile.am: Add new headers.
1288 * libsupc++/Makefile.in: Regenerate.
1289 * libsupc++/cxxabi.h (__cxa_allocate_exception): Move to ...
1290 * libsupc++/cxxabi_init_exception.h: New header.
1291 (__cxa_init_primary_exception): Declare.
1292 * libsupc++/eh_throw.cc (__cxa_init_primary_exception): Define.
1293 (__cxa_throw): Use __cxa_init_primary_exception.
1294 * libsupc++/exception (std::exception): Move to ...
1295 * libsupc++/exception.h: New header.
1296 * libsupc++/exception_ptr.h (__exception_ptr::exception_ptr): Add
1298 (__exception_ptr::__dest_thunk): New function template.
1299 (std::make_exception_ptr) [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]:
1300 Use __cxa_allocate_exception and __cxa_init_primary_exception to
1301 create exception_ptr.
1302 * libsupc++/typeinfo: Include bits/exception.h instead of exception.
1303 * testsuite/util/testsuite_abi.cc: Add CXXABI_1.3.11 version.
1305 2016-08-22 Jonathan Wakely <jwakely@redhat.com>
1307 * doc/xml/api.xml: Replace hardcoded links for specific versions with
1308 link to docs for all releases.
1309 * doc/html/*: Regenerate.
1312 * doc/xml/manual/intro.xml: Document DR 2062 change.
1313 * include/std/functional (function::swap): Add noexcept.
1314 (swap(function<Res(Args...)&, function<Res(Args...)&)): Likewise.
1315 * testsuite/20_util/function/77322.cc: New test.
1317 2016-08-19 Jonathan Wakely <jwakely@redhat.com>
1319 * testsuite/21_strings/basic_string/pthread18185.cc: Use -pthread for
1320 *-*-solaris* instead of -pthreads.
1321 * testsuite/21_strings/basic_string/pthread4.cc : Likewise.
1322 * testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
1323 * testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
1324 * testsuite/23_containers/list/pthread1.cc: Likewise.
1325 * testsuite/23_containers/list/pthread5.cc: Likewise.
1326 * testsuite/23_containers/map/pthread6.cc: Likewise.
1327 * testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
1328 * testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
1329 * testsuite/30_threads/shared_mutex/*: Likewise.
1330 * testsuite/ext/rope/pthread7-rope.cc: Likewise.
1331 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
1332 default_weaktoshared.cc: Likewise.
1333 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
1334 mutex_weaktoshared.cc: Likewise.
1335 * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise. Use
1336 dg-require-effective-target instead of using -std option.
1337 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
1339 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
1340 * testsuite/23_containers/vector/debug/multithreaded_swap.cc:
1342 * testsuite/30_threads/async/*: Likewise.
1343 * testsuite/30_threads/call_once/*: Likewise.
1344 * testsuite/30_threads/condition_variable/*: Likewise.
1345 * testsuite/30_threads/condition_variable_any/*: Likewise.
1346 * testsuite/30_threads/future/*: Likewise.
1347 * testsuite/30_threads/lock/*: Likewise.
1348 * testsuite/30_threads/mutex/*: Likewise.
1349 * testsuite/30_threads/packaged_task/*: Likewise.
1350 * testsuite/30_threads/promise/*: Likewise.
1351 * testsuite/30_threads/recursive_mutex/*: Likewise.
1352 * testsuite/30_threads/recursive_timed_mutex/*: Likewise.
1353 * testsuite/30_threads/shared_future/*: Likewise.
1354 * testsuite/30_threads/shared_lock/*: Likewise.
1355 * testsuite/30_threads/shared_timed_mutex/*: Likewise.
1356 * testsuite/30_threads/this_thread/*: Likewise.
1357 * testsuite/30_threads/thread/*: Likewise.
1358 * testsuite/30_threads/timed_mutex/*: Likewise.
1359 * testsuite/30_threads/try_lock/*: Likewise.
1360 * testsuite/30_threads/unique_lock/*: Likewise.
1362 * doc/xml/manual/status_cxx2017.xml: Update status of not_fn.
1363 * doc/html/*: Regenerate.
1364 * include/experimental/functional (_Not_fn, not_fn): Match C++17
1366 * include/std/functional (_Not_fn, not_fn): Define for C++17.
1367 * testsuite/20_util/not_fn/1.cc: New.
1368 * testsuite/experimental/functional/not_fn.cc: Test abstract class.
1369 Remove test for volatile-qualified wrapper.
1371 * include/std/atomic (atomic::is_always_lock_free): Define.
1372 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
1373 * testsuite/29_atomics/atomic/is_always_lock_free.cc: New.
1374 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc: New.
1375 * doc/xml/manual/status_cxx2017.xml: Update status.
1376 * doc/html/*: Regenerate.
1378 * include/experimental/tuple (apply): Qualify call to __apply_impl.
1379 * include/std/tuple (apply): Likewise.
1380 * testsuite/experimental/system_error/value.cc: Fix ambiguities in
1382 * testsuite/experimental/tuple/tuple_size.cc: Likewise.
1383 * testsuite/experimental/type_traits/value.cc: Likewise.
1385 * doc/xml/manual/status_cxx2017.xml: Update status of make_from_tuple
1387 * doc/html/*: Regenerate.
1389 2016-08-18 Ville Voutilainen <ville.voutilainen@gmail.com>
1391 Implement the latest proposed resolution of LWG 2756.
1392 * include/std/optional (Optional_base(const _Tp&))
1393 (Optional_base(_Tp&&), using _Base::_Base): Remove.
1394 (optional(nullopt_t)): New.
1395 (optional(_Up&&)): Invoke base directly with in_place
1396 rather than creating a temporary, add default template
1397 argument, change constraints.
1398 (optional(const optional<_Up>&)): Invoke base directly
1399 with in_place, remove unnecessary constraints.
1400 (optional(optional<_Up>&& __t)): Likewise.
1401 (optional(in_place_t, _Args&&...)): New.
1402 (optional(in_place_t, initializer_list<_Up>, _Args&&...)): Likewise.
1403 (operator=(_Up&&)): Add default template argument, change constraints.
1404 (operator=(const optional<_Up>&)): Put is_same first in the
1406 (operator=(optional<_Up>&&)): Likewise.
1407 * testsuite/20_util/optional/assignment/5.cc: Add a test to
1408 verify assignment from something that can't be perfect-forwarded.
1409 * testsuite/20_util/optional/cons/value.cc: Add tests to verify
1410 that a nested optional is disengaged when constructed
1411 from a disengaged element type, and to verify that assignments
1412 from an engaged element type engage the optional.
1414 2016-08-18 Tim Shen <timshen@google.com>
1418 * include/Makefile.am: Add new file std/variant.
1419 * include/Makefile.in: Generated from Makefile.am.
1420 * include/bits/enable_special_members.h: Add a tag type to allow
1421 the construction in non-default constructor.
1422 * include/bits/uses_allocator.h: Add convenience traits to
1423 detect constructibility.
1424 * include/std/variant: Implement <variant>.
1425 * testsuite/20_util/variant/compile.cc: Compile-time tests.
1426 * testsuite/20_util/variant/run.cc: Runtime tests.
1428 2016-08-18 Jonathan Wakely <jwakely@redhat.com>
1430 * doc/xml/manual/test.xml (test.run.permutations): Expand section.
1431 (test.new_tests): Rewrite section.
1432 (tests.dg.directives): New section.
1433 * doc/html/*: Regenerate.
1435 * doc/xml/manual/test.xml: Improve documentation of test targets.
1436 Document new-abi-baseline, check-debug, and check-parallel targets.
1438 * doc/xml/manual/build_hacking.xml: New section on shared library
1441 * doc/xml/manual/build_hacking.xml: Improve markup.
1442 * doc/xml/manual/test.xml: Likewise. Change section title from "Test"
1444 * doc/xml/faq.xml: Change link text to "Testing".
1446 * testsuite/tr1/3_function_objects/function/10.cc: Remove unintended
1447 dg-options directive.
1449 2016-08-17 Jonathan Wakely <jwakely@redhat.com>
1451 * testsuite/20_util/reference_wrapper/invoke-2.cc: Fix invalid dg-do
1452 directive and use effective target instead of dg-options.
1454 * testsuite/20_util/hash/chi2_q_bit_flip_set.cc: Use effective target
1455 instead of -std in dg-options.
1456 * testsuite/20_util/hash/chi2_q_bit_string_set.cc: Likewise.
1457 * testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc: Likewise.
1458 * testsuite/20_util/hash/chi2_q_uniform_random.cc: Likewise.
1459 * testsuite/20_util/hash/quality.cc: Likewise.
1460 * testsuite/25_algorithms/heap/moveable.cc: Likewise.
1461 * testsuite/25_algorithms/heap/moveable2.cc: Likewise.
1462 * testsuite/25_algorithms/nth_element/random_test.cc: Likewise.
1463 * testsuite/25_algorithms/partial_sort/random_test.cc: Likewise.
1464 * testsuite/25_algorithms/partial_sort_copy/random_test.cc: Likewise.
1465 * testsuite/25_algorithms/sort/random_test.cc: Likewise.
1467 * testsuite/20_util/tuple/67844.cc: Require c++11 effective target.
1468 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Likewise.
1469 * testsuite/27_io/rvalue_streams.cc: Likewise.
1471 * testsuite/26_numerics/complex/literals/types.cc: Add comment.
1473 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
1474 Remove duplicate dg-options directive.
1476 * testsuite/ext/profile/all.cc: Use effective target instead of
1477 -std=gnu++11. Use dg-additional-options instead of repeating options.
1479 * testsuite/20_util/bind/ref_neg.cc: Use effective target instead of
1480 -std=gnu++11. Add -fno-show-columns to dg-options. Use dg-prune-output
1481 instead of dg-excess-errors.
1483 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Disable
1485 * testsuite/experimental/chrono/value.cc: Avoid ambiguities in C++17.
1486 * testsuite/experimental/ratio/value.cc: Likewise.
1487 * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Disable test for
1489 * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
1490 * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
1491 * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
1492 * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
1493 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
1494 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
1495 * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
1496 * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
1497 * testsuite/tr1/5_numerical_facilities/special_functions/
1498 10_cyl_bessel_k/airy.cc: Adjust namespace of __detail::__airy for
1499 C++17 compatibility.
1501 * testsuite/24_iterators/headers/iterator/range_access.cc: Adjust
1502 expected signatures for C++14 compatibility.
1505 * include/bits/basic_string.h (operator=(__sv_type)
1506 (append(__sv_type), assign(__sv_type), insert(size_type, __sv_type))
1507 (replace(size_type, size_type, __sv_type))
1508 (replace(const_iterator, const_iterator, __sv_type))
1509 (find(__sv_type, size_type), rfind(__sv_type, size_type))
1510 (compare(size_type, size_type, __sv_type)): Reformat.
1511 (_If_sv): Define helper for SFINAE constaints.
1512 (append(const _Tp&, size_type, size_type))
1513 (assign(const _Tp&, size_type, size_type))
1514 (insert(size_type, const _Tp&, size_type, size_type))
1515 (replace(size_type, size_type, const _Tp&, size_type, size_type)):
1517 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc: Test
1519 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
1521 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1523 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
1525 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
1527 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
1529 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
1531 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
1533 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1535 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
1537 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
1540 2016-08-16 Jonathan Wakely <jwakely@redhat.com>
1543 * include/bits/stl_bvector.h (_Bvector_base::_M_deallocate): Zero
1544 pointers to start and end of storage.
1545 * testsuite/23_containers/vector/bool/72847.cc: New test.
1546 * include/bits/vector.tcc (vector<bool>::_M_reallocate): Only update
1547 _M_finish after deallocating.
1548 (vector<bool>::_M_fill_insert): Likewise.
1549 (vector<bool>::_M_insert_range): Likewise.
1550 (vector<bool>::_M_insert_aux): Likewise.
1552 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1554 Implement LWG 2744 and LWG 2754.
1555 * include/std/any (any(ValueType&&)): Constrain with __is_in_place_type.
1556 (any(in_place_type_t<_ValueType>, _Args&&...)): Use _Decay.
1557 (any(in_place_type_t<_ValueType>, initializer_list<_Up>, _Args&&...)):
1559 (emplace(_Args&&...)): Likewise.
1560 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
1561 * include/std/utility: (__is_in_place_type_impl): New.
1562 (__is_in_place_type): Likewise.
1563 * testsuite/20_util/any/assign/emplace.cc: Add tests for decaying
1565 * testsuite/20_util/any/cons/in_place.cc: Add tests for decaying
1566 in_place constructor.
1567 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
1568 * testsuite/20_util/any/requirements.cc: Add a test for
1569 in_place-constructing a non-default-constructible type.
1571 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1573 Add a feature macro for C++17 make_from_tuple.
1574 * include/std/tuple (__cpp_lib_make_from_tuple): New.
1575 (__make_from_tuple_impl(_Tuple&&, index_sequence<_Idx...>)):
1576 Qualify the call to get<>().
1577 * testsuite/20_util/tuple/make_from_tuple/1.cc: Adjust.
1579 2016-08-15 Uros Bizjak <ubizjak@gmail.com>
1581 * src/filesystem/ops.cc: Always include ostream and
1582 ext/stdio_filebuf.h.
1583 (do_copy_file): Check if _GLIBCXX_USE_FCHMODAT is defined.
1584 [_GLIBCXX_USE_SENDFILE]: Fallback to read/write operations in case
1585 sendfile fails with ENOSYS or EINVAL.
1587 2016-08-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
1590 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Fix dg-error
1593 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1595 Implement C++17 make_from_tuple.
1596 * include/std/tuple (__make_from_tuple_impl, make_from_tuple): New.
1597 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
1599 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1602 * include/bits/basic_string.h
1603 (append(__sv_type, size_type, size_type)): Turn into a template,
1604 change parameter type, constrain, add a conversion to __sv_type
1605 from the dependent parameter type.
1606 (assign(__sv_type, size_type, size_type)): Likewise.
1607 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
1608 (replace(size_type, size_type, __sv_type, size_type, size_type)):
1610 (compare(size_type, size_type,__sv_type, size_type, size_type)):
1612 * testsuite/21_strings/basic_string/lwg2758.cc: New.
1614 2016-08-06 Jonathan Wakely <jwakely@redhat.com>
1616 * doc/xml/manual/status_cxx2017.xml: Update status table.
1617 * doc/html/manual/status.html: Regenerate.
1619 * testsuite/lib/libstdc++.exp: Fix typo in comment.
1622 * include/std/functional (_Function_base::_Base_manager::_M_clone):
1623 Qualify new operator.
1624 * testsuite/20_util/function/cons/72820.cc: New test.
1626 * doc/xml/manual/status_cxx2017.xml: Add missing LFTSv2 features.
1627 * doc/html/manual/status.html: Regenerate.
1628 * include/Makefile.am: Add new header.
1629 * include/Makefile.in: Regenerate.
1630 * include/bits/invoke.h: New header.
1631 (__invoke): Make constexpr. Add && to types in exception specification.
1632 * include/experimental/tuple (apply, __apply_impl): Fix non-reserved
1633 names. Include <bits/invoke.h> and use std::__invoke.
1634 * include/std/functional (__invfwd, __invoke_impl, __invoke): Move to
1636 (invoke): Add && to types in exception specification.
1637 * include/std/tuple (apply, __apply_impl): Define for C++17.
1638 * testsuite/20_util/tuple/apply/1.cc: New test.
1639 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error
1642 2016-08-05 Jonathan Wakely <jwakely@redhat.com>
1644 * doc/xml/manual/status_cxx2017.xml: Correct shared_from_this status.
1645 * doc/html/manual/status.html: Regenerate.
1647 * include/std/chrono (floor, ceil, round, abs): New for C++17.
1648 * testsuite/20_util/duration_cast/rounding.cc: New test.
1649 * testsuite/20_util/time_point_cast/rounding.cc: New test.
1650 * doc/xml/manual/status_cxx2017.xml: Update status table.
1651 * doc/html/manual/status.html: Regenerate.
1652 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust
1654 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1655 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1656 * testsuite/20_util/duration/literals/range.cc: Likewise.
1658 * include/std/functional (__callable_functor): Remove.
1659 (_Function_handler::_M_invoke): Use __invoke instead of
1660 __callable_functor or mem_fn.
1661 (function::_Callable): Use lvalue in result_of expression.
1662 (function): Remove TODO comments about allocators.
1663 * testsuite/20_util/function/cons/refqual.cc: New test.
1665 2016-08-04 Jonathan Wakely <jwakely@redhat.com>
1667 * doc/xml/manual/status_cxx2017.xml: Update status table.
1668 * include/std/functional (__inv_unwrap): Move to <type_traits>.
1669 (__invoke_impl): Remove exception specifications.
1670 (__invoke, invoke): Add exception specifications using
1671 __is_nothrow_callable.
1672 * include/std/type_traits (__inv_unwrap): Move from <functional>.
1673 (__is_callable_impl, __call_is_nt, __call_is_nothrow): New helpers.
1674 (__is_callable, __is_nothrow_callable): New traits.
1675 (is_callable, is_callable_v): New C++17 traits.
1676 (is_nothrow_callable, is_nothrow_callable_v): Likewise.
1677 * testsuite/20_util/is_callable/requirements/
1678 explicit_instantiation.cc: New test.
1679 * testsuite/20_util/is_callable/requirements/
1680 explicit_instantiation_ext.cc: New test.
1681 * testsuite/20_util/is_callable/requirements/typedefs.cc: New test.
1682 * testsuite/20_util/is_callable/requirements/typedefs_ext.cc: New
1684 * testsuite/20_util/is_callable/value.cc: New test.
1685 * testsuite/20_util/is_callable/value_ext.cc: New test.
1686 * testsuite/20_util/is_nothrow_callable/requirements/
1687 explicit_instantiation.cc: New test.
1688 * testsuite/20_util/is_nothrow_callable/requirements/
1689 explicit_instantiation_ext.cc: New test.
1690 * testsuite/20_util/is_nothrow_callable/requirements/typedefs.cc:
1692 * testsuite/20_util/is_nothrow_callable/requirements/typedefs_ext.cc:
1694 * testsuite/20_util/is_nothrow_callable/value.cc: New test.
1695 * testsuite/20_util/is_nothrow_callable/value_ext.cc: New test.
1697 * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
1698 * doc/html/manual/status.html: Regenerate.
1700 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Use
1701 effective target not dg-options. Move check for feature-test macro to:
1702 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
1705 * include/std/functional (_Unwrap): Rename to __inv_unwrap.
1707 (__invoke_impl): Remove unused template parameters.
1708 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
1710 * testsuite/20_util/function_objects/invoke/ref_ext.cc: Copy 59768.cc
1711 and test __invoke extension for C++11.
1713 2016-08-03 Jonathan Wakely <jwakely@redhat.com>
1715 * include/bits/shared_ptr_base.h (__cpp_lib_enable_shared_from_this):
1716 Define feature-test macro.
1717 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Test
1720 * include/bits/shared_ptr.h (shared_ptr::weak_type): Define.
1721 * include/bits/shared_ptr_base.h (__shared_ptr::weak_type): Define.
1722 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
1723 * testsuite/20_util/shared_ptr/requirements/weak_type.cc: New test.
1724 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
1726 * include/std/utility (as_const): Define.
1727 * testsuite/20_util/as_const/1.cc: New test.
1728 * testsuite/20_util/as_const/rvalue_neg.cc: New test.
1730 * include/bits/shared_ptr.h (owner_less): Add default template
1732 * include/bits/shared_ptr_base.h (_Sp_owner_less<void, void>): Define
1734 (owner_less<void>): Define specialization.
1735 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
1737 * testsuite/20_util/owner_less/void.cc: New test.
1738 * testsuite/experimental/feat-cxx14.cc: Update macro value tested.
1740 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
1741 Define feature-test macro.
1742 * include/bits/range_access.h (__cpp_lib_array_constexpr): Likewise.
1743 * include/std/shared_mutex (__cpp_lib_shared_mutex): Uncomment.
1744 * include/std/type_traits (__cpp_lib_logical_traits): Fix value.
1745 (__cpp_lib_type_trait_variable_templates): Define.
1747 * include/bits/stl_function.h: Remove commented-out macro.
1748 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
1749 Define feature-test macro.
1750 * testsuite/experimental/feat-cxx14.cc: Add tests for more macros.
1752 * include/bits/c++config (_GLIBCXX_USE_STD_SPEC_FUNCS): Define for
1753 C++17, or for C++11/C++14 when __STDCPP_WANT_MATH_SPEC_FUNCS__ is
1755 * include/bits/specfun.h [!__STDCPP_WANT_MATH_SPEC_FUNCS__]: Don't
1756 do #error for C++17.
1757 * include/c_global/cmath: Check _GLIBCXX_USE_STD_SPEC_FUNCS instead
1758 of __STDCPP_WANT_MATH_SPEC_FUNCS__.
1759 * include/tr1/bessel_function.tcc: Likewise.
1760 * include/tr1/beta_function.tcc: Likewise.
1761 * include/tr1/cmath: Likewise.
1762 * include/tr1/ell_integral.tcc: Likewise.
1763 * include/tr1/exp_integral.tcc: Likewise.
1764 * include/tr1/gamma.tcc: Likewise.
1765 * include/tr1/hypergeometric.tcc: Likewise.
1766 * include/tr1/legendre_function.tcc: Likewise.
1767 * include/tr1/modified_bessel_func.tcc: Likewise.
1768 * include/tr1/poly_hermite.tcc: Likewise.
1769 * include/tr1/poly_laguerre.tcc: Likewise.
1770 * include/tr1/riemann_zeta.tcc: Likewise.
1771 * include/tr1/special_function_util.h: Likewise.
1772 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc: New.
1774 * include/std/type_traits (has_trivial_default_constructor): Remove.
1775 (has_trivial_copy_constructor, has_trivial_copy_assign): Likewise.
1776 * testsuite/20_util/has_trivial_copy_assign/requirements/
1777 explicit_instantiation.cc: Remove test.
1778 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
1780 * testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc:
1782 * testsuite/20_util/has_trivial_copy_assign/value.cc: Likewise.
1783 * testsuite/20_util/has_trivial_copy_constructor/requirements/
1784 explicit_instantiation.cc: Likewise.
1785 * testsuite/20_util/has_trivial_copy_constructor/requirements/
1786 typedefs.cc: Likewise.
1787 * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise.
1788 * testsuite/20_util/has_trivial_default_constructor/requirements/
1789 explicit_instantiation.cc: Likewise.
1790 * testsuite/20_util/has_trivial_default_constructor/requirements/
1791 typedefs.cc: Likewise.
1792 * testsuite/20_util/has_trivial_default_constructor/value.cc:
1794 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
1795 Check has_trivial_default_constructor, has_trivial_copy_constructor,
1796 and has_trivial_copy_assign are not defined.
1797 * testsuite/20_util/pair/requirements/dr801.cc: Remove commented out
1799 * testsuite/20_util/tuple/requirements/dr801.cc: Likewise.
1800 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
1801 dg-error line number.
1802 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1805 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
1807 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
1808 Remove reundant check for _GLIBCXX_USE_WCHAR_T and fix char type.
1809 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
1811 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
1813 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
1815 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
1817 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
1819 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
1822 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Improve
1825 * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Move
1826 dg-error to relevant line.
1827 * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc:
1829 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
1831 * scripts/testsuite_flags.in: Add -fno-show-column to cxxflags.
1833 * testsuite/18_support/bad_exception/23591_thread-1.c: Skip test if
1834 options are present that aren't valid for C.
1835 * testsuite/abi/header_cxxabi.c: Likewise.
1837 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/
1838 check_value.cc: Do not add special functions to namespace std in TR1
1841 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Only
1842 run for C++11 and later.
1843 * testsuite/ext/special_functions/conf_hyperg/check_value.cc:
1845 * testsuite/ext/special_functions/conf_hyperg/compile.cc: Likewise.
1846 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
1847 * testsuite/ext/special_functions/hyperg/check_value.cc: Likewise.
1848 * testsuite/ext/special_functions/hyperg/compile.cc: Likewise.
1849 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
1851 * testsuite/special_functions/01_assoc_laguerre/check_value.cc:
1853 * testsuite/special_functions/01_assoc_laguerre/compile.cc: Likewise.
1854 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc:
1856 * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
1858 * testsuite/special_functions/02_assoc_legendre/check_value.cc:
1860 * testsuite/special_functions/02_assoc_legendre/compile.cc: Likewise.
1861 * testsuite/special_functions/02_assoc_legendre/compile_2.cc:
1862 * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
1863 * testsuite/special_functions/03_beta/check_value.cc: Likewise.
1864 * testsuite/special_functions/03_beta/compile.cc: Likewise.
1865 * testsuite/special_functions/03_beta/compile_2.cc: Likewise.
1866 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: Likewise.
1867 * testsuite/special_functions/04_comp_ellint_1/check_value.cc:
1869 * testsuite/special_functions/04_comp_ellint_1/compile.cc: Likewise.
1870 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Likewise.
1871 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: Likewise.
1872 * testsuite/special_functions/05_comp_ellint_2/check_value.cc:
1874 * testsuite/special_functions/05_comp_ellint_2/compile.cc: Likewise.
1875 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Likewise.
1876 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: Likewise.
1877 * testsuite/special_functions/06_comp_ellint_3/check_value.cc:
1879 * testsuite/special_functions/06_comp_ellint_3/compile.cc: Likewise.
1880 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Likewise.
1881 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: Likewise.
1882 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc:
1884 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: Likewise.
1885 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Likewise.
1886 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: Likewise.
1887 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: Likewise.
1888 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc:
1890 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: Likewise.
1891 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Likewise.
1892 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: Likewise.
1893 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc:
1895 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: Likewise.
1896 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Likewise.
1897 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: Likewise.
1898 * testsuite/special_functions/10_cyl_neumann/check_value.cc: Likewise.
1899 * testsuite/special_functions/10_cyl_neumann/compile.cc: Likewise.
1900 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Likewise.
1901 * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
1902 * testsuite/special_functions/11_ellint_1/check_value.cc: Likewise.
1903 * testsuite/special_functions/11_ellint_1/compile.cc: Likewise.
1904 * testsuite/special_functions/11_ellint_1/compile_2.cc: Likewise.
1905 * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
1906 * testsuite/special_functions/12_ellint_2/check_value.cc: Likewise.
1907 * testsuite/special_functions/12_ellint_2/compile.cc: Likewise.
1908 * testsuite/special_functions/12_ellint_2/compile_2.cc: Likewise.
1909 * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
1910 * testsuite/special_functions/13_ellint_3/check_value.cc: Likewise.
1911 * testsuite/special_functions/13_ellint_3/compile.cc: Likewise.
1912 * testsuite/special_functions/13_ellint_3/compile_2.cc: Likewise.
1913 * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
1914 * testsuite/special_functions/14_expint/check_value.cc: Likewise.
1915 * testsuite/special_functions/14_expint/compile.cc: Likewise.
1916 * testsuite/special_functions/14_expint/compile_2.cc: Likewise.
1917 * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
1918 * testsuite/special_functions/15_hermite/check_value.cc: Likewise.
1919 * testsuite/special_functions/15_hermite/compile.cc: Likewise.
1920 * testsuite/special_functions/15_hermite/compile_2.cc: Likewise.
1921 * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
1922 * testsuite/special_functions/16_laguerre/check_value.cc: Likewise.
1923 * testsuite/special_functions/16_laguerre/compile.cc: Likewise.
1924 * testsuite/special_functions/16_laguerre/compile_2.cc: Likewise.
1925 * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
1926 * testsuite/special_functions/17_legendre/check_value.cc: Likewise.
1927 * testsuite/special_functions/17_legendre/compile.cc: Likewise.
1928 * testsuite/special_functions/17_legendre/compile_2.cc: Likewise.
1929 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: Likewise.
1930 * testsuite/special_functions/18_riemann_zeta/check_value.cc:
1932 * testsuite/special_functions/18_riemann_zeta/compile.cc: Likewise.
1933 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Likewise.
1934 * testsuite/special_functions/19_sph_bessel/check_nan.cc: Likewise.
1935 * testsuite/special_functions/19_sph_bessel/check_value.cc: Likewise.
1936 * testsuite/special_functions/19_sph_bessel/compile.cc: Likewise.
1937 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Likewise.
1938 * testsuite/special_functions/20_sph_legendre/check_nan.cc: Likewise.
1939 * testsuite/special_functions/20_sph_legendre/check_value.cc:
1941 * testsuite/special_functions/20_sph_legendre/compile.cc: Likewise.
1942 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Likewise.
1943 * testsuite/special_functions/21_sph_neumann/check_nan.cc: Likewise.
1944 * testsuite/special_functions/21_sph_neumann/check_value.cc: Likewise.
1945 * testsuite/special_functions/21_sph_neumann/compile.cc: Likewise.
1946 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Likewise.
1948 * testsuite/tr1/5_numerical_facilities/special_functions/
1949 08_cyl_bessel_i/check_value.cc: Use __attribute__((unused)) instead
1951 * testsuite/tr1/5_numerical_facilities/special_functions/
1952 09_cyl_bessel_j/check_value.cc: Likewise.
1953 * testsuite/tr1/5_numerical_facilities/special_functions/
1954 10_cyl_bessel_k/check_value.cc: Likewise.
1955 * testsuite/tr1/5_numerical_facilities/special_functions/
1956 11_cyl_neumann/check_value.cc: Likewise.
1957 * testsuite/tr1/5_numerical_facilities/special_functions/
1958 21_sph_bessel/check_value.cc: Likewise.
1959 * testsuite/tr1/5_numerical_facilities/special_functions/
1960 23_sph_neumann/check_value.cc: Likewise.
1962 2016-08-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1964 * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
1965 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
1966 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
1967 * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
1968 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
1969 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
1971 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
1973 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: Skip
1976 * testsuite/lib/libstdc++.exp (v3-build_support): Add -fno-lto to
1977 additional flags for compiling libtestc++.a objects.
1979 2016-08-01 Jonathan Wakely <jwakely@redhat.com>
1981 * include/bits/basic_string.h (data() const): Update comment.
1982 (data()): Add non-const overload for C++17.
1983 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
1984 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
1986 * include/bits/basic_string.tcc: Disable explicit instantiation
1987 declarations for C++17.
1989 * testsuite/23_containers/unordered_map/requirements/53339.cc: Remove
1990 ignored "xfail" from { dg-do compile { xfail selector } } directive.
1991 * testsuite/23_containers/unordered_multimap/requirements/53339.cc:
1993 * testsuite/26_numerics/headers/cmath/
1994 c99_classification_macros_c++11.cc: Likewise.
1995 * testsuite/26_numerics/headers/cmath/
1996 c99_classification_macros_c++98.cc: Likewise.
1997 * testsuite/26_numerics/headers/cmath/
1998 c99_classification_macros_c.cc: Likewise.
2000 * testsuite/backward/hash_set/check_construct_destroy.cc: Account
2001 for different construct/destroy counts in C++98 mode.
2003 * testsuite/17_intro/freestanding.cc: Remove "-x c" from dg-options.
2005 * testsuite/20_util/tuple/cons/66338.cc: Limit test to C++11 and
2007 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc:
2010 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Use
2011 C++98-compatible initialization for array.
2013 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc: Remove
2014 unused header and variable from compile-only test.
2015 * testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc: Likewise.
2016 * testsuite/28_regex/basic_regex/assign/char/cstring.cc: Likewise.
2017 * testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc: Likewise.
2018 * testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc:
2021 * testsuite/experimental/string_view/operations/rfind/char/2.cc:
2022 Remove duplicate dg-options directive.
2024 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
2025 808590.cc: Use -std=gnu++98 instead of -std=gnu++03.
2027 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Remove
2028 linker options from compile-only tests.
2029 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
2032 * testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Make test
2033 supported for C++11 and later.
2034 * testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
2035 * testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.
2037 2016-08-01 Uros Bizjak <ubizjak@gmail.com>
2039 * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
2041 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
2043 * testsuite/20_util/conditional/requirements/typedefs.cc: Change to
2046 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
2047 Ensure test is compiled with optimization.
2049 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
2050 Adjust dg-prune-output pattern for error in C++98 mode.
2052 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Only
2053 run for C++11 or later.
2055 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Fix
2056 test to not rely on GNU extension (escaped normal characters in POSIX
2057 BRE). Enable tests for other strings which are now supported.
2059 * testsuite/20_util/pair/astuple/get_neg.cc: Use effective-target
2060 c++11 instead of setting -std=gnu++14.
2063 * include/std/array (get): Use positive message for static assertions.
2064 * include/std/functional (_Safe_tuple_element_t): Fix indentation.
2065 * include/std/tuple (tuple_element<I, tuple<>>): Add partial
2066 specialization for invalid indices, with static assertion.
2067 * testsuite/20_util/tuple/element_access/get_neg.cc: New test.
2069 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Move
2070 dg-error to relevant line.
2071 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
2073 * testsuite/23_containers/forward_list/requirements/dr438/
2074 assign_neg.cc: Likewise.
2075 * testsuite/23_containers/forward_list/requirements/dr438/
2076 constructor_1_neg.cc: Likewise.
2077 * testsuite/23_containers/forward_list/requirements/dr438/
2078 constructor_2_neg.cc: Likewise.
2079 * testsuite/23_containers/forward_list/requirements/dr438/
2080 insert_neg.cc: Likewise.
2081 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc:
2083 * testsuite/26_numerics/random/linear_congruential_engine/
2084 requirements/non_uint_neg.cc: Likewise.
2085 * testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc:
2086 Likewise. Also test for std::atomic_address.
2088 2016-07-31 Ville Voutilainen <ville.voutilainen@gmail.com>
2090 Add missing variable traits, fix testsuite failures.
2091 * include/bits/uses_allocator.h (uses_allocator_v): New.
2092 * include/std/functional (is_bind_expression_v, is_placeholder_v):
2094 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
2095 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
2096 * testsuite/20_util/duration/literals/range.cc: Likewise.
2097 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
2098 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
2099 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
2100 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise.
2101 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
2103 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
2104 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
2107 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
2109 * testsuite/18_support/numeric_limits/40856.cc [__STRICT_ANSI__]: Do
2110 not test 128-bit types.
2111 * testsuite/20_util/is_floating_point/value.cc: Likewise.
2112 * testsuite/20_util/is_integral/value.cc: Likewise.
2113 * testsuite/20_util/is_signed/value.cc: Likewise.
2114 * testsuite/20_util/is_unsigned/value.cc: Likewise.
2115 * testsuite/20_util/make_signed/requirements/typedefs-1.cc: Likewise.
2116 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
2117 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
2119 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
2122 * testsuite/26_numerics/headers/cstdlib/54686.c: Rename to 54686.cc.
2124 2016-07-29 Ville Voutilainen <ville.voutilainen@gmail.com>
2126 Implement C++17 variable templates for type traits.
2127 * include/std/chrono (treat_as_floating_point_v): New.
2128 * include/std/ratio (ratio_equal_v, ratio_not_equal_v)
2129 (ratio_less_v, ratio_less_equal_v, ratio_greater_v)
2130 (ratio_greater_equal_v): Likewise.
2131 * include/std/system_error (is_error_code_enum_v)
2132 (is_error_condition_enum_v): Likewise.
2133 * include/std/tuple (tuple_size_v): Likewise.
2134 * type_traits (conjunction_v, disjunction_v, negation_v)
2135 (is_void_v, is_null_pointer_v, is_integral_v, is_floating_point_v)
2136 (is_array_v, is_pointer_v, is_lvalue_reference_v)
2137 (is_rvalue_reference_v, is_member_object_pointer_v)
2138 (is_member_function_pointer_v, is_enum_v, is_union_v)
2139 (is_class_v, is_function_v, is_reference_v, is_arithmetic_v)
2140 (is_fundamental_v, is_object_v, is_scalar_v, is_compound_v)
2141 (is_member_pointer_v, is_const_v, is_volatile_v, is_trivial_v)
2142 (is_trivially_copyable_v, is_standard_layout_v)
2143 (is_pod_v, is_literal_type_v, is_empty_v, is_polymorphic_v)
2144 (is_abstract_v, is_final_v, is_signed_v, is_unsigned_v)
2145 (is_constructible_v, is_default_constructible_v)
2146 (is_copy_constructible_v, is_move_constructible_v)
2147 (is_assignable_v, is_copy_assignable_v, is_move_assignable_v)
2148 (is_destructible_v, is_trivially_constructible_v)
2149 (is_trivially_default_constructible_v)
2150 (is_trivially_copy_constructible_v, is_trivially_move_constructible_v)
2151 (is_trivially_assignable_v, is_trivially_copy_assignable_v)
2152 (is_trivially_move_assignable_v, is_trivially_destructible_v)
2153 (is_nothrow_constructible_v, is_nothrow_default_constructible_v)
2154 (is_nothrow_copy_constructible_v, is_nothrow_move_constructible_v)
2155 (is_nothrow_assignable_v, is_nothrow_copy_assignable_v)
2156 (is_nothrow_move_assignable_v, is_nothrow_destructible_v)
2157 (has_virtual_destructor_v, alignment_of_v, rank_v, extent_v)
2158 (is_same_v, is_base_of_v, is_convertible_v): Likewise.
2159 * testsuite/19_diagnostics/error_code/is_error_code_v.cc: Likewise.
2160 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
2162 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc: Likewise.
2163 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
2164 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
2166 2016-07-29 Andreas Schwab <schwab@linux-m68k.org>
2168 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
2169 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
2170 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
2172 2016-07-29 Jonathan Wakely <jwakely@redhat.com>
2174 * doc/xml/manual/abi.xml: Document 6.0.22 library version.
2175 * doc/html/manual/abi.html: Regenerate.
2177 * acinclude.m4 (libtool_VERSION): Bump to 6:23:0.
2178 * config/abi/pre/gnu.ver: Add 3.4.23 version for new basic_string
2180 * configure: Regenerate.
2181 * testsuite/util/testsuite_abi.cc: Add new symbol version.
2183 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
2184 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
2185 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Likewise.
2186 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
2188 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
2189 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
2190 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Likewise.
2192 2016-07-28 Jonathan Wakely <jwakely@redhat.com>
2194 * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
2195 Adjust dg-prune-output pattern for error in C++98 mode.
2196 * testsuite/23_containers/deque/requirements/dr438/
2197 constructor_1_neg.cc: Likewise.
2198 * testsuite/23_containers/deque/requirements/dr438/
2199 constructor_2_neg.cc: Likewise.
2200 * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
2202 * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
2204 * testsuite/23_containers/list/requirements/dr438/
2205 constructor_1_neg.cc: Likewise.
2206 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
2208 * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
2210 * testsuite/23_containers/vector/requirements/dr438/
2211 constructor_1_neg.cc: Likewise.
2212 * testsuite/23_containers/vector/requirements/dr438/
2213 constructor_2_neg.cc: Likewise.
2214 * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
2217 * testsuite/23_containers/vector/check_construct_destroy.cc: Account
2218 for different construct/destroy counts in C++98 mode.
2220 * testsuite/17_intro/headers/c++2011/stdc++.cc: Change target-specific
2221 dg-options to dg-additional-options so that default options are used.
2222 * testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc:
2224 * testsuite/17_intro/headers/c++2014/stdc++.cc: Likewise.
2225 * testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc:
2227 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
2228 Use dg-additional-options instead of repeating the common options.
2230 * testsuite/22_locale/conversions/string/1.cc: Remove unintended
2231 dg-do compile directive.
2232 * testsuite/26_numerics/headers/cmath/fabs_inline.cc: Fix syntax of
2234 * testsuite/26_numerics/valarray/const_bracket.cc: Likewise.
2236 2016-07-28 Ville Voutilainen <ville.voutilainen@gmail.com>
2238 Implement std::string_view and P0254r2,
2239 Integrating std::string_view and std::string.
2240 * include/Makefile.am: Add string_view and string_view.tcc
2241 to the exported headers.
2242 * include/Makefile.in: Likewise.
2243 * include/bits/basic_string.h: Include <string_view> in C++17 mode.
2245 (basic_string(__sv_type, const _Alloc&)): Likewise.
2246 (operator=(__sv_type)): Likewise.
2247 (operator __sv_type()): Likewise.
2248 (operator+=(__sv_type)): Likewise.
2249 (append(__sv_type __sv)): Likewise.
2250 (append(__sv_type, size_type, size_type)): Likewise.
2251 (assign(__sv_type)): Likewise.
2252 (assign(__sv_type, size_type, size_type)): Likewise.
2253 (insert(size_type, __sv_type)): Likewise.
2254 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
2255 (replace(size_type, size_type, __sv_type)): Likewise.
2256 (replace(size_type, size_type, __sv_type, size_type, size_type)):
2258 (replace(const_iterator, const_iterator, __sv_type)): Likewise.
2259 (find(__sv_type, size_type)): Likewise.
2260 (rfind(__sv_type, size_type)): Likewise.
2261 (find_first_of(__sv_type, size_type)): Likewise.
2262 (find_last_of(__sv_type, size_type)): Likewise.
2263 (find_first_not_of(__sv_type, size_type)): Likewise.
2264 (find_last_not_of(__sv_type, size_type)): Likewise.
2265 (compare(__sv_type)): Likewise.
2266 (compare(size_type, size_type, __sv_type)): Likewise.
2267 (compare(size_type, size_type, __sv_type, size_type, size_type)):
2269 * include/bits/string_view.tcc: New.
2270 * include/std/string_view: Likewise.
2271 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
2272 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
2273 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
2275 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
2277 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
2279 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
2281 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
2283 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
2285 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
2287 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
2289 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
2291 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
2293 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
2295 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
2297 * testsuite/21_strings/basic_string/operators/char/5.cc: Likewise.
2298 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc: Likewise.
2299 * testsuite/21_strings/basic_string_view/capacity/1.cc: Likewise.
2300 * testsuite/21_strings/basic_string_view/cons/char/1.cc: Likewise.
2301 * testsuite/21_strings/basic_string_view/cons/char/2.cc: Likewise.
2302 * testsuite/21_strings/basic_string_view/cons/char/3.cc: Likewise.
2303 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc: Likewise.
2304 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc: Likewise.
2305 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc: Likewise.
2306 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
2308 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
2310 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
2312 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
2314 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
2316 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
2318 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
2320 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
2322 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
2323 * testsuite/21_strings/basic_string_view/inserters/char/1.cc: Likewise.
2324 * testsuite/21_strings/basic_string_view/inserters/char/2.cc: Likewise.
2325 * testsuite/21_strings/basic_string_view/inserters/char/3.cc: Likewise.
2326 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
2328 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
2330 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
2332 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
2334 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
2336 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
2338 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
2340 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
2342 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
2344 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
2346 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
2348 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
2350 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
2352 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
2354 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
2356 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
2358 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
2360 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
2362 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
2364 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
2366 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
2368 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
2370 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
2372 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
2374 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
2376 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
2378 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
2380 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
2382 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
2384 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
2386 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
2388 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
2390 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
2392 * testsuite/21_strings/basic_string_view/operators/char/2.cc: Likewise.
2393 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
2395 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
2397 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
2399 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
2401 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
2403 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
2405 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
2407 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
2409 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
2411 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
2412 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
2414 2016-07-27 Jonathan Wakely <jwakely@redhat.com>
2416 * testsuite/20_util/forward/1_neg.cc: Move dg-error to right line.
2418 2016-07-25 Georeth Chow <georeth2010@gmail.com>
2420 * include/ext/ropeimpl.h (rope<>::_S_dump(_RopeRep*, int)): Qualify
2421 _S_concat enumerator.
2422 * testsuite/ext/rope/6.cc: New test.
2424 2016-07-25 Jonathan Wakely <jwakely@redhat.com>
2426 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Use
2427 std::mt19937, std::thread and std::atomic to simplify test.
2428 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
2430 2016-07-22 Jonathan Wakely <jwakely@redhat.com>
2433 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2434 (basic_string::_Alloc_hider(pointer, _Alloc&&)): Add constructor.
2435 * include/bits/stl_tree.h (_Rb_tree(_Rb_tree&&)): Move allocator.
2436 * testsuite/21_strings/basic_string/allocator/71964.cc: New test.
2437 * testsuite/23_containers/set/allocator/71964.cc: New test.
2439 * testsuite/lib/libstdc++.exp (check_v3_target_namedlocale): Use
2440 delete[] instead of delete.
2442 2016-07-21 Jonathan Wakely <jwakely@redhat.com>
2444 * include/experimental/propagate_const (propagate_const::__t): Rename
2445 to _M_t and remove comment. Qualify std::move and std::forward.
2446 * testsuite/experimental/propagate_const/cons/default.cc: Fix test.
2448 * testsuite/23_containers/vector/zero_sized_allocations.cc:
2449 Define sized deallocation function.
2450 * testsuite/util/testsuite_new_operators.h:
2451 (operator delete(void*, const std::nothrow_t&)): Define nothrow
2452 deallocation function.
2454 * testsuite/21_strings/basic_string/modifiers/append/char/1.cc: Fix
2455 reads past the end of strings.
2456 * testsuite/21_strings/basic_string/operations/compare/char/1.cc:
2458 * testsuite/21_strings/char_traits/requirements/short/1.cc: Fix
2459 invalid array accesses.
2460 * testsuite/experimental/string_view/operations/compare/char/1.cc:
2461 Fix read past the end of string.
2462 * testsuite/util/testsuite_character.cc: Fix out-of-bounds write.
2464 * testsuite/24_iterators/container_access.cc: Fix missing returns.
2465 * testsuite/24_iterators/range_access_cpp14.cc: Likewise.
2467 * testsuite/18_support/new_delete_placement.cc: Don't allocate (and
2468 leak) memory for arguments to placement delete.
2469 * testsuite/20_util/addressof/1.cc: Don't leak memory.
2470 * testsuite/22_locale/locale/global_locale_objects/3.cc: Likewise.
2471 * testsuite/23_containers/unordered_multimap/insert/55028-debug.cc:
2474 2016-07-20 Jonathan Wakely <jwakely@redhat.com>
2476 * doc/xml/manual/intro.xml: Document DR 2684 status.
2477 * doc/html/*: Regenerate.
2479 * include/std/atomic (atomic_int8_t, atomic_uint8_t, atomic_int16_t)
2480 (atomic_uint16_t, atomic_int32_t, atomic_uint32_t, atomic_int64_t)
2481 (atomic_uint64_t): Define (LWG 2441).
2482 * testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc: Remove empty
2484 * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Test for
2486 * doc/xml/manual/intro.xml: Document DR 2441 status.
2488 * include/std/istream (operator>>(basic_istream&&, _Tp&)): Adjust
2489 to use perfect forwarding (LWG 2328).
2490 * testsuite/27_io/rvalue_streams.cc: Test perfect forwarding.
2491 * doc/xml/manual/intro.xml: Document DR 2328 status.
2493 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Use
2494 static objects for catching nullptr as pointer to member types.
2496 2016-07-18 Ville Voutilainen <ville.voutilainen@gmail.com>
2498 Clean up optional's comments.
2499 * include/std/optional: Remove incorrect section headers
2500 from comments when redundant, replace bare section
2501 headers with more descriptive comments.
2503 2016-07-15 Jonathan Wakely <jwakely@redhat.com>
2505 * include/bits/algorithmfwd.h: Change C++0x to C++11 in comments.
2506 * include/bits/move.h: Likewise.
2507 * include/bits/postypes.h: Likewise.
2508 * include/debug/bitset: Likewise.
2509 * include/ext/pb_ds/detail/type_utils.hpp: Likewise.
2510 * include/ext/string_conversions.h: Change C++0x to __cxx11 in
2512 * testsuite/27_io/fpos/14320-1.cc: Change C++0x to C++11 in comment.
2513 * testsuite/util/thread/all.h: Likewise.
2515 * include/bits/stl_algo.h (for_each): Remove redundant _GLIBCXX_MOVE
2519 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Make
2520 nullptr match handlers of pointer type.
2522 2016-07-15 Edward Smith-Rowland <3dw4rd@verizon.net>
2524 Implement C++17 P0025 clamp.
2525 * include/bits/algorithmfwd.h: Declare clamp overloads.
2526 * include/bits/stl_algo.h: Implement clamp. Feature __cpp_lib_clamp.
2527 * testsuite/25_algorithms/clamp/1.cc: New test.
2528 * testsuite/25_algorithms/clamp/2.cc: New test.
2529 * testsuite/25_algorithms/clamp/constexpr.cc: New test.
2530 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
2532 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
2535 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
2537 Fix the constraints for any's assignment operator template to properly
2538 reject assignment from a non-copyable lvalue.
2539 * include/std/any (operator=(_ValueType&&)): Constrain the decayed
2540 type for is_copy_constructible,
2541 * testsuite/20_util/any/requirements.cc: Add a test for
2542 non-copyable lvalues.
2544 2016-07-14 Jonathan Wakely <jwakely@redhat.com>
2546 * include/experimental/functional: Include <parallel/algorithm> in
2549 * testsuite/experimental/functional/searchers.cc: Include <algorithm>
2553 * include/bits/forward_list.h (forward_list): Update doxygen comments
2554 to reflect allocator propagation semantics. Remove ambiguous
2555 statements about data being lost.
2556 * include/bits/stl_deque.h (deque): Likewise.
2557 * include/bits/stl_list.h (list): Likewise.
2558 * include/bits/stl_map.h (map): Likewise.
2559 * include/bits/stl_multimap.h (multimap): Likewise.
2560 * include/bits/stl_multiset.h (multiset): Likewise.
2561 * include/bits/stl_set.h (set): Likewise.
2562 * include/bits/stl_vector.h (vector): Likewise.
2563 * include/bits/unordered_map.h (unordered_map, unordered_multimap):
2565 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
2568 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
2570 Implement P0032R3, Homogeneous interface for variant, any and optional,
2571 for the parts concerning any and optional.
2572 * include/std/any (_Storage()): Make constexpr and have it
2574 (any()): Make constexpr.
2575 (any(const any&)): Adjust.
2576 (any(any&&)): Likewise.
2577 (__any_constructible_t): New.
2578 (any(_ValueType&&)): Constrain.
2579 (any(in_place_type_t<_Tp>, _Args&&...)): New.
2580 (any(in_place_type_t<_Tp>, initializer_list<_Up>, _Args&&...)):
2583 (operator=(const any&)): Likewise.
2584 (operator=(any&&)): Likewise.
2585 (operator=(_ValueType&&)): Constrain.
2586 (emplace(_Args&&...)): New.
2587 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
2590 (swap(any&)): Adjust.
2594 (_Manager_internal::_S_create(_Storage&, _Args&&...)): New.
2595 (_Manager_external::_S_create(_Storage&, _Args&&...)): Likewise.
2596 (make_any(_Args&&...)): Likewise.
2597 (make_any(initializer_list<_Up>, _Args&&...)): Likewise.
2598 * include/std/optional (in_place_t, in_place): Remove.
2599 (bad_optional_access): Add a comment referring to LEWG 72.
2600 (emplace(_Args&&...)): Constrain.
2602 (reset()): Likewise.
2603 (make_optional(_Args&&...)): Likewise.
2604 (make_optional(initializer_list<_Up>, _Args&&...)): Likewise.
2605 * include/std/utility (in_place_tag): New.
2606 (__in_place, __in_place_type, __in_place_index): Likewise.
2607 (in_place_t, in_place_type_t, in_place_index_t): Likewise.
2608 (in_place(__in_place*)): Likewise.
2609 (in_place(__in_place_type<_Tp>*)): Likewise.
2610 (in_place(__in_place_index<_Idx>*)): Likewise.
2611 * testsuite/20_util/any/assign/1.cc: Adjust.
2612 * testsuite/20_util/any/assign/emplace.cc: New.
2613 * testsuite/20_util/any/assign/self.cc: Adjust.
2614 * testsuite/20_util/any/cons/1.cc: Likewise.
2615 * testsuite/20_util/any/cons/in_place.cc: New.
2616 * testsuite/20_util/any/make_any.cc: Likewise.
2617 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
2618 * testsuite/20_util/any/misc/swap.cc: Likewise.
2619 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2620 * testsuite/20_util/any/requirements.cc: New.
2621 * testsuite/20_util/in_place/requirements.cc: Likewise.
2622 * testsuite/20_util/optional/constexpr/in_place.cc: Adjust.
2623 * testsuite/20_util/optional/in_place.cc: Likewise.
2624 * testsuite/20_util/optional/make_optional.cc: Add tests for
2625 the new overloads of make_optional.
2627 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2629 Implement P0307R2, Making Optional Greater Equal Again.
2630 * include/experimental/optional (_Has_addressof): Fix the comment.
2631 * include/std/optional (_Has_addressof): Likewise.
2632 (operator=(_Up&&)): Constrain.
2633 (operator=(const optional<_Up>&)): Likewise.
2634 (operator=(optional<_Up>&&)): Likewise.
2635 (__optional_relop_t): New.
2636 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2637 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2638 Constrain and make transparent.
2639 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2640 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2641 Constrain and make transparent.
2642 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2643 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2644 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2645 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2646 (operator!=(const optional<_Tp>&, _Tp const&)):
2647 Constrain and make transparent.
2648 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2649 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2650 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2651 (operator>(const optional<_Tp>&, const _Tp&)):
2652 Constrain and make transparent.
2653 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2654 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2655 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2656 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2657 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2658 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2659 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2660 * testsuite/20_util/optional/relops/1.cc: Likewise.
2661 * testsuite/20_util/optional/relops/2.cc: Likewise.
2662 * testsuite/20_util/optional/relops/3.cc: Likewise.
2663 * testsuite/20_util/optional/relops/4.cc: Likewise.
2664 * testsuite/20_util/optional/requirements.cc: Add tests to verify
2665 that optional's relops are transparent and don't synthesize
2666 operators. Also test that assignment sfinaes.
2668 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2671 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Define to 1 not empty.
2672 * include/parallel/compiletime_settings.h (_GLIBCXX_ASSERTIONS):
2673 Rename to _GLIBCXX_PARALLEL_ASSERTIONS and make default value depend
2674 on _GLIBCXX_ASSERTIONS.
2675 * include/parallel/balanced_quicksort.h: Rename _GLIBCXX_ASSERTIONS.
2676 Include <unistd.h> for sleep.
2677 * include/parallel/losertree.h: Rename _GLIBCXX_ASSERTIONS.
2678 * include/parallel/merge.h: Likewise.
2679 * include/parallel/multiway_merge.h: Likewise.
2680 * include/parallel/partition.h: Likewise.
2681 * include/parallel/queue.h: Likewise.
2682 * include/parallel/sort.h: Likewise.
2683 * testsuite/25_algorithms/headers/algorithm/
2684 parallel_algorithm_assert.cc: New.
2686 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2687 (replace(__const_iterator, __const_iterator, initializer_list<C>)):
2688 Forward to different overload.
2690 * include/bits/allocated_ptr.h (__allocated_ptr::_S_raw_ptr): Make
2693 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2695 Revert "Add non-const overload of std::string::data()".
2697 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2699 Implement P0307R2, Making Optional Greater Equal Again.
2700 * include/experimental/optional (_Has_addressof): Fix the comment.
2701 * include/std/optional (_Has_addressof): Likewise.
2702 (operator=(_Up&&)): Constrain.
2703 (operator=(const optional<_Up>&)): Likewise.
2704 (operator=(optional<_Up>&&)): Likewise.
2705 (__optional_relop_t): New.
2706 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2707 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2708 Constrain and make transparent.
2709 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2710 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2711 Constrain and make transparent.
2712 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2713 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2714 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2715 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2716 (operator!=(const optional<_Tp>&, _Tp const&)):
2717 Constrain and make transparent.
2718 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2719 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2720 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2721 (operator>(const optional<_Tp>&, const _Tp&)):
2722 Constrain and make transparent.
2723 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2724 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2725 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2726 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2727 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2728 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2729 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2730 * testsuite/20_util/optional/relops/1.cc: Likewise.
2731 * testsuite/20_util/optional/relops/2.cc: Likewise.
2732 * testsuite/20_util/optional/relops/3.cc: Likewise.
2733 * testsuite/20_util/optional/relops/4.cc: Likewise.
2734 * testsuite/20_util/optional/requirements.cc: Add tests to verify
2735 that optional's relops are transparent and don't synthesize
2736 operators. Also test that assignment sfinaes.
2738 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2740 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (_M_c_str):
2742 (_M_disjunct, basic_string(const basic_string&, size_t)): Use data()
2743 instead of _M_data().
2744 (basic_string(const basic_string&, size_t, size_t, const _Alloc&)):
2746 (append(const basic_string&)): Likewise.
2747 (append(const basic_string&, size_type, size_type)): Likewise.
2748 (assign(const basic_string&, size_type, size_type)): Likewise.
2749 (insert(size_type, const basic_string&)): Likewise.
2750 (insert(size_type, const basic_string&, size_type, size_type)):
2752 (replace(size_type, size_type, const basic_string&, size_type,
2753 size_type)): Likewise.
2754 (replace(__const_iterator, __const_iterator, const basic_string&)):
2756 (c_str(), data()): Use c_str() instead of _M_data().
2757 (data()): Add non-const overload as per LWG 2391 and P0272R1.
2758 (compare(const basic_string&)): Use data() instead of _M_data().
2759 [!_GLIBCXX_USE_CXX11_ABI] (data()): Add non-const overload.
2760 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI] (_M_mutate):
2761 Pass raw pointers to _S_copy.
2762 (_M_erase, _M_replace_aux): Pass raw pointers to _S_move and
2764 (find(const _CharT*, size_type, size_type)): Use data instead of
2766 * testsuite/21_strings/basic_string/allocator/char/ext_ptr.cc: New.
2767 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
2768 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
2770 2016-07-12 Jonathan Wakely <jwakely@redhat.com>
2772 * libsupc++/new: Remove nothrow sized deletes (LWG 2458).
2773 * doc/xml/manual/intro.xml: Document DR 2458 status.
2774 * doc/html*: Regenerate.
2776 * testsuite/20_util/pair/astuple/astuple.cc: Only include <utility>.
2777 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
2778 Only include <array>.
2779 * testsuite/23_containers/array/tuple_interface/tuple_size.cc:
2781 * doc/xml/manual/intro.xml: Document LWG 2212 support.
2782 * doc/html*: Regenerate.
2784 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2785 Add testcase from LWG 2164.
2787 2016-07-11 François Dumont <fdumont@gcc.gnu.org>
2789 * include/bits/stl_vector.h (push_back(const value_type&)): Forward
2790 to _M_realloc_insert.
2791 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2792 (_M_realloc_insert): Declare new function.
2793 (_M_emplace_back_aux): Remove definition.
2794 * include/bits/vector.tcc (emplace_back(_Args...)):
2795 Use _M_realloc_insert.
2796 (insert(const_iterator, const value_type&)): Likewise.
2797 (_M_insert_rval, _M_emplace_aux): Likewise.
2798 (_M_emplace_back_aux): Remove declaration.
2799 (_M_realloc_insert): Define.
2800 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2801 Adjust expected results for emplacing an lvalue with reallocation.
2803 2016-07-10 Ville Voutilainen <ville.voutilainen@gmail.com>
2805 Implement std::optional.
2806 * include/Makefile.am: Add optional to exported headers.
2807 * include/Makefile.in: Likewise.
2808 * include/std/optional: New.
2809 * testsuite/20_util/optional/typedefs.cc: Likewise.
2810 * testsuite/20_util/optional/relops/2.cc: Likewise.
2811 * testsuite/20_util/optional/relops/3.cc: Likewise.
2812 * testsuite/20_util/optional/relops/4.cc: Likewise.
2813 * testsuite/20_util/optional/relops/5.cc: Likewise.
2814 * testsuite/20_util/optional/relops/1.cc: Likewise.
2815 * testsuite/20_util/optional/relops/6.cc: Likewise.
2816 * testsuite/20_util/optional/nullopt.cc: Likewise.
2817 * testsuite/20_util/optional/in_place.cc: Likewise.
2818 * testsuite/20_util/optional/make_optional.cc: Likewise.
2819 * testsuite/20_util/optional/assignment/2.cc: Likewise.
2820 * testsuite/20_util/optional/assignment/3.cc: Likewise.
2821 * testsuite/20_util/optional/assignment/4.cc: Likewise.
2822 * testsuite/20_util/optional/assignment/5.cc: Likewise.
2823 * testsuite/20_util/optional/assignment/1.cc: Likewise.
2824 * testsuite/20_util/optional/assignment/6.cc: Likewise.
2825 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
2826 * testsuite/20_util/optional/cons/default.cc: Likewise.
2827 * testsuite/20_util/optional/cons/move.cc: Likewise.
2828 * testsuite/20_util/optional/cons/value.cc: Likewise.
2829 * testsuite/20_util/optional/cons/copy.cc: Likewise.
2830 * testsuite/20_util/optional/requirements.cc: Likewise.
2831 * testsuite/20_util/optional/observers/2.cc: Likewise.
2832 * testsuite/20_util/optional/observers/3.cc: Likewise.
2833 * testsuite/20_util/optional/observers/4.cc: Likewise.
2834 * testsuite/20_util/optional/observers/5.cc: Likewise.
2835 * testsuite/20_util/optional/observers/1.cc: Likewise.
2836 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
2837 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
2838 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2839 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
2840 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
2841 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
2842 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
2843 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
2844 * testsuite/20_util/optional/constexpr/make_optional.cc: Likewise.
2845 * testsuite/20_util/optional/constexpr/cons/default.cc: Likewise.
2846 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
2847 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
2848 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
2849 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
2850 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
2851 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
2852 * testsuite/20_util/optional/swap/1.cc: Likewise.
2854 2016-07-08 Jonathan Wakely <jwakely@redhat.com>
2856 * testsuite/23_containers/vector/modifiers/insert/aliasing.cc: New.
2858 2016-07-07 Jonathan Wakely <jwakely@redhat.com>
2860 * doc/xml/manual/status_cxx2014.xml: Update LFTS status table.
2861 * doc/html/*: Regenerate.
2863 2016-07-07 Ville Voutilainen <ville.voutilainen@gmail.com>
2866 * include/Makefile.am: Add any and c++17_warning.h to exported headers.
2867 * include/Makefile.in: Likewise.
2868 * include/std/any: New.
2869 * testsuite/20_util/any/assign/1.cc: Likewise.
2870 * testsuite/20_util/any/assign/2.cc: Likewise.
2871 * testsuite/20_util/any/assign/self.cc: Likewise.
2872 * testsuite/20_util/any/cons/1.cc: Likewise.
2873 * testsuite/20_util/any/cons/2.cc: Likewise.
2874 * testsuite/20_util/any/cons/aligned.cc: Likewise.
2875 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
2876 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
2877 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
2878 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
2879 * testsuite/20_util/any/misc/swap.cc: Likewise.
2880 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2881 * testsuite/20_util/any/observers/type.cc: Likewise.
2882 * testsuite/20_util/any/typedefs.cc: Likewise.
2884 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2886 Add a new header for diagnosing the use of C++17 facilities
2888 * include/bits/c++17_warning.h: New.
2890 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2892 Implement LWG 2451, optional<T> should 'forward' T's
2893 implicit conversions.
2894 * include/experimental/optional (__is_optional_impl, __is_optional):
2896 (optional()): Make constexpr and default.
2897 (optional(_Up&&), optional(const optional<_Up>&),
2898 optional(optional<_Up>&& __t): New.
2899 (operator=(_Up&&)): Constrain.
2900 (operator=(const optional<_Up>&), operator=(optional<_Up>&&)): New.
2901 * testsuite/experimental/optional/cons/value.cc:
2902 Add tests for the functionality added by LWG 2451.
2903 * testsuite/experimental/optional/cons/value_neg.cc: New.
2905 2016-07-05 Ville Voutilainen <ville.voutilainen@gmail.com>
2908 any_cast doesn't work with rvalue reference targets and cannot
2909 move with a value target.
2910 * include/experimental/any (any(_ValueType&&)): Constrain and
2911 add an overload that doesn't forward.
2912 (any_cast(any&&)): Constrain and add an overload that moves.
2913 * testsuite/experimental/any/misc/any_cast.cc: Add tests for
2914 the functionality added by LWG 2509.
2916 2016-07-04 François Dumont <fdumont@gcc.gnu.org>
2918 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2920 * testsuite/23_containers/vector/modifiers/insert/self_insert.cc: New
2923 2016-07-04 Jonathan Wakely <jwakely@redhat.com>
2925 * include/bits/stl_vector.h (emplace(const_iterator, _Args&&...)):
2926 Define inline. Forward to _M_emplace_aux.
2927 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2928 (_M_insert_rval, _M_emplace_aux): Declare new functions.
2929 (_Temporary_value): New RAII type using allocator to construct/destroy.
2930 (_S_insert_aux_assign): Remove.
2931 (_M_insert_aux): Make non-variadic.
2932 * include/bits/vector.tcc (insert(const_iterator, const value_type&)):
2933 Use _Temporary_value.
2934 (emplace(const_iterator, _Args&&...)): Remove definition.
2935 (_M_insert_rval, _M_emplace_aux): Define.
2936 (_M_insert_aux): Make non-variadic, stop using _S_insert_aux_assign.
2937 (_M_fill_insert): Use _Temporary_value.
2938 * testsuite/23_containers/vector/allocator/construction.cc: New test.
2939 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2940 Adjust expected results for emplacing an lvalue with reallocation.
2941 * testsuite/23_containers/vector/check_construct_destroy.cc: Adjust
2942 expected results to account for construction/destruction of temporary
2944 * testsuite/backward/hash_set/check_construct_destroy.cc: Likewise.
2946 2016-07-04 Ville Voutilainen <ville.voutilainen@gmail.com>
2949 * src/filesystem/ops.cc (remove_all(const path&, error_code&)):
2950 Call remove_all for children of a directory.
2951 * testsuite/experimental/filesystem/operations/create_directories.cc:
2954 2016-07-02 François Dumont <fdumont@gcc.gnu.org>
2956 * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Adjust
2957 dg-error line numbers.
2958 * testsuite/23_containers/array/tuple_interface/
2959 tuple_element_debug_neg.cc: Likewise.
2960 * testsuite/25_algorithms/lexicographical_compare/debug/
2961 irreflexive_neg.cc: Remove.
2963 2016-06-30 Thomas Preud'homme <thomas.preudhomme@arm.com>
2965 * testsuite/29_atomics/atomic/65913.cc: Require atomic-builtins rather
2966 than specific target.
2968 2016-06-27 François Dumont <fdumont@gcc.gnu.org>
2971 * include/bits/hashtable.h: Remove _Unique_keya parameter in _Insert
2974 2016-06-23 François Dumont <fdumont@gcc.gnu.org>
2976 * include/debug/array (array<>::swap): Fix noexcept qualificaton for
2979 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2981 * configure.host: Remove mep-* support.
2983 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2985 * configure: Regenerate.
2986 * configure.host: Remove support for knetbsd.
2987 * crossconfig.m4: Likewise.
2989 2016-06-20 François Dumont <fdumont@gcc.gnu.org>
2992 * include/tr1/hashtable_policy.h
2993 (_Prime_rehash_policy::_M_next_bkt): Make past-the-end iterator
2994 dereferenceable to avoid check on lower_bound result.
2995 (_Prime_rehash_policy::_M_bkt_for_elements): Call latter.
2996 (_Prime_rehash_policy::_M_need_rehash): Likewise.
2997 * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
2998 Always return a value greater than input value. Set _M_next_resize to
2999 max value when reaching highest prime number.
3000 * src/shared/hashtable-aux.cc (__prime_list): Add comment about sentinel
3002 * testsuite/23_containers/unordered_set/hash_policy/71181.cc: New.
3003 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc
3005 * testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc: New.
3006 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
3009 2016-06-17 Jonathan Wakely <jwakely@redhat.com>
3012 * include/bits/stl_algobase.h (lower_bound, lexicographical_compare):
3013 Remove irreflexive checks.
3014 * include/bits/stl_algo.h (lower_bound, upper_bound, equal_range,
3015 binary_search): Likewise.
3016 * testsuite/25_algorithms/equal_range/partitioned.cc: New test.
3017 * testsuite/25_algorithms/lexicographical_compare/71545.cc: New test.
3018 * testsuite/25_algorithms/lower_bound/partitioned.cc: New test.
3019 * testsuite/25_algorithms/upper_bound/partitioned.cc: New test.
3020 * testsuite/util/testsuite_iterators.h (__gnu_test::test_container):
3021 Add constructor from array.
3023 2016-06-16 François Dumont <fdumont@gcc.gnu.org>
3025 * include/debug/debug.h
3026 (__glibcxx_requires_non_empty_range, __glibcxx_requires_nonempty)
3027 (__glibcxx_requires_subscript): Move...
3028 * include/debug/assertions.h: ...here and add __builtin_expect.
3029 (_GLIBCXX_DEBUG_ONLY): Remove ; value.
3030 * include/bits/stl_deque.h
3031 (std::deque<>::operator[]): Add __glibcxx_requires_subscript check.
3032 (std::deque<>::front()): Add __glibcxx_requires_nonempty check.
3033 (std::deque<>::back()): Likewise.
3034 (std::deque<>::pop_front()): Likewise.
3035 (std::deque<>::pop_back()): Likewise.
3036 (std::deque<>::swap(deque&)): Add allocator check.
3037 * include/bits/stl_vector.h
3038 (std::vector<>::operator[]): Add __glibcxx_requires_subscript check.
3039 (std::vector<>::front()): Add __glibcxx_requires_nonempty check.
3040 (std::vector<>::back()): Likewise.
3041 (std::vector<>::pop_back()): Likewise.
3042 (std::vector<>::swap(vector&)): Add allocator check.
3044 2016-06-16 Daniel Kruegler <daniel.kruegler@gmail.com>
3046 Provide swappable traits (p0185r1)
3047 * include/std/type_traits (is_swappable, is_nothrow_swappable,
3048 is_swappable_with, is_nothrow_swappable_with, is_swappable_v,
3049 is_nothrow_swappable_v, is_swappable_with_v,
3050 is_nothrow_swappable_with_v): New.
3051 * include/bits/stl_pair.h: Use it as per p0185r1.
3052 * include/bits/stl_queue.h: Likewise.
3053 * include/bits/stl_stack.h: Likewise.
3054 * include/bits/unique_ptr.h: Likewise.
3055 * include/std/tuple: Likewise.
3056 * include/std/array: Likewise. Fix zero-size member swap.
3057 * include/bits/hashtable.h: Use __and_.
3058 * testsuite/20_util/is_nothrow_swappable/requirements/
3059 explicit_instantiation.cc: Change test options to std=gnu++17.
3060 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
3062 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
3063 * testsuite/20_util/is_swappable/requirements/
3064 explicit_instantiation.cc: Likewise.
3065 * testsuite/20_util/is_swappable/requirements/typedefs.cc: Likewise.
3066 * testsuite/20_util/is_swappable/value.cc: Likewise.
3067 * testsuite/20_util/is_nothrow_swappable/requirements/
3068 explicit_instantiation_ext.cc: New.
3069 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs_ext.cc:
3071 * testsuite/20_util/is_nothrow_swappable/value.h: New.
3072 * testsuite/20_util/is_nothrow_swappable/value_ext.cc: New.
3073 * testsuite/20_util/is_nothrow_swappable_with/requirements/
3074 explicit_instantiation.cc: New.
3075 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
3077 * testsuite/20_util/is_nothrow_swappable_with/value.cc: New.
3078 * testsuite/20_util/is_swappable/requirements/
3079 explicit_instantiation_ext.cc: New.
3080 * testsuite/20_util/is_swappable/requirements/typedefs_ext.cc: New.
3081 * testsuite/20_util/is_swappable/value.h: New.
3082 * testsuite/20_util/is_swappable/value_ext.cc: New.
3083 * testsuite/20_util/is_swappable_with/requirements/
3084 explicit_instantiation.cc: New.
3085 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc: New.
3086 * testsuite/20_util/is_swappable_with/value.cc: New.
3087 * testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
3088 dg-error line numbers.
3089 * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
3092 2016-06-16 Jonathan Wakely <jwakely@redhat.com>
3094 * include/std/array: Remove trailing whitespace.
3095 * include/std/atomic: Likewise.
3096 * include/std/bitset: Likewise.
3097 * include/std/chrono: Likewise.
3098 * include/std/complex: Likewise.
3099 * include/std/condition_variable: Likewise.
3100 * include/std/fstream: Likewise.
3101 * include/std/functional: Likewise.
3102 * include/std/future: Likewise.
3103 * include/std/iomanip: Likewise.
3104 * include/std/iosfwd: Likewise.
3105 * include/std/istream: Likewise.
3106 * include/std/limits: Likewise.
3107 * include/std/ratio: Likewise.
3108 * include/std/scoped_allocator: Likewise.
3109 * include/std/sstream: Likewise.
3110 * include/std/stdexcept: Likewise.
3111 * include/std/string: Likewise.
3112 * include/std/system_error: Likewise.
3113 * include/std/thread: Likewise.
3114 * include/std/tuple: Likewise.
3115 * include/std/type_traits: Likewise.
3116 * include/std/utility: Likewise.
3117 * include/std/valarray: Likewise.
3118 * include/std/vector: Likewise.
3120 * include/bits/stl_vector.h (vector::_S_insert_aux_assign): Define
3121 new overloaded functions.
3122 * include/bits/vector.tcc (vector::_M_insert_aux): Use new functions
3123 to avoid creating a redundant temporary.
3124 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc: New
3127 2016-06-15 François Dumont <fdumont@gcc.gnu.org>
3129 * include/bits/stl_deque.h
3130 (std::deque<>::operator=): Call _M_assign_aux.
3131 (std::deque<>::assign(initializer_list<>)): Likewise.
3132 (std::deque<>::resize(size_t, const value_type&)): Call _M_fill_insert.
3133 (std::deque<>::insert(const_iterator, initializer_list<>)):
3134 Call _M_range_insert_aux.
3135 (std::deque<>::_M_assign_aux<It>(It, It, std::forward_iterator_tag):
3137 (std::deque<>::_M_fill_assign): Call _M_fill_insert.
3138 (std::deque<>::_M_move_assign2): Call _M_assign_aux.
3139 * include/bits/deque.tcc
3140 (std::deque<>::operator=): Call _M_range_insert_aux.
3141 (std::deque<>::_M_assign_aux<It>(It, It, std::input_iterator_tag)):
3143 * include/bits/stl_vector.h
3144 (std::vector<>::operator=): Call _M_assign_aux.
3145 (std::vector<>::assign(initializer_list<>)): Likewise.
3146 (std::vector<>::resize(size_t, const value_type&)): Call _M_fill_insert.
3147 (std::vector<>::insert(const_iterator, initializer_list<>)):
3148 Call _M_range_insert.
3149 * include/bits/vector.tcc (std::vector<>::_M_assign_aux): Likewise.
3151 2016-06-07 François Dumont <fdumont@gcc.gnu.org>
3153 * include/std/tuple (_Head_base<>): Default specialization condition at
3156 2016-06-06 Ville Voutilainen <ville.voutilainen@gmail.com>
3158 Support allocators in tuples of zero size.
3159 * include/std/tuple (tuple<>::tuple(),
3160 tuple<>::tuple(allocator_arg_t, const _Alloc&),
3161 tuple<>::tuple(allocator_arg_t, const _Alloc&, const tuple&)): New.
3162 * testsuite/20_util/tuple/cons/allocators.cc: Adjust.
3164 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
3167 * src/filesystem/ops.cc (permissions(const path&, perms, error_code&)):
3168 Add or remove permissions according to perms argument.
3169 * testsuite/experimental/filesystem/operations/permissions.cc: New
3172 2016-06-05 Ville Voutilainen <ville.voutilainen@gmail.com>
3174 Protect allocator-overloads of tuple-from-tuple constructors
3175 from cases that would create dangling references.
3176 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
3177 const tuple<_UElements...>&), tuple(allocator_arg_t, const _Alloc&,
3178 tuple<_UElements...>&&)): Add a check for _NonNestedTuple.
3179 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Adjust.
3181 2016-05-29 Gerald Pfeifer <gerald@pfeifer.com>
3183 * doc/xml/manual/backwards_compatibility.xml: Adjust
3184 lists.debian.org link to https.
3185 * doc/html/manual/backwards.html: Regenerate.
3187 2016-05-27 Jonathan Wakely <jwakely@redhat.com>
3189 * doc/xml/manual/abi.xml: Adjust URL to use https.
3190 * doc/html/manual/*: Regenerate.
3192 2016-05-27 Ville Voutilainen <ville.voutilainen@gmail.com>
3195 * include/std/tuple (_TMC): Add a check for _NotSameTuple.
3196 * include/std/tuple (tuple(_UElements&&...)): Remove the separate
3197 check for _NotSameTuple.
3198 * include/std/tuple (_TMCT): New.
3199 * include/std/tuple (tuple(const tuple<_UElements...>&)): Use it.
3200 * include/std/tuple (tuple(tuple<_UElements...>&&)): Likewise.
3201 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
3202 const tuple<_UElements...>&)): Likewise.
3203 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
3204 tuple<_UElements...>&&)): Likewise.
3205 * testsuite/20_util/tuple/cons/66338.cc: New.
3207 2016-05-25 Jonathan Wakely <jwakely@redhat.com>
3209 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Fix test for sendfile.
3210 * configure: Regenerate.
3211 * config.h.in: Regenerate.
3213 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): Remove it.
3214 * include/bits/hashtable_policy.h (_Power2_rehash_policy::_M_next_bkt):
3215 Remove const qualification on function. Replace
3216 _GLIBCXX14_USE_CONSTEXPR on automatic variables with const.
3217 (_Power2_rehash_policy::_M_need_rehash): Remove const qualification.
3218 (_Power2_rehash_policy::_M_next_bkt): Remove mutable specifier.
3220 2016-05-24 François Dumont <fdumont@gcc.gnu.org>
3222 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): New.
3223 * include/bits/hashtable_policy.h
3224 (_Prime_rehash_policy::__has_load_factor): New. Mark rehash policy
3225 having load factor management.
3226 (_Mask_range_hashing): New.
3228 (_Power2_rehash_policy): New.
3229 (_Inserts<>): Remove last template parameter, _Unique_keys, so that
3230 partial specializations only depend on whether iterators are constant
3232 * testsuite/23_containers/unordered_set/hash_policy/26132.cc: Adapt to
3233 test new hash policy.
3234 * testsuite/23_containers/unordered_set/hash_policy/load_factor.cc:
3236 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
3238 * testsuite/23_containers/unordered_set/insert/hash_policy.cc:
3240 * testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
3242 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc:
3244 * testsuite/performance/23_containers/insert/54075.cc: Add benchmark
3245 using the new hash policy.
3246 * testsuite/performance/23_containers/insert_erase/41975.cc: Likewise.
3248 2016-05-24 Jonathan Wakely <jwakely@redhat.com>
3250 * include/bits/stl_queue.h (priority_queue::value_compare): Define.
3252 2016-05-23 François Dumont <fdumont@gcc.gnu.org>
3254 * include/debug/safe_iterator.h
3255 (_Safe_iterator<>::operator->()): Implement using underlying iterator
3257 * include/debug/safe_local_iterator.h
3258 (_Safe_local_iterator<>::operator->()): Likewise.
3260 2016-05-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
3262 * testsuite/experimental/memory_resource/1.cc: Add required argument
3263 to dg-require-atomic-builtins.
3265 2016-05-13 Jonathan Wakely <jwakely@redhat.com>
3268 * include/debug/bitset: Add #pragma GCC system_header.
3269 * include/debug/deque: Likewise.
3270 * include/debug/list: Likewise.
3271 * include/debug/map: Likewise.
3272 * include/debug/set: Likewise.
3273 * include/debug/string: Likewise.
3274 * include/debug/unordered_map: Likewise.
3275 * include/debug/unordered_set: Likewise.
3276 * include/debug/vector: Likewise.
3277 * include/debug/functions.h: Adjust whitespace.
3279 2016-05-12 Jonathan Wakely <jwakely@redhat.com>
3282 * testsuite/experimental/memory_resource/1.cc: Require atomics.
3284 2016-05-11 Jonathan Wakely <jwakely@redhat.com>
3287 * src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_DUAL_ABI]: Don't define
3288 exception constructors with __sso_string parameters.
3290 2016-05-10 Jonathan Wakely <jwakely@redhat.com>
3292 * include/experimental/bits/fs_dir.h (begin, end): Add noexcept.
3293 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
3294 Test begin and end functions.
3295 * testsuite/experimental/filesystem/iterators/
3296 recursive_directory_iterator.cc: Likewise.
3299 * src/filesystem/ops.cc (do_copy_file): Fix backwards conditions.
3300 * testsuite/experimental/filesystem/operations/copy_file.cc: New test.
3302 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
3303 Overload operator* to move from rvalues.
3306 * src/filesystem/ops.cc (create_dir): Handle EEXIST from mkdir.
3307 * testsuite/experimental/filesystem/operations/create_directory.cc:
3311 * src/filesystem/ops.cc (canonical(const path&, const path&)): Add
3312 base path to exception.
3313 * testsuite/experimental/filesystem/operations/canonical.cc: Test
3314 paths contained in exception.
3316 * testsuite/experimental/type_erased_allocator/2.cc: Remove unused
3320 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
3322 (directory_iterator::operator++(int)): Return proxy.
3323 (recursive_directory_iterator::operator++(int)): Likewise.
3324 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
3325 Test post-increment.
3326 * testsuite/experimental/filesystem/iterators/
3327 recursive_directory_iterator.cc: Likewise.
3329 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
3332 * testsuite/experimental/filesystem/iterators/
3333 recursive_directory_iterator.cc: Fix test02 to not call member
3334 functions on invalid iterator, and use VERIFY not assert.
3336 2016-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
3338 Avoid endless run-time recursion for copying single-element
3339 tuples where the element type is by-value constructible
3341 * include/std/tuple (_NotSameTuple): New.
3342 * include/std/tuple (tuple(_UElements&&...): Use it.
3343 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc: New.
3345 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
3348 * include/experimental/bits/fs_dir.h (recursive_directory_iterator):
3349 Initialize scalar member variables in default constructor.
3350 * testsuite/experimental/filesystem/iterators/
3351 recursive_directory_iterator.cc: Test default construction.
3353 2016-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3355 * testsuite/lib/libstdc++.exp (libstdc++_init): Enable on *-*-solaris*.
3357 2016-05-05 Jonathan Wakely <jwakely@redhat.com>
3359 * testsuite/experimental/filesystem/path/native/string.cc: Add
3360 dg-require-filesystem-ts directive.
3362 2016-05-04 Jonathan Wakely <jwakely@redhat.com>
3365 * include/experimental/memory_resource
3366 (__resource_adaptor_imp::do_allocate): Do not default-construct
3368 (__resource_adaptor_imp::do_deallocate): Likewise. Use
3369 allocator_traits to get pointer type.
3370 (__null_memory_resource::do_allocate): Remove unused parameters.
3371 (__null_memory_resource::do_deallocate): Likewise.
3372 (__null_memory_resource::do_is_equal): Likewise. Add return statement.
3373 * testsuite/experimental/type_erased_allocator/1.cc: Combine with ...
3374 * testsuite/experimental/type_erased_allocator/1_neg.cc: This, and
3376 * testsuite/experimental/memory_resource/1.cc: Here.
3377 * testsuite/experimental/memory_resource/null_memory_resource.cc: New.
3378 * testsuite/experimental/memory_resource/resource_adaptor.cc: New.
3380 2016-04-29 Chris Gregory <czipperz@gmail.com>
3382 * config/*: Remove trailing whitespace.
3384 * testsuite/tr1/*: Likewise.
3385 * testsuite/util/*: Likewise.
3387 2016-04-28 Jonathan Wakely <jwakely@redhat.com>
3390 * include/bits/basic_ios.tcc (basic_ios::_M_cache_locale): Use
3392 * include/bits/stream_iterator.h (istream_iterator, ostream_iterator):
3394 * include/std/atomic (atomic<_Tp>): Likewise.
3395 * include/std/shared_mutex (shared_lock): Likewise.
3396 * testsuite/24_iterators/istream_iterator/70766.cc: New test.
3397 * testsuite/24_iterators/ostream_iterator/70766.cc : New test.
3398 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
3399 * testsuite/29_atomics/atomic/70766.cc: New test.
3400 * testsuite/30_threads/shared_lock/70766.cc: New test.
3402 * include/bits/hashtable_policy.h (__detail::_Insert_base,
3403 __detail::_Insert): Improve comments.
3405 2016-04-27 Jonathan Wakely <jwakely@redhat.com>
3408 * include/std/limits: Update comments about DRs.
3409 (numeric_limits<const _Tp>, numeric_limits<volatile _Tp>,
3410 numeric_limits<const volatile _Tp>): Define unconditionally.
3412 2016-04-24 Jonathan Wakely <jwakely@redhat.com>
3415 * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path): Use
3416 static counter to return a different path on every call.
3418 2016-04-22 Tim Shen <timshen@google.com>
3421 * include/bits/regex_executor.tcc (_Executor<>::_M_word_boundary):
3422 Fix the match_not_bow and match_not_eow behavior.
3423 * testsuite/28_regex/regression.cc: Add testcase.
3425 2016-04-20 Jonathan Wakely <jwakely@redhat.com>
3428 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in,
3429 __codecvt_utf8_utf16_base<char16_t>::do_in): Fix mask operations.
3431 2016-04-19 Jonathan Wakely <jwakely@redhat.com>
3434 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in):
3435 Override endianness bit in mode.
3436 * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: New test.
3437 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc: Test
3438 that little_endian mode is ignored.
3439 * testsuite/experimental/filesystem/path/native/string.cc: New test.
3442 * src/filesystem/ops.cc (close_fd): New function.
3443 (do_copy_file): Set permissions before copying file contents. Check
3444 result of closing file descriptors. Don't copy streambuf when file
3446 (copy(const path&, const path&, copy_options, error_code&)): Use
3447 lstat for source file when copy_symlinks is set.
3448 * testsuite/experimental/filesystem/operations/copy.cc: Test copy().
3450 * include/experimental/bits/fs_fwd.h (operator&, operator|, operator^,
3451 operator~ operator&=, operator|=, operator^=): Add noexcept to
3452 overloaded operators for copy_options, perms and directory_options.
3453 * src/filesystem/ops.cc (make_file_type, make_file_status,
3454 is_not_found_errno, file_time): Add noexcept.
3456 2016-04-19 Edward Smith-Rowland <3dw4rd@verizon.net>
3458 * include/bits/c++14_warning.h: Do not refer C++14 as experimental.
3460 2016-04-18 Jonathan Wakely <jwakely@redhat.com>
3463 * include/bits/random.h: Reword static assertion messages to state
3464 positive conditions.
3465 * include/bits/random.tcc: Likewise.
3466 * include/bits/uniform_int_dist.h: Likewise.
3467 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3470 * include/std/function (_Bind, _Bind_result): Remove unused typedefs.
3472 * config/cpu/sh/atomicity.h: Fix typo in comment.
3475 * include/std/thread (operator<, operator==): Move definitions to
3477 * testsuite/30_threads/thread/id/70294.cc: New test.
3479 * testsuite/18_support/bad_exception/23591_thread-1.c: Add
3480 -Wno-pedantic to dg-options.
3481 * testsuite/20_util/align/2.cc: Use type as operand of alignof.
3482 * testsuite/20_util/is_floating_point/value.cc: Add -Wno-pedantic
3484 * testsuite/20_util/specialized_algorithms/uninitialized_fill/32158.cc:
3485 Remove extra semi-colon.
3486 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
3487 Always supply second argument to static_assert.
3488 * testsuite/25_algorithms/lower_bound/no_operator_ne.cc: Remove extra
3490 * testsuite/26_numerics/complex/c99.cc: Add -Wno-pedantic to
3492 * testsuite/26_numerics/complex/literals/values.cc: Likewise.
3493 * testsuite/29_atomics/atomic/60695.cc: Likewise.
3494 * testsuite/29_atomics/atomic/62259.cc: use __alignof__ instead of
3495 alignof when operand is an object not a type.
3496 * testsuite/decimal/ctor.cc: Add -Wno-pedantic to dg-options.
3497 * testsuite/decimal/make-decimal.cc: Likewise.
3498 * testsuite/experimental/type_traits/value.cc: Always supply second
3499 argument to static_assert.
3500 * testsuite/util/testsuite_common_types.h: Use __extension__ for
3503 * testsuite/experimental/type_erased_allocator/1.cc: Don't include
3505 * testsuite/experimental/type_erased_allocator/1_neg.cc: Likewise.
3506 * testsuite/experimental/type_erased_allocator/2.cc: Likewise.
3507 * testsuite/experimental/type_erased_allocator/uses_allocator.cc:
3508 Likewise. Add licence and change to compile-only test.
3510 * include/bits/locale_facets.h (ctype::do_narrow): Add attribute to
3512 * include/bits/regex_automaton.h (_NFA::_M_insert_alt): Likewise.
3514 * include/ext/string_conversions.h (__stoa): Avoid -Wsign-compare
3517 2016-04-17 Edward Smith-Rowland <3dw4rd@verizon.net>
3519 * include/bits/specfun.h: Trivial comment misspelling.
3521 2016-04-14 Jason Merrill <jason@redhat.com>
3523 Revert Jonathan's empty ABI change from yesterday.
3525 2016-04-13 Martin Sebor <msebor@redhat.com>
3528 * testsuite/25_algorithms/rotate/moveable2.cc: Make sure VLA
3529 upper bound is positive.
3531 2016-04-13 Jonathan Wakely <jwakely@redhat.com>
3533 * include/bits/c++config (_GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES,
3534 _GLIBCXX_END_NAMESPACE_EMPTY_TYPES, _GLIBCXX_ABI_TAG_EMPTY): Define.
3535 * include/bits/hashtable.h (_Hashtable::_M_emplace): Change signatures
3536 of functions taking empty structs by value. Add a template parameter
3537 to overloads without hints. Rename overloads with hints to
3539 (_Hashtable::_M_erase(true_type, const_iterator),
3540 _Hashtable::_M_erase(false_type, const_iterator)): Change signatures
3541 by reordering parameters.
3542 * include/bits/hashtable_policy.h (_Insert::insert): Adjust to call
3543 _M_emplace_hint instead of _M_emplace.
3544 * include/bits/shared_ptr.h (shared_ptr(_Tp1*, _Deleter, _Alloc),
3545 shared_ptr(nullptr_t, _Deleter, _Alloc)): Use _GLIBCXX_ABI_TAG_EMPTY.
3546 * include/bits/shared_ptr_base.h (_Sp_counted_deleter, __shared_count,
3547 __shared_ptr): Likewise.
3548 * include/bits/stl_algo.h (replace_if): Likewise.
3549 * include/bits/stl_pair.h (piecewise_construct_t,
3550 piecewise_construct): Use _GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES.
3551 * include/bits/uses_allocator.h (allocator_arg_t, allocator_arg,
3552 __uses_alloc0): Likewise.
3553 * include/ext/pb_ds/assoc_container.hpp (basic_hash_table): Likewise.
3554 * testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error.
3555 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
3556 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
3557 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
3558 * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
3559 * testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.
3561 2016-04-12 Edward Smith-Rowland <3dw4rd@verizon.net>
3563 Document C++17/TR29124 C++ Special Math Functions.
3564 * include/bits/specfun.h: Add Doxygen markup.
3566 2016-04-07 Jonathan Wakely <jwakely@redhat.com>
3568 * testsuite/30_threads/thread/70503.cc: Adjust from xfail to pass.
3570 2016-04-06 Eric Botcazou <ebotcazou@adacore.com>
3572 * src/Makefile.am (libstdc++-symbols.ver): Remove useless /dev/null.
3573 * src/Makefile.in: Regenerate.
3575 2016-04-05 Jonathan Wakely <jwakely@redhat.com>
3578 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Don't test
3579 __atomic_fetch_add for bool.
3580 * configure: Regenerate.
3582 * testsuite/30_threads/thread/70503.cc: Require -static to work.
3585 * src/c++11/thread.cc (execute_native_thread_routine,
3586 execute_native_thread_routine_compat): Give internal linkage.
3587 * testsuite/30_threads/thread/70503.cc: New test.
3589 2016-04-05 Ville Voutilainen <ville.voutilainen@gmail.com>
3592 * include/bits/stl_pair.h (_ConstructiblePair,
3593 _ImplicitlyConvertiblePair, _MoveConstructiblePair,
3594 _ImplicitlyMoveConvertiblePair): Add shortcut conditions
3595 for same-type cases.
3596 * testsuite/20_util/pair/70437.cc: New.
3598 2016-03-24 Jonathan Wakely <jwakely@redhat.com>
3601 * config/abi/pre/gnu.ver: Add new symbol.
3602 * libsupc++/eh_alloc.cc (__gnu_cxx::__freeres): Define.
3603 * testsuite/18_support/free_eh_pool.cc: New test.
3605 2016-03-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
3607 * include/Makefile.am (install-freestanding-headers): Add
3608 concept_check.h and move.h to the installed headers.
3609 * include/Makefile.in: Regenerated.
3610 * include/bits/concept_check.h: Ignore _GLIBCXX_CONCEPT_CHECKS for
3611 freestanding implementations.
3612 * doc/xml/manual/using.xml (_GLIBCXX_CONCEPT_CHECKS): Mention
3613 that this macro has no effect for freestanding implementations.
3614 * doc/html/manual/using_macros.html: Likewise.
3616 2016-02-24 Jonathan Wakely <jwakely@redhat.com>
3619 * include/experimental/tuple (__apply_impl): Qualify get and forward.
3621 2016-02-23 Jonathan Wakely <jwakely@redhat.com>
3623 * doc/xml/manual/using.xml: Document __STDCPP_WANT_MATH_SPEC_FUNCS__.
3624 * doc/html/*: Regenerate.
3627 * include/tr1/cmath (acosh, asinh, atanh, cbrt, copysign, erf, erfc,
3628 exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma, llrint,
3629 llround, log1p, log2, logb, lrint, lround, nan, nearbyint, nextafter,
3630 nexttoward, remainder, remquo, rint, round, scalbln, scalbn, tgamma,
3631 trunc) [__cplusplus >= 201103L]: Import from namespace std.
3632 (fabs) [__cplusplus < 201103L]: Import from namespace std.
3633 * include/tr1/complex (acosh, asinh, atanh) [__cplusplus >= 201103L]:
3635 * testsuite/tr1/headers/c++200x/complex.cc: Add std::fabs to global
3636 namespace before including TR1 headers.
3637 * testsuite/tr1/headers/c++200x/math.cc: New test.
3639 2016-02-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
3642 * include/c_global/cstdarg: Undefine __need___va_list.
3643 * include/c_global/cstddef: Undefine all kinds of __need_*.
3645 2016-02-16 Tim Shen <timshen@google.com>
3648 * include/bits/regex_scanner.h: Add different special character
3649 sets for grep and egrep regex.
3650 * include/bits/regex_scanner.tcc: Use _M_spec_char more uniformly.
3651 * testsuite/28_regex/regression.cc: Add new testcase.
3653 2016-02-08 Jonathan Wakely <jwakely@redhat.com>
3655 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Remove accidentally
3656 added 'constexpr' in previous commit.
3657 * configure: Regenerate.
3660 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Enable isinf and isnan
3661 checks for all targets except *-*-solaris2.* and ensure we find the
3662 libc math.h header not our own.
3663 * configure: Regenerate.
3665 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
3667 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt (FUNC):
3668 New file. Copied over from s390-linux-gnu.
3670 2016-02-04 Jonathan Wakely <jwakely@redhat.com>
3673 * acinclude.m4 (GLIBCXX_ENABLE_C99): Check C99 stdlib.h functions
3674 with -std=c++98 and define _GLIBCXX98_USE_C99_STDLIB.
3675 * config.h.in: Regenerate.
3676 * configure: Regenerate.
3677 * testsuite/21_strings/c_strings/char/69626.cc: New.
3679 * doc/html/index.html: Regenerate.
3681 * doc/xml/manual/containers.xml: Add cross-reference to Dual ABI.
3682 * doc/xml/manual/spine.xml: Update copyright years and author blurb.
3683 * doc/html/*: Regenerate.
3685 2016-02-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
3688 * include/c_compatibility/math.h: Move header guards.
3689 * include/c_compatibility/stdlib.h: Likewise.
3691 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
3694 * config/os/newlib/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3696 2016-01-28 John David Anglin <danglin@gcc.gnu.org>
3699 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Split check for obsolete
3700 isinf and isnan functions into two independent checks. Check on hpux.
3701 * config.h.in: Regenerate.
3702 * configure: Regenerate.
3703 * include/c_global/cmath (isinf(double), isnan(double)): Use
3704 _GLIBCXX_HAVE_OBSOLETE_ISINF and _GLIBCXX_HAVE_OBSOLETE_ISNAN,
3707 2016-01-27 Jakub Jelinek <jakub@redhat.com>
3709 * testsuite/libstdc++-prettyprinters/whatis.cc: Include <random>.
3711 2016-01-27 Jonathan Wakely <jwakely@redhat.com>
3714 * testsuite/ext/special_functions/hyperg/check_value.cc: Use
3715 -ffp-contract=off, and -ffloat-store to disable excess precision.
3716 * testsuite/special_functions/02_assoc_legendre/check_value.cc: Use
3719 2016-01-26 Jonathan Wakely <jwakely@redhat.com>
3722 * include/bits/stl_algobase.h (__copy_move<_IsMove, true,
3723 random_access_iterator_tag>): Check is_move_assignable when moving.
3724 (__copy_move_backwards<_IsMove, true, random_access_iterator_tag>):
3726 * testsuite/25_algorithms/copy/move_iterators/69478.cc: New.
3727 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc: New.
3728 * testsuite/25_algorithms/move/69478.cc: New.
3729 * testsuite/25_algorithms/move_backward/69478.cc: new.
3731 2016-01-26 Andris Pavenis <andris.pavenis@iki.fi>
3733 * include/c_compatibility/stdlib.h: Include wide character related
3734 definitions only when they are available in cstdlib.
3736 2016-01-25 Jonathan Wakely <jwakely@redhat.com>
3739 * include/Makefile.am: Add new header.
3740 * include/Makefile.in: Regenerate.
3741 * include/bits/random.h (uniform_int_distribution): Move to
3742 bits/uniform_int_dist.h.
3743 * include/bits/random.tcc (uniform_int_distribution::operator(),
3744 uniform_int_distribution::__generate_impl): Likewise.
3745 * include/bits/uniform_int_dist.h: New header.
3746 * include/bits/stl_algo.h [__cplusplus >= 201103L]: Include
3747 <bits/uniform_int_dist.h> instead of <random>.
3748 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
3749 move_iterators/1.cc: Include correct header for uninitialized_copy.
3750 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
3751 move_iterators/1.cc: Likewise.
3752 * testsuite/25_algorithms/nth_element/58800.cc: Include correct
3754 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lines.
3756 2016-01-23 John David Anglin <danglin@gcc.gnu.org>
3759 * config/os/hpux/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3761 2016-01-22 Edward Smith-Rowland <3dw4rd@verizon.net>
3763 TR29124 C++ Special Math - <math.h> pulls funcs into global namespace.
3764 * include/c_compatibility/math.h: Import the TR29124 functions
3765 into the global namespace.
3766 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: Remove
3767 xfail and make compile-only.
3768 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: Ditto.
3769 * testsuite/special_functions/03_beta/compile_2.cc: Ditto.
3770 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Ditto.
3771 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Ditto.
3772 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Ditto.
3773 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Ditto.
3774 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Ditto.
3775 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Ditto.
3776 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Ditto.
3777 * testsuite/special_functions/11_ellint_1/compile_2.cc: Ditto.
3778 * testsuite/special_functions/12_ellint_2/compile_2.cc: Ditto.
3779 * testsuite/special_functions/13_ellint_3/compile_2.cc: Ditto.
3780 * testsuite/special_functions/14_expint/compile_2.cc: Ditto.
3781 * testsuite/special_functions/15_hermite/compile_2.cc: Ditto.
3782 * testsuite/special_functions/16_laguerre/compile_2.cc: Ditto.
3783 * testsuite/special_functions/17_legendre/compile_2.cc: Ditto.
3784 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Ditto.
3785 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Ditto.
3786 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Ditto.
3787 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Ditto.
3789 2016-01-22 Jonathan Wakely <jwakely@redhat.com>
3792 * include/bits/valarray_before.h (__fun, __fun_with_valarray): Only
3793 define result_type for types which can be safely used with valarrays.
3794 * testsuite/26_numerics/valarray/69116.cc: New.
3797 * config/os/gnu-linux/os_defines.h: Define
3798 _GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC.
3799 * include/c_global/cmath (isinf, isnan): Check it.
3800 * doc/xml/manual/internals.xml: Document it.
3801 * doc/html/*: Regenerate.
3803 2016-01-21 Jonathan Wakely <jwakely@redhat.com>
3806 * include/bits/cpp_type_traits.h: Ensure C++ language linkage.
3807 * include/ext/type_traits.h: Likewise.
3808 * testsuite/17_intro/headers/c++2011/linkage.cc: Check autoconf macros
3809 for presence of C headers.
3810 * testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Adjust
3811 dg-error line number.
3812 * testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise.
3813 * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise.
3814 * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Likewise.
3816 2016-01-20 Torvald Riegel <triegel@redhat.com>
3819 * config/os/bsd/darwin/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3821 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
3824 * include/c_compatibility/math.h (acosh, asinh, atanh, acbrt,
3825 copysign, erf, erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb,
3826 lgamma, llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
3827 nextafter, nexttoward, remainder, remquo, rint, round, scalbln, scalbn,
3828 tgamma, trunc) [__cplusplus >= 201103L && _GLIBCXX_USE_C99_MATH_TR1]:
3829 Add using declarations.
3830 * testsuite/26_numerics/headers/cmath/60401.cc: New.
3833 * include/c_global/ccomplex: Ensure C++ language linkage.
3834 * include/c_global/cmath: Likewise.
3835 * include/c_global/cstdlib: Likewise.
3836 * include/c_global/ctgmath: Likewise.
3837 * testsuite/17_intro/headers/c++2011/linkage.cc: New.
3839 2016-01-19 Jonathan Wakely <jwakely@redhat.com>
3843 * include/Makefile.am: Use c_compatibility math.h and stdlib.h for
3844 --enable-cheaders=c_global configs.
3845 * include/Makefile.in: Regenerate.
3846 * include/c_compatibility/math.h: Remove obsolete _GLIBCXX_NAMESPACE_C
3847 test and allow inclusion from C files.
3848 * include/c_compatibility/stdlib.h: Likewise. Support freestanding.
3849 (at_quick_exit, quick_exit): Add using directives.
3850 * include/c_global/cmath: Use #include_next for math.h.
3851 * include/c_global/cstdlib: Use #include_next for stdlib.h.
3852 * testsuite/26_numerics/headers/cmath/14608.cc: New.
3853 * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
3854 Remove xfail for most targets.
3855 * testsuite/26_numerics/headers/cstdlib/60401.cc: New.
3857 2016-01-18 Torvald Riegel <triegel@redhat.com>
3859 * include/bits/c++config (_GLIBCXX_USE_WEAK_REF): New.
3860 (_GLIBCXX_TXN_SAFE, _GLIBCXX_TXN_SAFE_DYN): Use _GLIBCXX_USE_WEAK_REF
3861 and move after its definition.
3862 * config/os/aix/os_defines.h (_GLIBCXX_USE_WEAK_REF): Override.
3863 * src/c++11/cow-stdexcept.cc: Use _GLIBCXX_USE_WEAK_REF instead of
3864 __GXX_WEAK__, and only provide transactional clones if
3865 _GLIBCXX_USE_WEAK_REF is true. Don't provide stubs of libitm
3868 2016-01-18 Jonathan Wakely <jwakely@redhat.com>
3871 * testsuite/26_numerics/headers/cmath/60637.cc: Add test.
3874 * include/std/functional (_Function_base::_M_not_empty_function):
3875 Change overloads for pointers to take arguments by value.
3876 * testsuite/20_util/function/cons/57465.cc: Add tests for
3877 pointer-to-member cases.
3880 * src/c++11/cow-stdexcept.cc (_txnal_cow_string_C1_for_exceptions):
3881 Use macros for exception handling and fix unused parameter warning.
3883 2016-01-17 John David Anglin <danglin@gcc.gnu.org>
3886 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
3888 2016-01-17 Torvald Riegel <triegel@redhat.com>
3890 * src/c++11/cow-stdexcept.cc (txnal_read_ptr): Fix static_assert.
3892 2016-01-16 H.J. Lu <hongjiu.lu@intel.com>
3894 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Add
3897 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
3900 * include/bits/uses_allocator.h (__uses_alloc<true, ...>): Add
3901 static assertion that type is constructible from the arguments.
3902 * testsuite/20_util/scoped_allocator/69293_neg.cc: New.
3903 * testsuite/20_util/uses_allocator/69293_neg.cc: New.
3904 * testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error.
3907 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
3908 and isnan on AIX. Quote variables.
3909 * configure: Regenerate.
3911 2016-01-15 Torvald Riegel <triegel@redhat.com>
3913 * include/bits/basic_string.h (basic_string): Declare friends.
3914 * include/bits/c++config (_GLIBCXX_TXN_SAFE,
3915 _GLIBCXX_TXN_SAFE_DYN, _GLIBCXX_USE_ALLOCATOR_NEW): New.
3916 * include/std/stdexcept (logic_error, domain_error, invalid_argument,
3917 length_error, out_of_range, runtime_error, range_error,
3918 underflow_error, overflow_error): Declare members as transaction-safe.
3919 (logic_error, runtime_error): Declare friend functions.
3920 * libsupc++/exception (exception, bad_exception): Declare members as
3922 * src/c++11/cow-stdexcept.cc: Define transactional clones for the
3923 transaction-safe members of exceptions and helper functions.
3924 * libsupc++/eh_exception.cc: Adjust and define transactional clones.
3925 * config/abi/pre/gnu.ver (GLIBCXX_3.4.22) Add transactional clones.
3926 (CXXABI_1.3.10): New.
3927 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): New.
3928 (GLIBCXX_ENABLE_ALLOCATOR): Set ENABLE_ALLOCATOR_NEW.
3929 * configure.ac: Call GLIBCXX_CHECK_SIZE_T_MANGLING.
3930 * include/Makefile.am: Write ENABLE_ALLOCATOR_NEW to c++config.h.
3931 * include/Makefile.in: Regenerate.
3932 * config.h.in: Regenerate.
3933 * configure: Regenerate.
3934 * testsuite/util/testsuite_abi.cc (check_version): Add CXXABI_1.3.10.
3936 2016-01-15 Steve Ellcey <sellcey@imgtec.com>
3938 * include/ext/random.tcc: Use __builtin_isfinite instead of
3941 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
3943 * include/bits/std_mutex.h: Fix Doxygen @file name.
3945 2016-01-14 Edward Smith-Rowland <3dw4rd@verizon.net>
3946 Jonathan Wakely <jwakely@redhat.com>
3947 Florian Goth <CaptainSifff@gmx.de>
3949 Implement TR29124 C++ special Math Functions.
3950 * include/Makefile.am: Add new headers.
3951 * include/Makefile.in: Regenerate.
3952 * include/bits/specfun.h: New.
3953 * include/c_global/cmath: Adjust for both tr1 and tr29124 maths.
3954 * include/tr1/bessel_function.tcc: Ditto.
3955 * include/tr1/beta_function.tcc: Ditto.
3956 * include/tr1/cmath: Ditto.
3957 * include/tr1/ell_integral.tcc: Ditto.
3958 * include/tr1/exp_integral.tcc: Ditto.
3959 * include/tr1/gamma.tcc: Ditto.
3960 * include/tr1/hypergeometric.tcc: Ditto.
3961 * include/tr1/legendre_function.tcc: Ditto.
3962 * include/tr1/modified_bessel_func.tcc: Ditto.
3963 * include/tr1/poly_hermite.tcc: Ditto.
3964 * include/tr1/poly_laguerre.tcc: Ditto.
3965 * include/tr1/riemann_zeta.tcc: Ditto.
3966 * include/tr1/special_function_util.h: Ditto.
3967 * testsuite/ext/special_functions/conf_hyperg: New.
3968 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: New.
3969 * testsuite/ext/special_functions/conf_hyperg/check_value.cc: New.
3970 * testsuite/ext/special_functions/conf_hyperg/compile.cc: New.
3971 * testsuite/ext/special_functions/hyperg: New.
3972 * testsuite/ext/special_functions/hyperg/check_nan.cc: New.
3973 * testsuite/ext/special_functions/hyperg/check_value.cc: New.
3974 * testsuite/ext/special_functions/hyperg/compile.cc: New.
3975 * testsuite/libstdc++-dg/conformance.exp: Add special_functions directory.
3976 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc: New.
3977 * testsuite/special_functions/01_assoc_laguerre/check_value.cc: New.
3978 * testsuite/special_functions/01_assoc_laguerre/compile.cc: New.
3979 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: New.
3980 * testsuite/special_functions/02_assoc_legendre/check_nan.cc: New.
3981 * testsuite/special_functions/02_assoc_legendre/check_value.cc: New.
3982 * testsuite/special_functions/02_assoc_legendre/compile.cc: New.
3983 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: New.
3984 * testsuite/special_functions/03_beta/check_nan.cc: New.
3985 * testsuite/special_functions/03_beta/check_value.cc: New.
3986 * testsuite/special_functions/03_beta/compile.cc: New.
3987 * testsuite/special_functions/03_beta/compile_2.cc: New.
3988 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: New.
3989 * testsuite/special_functions/04_comp_ellint_1/check_value.cc: New.
3990 * testsuite/special_functions/04_comp_ellint_1/compile.cc: New.
3991 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: New.
3992 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: New.
3993 * testsuite/special_functions/05_comp_ellint_2/check_value.cc: New.
3994 * testsuite/special_functions/05_comp_ellint_2/compile.cc: New.
3995 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: New.
3996 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: New.
3997 * testsuite/special_functions/06_comp_ellint_3/check_value.cc: New.
3998 * testsuite/special_functions/06_comp_ellint_3/compile.cc: New.
3999 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: New.
4000 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: New.
4001 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc: New.
4002 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: New.
4003 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: New.
4004 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: New.
4005 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: New.
4006 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: New.
4007 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: New.
4008 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: New.
4009 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: New.
4010 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc: New.
4011 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: New.
4012 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: New.
4013 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: New.
4014 * testsuite/special_functions/10_cyl_neumann/check_value.cc: New.
4015 * testsuite/special_functions/10_cyl_neumann/compile.cc: New.
4016 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: New.
4017 * testsuite/special_functions/11_ellint_1/check_nan.cc: New.
4018 * testsuite/special_functions/11_ellint_1/check_value.cc: New.
4019 * testsuite/special_functions/11_ellint_1/compile.cc: New.
4020 * testsuite/special_functions/11_ellint_1/compile_2.cc: New.
4021 * testsuite/special_functions/12_ellint_2/check_nan.cc: New.
4022 * testsuite/special_functions/12_ellint_2/check_value.cc: New.
4023 * testsuite/special_functions/12_ellint_2/compile.cc: New.
4024 * testsuite/special_functions/12_ellint_2/compile_2.cc: New.
4025 * testsuite/special_functions/13_ellint_3/check_nan.cc: New.
4026 * testsuite/special_functions/13_ellint_3/check_value.cc: New.
4027 * testsuite/special_functions/13_ellint_3/compile.cc: New.
4028 * testsuite/special_functions/13_ellint_3/compile_2.cc: New.
4029 * testsuite/special_functions/14_expint/check_nan.cc: New.
4030 * testsuite/special_functions/14_expint/check_value.cc: New.
4031 * testsuite/special_functions/14_expint/compile.cc: New.
4032 * testsuite/special_functions/14_expint/compile_2.cc: New.
4033 * testsuite/special_functions/15_hermite/check_nan.cc: New.
4034 * testsuite/special_functions/15_hermite/check_value.cc: New.
4035 * testsuite/special_functions/15_hermite/compile.cc: New.
4036 * testsuite/special_functions/15_hermite/compile_2.cc: New.
4037 * testsuite/special_functions/16_laguerre/check_nan.cc: New.
4038 * testsuite/special_functions/16_laguerre/check_value.cc: New.
4039 * testsuite/special_functions/16_laguerre/compile.cc: New.
4040 * testsuite/special_functions/16_laguerre/compile_2.cc: New.
4041 * testsuite/special_functions/17_legendre/check_nan.cc: New.
4042 * testsuite/special_functions/17_legendre/check_value.cc: New.
4043 * testsuite/special_functions/17_legendre/compile.cc: New.
4044 * testsuite/special_functions/17_legendre/compile_2.cc: New.
4045 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: New.
4046 * testsuite/special_functions/18_riemann_zeta/check_value.cc: New.
4047 * testsuite/special_functions/18_riemann_zeta/compile.cc: New.
4048 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: New.
4049 * testsuite/special_functions/19_sph_bessel/check_nan.cc: New.
4050 * testsuite/special_functions/19_sph_bessel/check_value.cc: New.
4051 * testsuite/special_functions/19_sph_bessel/compile.cc: New.
4052 * testsuite/special_functions/19_sph_bessel/compile_2.cc: New.
4053 * testsuite/special_functions/20_sph_legendre/check_nan.cc: New.
4054 * testsuite/special_functions/20_sph_legendre/check_value.cc: New.
4055 * testsuite/special_functions/20_sph_legendre/compile.cc: New.
4056 * testsuite/special_functions/20_sph_legendre/compile_2.cc: New.
4057 * testsuite/special_functions/21_sph_neumann/check_nan.cc: New.
4058 * testsuite/special_functions/21_sph_neumann/check_value.cc: New.
4059 * testsuite/special_functions/21_sph_neumann/compile.cc: New.
4060 * testsuite/special_functions/21_sph_neumann/compile_2.cc: New.
4061 * testsuite/util/specfun_testcase.h: New.
4062 * testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc: More testcases.
4063 * testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc: Ditto.
4064 * testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc: Ditto.
4065 * testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc: Ditto.
4066 * testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc: Ditto.
4067 * testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc: Ditto.
4068 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc: New.
4070 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
4073 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
4074 and isnan functions.
4075 * config.h.in: Regenerate.
4076 * configure: Regenerate.
4077 * include/c_global/cmath (isinf(double), isnan(double))
4078 [_GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN]: Import via using-directive.
4079 * testsuite/26_numerics/headers/cmath/48891.cc: New.
4081 2016-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4084 * configure.host (abi_baseline_pair): Use separate baseline for
4085 Solaris 11+ and Solaris 10 with gld.
4086 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: New file.
4087 * config/abi/post/solaris2.11/baseline_symbols.txt: New file.
4088 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: New file.
4090 2016-01-12 Daniel Kruegler <daniel.kruegler@gmail.com>
4093 * include/std/type_traits: Following N4511, reimplement __is_swappable
4094 and __is_nothrow_swappable. Move __is_swappable to namespace std,
4095 adjust callers. Use __is_nothrow_swappable in swap.
4096 * include/bits/move.h: Use __is_nothrow_swappable in swap.
4097 * testsuite/20_util/is_nothrow_swappable/value.cc: Extend; remove
4098 __is_swappable related tests.
4099 * testsuite/20_util/is_swappable/value.cc: New.
4100 * testsuite/20_util/is_swappable/requirements/
4101 explicit_instantiation.cc: New.
4102 * testsuite/20_util/is_swappable/requirements/typedefs.cc: New.
4103 * testsuite/25_algorithms/swap/68877.cc: New.
4105 2016-01-12 Jonathan Wakely <jwakely@redhat.com>
4107 * testsuite/20_util/function/68995.cc: Test reference_wrapper cases.
4111 * include/std/functional (function::_Invoke): Remove, use result_of.
4112 (function::_Callable): Replace alias template with class template
4113 and use partial specialization instead of _NotSelf alias template.
4114 (function(_Functor)): Add "not self" constraint so that _Callable is
4115 not used while type is incomplete.
4116 * testsuite/20_util/function/69222.cc: New.
4118 2016-01-11 Jonathan Wakely <jwakely@redhat.com>
4121 * include/bits/alloc_traits.h (allocator_traits<allocator<_Tp>>):
4122 Define partial specialization.
4123 * testsuite/20_util/shared_ptr/cons/58659.cc: Add construct and
4124 destroy members to std::allocator explicit specialization.
4126 2016-01-08 Jonathan Wakely <jwakely@redhat.com>
4128 * testsuite/26_numerics/headers/cmath/
4129 c99_classification_macros_c++.cc: Rename to ...
4130 * testsuite/26_numerics/headers/cmath/
4131 c99_classification_macros_c++98.cc: Here and add -std=gnu++98.
4132 * testsuite/26_numerics/headers/cmath/
4133 c99_classification_macros_c++0x.cc: Rename to ...
4134 * testsuite/26_numerics/headers/cmath/
4135 c99_classification_macros_c++11.cc: Here.
4138 * include/bits/uses_allocator.h: Add missing include.
4140 2016-01-07 Jonathan Wakely <jwakely@redhat.com>
4145 * include/bits/stl_iterator.h (back_insert_iterator,
4146 front_insert_iterator, insert_iterator): Use __addressof (LWG 2324).
4147 * include/bits/uses_allocator.h (__use_alloc): Use __addressof.
4148 * include/std/future (__future::base::_State_baseV2::__setter):
4150 * include/std/scoped_allocator (__outermost): Likewise.
4151 * testsuite/20_util/scoped_allocator/69114.cc: New.
4152 * testsuite/20_util/uses_allocator/69114.cc: New.
4153 * testsuite/30_threads/promise/69106.cc: New.
4155 2016-01-06 Jonathan Wakely <jwakely@redhat.com>
4158 * include/bits/basic_string.h (basic_string::_S_copy_chars<_Iterator>):
4159 Remove _GLIBCXX_NOEXCEPT.
4160 testsuite/21_strings/basic_string/cons/char/69092.cc: New.
4162 * include/Makefile.am: Adjust.
4163 * include/Makefile.in: Regenerate.
4164 * include/bits/mutex.h: Rename to bits/std_mutex.h.
4165 * include/std/condition_variable: Adjust include.
4166 * include/std/mutex: Likewise.
4168 2016-01-04 Jakub Jelinek <jakub@redhat.com>
4170 Update copyright years.
4172 Copyright (C) 2016 Free Software Foundation, Inc.
4174 Copying and distribution of this file, with or without modification,
4175 are permitted in any medium without royalty provided the copyright
4176 notice and this notice are preserved.