1 2016-10-07 Jonathan Wakely <jwakely@redhat.com>
3 * doc/xml/manual/status_cxx1998.xml: Improve documentation of
4 implementation-defined properties.
5 * doc/xml/manual/status_cxx2011.xml: Likewise.
6 * doc/xml/manual/status_cxx2017.xml: Likewise.
8 * doc/xml/manual/status_cxx2017.xml: Update status.
9 * include/std/type_traits (has_unique_object_representations): Define.
10 * testsuite/20_util/has_unique_object_representations/value.cc: New.
11 * testsuite/20_util/has_unique_object_representations/requirements/
12 explicit_instantiation.cc: New.
13 * testsuite/20_util/has_unique_object_representations/requirements/
16 2016-10-06 Jonathan Wakely <jwakely@redhat.com>
18 * doc/xml/manual/status_cxx2011.xml: Update status.
19 * include/std/scoped_allocator (__outer_allocator_t, __outermost_type):
20 New helpers for recursive OUTERMOST.
21 (__outermost): Use __outermost_type::_S_outermost.
22 (__do_outermost, scoped_allocator_adaptor::__outermost_type): Remove.
23 (scoped_allocator_adaptor::__outermost_alloc_traits): Use new
24 __outermost_type helper.
25 (scoped_allocator_adaptor::_Constructible): New alias template.
26 (scoped_allocator_adaptor::scoped_allocator_adaptor<_Outer2>):
27 Constrain template constructors.
28 * testsuite/20_util/scoped_allocator/3.cc: New test.
29 * testsuite/20_util/scoped_allocator/outermost.cc: New test.
31 2016-10-05 Jonathan Wakely <jwakely@redhat.com>
34 * testsuite/20_util/not_fn/1.cc: Fix test.
35 * testsuite/experimental/functional/not_fn.cc: Likewise.
38 * include/bits/stl_queue.h (priority_queue): Fix allocator-extended
40 * testsuite/23_containers/priority_queue/allocator.cc: New test.
43 * include/bits/stl_map.h (map::map()): Use nothrow constructibility
44 of comparison function in conditional noexcept.
45 * include/bits/stl_multimap.h (multimap::multimap()): Likewise.
46 * include/bits/stl_multiset.h (multiset::multiset()): Likewise.
47 * include/bits/stl_set.h (set::set()): Likewise.
48 * testsuite/23_containers/map/cons/noexcept_default_construct.cc:
50 * testsuite/23_containers/multimap/cons/noexcept_default_construct.cc:
52 * testsuite/23_containers/multiset/cons/noexcept_default_construct.cc:
54 * testsuite/23_containers/set/cons/noexcept_default_construct.cc:
57 * include/bits/node_handle.h (_Node_handle): Remove invalid and unused
61 * include/experimental/functional (_Not_fn): Remove.
62 (not_fn): Use std::_Not_fn.
63 * include/std/functional (_Not_fn): Add second parameter to
64 disambiguate copying from initialization by not_fn. Define for C++14.
65 (not_fn): Add second argument to initialization.
66 * testsuite/20_util/not_fn/1.cc: Copy call wrapper using
67 direct-initialization.
69 2016-10-03 François Dumont <fdumont@gcc.gnu.org>
71 * src/c++11/shared_ptr.cc (mask, invalid, get_mutex): Move
73 * src/c++11/mutex_pool.h: ... here. New.
74 * src/c++11/debug.cc: Use latter.
76 2016-10-03 Jonathan Wakely <jwakely@redhat.com>
78 * doc/xml/manual/status_cxx2017.xml: Update gcd/lcm status.
79 * doc/html/*: Regenerate.
80 * include/experimental/numeric (__abs): Move to <numeric>.
81 (gcd, lcm): Use __detail::gcd and __detail::lcm.
82 * include/std/numeric (__detail::__abs_integral)
83 (__detail::__gcd, __detail::__lcm): Define.
84 (gcd, lcm): Define for C++17.
85 * testsuite/26_numerics/gcd/1.cc: New test.
86 * testsuite/26_numerics/lcm/1.cc: New test.
87 * testsuite/experimental/numeric/gcd.cc: Swap contents with ...
88 * testsuite/experimental/numeric/lcd.cc: ... this.
92 * config/abi/pre/gnu-versioned-namespace.ver: Add exports for
93 __cxa_thread_atexit and __gnu_cxx::__freeres.
94 * include/Makefile.am: Add <experimental/bits/lfts_config.h>
95 * include/Makefile.in: Regenerate.
96 * include.bits/basic_string.h: Fix nesting of versioned namespaces.
97 * include/bits/c++config: Declare versioned namespaces for literals.
98 * include/bits/regex.h (basic_regex, match_results): Add workarounds
100 * include/bits/uniform_int_dist.h: Fix nesting of versioned namespace.
101 * include/std/chrono: Likewise.
102 * include/std/complex: Likewise.
103 * include/std/string_view: Likewise.
104 * include/std/variant: Likewise. Add workaround for PR c++/59256.
105 * include/experimental/bits/fs_fwd.h: Declare versioned namespace.
106 * include/experimental/bits/lfts_config.h: Declare versioned
108 * include/experimental/algorithm: Include
109 <experimental/bits/lfts_config.h>.
110 * include/experimental/any: Likewise.
111 * include/experimental/bits/erase_if.h: Likewise.
112 * include/experimental/chrono: Likewise.
113 * include/experimental/functional: Likewise.
114 * include/experimental/memory_resource: Likewise.
115 * include/experimental/optional: Likewise.
116 * include/experimental/propagate_const: Likewise.
117 * include/experimental/random: Likewise.
118 * include/experimental/ratio: Likewise.
119 * include/experimental/system_error: Likewise.
120 * include/experimental/tuple: Likewise.
121 * include/experimental/type_traits: Likewise.
122 * include/experimental/utility: Likewise.
123 * include/experimental/string_view: Likewise. Fix nesting of
124 versioned namespaces.
125 * include/experimental/bits/string_view.tcc: Reopen inline namespace
126 for non-inline function definitions.
127 * testsuite/17_intro/using_namespace_std_exp_neg.cc: New test.
128 * testsuite/20_util/duration/literals/range.cc: Adjust dg-error line.
129 * testsuite/experimental/any/misc/any_cast_neg.cc: Likewise.
130 * testsuite/experimental/propagate_const/assignment/move_neg.cc:
132 * testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
133 * testsuite/experimental/propagate_const/requirements2.cc: Likewise.
134 * testsuite/experimental/propagate_const/requirements3.cc: Likewise.
135 * testsuite/experimental/propagate_const/requirements4.cc: Likewise.
136 * testsuite/experimental/propagate_const/requirements5.cc: Likewise.
137 * testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.
140 * include/bits/std_abs.h: Use "C++" language linkage.
141 * testsuite/17_intro/headers/c++2011/linkage.cc: Move <complex.h> to
142 the end. Add <stdalign.h>.
144 2016-10-03 Ville Voutilainen <ville.voutilainen@gmail.com>
147 * testsuite/20_util/tuple/77802.cc: New.
150 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
151 Implement LWG 2729 for tuple.
152 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)):
153 Suppress conditionally.
154 (_Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&&)): Likewise.
155 (__is_tuple_impl_trait_impl, __is_tuple_impl_trait): New.
156 (_Tuple_impl(const _Head&)): Constrain.
157 (_Tuple_impl(_UHead&&)): Likewise.
158 (_Tuple_impl(_Tuple_impl&&)): Suppress conditionally.
159 (_Tuple_impl(const _Tuple_impl<_Idx, _UHead>&)): Constrain.
160 (_Tuple_impl(_Tuple_impl<_Idx, _UHead>&&)): Likewise.
161 (operator=(const tuple&)): Enable conditionally.
162 (operator=(tuple&&)): Suppress conditionally.
163 (operator=(const tuple<_UElements...>&)): Constrain.
164 (operator=(tuple<_UElements...>&&)): Likewise.
165 (operator=(const tuple&)): Enable conditionally (2-param tuple).
166 (operator=(tuple&&)): Suppress conditionally (2-param tuple).
167 (operator=(const tuple<_U1, _U2>&)): Constrain.
168 (operator=(tuple<_U1, _U2>&&)): Likewise.
169 (operator=(const pair<_U1, _U2>&)): Likewise.
170 (operator=(pair<_U1, _U2>&&)): Likewise.
171 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust.
172 * testsuite/20_util/tuple/tuple_traits.cc: New.
174 2016-09-30 Jonathan Wakely <jwakely@redhat.com>
177 * acinclude.m4 (GLIBCXX_CHECK_STDIO_PROTO): Use -std=gnu++11 to check
179 * config.h.in: Regenerate.
180 * configure: Regenerate.
181 * include/c_global/cstdio [!_GLIBCXX_HAVE_GETS] (gets): Only declare
183 * include/c_std/cstdio [!_GLIBCXX_HAVE_GETS] (gets): Likewise.
184 * testsuite/27_io/headers/cstdio/functions_neg.cc: New test.
186 * doc/xml/manual/intro.xml: Document LWG 2192 changes.
187 * doc/html/*: Regenerate.
188 * include/Makefile.am: Add bits/std_abs.h.
189 * include/Makefile.in: Regenerate.
190 * include/bits/std_abs.h: New header defining all required overloads
191 of std::abs in one place (LWG 2294).
192 * include/c_global/cmath (abs(double), abs(float), abs(long double)):
193 Move to bits/std_abs.h.
194 (abs<_Tp>(_Tp)): Remove.
195 * include/c_global/cstdlib (abs(long), abs(long long), abs(__int<N>)):
196 Move to bits/std_abs.h.
197 * testsuite/26_numerics/headers/cmath/dr2192.cc: New test.
198 * testsuite/26_numerics/headers/cmath/dr2192_neg.cc: New test.
199 * testsuite/26_numerics/headers/cstdlib/dr2192.cc: New test.
200 * testsuite/26_numerics/headers/cstdlib/dr2192_neg.cc: New test.
203 * include/experimental/numeric: Include <numeric>.
205 (gcd, lcm): Use __abs instead of std::abs.
206 * testsuite/experimental/numeric/77801.cc: New test.
207 * testsuite/experimental/numeric/gcd.cc: Test unsigned inputs.
208 * testsuite/experimental/numeric/lcm.cc: Likewise.
210 2016-09-29 Ville Voutilainen <ville.voutilainen@gmail.com>
212 Make optional::reset noexcept, make optional::value
213 work in constant expressions.
214 * include/std/optional (_M_get): Make constexpr.
215 (reset): Make noexcept.
216 * testsuite/20_util/optional/assignment/7.cc: New.
217 * testsuite/20_util/optional/observers/6.cc: New.
219 2016-09-29 Jonathan Wakely <jwakely@redhat.com>
221 * include/c_global/cmath (hypot, __hypot3): Move C++17 overloads
222 outside _GLIBCXX_USE_C99_MATH_TR1 condition.
224 2016-09-29 Alan Modra <amodra@gmail.com>
226 * configure.ac (LONG_DOUBLE_COMPAT_FLAGS): New ACSUBST.
227 * src/Makefile.am (compatibility-ldbl.o, compatibility-ldbl.lo):
228 Use LONG_DOUBLE_COMPAT_FLAGS.
229 * Makefile.in: Regenerate.
230 * configure: Regenerate.
231 * doc/Makefile.in: Regenerate.
232 * include/Makefile.in: Regenerate.
233 * libsupc++/Makefile.in: Regenerate.
234 * po/Makefile.in: Regenerate.
235 * python/Makefile.in: Regenerate.
236 * src/Makefile.in: Regenerate.
237 * src/c++11/Makefile.in: Regenerate.
238 * src/c++98/Makefile.in: Regenerate.
239 * src/filesystem/Makefile.in: Regenerate.
240 * testsuite/Makefile.in: Regenerate.
242 2016-09-28 Jonathan Wakely <jwakely@redhat.com>
244 * include/std/chrono (system_clock): Fix typo in comment.
246 * include/experimental/bits/fs_fwd.h (file_time_type): Simplify
248 * src/filesystem/ops.cc (file_time): Take error_code parameter and
250 (do_copy_file, last_write_time): Pass error_code in file_time calls.
251 * testsuite/experimental/filesystem/operations/last_write_time.cc:
253 * testsuite/util/testsuite_fs.h (scoped_file): Define RAII helper.
256 * include/std/functional (_Any_data): Add may_alias attribute.
258 2016-09-27 Jonathan Wakely <jwakely@redhat.com>
260 * doc/xml/manual/status_cxx2017.xml: Update status.
261 * doc/html/*: Regenerate.
262 * include/std/functional (__cpp_lib_boyer_moore_searcher): Define.
263 * testsuite/20_util/function_objects/searchers.cc: Test feature macro.
265 * doc/xml/manual/status_cxx2017.xml: Update status.
266 * include/c_global/cmath (hypot): Add three-dimensional overloads.
267 * testsuite/26_numerics/headers/cmath/hypot.cc: New.
269 2016-09-26 Ville Voutilainen <ville.voutilainen@gmail.com>
272 * include/std/optional (optional(const optional<_Up>&)):
273 Default-initialize the base and use emplace.
274 (optional(optional<_Up>&&)): Likewise.
275 * testsuite/20_util/optional/cons/77727.cc: New.
277 2016-09-26 François Dumont <fdumont@gcc.gnu.org>
279 * include/debug/safe_base.h
280 (_Safe_iterator_base::_M_detach_single): Make public.
282 2016-09-26 Jonathan Wakely <jwakely@redhat.com>
284 * include/bits/range_access.h (__cpp_lib_array_constexpr): Do not
285 redefine macro defined in <bits/stl_iterator.h>.
287 * include/bits/stl_map.h (map::extract(const_iterator)): Assert that
288 iterator is not past-the-end.
289 * include/bits/stl_multimap.h (multimap::extract(const_iterator)):
291 * include/bits/stl_multiset.h (multiset::extract(const_iterator)):
293 * include/bits/stl_set.h (set::extract(const_iterator)): Likewise.
294 * include/bits/unordered_map.h (unordered_map::extract(const_iterator))
295 (unordered_multimap::extract(const_iterator)): Likewise.
296 * include/bits/unordered_set.h (unordered_set::extract(const_iterator))
297 (unordered_multiset::extract(const_iterator)): Likewise.
299 2016-09-26 Ville Voutilainen <ville.voutilainen@gmail.com>
302 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
303 Fix an out-of-bounds access.
305 2016-09-26 Marek Polacek <polacek@redhat.com>
308 * libsupc++/hash_bytes.cc: Add [[gnu::fallthrough]].
310 2016-09-25 François Dumont <fdumont@gcc.gnu.org>
312 * src/c++11/debug.cc: Include debug/vector. Include cctype. Remove
314 (get_safe_base_mutex): Get mutex based on address lowest non nil bits.
315 * testsuite/23_containers/vector/debug/mutex_association.cc: New.
317 * include/debug/bitset (bitset::reference::reference(const _Base_ref&,
318 bitset*)): Remove __unused__ attribute.
319 * include/debug/safe_base.h (_Safe_iterator_base): Make
320 _Safe_sequence_base a friend.
321 (_Safe_iterator_base::_M_attach): Make protected.
322 (_Safe_iterator_base::_M_attach_single): Likewise.
323 (_Safe_iterator_base::_M_detach): Likewise.
324 (_Safe_iterator_base::_M_detach_single): Likewise.
325 (_Safe_sequence_base): Make _Safe_iterator_base a friend.
326 (_Safe_sequence_base::_Safe_sequence_base(_Safe_sequence_base&&)): New.
327 (_Safe_sequence_base::_M_swap): Make protected.
328 (_Safe_sequence_base::_M_attach): Make private.
329 (_Safe_sequence_base::_M_attach_single): Likewise.
330 (_Safe_sequence_base::_M_detach): Likewise.
331 (_Safe_sequence_base::_M_detach_single): Likewise.
332 * include/debug/safe_container.h
333 (_Safe_container::_Safe_container(_Safe_container&&)): Make default.
334 * include/debug/safe_iterator.h
335 (_Safe_iterator::operator++()): Name __scoped_lock instance.
336 * include/debug/safe_iterator.tcc: Remove trailing line.
337 * include/debug/safe_unordered_base.h
338 (_Safe_local_iterator_base::_M_attach): Make protected.
339 (_Safe_local_iterator_base::_M_attach_single): Likewise.
340 (_Safe_local_iterator_base::_M_detach): Likewise.
341 (_Safe_local_iterator_base::_M_detach_single): Likewise.
342 (_Safe_unordered_container_base): Make _Safe_local_iterator_base friend.
343 (_Safe_unordered_container_base::_M_attach_local): Make private.
344 (_Safe_unordered_container_base::_M_attach_local_single): Likewise.
345 (_Safe_unordered_container_base::_M_detach_local): Likewise.
346 (_Safe_unordered_container_base::_M_detach_local_single): Likewise.
348 * include/parallel/algo.h: Generalize usage of std::__iterator_category.
351 2016-09-23 Jonathan Wakely <jwakely@redhat.com>
355 * include/bits/basic_string.h (basic_string::clear()): Drop reference
357 * include/ext/rc_string_base.h (__rc_string_base::_M_clear()):
359 * testsuite/21_strings/basic_string/56166.cc: New.
360 * testsuite/ext/vstring/modifiers/clear/56166.cc: New.
362 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
363 (basic_string::erase(size_type, size_type)): Add fast path for
364 truncating the string, by calling _M_set_length directly.
365 (basic_string::erase(__const_iterator, __const_iterator)): Likewise.
366 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
367 (basic_string::resize(size_type, _CharT)): Likewise.
369 2016-09-22 Jason Merrill <jason@redhat.com>
371 * configure.ac: Define HAVE_MEMALIGN for newlib.
373 2015-09-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
375 * config/cpu/m68k/atomicity.h: Adjust comment.
376 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Honor
377 explicit atomicity_dir setup via configure.host.
378 * configure.host (rtems-*): Set atomicity_dir.
379 * configure: Regenerate.
381 2016-09-22 Jonathan Wakely <jwakely@redhat.com>
383 Implement C++17 node extraction and insertion (P0083R5)
384 * doc/xml/manual/status_cxx2017.xml: Document status.
385 * doc/html/*: Regenerate.
386 * include/Makefile.am: Add bits/node_handle.h and reorder.
387 * include/Makefile.in: Regenerate.
388 * include/bits/hashtable.h (_Hashtable::node_type)
389 (_Hashtable::insert_return_type, _Hashtable::_M_reinsert_node)
390 (_Hashtable::_M_reinsert_node_multi, _Hashtable::extract)
391 (_Hashtable::_M_merge_unique, _Hashtable::_M_merge_multi): Define.
392 (_Hash_merge_helper): Define primary template.
393 * include/bits/node_handle.h: New header.
394 * include/bits/stl_map.h (map): Declare _Rb_tree_merge_helper as
396 (map::node_type, map::insert_return_type, map::extract, map::merge)
397 (map::insert(node_type&&), map::insert(const_iterator, node_type&&)):
399 (_Rb_tree_merge_helper): Specialize for map.
400 * include/bits/stl_multimap.h (multimap): Declare _Rb_tree_merge_helper
402 (multimap::node_type, multimap::extract, multimap::merge)
403 (multimap::insert(node_type&&))
404 (multimap::insert(const_iterator, node_type&&)): Define.
405 (_Rb_tree_merge_helper): Specialize for multimap.
406 * include/bits/stl_multiset.h (multiset): Declare _Rb_tree_merge_helper
408 (multiset::node_type, multiset::extract, multiset::merge)
409 (multiset::insert(node_type&&))
410 (multiset::insert(const_iterator, node_type&&)): Define.
411 * include/bits/stl_set.h (set): Declare _Rb_tree_merge_helper as
413 (set::node_type, set::insert_return_type, set::extract, set::merge)
414 (set::insert(node_type&&), set::insert(const_iterator, node_type&&)):
416 (_Rb_tree_merge_helper): Specialize for set.
417 * include/bits/stl_tree.h (_Rb_tree): Declare _Rb_tree<> as friend.
418 (_Rb_tree::node_type, _Rb_tree::insert_return_type)
419 (_Rb_tree::_M_reinsert_node_unique, _Rb_tree::_M_reinsert_node_equal)
420 (_Rb_tree::_M_reinsert_node_hint_unique)
421 (_Rb_tree::_M_reinsert_node_hint_equal, _Rb_tree::extract)
422 (_Rb_tree::_M_merge_unique, _Rb_tree::_M_merge_equal): Define.
423 (_Rb_tree_merge_helper): Specialize for multiset.
424 * include/bits/unordered_map.h (unordered_map): Declare
425 unordered_map<> and unordered_multimap<> as friends.
426 (unordered_map::node_type, unordered_map::insert_return_type)
427 (unordered_map::extract, unordered_map::merge)
428 (unordered_map::insert(node_type&&))
429 (unordered_map::insert(const_iterator, node_type&&))
430 (unordered_multimap): Declare _Hash_merge_helper as friend.
431 (unordered_multimap::node_type, unordered_multimap::extract)
432 (unordered_multimap::merge, unordered_multimap::insert(node_type&&))
433 (unordered_multimap::insert(const_iterator, node_type&&)): Define.
434 (_Hash_merge_helper): Specialize for unordered maps and multimaps.
435 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
436 Declare _Hash_merge_helper as friend.
437 (unordered_set::node_type, unordered_set::insert_return_type)
438 (unordered_set::extract, unordered_set::merge)
439 (unordered_set::insert(node_type&&))
440 (unordered_set::insert(const_iterator, node_type&&)): Define.
441 (unordered_multiset::node_type, unordered_multiset::extract)
442 (unordered_multiset::merge, unordered_multiset::insert(node_type&&))
443 (unordered_multiset::insert(const_iterator, node_type&&)): Define.
444 (_Hash_merge_helper): Specialize for unordered sets and multisets.
445 * include/debug/map.h (map): Add using declarations or forwarding
446 functions for new members.
447 * include/debug/map.h (multimap): Likewise.
448 * include/debug/map.h (multiset): Likewise.
449 * include/debug/map.h (set): Likewise.
450 * include/debug/unordered_map (unordered_map, unordered_multimap):
452 * include/debug/unordered_set( unordered_set, unordered_multiset):
454 * python/libstdcxx/v6/printers.py (get_value_from_aligned_membuf): New
456 (get_value_from_list_node, get_value_from_Rb_tree_node): Use helper.
457 (StdNodeHandlePrinter): Define printer for node handles.
458 (build_libstdcxx_dictionary): Register StdNodeHandlePrinter.
459 * testsuite/23_containers/map/modifiers/extract.cc: New.
460 * testsuite/23_containers/map/modifiers/merge.cc: New.
461 * testsuite/23_containers/multimap/modifiers/extract.cc: New.
462 * testsuite/23_containers/multimap/modifiers/merge.cc: New.
463 * testsuite/23_containers/multiset/modifiers/extract.cc: New.
464 * testsuite/23_containers/multiset/modifiers/merge.cc: New.
465 * testsuite/23_containers/set/modifiers/extract.cc: New.
466 * testsuite/23_containers/set/modifiers/merge.cc: New.
467 * testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
468 * testsuite/23_containers/unordered_map/modifiers/merge.cc: New.
469 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
471 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc: New.
472 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
474 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc: New.
475 * testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
476 * testsuite/23_containers/unordered_set/modifiers/merge.cc: New.
477 * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
479 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test node handles.
481 2016-09-22 Ville Voutilainen <ville.voutilainen@gmail.com>
483 Fix tests on old arm platforms for optional.
484 * testsuite/20_util/optional/77288.cc: Don't use exception_ptr.
486 2016-09-22 Jonathan Wakely <jwakely@redhat.com>
488 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Adjust for
489 recent change to _Variant_storage.
490 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test variant with
493 * include/bits/uses_allocator.h (__uses_allocator_construct): Qualify
494 std::forward and ::new. Cast pointer to void*.
495 * include/std/variant (_Variant_storage, _Union, _Variant_base)
496 (__access, __visit_invoke, variant, visit): Qualify std::forward.
497 * testsuite/20_util/variant/compile.cc: Test for ADL problems.
499 2016-09-22 Tim Shen <timshen@google.com>
501 * include/std/variant (variant::operator=): Fix assignment
503 * testsuite/20_util/variant/compile.cc: Add test.
505 2016-09-22 Tim Shen <timshen@google.com>
508 * include/std/variant (_Variant_storage::_Variant_storage):
509 Change _Variant_storage's union to be default constructible.
510 * testsuite/20_util/variant/compile.cc: New test.
512 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
515 * include/std/optional (__is_optional_impl, __is_optional): Remove.
516 (__converts_from_optional, __assigns_from_optional): New.
517 (optional(_Up&&)): Use is_same instead of __is_optional.
518 (optional(const optional<_Up>&)): Constrain with
519 __converts_from_optional.
520 (optional(optional<_Up>&&)): Likewise.
521 (operator=(_Up&&)): Use is_same instead of __is_optional, check
522 is_same and is_scalar.
523 (operator=(const optional<_Up>&)): Constrain with
524 __converts_from_optional and __assigns_from_optional.
525 (operator=(optional<_Up>&&)): Likewise.
526 * testsuite/20_util/optional/77288.cc: New.
527 * testsuite/20_util/optional/cons/value.cc: Adjust.
529 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
531 Implement LWG 2729 for tuple.
532 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)):
533 Suppress conditionally.
534 (_Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&&)): Likewise.
535 (__is_tuple_impl_trait_impl, __is_tuple_impl_trait): New.
536 (_Tuple_impl(const _Head&)): Constrain.
537 (_Tuple_impl(_UHead&&)): Likewise.
538 (_Tuple_impl(_Tuple_impl&&)): Suppress conditionally.
539 (_Tuple_impl(const _Tuple_impl<_Idx, _UHead>&)): Constrain.
540 (_Tuple_impl(_Tuple_impl<_Idx, _UHead>&&)): Likewise.
541 (operator=(const tuple&)): Enable conditionally.
542 (operator=(tuple&&)): Suppress conditionally.
543 (operator=(const tuple<_UElements...>&)): Constrain.
544 (operator=(tuple<_UElements...>&&)): Likewise.
545 (operator=(const tuple&)): Enable conditionally (2-param tuple).
546 (operator=(tuple&&)): Suppress conditionally (2-param tuple).
547 (operator=(const tuple<_U1, _U2>&)): Constrain.
548 (operator=(tuple<_U1, _U2>&&)): Likewise.
549 (operator=(const pair<_U1, _U2>&)): Likewise.
550 (operator=(pair<_U1, _U2>&&)): Likewise.
551 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust.
552 * testsuite/20_util/tuple/tuple_traits.cc: New.
554 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
557 Implement LWG 2729 for pair.
558 * include/bits/stl_pair.h (_PCC): New.
559 (_ConstructiblePair, _ImplicitlyConvertiblePair):
560 Turn into static member functions of _PCC.
561 (_MoveConstructiblePair, _ImplicitlyMoveConvertiblePair): Likewise.
563 (pair(const _T1&, const _T2&)): Adjust.
565 (pair(const pair<_U1, _U2>&)): Adjust.
566 (pair(_U1&&, const _T2&)): Likewise.
567 (pair(const _T1&, _U2&&)): Likewise.
568 (pair(_U1&&, _U2&&)): Likewise.
569 (pair(pair<_U1, _U2>&&)): Likewise.
570 (operator=(const pair&)): Make conditionally deleted.
571 (operator=(pair&&)): Make conditionally suppressed.
572 (operator=(const pair<_U1, _U2>&)): Constrain.
573 (operator=(pair<_U1, _U2>&&): Likewise.
574 * include/std/type_traits (__nonesuch): New.
575 * testsuite/20_util/pair/traits.cc: New.
577 2016-09-20 Ville Voutilainen <ville.voutilainen@gmail.com>
580 * include/bits/stl_construct.h: (_Construct_novalue): New.
581 (_Destroy_n_aux, _Destroy_n): New.
582 * include/bits/stl_uninitialized.h: (type_traits):
583 New include in C++11 mode.
584 (__uninitialized_default_novalue_1): New.
585 (__uninitialized_default_novalue_n_1): Likewise.
586 (__uninitialized_default_novalue): Likewise.
587 (__uninitialized_default_novalue_n): Likewise.
588 (__uninitialized_copy_n_pair): Likewise.
589 (uninitialized_default_construct):
590 Use __uninitialized_default_novalue.
591 (uninitialized_default_construct_n):
592 Use __uninitialized_default_novalue_n.
593 (uninitialized_value_construct): Use __uninitialized_default.
594 (uninitialized_value_construct_n): Use __uninitialized_default_n.
595 (uninitialized_move): Use uninitialized_copy.
596 (uninitialized_move_n): Use __uninitialized_copy_n_pair.
597 (destroy_at): Use _Destroy.
599 (destroy_n): Likewise.
600 * testsuite/20_util/specialized_algorithms/
601 memory_management_tools/1.cc: Add tests for exceptions,
602 add tests for trivial cases for construct and move.
604 2016-09-20 Jonathan Wakely <jwakely@redhat.com>
606 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
607 (DequeWorkerBase.index, VectorWorkerBase.get): Use // for division.
609 2016-09-19 Jonathan Wakely <jwakely@redhat.com>
612 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
613 (DequeWorkerBase.index, VectorWorkerBase.get): Cast results of
614 division to int to work with Python 3.
616 * testsuite/lib/gdb-test.exp (gdb-test): Fail if Python error occurs.
618 * python/libstdcxx/v6/printers.py (SingleObjContainerPrinter): Allow
619 display_hint to be set by subclasses.
620 (StdVariantPrinter): Use array for display_hint. Adjust output to be
621 more similar to std::any and std::optional output.
622 (register_type_printers): Add type printers for basic_string_view
623 typedefs and experimental::any. Adjust type printers for
624 fundamentals_v1 templates to match fundamentals_v2 and later.
625 * testsuite/libstdc++-prettyprinters/cxx17.cc: New.
628 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.index): Rename
630 (ListWorkerBase.get_value_from_node): Define new method.
631 (ListFrontWorker.__call__, ListBackWorker.__call__): Use it.
633 2016-09-17 Jonathan Wakely <jwakely@redhat.com>
635 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Define.
636 (StdExpAnyPrinter, StdExpOptionalPrinter, StdExpStringViewPrinter):
637 Register for C++17 components in namespace std. Strip inline namespace
640 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
642 * doc/xml/manual/profile_mode.xml: Fix typo.
643 * doc/html/manual/profile_mode_devel.html: Regenerate.
645 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
646 Marc Glisse <marc.glisse@inria.fr>
648 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_ALIGNED_ALLOC]
649 (operator new(size_t, align_val_t)): Replace modulus operator with
652 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
654 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_POSIX_MEMALIGN] (aligned_alloc):
655 Increase alignment if less than sizeof(void*).
656 [_GLIBCXX_HAVE_ALIGNED_ALLOC] (operator new(size_t, align_val_t)):
657 Increase size if not a multiple of alignment.
659 2016-09-15 Jonathan Wakely <jwakely@redhat.com>
661 * doc/xml/manual/debug_mode.xml: Minor editorial fixes.
662 * doc/html/*: Regenerate.
664 * testsuite/23_containers/vector/debug/insert6_neg.cc: Remove
666 * testsuite/util/debug/checks.h (generate_unique<bool>): Specialize.
668 2016-09-14 Marek Polacek <polacek@redhat.com>
670 * testsuite/23_containers/vector/debug/insert6_neg.cc: Use
673 2016-09-14 Christophe Lyon <christophe.lyon@linaro.org>
675 * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
676 Move dg-do directive before dg-skip.
677 * testsuite/21_strings/debug/iterator_self_move_assign_neg.cc:
678 Move dg-do directive before dg-require.
679 * testsuite/21_strings/debug/self_move_assign_neg.cc: Likewise.
680 * testsuite/23_containers/vector/debug/57779_neg.cc: Likewise.
681 * testsuite/23_containers/vector/debug/60587_neg.cc: Likewise.
682 * testsuite/23_containers/vector/debug/assign1_neg.cc: Likewise.
683 * testsuite/23_containers/vector/debug/assign2_neg.cc: Likewise.
684 * testsuite/23_containers/vector/debug/assign3_neg.cc: Likewise.
685 * testsuite/23_containers/vector/debug/construct1_neg.cc: Likewise.
686 * testsuite/23_containers/vector/debug/construct2_neg.cc: Likewise.
687 * testsuite/23_containers/vector/debug/construct3_neg.cc: Likewise.
688 * testsuite/23_containers/vector/debug/insert1_neg.cc: Likewise.
689 * testsuite/23_containers/vector/debug/insert2_neg.cc: Likewise.
690 * testsuite/23_containers/vector/debug/insert3_neg.cc: Likewise.
691 * testsuite/23_containers/vector/debug/insert5_neg.cc: Likewise.
692 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Likewise.
693 * testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
695 * testsuite/25_algorithms/pop_heap/empty2_neg.cc: Likewise.
696 * testsuite/25_algorithms/pop_heap/empty_neg.cc: Likewise.
697 * testsuite/27_io/objects/char/12048-5.cc: Likewise.
698 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Likewise.
699 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
701 2016-09-13 Ville Voutilainen <ville.voutilainen@gmail.com>
703 Implement P0040R3, Extending memory management tools.
704 * include/bits/stl_uninitialized.h (utility): New include
706 (uninitialized_default_construct): New.
707 (uninitialized_default_construct_n): Likewise.
708 (uninitialized_value_construct): Likewise.
709 (uninitialized_value_construct_n): Likewise.
710 (uninitialized_move): Likewise.
711 (uninitialized_move_n): Likewise.
712 (destroy_at, destroy, destroy_n): Likewise.
713 * testsuite/20_util/specialized_algorithms/memory_management_tools/
716 2016-09-12 Jason Merrill <jason@redhat.com>
718 * config/abi/pre/gnu.ver: Use [jmy] for size_t.
720 2016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
722 Implement P0253R1, Fixing a design mistake in the searchers
723 interface in Library Fundamentals.
724 * include/std/functional: (utility): New include in C++17 mode.
725 (default_searcher): Use a pair as return type, adjust the definition.
726 (boyer_moore_searcher): Likewise.
727 (boyer_moore_horspool_searcher): Likewise.
728 * testsuite/20_util/function_objects/searchers.cc: Adjust.
730 2016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
732 Implement C++17 string searchers.
733 * include/std/functional: (unordered_map, vector): New includes
735 (array, bits/stl_algo.h): Likewise.
736 (default_searcher, __boyer_moore_map_base): New.
737 (__boyer_moore_array_base, __is_std_equal_to): Likewise.
738 (__boyer_moore_base_t, boyer_moore_searcher): Likewise.
739 (boyer_moore_horspool_searcher, make_default_searcher): Likewise.
740 (make_boyer_moore_searcher): Likewise.
741 (make_boyer_moore_horspool_searcher): Likewise.
742 * testsuite/20_util/function_objects/searchers.cc: New.
744 2016-09-12 Matthew Wahab <matthew.wahab@arm.com>
746 * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
747 Move dg-do directive before dg-require.
748 * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc: Likewise.
749 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
751 * testsuite/22_locale/codecvt/utf8.cc: Likewise.
752 * testsuite/22_locale/locale/cons/unicode.cc: Likewise.
753 * testsuite/23_containers/deque/debug/assign1_neg.cc: Likewise.
754 * testsuite/23_containers/deque/debug/assign2_neg.cc: Likewise.
755 * testsuite/23_containers/deque/debug/assign3_neg.cc: Likewise.
756 * testsuite/23_containers/deque/debug/construct1_neg.cc: Likewise.
757 * testsuite/23_containers/deque/debug/construct2_neg.cc: Likewise.
758 * testsuite/23_containers/deque/debug/construct3_neg.cc: Likewise.
759 * testsuite/23_containers/deque/debug/insert1_neg.cc: Likewise.
760 * testsuite/23_containers/deque/debug/insert2_neg.cc: Likewise.
761 * testsuite/23_containers/deque/debug/insert3_neg.cc: Likewise.
762 * testsuite/23_containers/deque/debug/insert5_neg.cc: Likewise.
763 * testsuite/23_containers/deque/debug/iterator_self_move_assign_neg.cc:
765 * testsuite/23_containers/deque/debug/self_move_assign_neg.cc:
767 * testsuite/23_containers/deque/debug/shrink_to_fit.cc: Likewise.
768 * testsuite/23_containers/forward_list/debug/60499.cc: Likewise.
769 * testsuite/23_containers/forward_list/debug/construct1_neg.cc:
771 * testsuite/23_containers/forward_list/debug/construct2_neg.cc:
773 * testsuite/23_containers/forward_list/debug/construct3_neg.cc:
775 * testsuite/23_containers/forward_list/debug/erase_after1_neg.cc:
777 * testsuite/23_containers/forward_list/debug/erase_after2_neg.cc:
779 * testsuite/23_containers/forward_list/debug/erase_after3_neg.cc:
781 * testsuite/23_containers/forward_list/debug/erase_after4_neg.cc:
783 * testsuite/23_containers/forward_list/debug/erase_after5_neg.cc:
785 * testsuite/23_containers/forward_list/debug/erase_after6_neg.cc:
787 * testsuite/23_containers/forward_list/debug/erase_after7_neg.cc:
789 * testsuite/23_containers/forward_list/debug/erase_after8_neg.cc:
791 * testsuite/23_containers/forward_list/debug/erase_after9_neg.cc:
793 * testsuite/23_containers/forward_list/debug/insert_after1_neg.cc:
795 * testsuite/23_containers/forward_list/debug/insert_after2_neg.cc:
797 * testsuite/23_containers/forward_list/debug/insert_after3_neg.cc:
799 * testsuite/23_containers/forward_list/debug/insert_after4_neg.cc:
801 * testsuite/23_containers/forward_list/debug/
802 iterator_self_move_assign_neg.cc: Likewise.
803 * testsuite/23_containers/forward_list/debug/self_move_assign_neg.cc:
805 * testsuite/23_containers/forward_list/debug/splice_after1_neg.cc:
807 * testsuite/23_containers/forward_list/debug/splice_after2_neg.cc:
809 * testsuite/23_containers/forward_list/debug/splice_after3_neg.cc:
811 * testsuite/23_containers/forward_list/debug/splice_after4_neg.cc:
813 * testsuite/23_containers/forward_list/debug/splice_after5_neg.cc:
815 * testsuite/23_containers/forward_list/debug/splice_after6_neg.cc:
817 * testsuite/23_containers/forward_list/debug/splice_after7_neg.cc:
819 * testsuite/23_containers/list/debug/assign1_neg.cc: Likewise.
820 * testsuite/23_containers/list/debug/assign2_neg.cc: Likewise.
821 * testsuite/23_containers/list/debug/assign3_neg.cc: Likewise.
822 * testsuite/23_containers/list/debug/construct1_neg.cc: Likewise.
823 * testsuite/23_containers/list/debug/construct2_neg.cc: Likewise.
824 * testsuite/23_containers/list/debug/construct3_neg.cc: Likewise.
825 * testsuite/23_containers/list/debug/insert1_neg.cc: Likewise.
826 * testsuite/23_containers/list/debug/insert2_neg.cc: Likewise.
827 * testsuite/23_containers/list/debug/insert3_neg.cc: Likewise.
828 * testsuite/23_containers/list/debug/insert5_neg.cc: Likewise.
829 * testsuite/23_containers/list/debug/iterator_self_move_assign_neg.cc:
831 * testsuite/23_containers/list/debug/self_move_assign_neg.cc: Likewise.
832 * testsuite/23_containers/map/debug/60499.cc: Likewise.
833 * testsuite/23_containers/map/debug/construct1_neg.cc: Likewise.
834 * testsuite/23_containers/map/debug/construct2_neg.cc: Likewise.
835 * testsuite/23_containers/map/debug/construct3_neg.cc: Likewise.
836 * testsuite/23_containers/map/debug/insert1_neg.cc: Likewise.
837 * testsuite/23_containers/map/debug/insert2_neg.cc: Likewise.
838 * testsuite/23_containers/map/debug/insert3_neg.cc: Likewise.
839 * testsuite/23_containers/map/debug/iterator_self_move_assign_neg.cc:
841 * testsuite/23_containers/map/debug/self_move_assign_neg.cc: Likewise.
842 * testsuite/23_containers/multimap/debug/60499.cc: Likewise.
843 * testsuite/23_containers/multimap/debug/construct1_neg.cc: Likewise.
844 * testsuite/23_containers/multimap/debug/construct2_neg.cc: Likewise.
845 * testsuite/23_containers/multimap/debug/construct3_neg.cc: Likewise.
846 * testsuite/23_containers/multimap/debug/insert1_neg.cc: Likewise.
847 * testsuite/23_containers/multimap/debug/insert2_neg.cc: Likewise.
848 * testsuite/23_containers/multimap/debug/insert3_neg.cc: Likewise.
849 * testsuite/23_containers/multimap/debug/
850 iterator_self_move_assign_neg.cc: Likewise.
851 * testsuite/23_containers/multimap/debug/self_move_assign_neg.cc:
853 * testsuite/23_containers/multiset/debug/60499.cc: Likewise.
854 * testsuite/23_containers/multiset/debug/construct1_neg.cc: Likewise.
855 * testsuite/23_containers/multiset/debug/construct2_neg.cc: Likewise.
856 * testsuite/23_containers/multiset/debug/construct3_neg.cc: Likewise.
857 * testsuite/23_containers/multiset/debug/insert1_neg.cc: Likewise.
858 * testsuite/23_containers/multiset/debug/insert2_neg.cc: Likewise.
859 * testsuite/23_containers/multiset/debug/insert3_neg.cc: Likewise.
860 * testsuite/23_containers/multiset/debug/
861 iterator_self_move_assign_neg.cc: Likewise.
862 * testsuite/23_containers/multiset/debug/self_move_assign_neg.cc:
864 * testsuite/23_containers/set/debug/60499.cc: Likewise.
865 * testsuite/23_containers/set/debug/construct1_neg.cc: Likewise.
866 * testsuite/23_containers/set/debug/construct2_neg.cc: Likewise.
867 * testsuite/23_containers/set/debug/construct3_neg.cc: Likewise.
868 * testsuite/23_containers/set/debug/insert1_neg.cc: Likewise.
869 * testsuite/23_containers/set/debug/insert2_neg.cc: Likewise.
870 * testsuite/23_containers/set/debug/insert3_neg.cc: Likewise.
871 * testsuite/23_containers/set/debug/iterator_self_move_assign_neg.cc:
873 * testsuite/23_containers/set/debug/self_move_assign_neg.cc: Likewise.
874 * testsuite/23_containers/unordered_map/debug/60499.cc: Likewise.
875 * testsuite/23_containers/unordered_map/debug/begin1_neg.cc: Likewise.
876 * testsuite/23_containers/unordered_map/debug/begin2_neg.cc: Likewise.
877 * testsuite/23_containers/unordered_map/debug/bucket_size_neg.cc:
879 * testsuite/23_containers/unordered_map/debug/cbegin_neg.cc: Likewise.
880 * testsuite/23_containers/unordered_map/debug/cend_neg.cc: Likewise.
881 * testsuite/23_containers/unordered_map/debug/construct1_neg.cc:
883 * testsuite/23_containers/unordered_map/debug/construct2_neg.cc:
885 * testsuite/23_containers/unordered_map/debug/construct3_neg.cc:
887 * testsuite/23_containers/unordered_map/debug/end1_neg.cc: Likewise.
888 * testsuite/23_containers/unordered_map/debug/end2_neg.cc: Likewise.
889 * testsuite/23_containers/unordered_map/debug/insert1_neg.cc: Likewise.
890 * testsuite/23_containers/unordered_map/debug/insert2_neg.cc: Likewise.
891 * testsuite/23_containers/unordered_map/debug/insert3_neg.cc: Likewise.
892 * testsuite/23_containers/unordered_map/debug/
893 invalid_local_iterator_compare_neg.cc: Likewise.
894 * testsuite/23_containers/unordered_map/debug/
895 invalid_local_iterator_range_neg.cc: Likewise.
896 * testsuite/23_containers/unordered_map/debug/
897 iterator_self_move_assign_neg.cc: Likewise.
898 * testsuite/23_containers/unordered_map/debug/max_load_factor_neg.cc:
900 * testsuite/23_containers/unordered_map/debug/self_move_assign_neg.cc:
902 * testsuite/23_containers/unordered_map/debug/
903 use_erased_local_iterator_neg.cc: Likewise.
904 * testsuite/23_containers/unordered_map/debug/
905 use_invalid_iterator_neg.cc: Likewise.
906 * testsuite/23_containers/unordered_map/debug/
907 use_invalid_local_iterator_neg.cc: Likewise.
908 * testsuite/23_containers/unordered_multimap/debug/60499.cc: Likewise.
909 * testsuite/23_containers/unordered_multimap/debug/begin1_neg.cc:
911 * testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc:
913 * testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc:
915 * testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc:
917 * testsuite/23_containers/unordered_multimap/debug/cend_neg.cc:
919 * testsuite/23_containers/unordered_multimap/debug/construct1_neg.cc:
921 * testsuite/23_containers/unordered_multimap/debug/construct2_neg.cc:
923 * testsuite/23_containers/unordered_multimap/debug/construct3_neg.cc:
925 * testsuite/23_containers/unordered_multimap/debug/end1_neg.cc:
927 * testsuite/23_containers/unordered_multimap/debug/end2_neg.cc:
929 * testsuite/23_containers/unordered_multimap/debug/insert1_neg.cc:
931 * testsuite/23_containers/unordered_multimap/debug/insert2_neg.cc:
933 * testsuite/23_containers/unordered_multimap/debug/insert3_neg.cc:
935 * testsuite/23_containers/unordered_multimap/debug/
936 invalid_local_iterator_compare_neg.cc: Likewise.
937 * testsuite/23_containers/unordered_multimap/debug/
938 invalid_local_iterator_range_neg.cc: Likewise.
939 * testsuite/23_containers/unordered_multimap/debug/
940 iterator_self_move_assign_neg.cc: Likewise.
941 * testsuite/23_containers/unordered_multimap/debug/
942 max_load_factor_neg.cc: Likewise.
943 * testsuite/23_containers/unordered_multimap/debug/
944 self_move_assign_neg.cc: Likewise.
945 * testsuite/23_containers/unordered_multimap/debug/
946 use_erased_local_iterator_neg.cc: Likewise.
947 * testsuite/23_containers/unordered_multimap/debug/
948 use_invalid_iterator_neg.cc: Likewise.
949 * testsuite/23_containers/unordered_multimap/debug/
950 use_invalid_local_iterator_neg.cc: Likewise.
951 * testsuite/23_containers/unordered_multiset/debug/60499.cc:
953 * testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc:
955 * testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc:
957 * testsuite/23_containers/unordered_multiset/debug/bucket_size_neg.cc:
959 * testsuite/23_containers/unordered_multiset/debug/cbegin_neg.cc:
961 * testsuite/23_containers/unordered_multiset/debug/cend_neg.cc:
963 * testsuite/23_containers/unordered_multiset/debug/construct1_neg.cc:
965 * testsuite/23_containers/unordered_multiset/debug/construct2_neg.cc:
967 * testsuite/23_containers/unordered_multiset/debug/construct3_neg.cc:
969 * testsuite/23_containers/unordered_multiset/debug/end1_neg.cc:
971 * testsuite/23_containers/unordered_multiset/debug/end2_neg.cc:
973 * testsuite/23_containers/unordered_multiset/debug/insert1_neg.cc:
975 * testsuite/23_containers/unordered_multiset/debug/insert2_neg.cc:
977 * testsuite/23_containers/unordered_multiset/debug/insert3_neg.cc:
979 * testsuite/23_containers/unordered_multiset/debug/
980 invalid_local_iterator_compare_neg.cc: Likewise.
981 * testsuite/23_containers/unordered_multiset/debug/
982 invalid_local_iterator_range_neg.cc: Likewise.
983 * testsuite/23_containers/unordered_multiset/debug/
984 iterator_self_move_assign_neg.cc: Likewise.
985 * testsuite/23_containers/unordered_multiset/debug/
986 max_load_factor_neg.cc: Likewise.
987 * testsuite/23_containers/unordered_multiset/debug/
988 self_move_assign_neg.cc: Likewise.
989 * testsuite/23_containers/unordered_multiset/debug/
990 use_erased_local_iterator_neg.cc: Likewise.
991 * testsuite/23_containers/unordered_multiset/debug/
992 use_invalid_iterator_neg.cc: Likewise.
993 * testsuite/23_containers/unordered_multiset/debug/
994 use_invalid_local_iterator_neg.cc: Likewise.
995 * testsuite/23_containers/unordered_set/debug/60499.cc: Likewise.
996 * testsuite/23_containers/unordered_set/debug/begin1_neg.cc: Likewise.
997 * testsuite/23_containers/unordered_set/debug/begin2_neg.cc: Likewise.
998 * testsuite/23_containers/unordered_set/debug/bucket_size_neg.cc:
1000 * testsuite/23_containers/unordered_set/debug/cbegin_neg.cc: Likewise.
1001 * testsuite/23_containers/unordered_set/debug/cend_neg.cc: Likewise.
1002 * testsuite/23_containers/unordered_set/debug/construct1_neg.cc:
1004 * testsuite/23_containers/unordered_set/debug/construct2_neg.cc:
1006 * testsuite/23_containers/unordered_set/debug/construct3_neg.cc:
1008 * testsuite/23_containers/unordered_set/debug/end1_neg.cc: Likewise.
1009 * testsuite/23_containers/unordered_set/debug/end2_neg.cc: Likewise.
1010 * testsuite/23_containers/unordered_set/debug/insert1_neg.cc: Likewise.
1011 * testsuite/23_containers/unordered_set/debug/insert2_neg.cc: Likewise.
1012 * testsuite/23_containers/unordered_set/debug/insert3_neg.cc: Likewise.
1013 * testsuite/23_containers/unordered_set/debug/
1014 invalid_local_iterator_compare_neg.cc: Likewise.
1015 * testsuite/23_containers/unordered_set/debug/
1016 invalid_local_iterator_range_neg.cc: Likewise.
1017 * testsuite/23_containers/unordered_set/debug/
1018 iterator_self_move_assign_neg.cc: Likewise.
1019 * testsuite/23_containers/unordered_set/debug/
1020 max_load_factor_neg.cc: Likewise.
1021 * testsuite/23_containers/unordered_set/debug/
1022 self_move_assign_neg.cc: Likewise.
1023 * testsuite/23_containers/unordered_set/debug/
1024 use_erased_local_iterator_neg.cc: Likewise.
1025 * testsuite/23_containers/unordered_set/debug/
1026 use_invalid_iterator_neg.cc: Likewise.
1027 * testsuite/23_containers/unordered_set/debug/
1028 use_invalid_local_iterator_neg.cc: Likewise.
1029 * testsuite/23_containers/vector/debug/52433.cc: Likewise.
1030 * testsuite/23_containers/vector/debug/60499.cc: Likewise.
1031 * testsuite/23_containers/vector/debug/bool/shrink_to_fit.cc: Likewise.
1032 * testsuite/23_containers/vector/debug/
1033 iterator_self_move_assign_neg.cc: Likewise.
1034 * testsuite/23_containers/vector/debug/self_move_assign_neg.cc:
1036 * testsuite/23_containers/vector/debug/shrink_to_fit.cc: Likewise.
1037 * testsuite/25_algorithms/pop_heap/complexity.cc: Likewise.
1038 * testsuite/25_algorithms/push_heap/complexity.cc: Likewise.
1039 * testsuite/25_algorithms/sort_heap/complexity.cc: Likewise.
1040 * testsuite/29_atomics/atomic/60658.cc: Likewise.
1041 * testsuite/29_atomics/atomic/60695.cc: Likewise.
1042 * testsuite/29_atomics/atomic/62259.cc: Likewise.
1043 * testsuite/29_atomics/atomic/64658.cc: Likewise.
1044 * testsuite/29_atomics/atomic/cons/49445.cc: Likewise.
1045 * testsuite/29_atomics/atomic/operators/51811.cc: Likewise.
1046 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
1049 2016-09-11 Jonathan Wakely <jwakely@redhat.com>
1051 * libsupc++/new_opant.cc: Include exception_defines.h.
1052 * libsupc++/new_opvant.cc: Likewise.
1054 2016-09-09 Jason Merrill <jason@redhat.com>
1056 Implement P0035R4, C++17 new of over-aligned types.
1057 * libsupc++/new: Declare aligned new/delete operators.
1058 * config/abi/pre/gnu.ver: Export them.
1059 * configure.ac: Check for aligned_alloc, posix_memalign, memalign,
1061 * libsupc++/new_opa.cc: New.
1062 * libsupc++/new_opant.cc: New.
1063 * libsupc++/new_opva.cc: New.
1064 * libsupc++/new_opva.cc: New.
1065 * libsupc++/del_opa.cc: New.
1066 * libsupc++/del_opant.cc: New.
1067 * libsupc++/del_opsa.cc: New.
1068 * libsupc++/del_opva.cc: New.
1069 * libsupc++/del_opvant.cc: New.
1070 * libsupc++/del_opvsa.cc: New.
1071 * libsupc++/Makefile.am: Build them.
1073 2016-09-05 Tim Shen <timshen@google.com>
1075 * include/std/variant: include bits/move.h for std::addressof.
1077 2016-09-05 Mikhail Strelnikov <mikhail.strelnikov@gmail.com>
1079 * include/std/variant (_Variant_storage::_M_storage()): Use
1080 std::addressof instead of operator& to take address.
1082 2016-09-02 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
1084 * acinclude.m4 (GLIBCXX_CONFIGURE_TESTSUITE): Check for presence of
1085 setrlimit on both native and cross targets.
1086 * configure: Regenerate.
1088 2016-08-31 Jonathan Wakely <jwakely@redhat.com>
1090 * include/bits/shared_ptr.h (_Assignable): New alias template.
1091 (shared_ptr::operator=(const shared_ptr<_Tp1>&))
1092 (shared_ptr::operator=(shared_ptr<_Tp1>&&))
1093 (shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
1095 * include/bits/shared_ptr_base.h (_Assignable): New alias template.
1096 (__shared_ptr::operator=(const __shared_ptr<_Tp1>&))
1097 (__shared_ptr::operator=(__shared_ptr<_Tp1>&&))
1098 (__shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
1100 (__shared_ptr::reset(_Tp1*), __shared_ptr::reset(_Tp1*, _Deleter))
1101 (__shared_ptr::reset(_Tp1*, _Deleter, _Alloc)): Constrain with
1103 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Change dg-error to
1105 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
1106 * testsuite/20_util/shared_ptr/assign/sfinae.cc: New test.
1107 * testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc: Update
1108 expected errors. Remove unnecessary code.
1109 * testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc: New test.
1111 * include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Move
1113 * testsuite/23_containers/set/move_comparison.cc: New test.
1115 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
1118 2016-08-30 Ville Voutilainen <ville.voutilainen@gmail.com>
1121 * include/std/type_traits (is_constructible): Forward-declare...
1122 (__is_base_to_derived_ref): ...and use here.
1123 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
1124 * testsuite/20_util/is_constructible/77395.cc: New.
1125 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust.
1126 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1128 * testsuite/20_util/tuple/77395.cc: New.
1130 2016-08-30 Uros Bizjak <ubizjak@gmail.com>
1132 * testsuite/22_locale/time_get/get/char/2.cc: Move dg-do run
1133 directive above dg-require-namedlocale directive.
1134 * testsuite/22_locale/time_get/get/wchar_t/2.cc: Ditto.
1135 * testsuite/27_io/manipulators/extended/get_time/char/2.cc: Ditto.
1136 * testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc: Ditto.
1137 * testsuite/27_io/manipulators/extended/put_time/char/2.cc: Ditto.
1138 * testsuite/27_io/manipulators/extended/put_time/wchar_t/2.cc: Ditto.
1140 2016-08-27 Tim Shen <timshen@google.com>
1143 * include/bits/regex_compiler.tcc(_M_insert_bracket_matcher,
1144 _M_expression_term): Modify to support dash literal.
1145 * include/bits/regex_scanner.h: Add dash as a token type to make
1146 a different from the mandated dash literal by escaping.
1147 * include/bits/regex_scanner.tcc(_M_scan_in_bracket): Emit dash
1148 token in bracket expression parsing.
1149 * testsuite/28_regex/regression.cc: Add new testcases.
1151 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
1154 * doc/xml/manual/intro.xml: Document DR 2127 change.
1155 * doc/html/*: Regenerate.
1156 * include/bits/stl_raw_storage_iter.h (operator=(_Tp&&)): Add.
1157 (operator++(), operator++(int)): Use injected class name.
1158 * testsuite/20_util/raw_storage_iterator/dr2127.cc: New test.
1160 * testsuite/*: Use { target c++11 } or { target c++14 } instead of
1161 using -std in dg-options.
1163 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
1164 Pedro Alves <palves@redhat.com>
1166 * testsuite/lib/gdb-test.exp (gdb-dg-runtest): Define wrapper to save
1167 and restore dg-interpreter-batch-mode.
1168 * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Use
1169 gdb-dg-runtest instead of dg-runtest.
1170 * testsuite/libstdc++-xmethods/xmethods.exp: Likewise.
1172 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
1174 * config/abi/pre/gnu.ver (GLIBCXX_3.4, GLIBCXX_3.4.21): Use more
1175 precise patterns for basic_string constructors.
1176 (GLIBCXX_3.4.23): Export new constructors.
1177 * doc/xml/manual/intro.xml: Document LWG 2583 status.
1178 * doc/html/*: Regenerate.
1179 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1180 (basic_string(const basic_string&, size_type, const Alloc&)): Add
1181 new constructor for LWG 2583.
1182 (basic_string(const basic_string&, size_type, size_type)): Remove
1184 [!_GLIBCXX_USE_CXX11_ABI]: Likewise.
1185 * include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]: Define it.
1186 * testsuite/21_strings/basic_string/cons/char/8.cc: New test.
1187 * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: New test.
1189 2016-08-24 Aditya Kumar <hiraditya@msn.com>
1191 * include/bits/algorithmfwd.h: Remove trailing whitespace.
1192 * include/bits/shared_ptr_base.h: Likewise.
1194 2016-08-23 Jonathan Wakely <jwakely@redhat.com>
1196 * include/debug/array (array): Add _GLIBCXX17_CONSTEXPR.
1197 * include/profile/array (array): Likewise.
1198 (array::swap): Fix exception specification for zero-sized arrays.
1201 * include/bits/stl_tree.h (_Rb_tree::_M_move_assign): New functions.
1202 (_Rb_tree::operator=(_Rb_tree&&)): Dispatch to _M_move_assign.
1203 * testsuite/23_containers/map/77334.cc: New test.
1205 * doc/xml/manual/using.xml: Remove reference to -pthreads option.
1206 * doc/html/*: Regenerate.
1208 * testsuite/experimental/feat-cxx14.cc: Only preprocess, not compile.
1209 * testsuite/experimental/feat-lib-fund.cc: Likewise.
1212 * include/bits/stl_iterator.h
1213 (operator-(reverse_iterator<Iter>, reverse_iterator<Iter>): Only
1214 define for C++98 mode.
1215 (operator-(move_iterator<Iter>, move_iterator<Iter>): Don't define.
1216 * testsuite/24_iterators/headers/iterator/synopsis.cc: Use
1218 * testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: New test.
1219 * testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: New test.
1220 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: New test.
1221 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Don't test
1222 difference operator.
1223 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc: Only test
1224 difference operator for C++98.
1225 * testsuite/24_iterators/reverse_iterator/71771.cc: New test.
1227 * include/bits/c++config (_GLIBCXX17_CONSTEXPR): Define.
1228 * include/bits/range_access.h (begin, end, rbegin, rend, crbegin)
1229 (crend): Add _GLIBCXX17_CONSTEXPR as per P0031R0.
1230 * include/bits/stl_iterator.h (reverse_iterator, move_iterator)
1231 (__make_reverse_iterator, make_reverse_iterator, make_move_iterator):
1233 * include/bits/stl_iterator_base_funcs.h (__distance, __advance): Add
1234 _GLIBCXX14_CONSTEXPR.
1235 (distance, advance, next, prev): Add _GLIBCXX17_CONSTEXPR.
1236 * include/std/array (array::begin, array::end, array::rbegin)
1237 (array::rend, array::cbegin, array:cend, array::crbegin)
1238 (array::crend, array::operator[], array::at, array::front)
1239 (array::back, array::data): Likewise.
1240 * testsuite/24_iterators/headers/iterator/range_access.cc: Replace
1241 with separate tests for C++11, C++14, and C++17.
1242 * testsuite/24_iterators/headers/iterator/range_access_c++11.cc: New.
1243 * testsuite/24_iterators/headers/iterator/range_access_c++14.cc: New.
1244 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc: New.
1246 2016-08-22 Tim Shen <timshen@google.com>
1248 Split _M_dfs() into smaller functions.
1249 * regex_executor.h(_M_handle_repeat, _M_handle_subexpr_begin)
1250 (_M_handle_subexpr_end, _M_handle_line_begin_assertion)
1251 (_M_handle_line_end_assertion, _M_handle_word_boundary)
1252 (_M_handle_subexpr_lookahead, _M_handle_match)
1253 (_M_handle_backref, _M_handle_accept, _M_handle_alternative):
1254 Add separate function declarations.
1255 * regex_executor.tcc: Split _M_dfs() into multiple handler functions.
1257 2016-08-22 Gleb Natapov <gleb@scylladb.com>
1260 * config/abi/pre/gnu-versioned-namespace.ver: Export
1261 __cxa_init_primary_exception and std::exception_ptr(void*).
1262 * config/abi/pre/gnu.ver (CXXABI_1.3.11) : Add new symbol version and
1263 export __cxa_init_primary_exception and std::exception_ptr(void*).
1264 * include/Makefile.am: Add new headers.
1265 * include/Makefile.in: Regenerate.
1266 * libsupc++/Makefile.am: Add new headers.
1267 * libsupc++/Makefile.in: Regenerate.
1268 * libsupc++/cxxabi.h (__cxa_allocate_exception): Move to ...
1269 * libsupc++/cxxabi_init_exception.h: New header.
1270 (__cxa_init_primary_exception): Declare.
1271 * libsupc++/eh_throw.cc (__cxa_init_primary_exception): Define.
1272 (__cxa_throw): Use __cxa_init_primary_exception.
1273 * libsupc++/exception (std::exception): Move to ...
1274 * libsupc++/exception.h: New header.
1275 * libsupc++/exception_ptr.h (__exception_ptr::exception_ptr): Add
1277 (__exception_ptr::__dest_thunk): New function template.
1278 (std::make_exception_ptr) [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]:
1279 Use __cxa_allocate_exception and __cxa_init_primary_exception to
1280 create exception_ptr.
1281 * libsupc++/typeinfo: Include bits/exception.h instead of exception.
1282 * testsuite/util/testsuite_abi.cc: Add CXXABI_1.3.11 version.
1284 2016-08-22 Jonathan Wakely <jwakely@redhat.com>
1286 * doc/xml/api.xml: Replace hardcoded links for specific versions with
1287 link to docs for all releases.
1288 * doc/html/*: Regenerate.
1291 * doc/xml/manual/intro.xml: Document DR 2062 change.
1292 * include/std/functional (function::swap): Add noexcept.
1293 (swap(function<Res(Args...)&, function<Res(Args...)&)): Likewise.
1294 * testsuite/20_util/function/77322.cc: New test.
1296 2016-08-19 Jonathan Wakely <jwakely@redhat.com>
1298 * testsuite/21_strings/basic_string/pthread18185.cc: Use -pthread for
1299 *-*-solaris* instead of -pthreads.
1300 * testsuite/21_strings/basic_string/pthread4.cc : Likewise.
1301 * testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
1302 * testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
1303 * testsuite/23_containers/list/pthread1.cc: Likewise.
1304 * testsuite/23_containers/list/pthread5.cc: Likewise.
1305 * testsuite/23_containers/map/pthread6.cc: Likewise.
1306 * testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
1307 * testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
1308 * testsuite/30_threads/shared_mutex/*: Likewise.
1309 * testsuite/ext/rope/pthread7-rope.cc: Likewise.
1310 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
1311 default_weaktoshared.cc: Likewise.
1312 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
1313 mutex_weaktoshared.cc: Likewise.
1314 * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise. Use
1315 dg-require-effective-target instead of using -std option.
1316 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
1318 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
1319 * testsuite/23_containers/vector/debug/multithreaded_swap.cc:
1321 * testsuite/30_threads/async/*: Likewise.
1322 * testsuite/30_threads/call_once/*: Likewise.
1323 * testsuite/30_threads/condition_variable/*: Likewise.
1324 * testsuite/30_threads/condition_variable_any/*: Likewise.
1325 * testsuite/30_threads/future/*: Likewise.
1326 * testsuite/30_threads/lock/*: Likewise.
1327 * testsuite/30_threads/mutex/*: Likewise.
1328 * testsuite/30_threads/packaged_task/*: Likewise.
1329 * testsuite/30_threads/promise/*: Likewise.
1330 * testsuite/30_threads/recursive_mutex/*: Likewise.
1331 * testsuite/30_threads/recursive_timed_mutex/*: Likewise.
1332 * testsuite/30_threads/shared_future/*: Likewise.
1333 * testsuite/30_threads/shared_lock/*: Likewise.
1334 * testsuite/30_threads/shared_timed_mutex/*: Likewise.
1335 * testsuite/30_threads/this_thread/*: Likewise.
1336 * testsuite/30_threads/thread/*: Likewise.
1337 * testsuite/30_threads/timed_mutex/*: Likewise.
1338 * testsuite/30_threads/try_lock/*: Likewise.
1339 * testsuite/30_threads/unique_lock/*: Likewise.
1341 * doc/xml/manual/status_cxx2017.xml: Update status of not_fn.
1342 * doc/html/*: Regenerate.
1343 * include/experimental/functional (_Not_fn, not_fn): Match C++17
1345 * include/std/functional (_Not_fn, not_fn): Define for C++17.
1346 * testsuite/20_util/not_fn/1.cc: New.
1347 * testsuite/experimental/functional/not_fn.cc: Test abstract class.
1348 Remove test for volatile-qualified wrapper.
1350 * include/std/atomic (atomic::is_always_lock_free): Define.
1351 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
1352 * testsuite/29_atomics/atomic/is_always_lock_free.cc: New.
1353 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc: New.
1354 * doc/xml/manual/status_cxx2017.xml: Update status.
1355 * doc/html/*: Regenerate.
1357 * include/experimental/tuple (apply): Qualify call to __apply_impl.
1358 * include/std/tuple (apply): Likewise.
1359 * testsuite/experimental/system_error/value.cc: Fix ambiguities in
1361 * testsuite/experimental/tuple/tuple_size.cc: Likewise.
1362 * testsuite/experimental/type_traits/value.cc: Likewise.
1364 * doc/xml/manual/status_cxx2017.xml: Update status of make_from_tuple
1366 * doc/html/*: Regenerate.
1368 2016-08-18 Ville Voutilainen <ville.voutilainen@gmail.com>
1370 Implement the latest proposed resolution of LWG 2756.
1371 * include/std/optional (Optional_base(const _Tp&))
1372 (Optional_base(_Tp&&), using _Base::_Base): Remove.
1373 (optional(nullopt_t)): New.
1374 (optional(_Up&&)): Invoke base directly with in_place
1375 rather than creating a temporary, add default template
1376 argument, change constraints.
1377 (optional(const optional<_Up>&)): Invoke base directly
1378 with in_place, remove unnecessary constraints.
1379 (optional(optional<_Up>&& __t)): Likewise.
1380 (optional(in_place_t, _Args&&...)): New.
1381 (optional(in_place_t, initializer_list<_Up>, _Args&&...)): Likewise.
1382 (operator=(_Up&&)): Add default template argument, change constraints.
1383 (operator=(const optional<_Up>&)): Put is_same first in the
1385 (operator=(optional<_Up>&&)): Likewise.
1386 * testsuite/20_util/optional/assignment/5.cc: Add a test to
1387 verify assignment from something that can't be perfect-forwarded.
1388 * testsuite/20_util/optional/cons/value.cc: Add tests to verify
1389 that a nested optional is disengaged when constructed
1390 from a disengaged element type, and to verify that assignments
1391 from an engaged element type engage the optional.
1393 2016-08-18 Tim Shen <timshen@google.com>
1397 * include/Makefile.am: Add new file std/variant.
1398 * include/Makefile.in: Generated from Makefile.am.
1399 * include/bits/enable_special_members.h: Add a tag type to allow
1400 the construction in non-default constructor.
1401 * include/bits/uses_allocator.h: Add convenience traits to
1402 detect constructibility.
1403 * include/std/variant: Implement <variant>.
1404 * testsuite/20_util/variant/compile.cc: Compile-time tests.
1405 * testsuite/20_util/variant/run.cc: Runtime tests.
1407 2016-08-18 Jonathan Wakely <jwakely@redhat.com>
1409 * doc/xml/manual/test.xml (test.run.permutations): Expand section.
1410 (test.new_tests): Rewrite section.
1411 (tests.dg.directives): New section.
1412 * doc/html/*: Regenerate.
1414 * doc/xml/manual/test.xml: Improve documentation of test targets.
1415 Document new-abi-baseline, check-debug, and check-parallel targets.
1417 * doc/xml/manual/build_hacking.xml: New section on shared library
1420 * doc/xml/manual/build_hacking.xml: Improve markup.
1421 * doc/xml/manual/test.xml: Likewise. Change section title from "Test"
1423 * doc/xml/faq.xml: Change link text to "Testing".
1425 * testsuite/tr1/3_function_objects/function/10.cc: Remove unintended
1426 dg-options directive.
1428 2016-08-17 Jonathan Wakely <jwakely@redhat.com>
1430 * testsuite/20_util/reference_wrapper/invoke-2.cc: Fix invalid dg-do
1431 directive and use effective target instead of dg-options.
1433 * testsuite/20_util/hash/chi2_q_bit_flip_set.cc: Use effective target
1434 instead of -std in dg-options.
1435 * testsuite/20_util/hash/chi2_q_bit_string_set.cc: Likewise.
1436 * testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc: Likewise.
1437 * testsuite/20_util/hash/chi2_q_uniform_random.cc: Likewise.
1438 * testsuite/20_util/hash/quality.cc: Likewise.
1439 * testsuite/25_algorithms/heap/moveable.cc: Likewise.
1440 * testsuite/25_algorithms/heap/moveable2.cc: Likewise.
1441 * testsuite/25_algorithms/nth_element/random_test.cc: Likewise.
1442 * testsuite/25_algorithms/partial_sort/random_test.cc: Likewise.
1443 * testsuite/25_algorithms/partial_sort_copy/random_test.cc: Likewise.
1444 * testsuite/25_algorithms/sort/random_test.cc: Likewise.
1446 * testsuite/20_util/tuple/67844.cc: Require c++11 effective target.
1447 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Likewise.
1448 * testsuite/27_io/rvalue_streams.cc: Likewise.
1450 * testsuite/26_numerics/complex/literals/types.cc: Add comment.
1452 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
1453 Remove duplicate dg-options directive.
1455 * testsuite/ext/profile/all.cc: Use effective target instead of
1456 -std=gnu++11. Use dg-additional-options instead of repeating options.
1458 * testsuite/20_util/bind/ref_neg.cc: Use effective target instead of
1459 -std=gnu++11. Add -fno-show-columns to dg-options. Use dg-prune-output
1460 instead of dg-excess-errors.
1462 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Disable
1464 * testsuite/experimental/chrono/value.cc: Avoid ambiguities in C++17.
1465 * testsuite/experimental/ratio/value.cc: Likewise.
1466 * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Disable test for
1468 * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
1469 * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
1470 * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
1471 * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
1472 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
1473 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
1474 * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
1475 * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
1476 * testsuite/tr1/5_numerical_facilities/special_functions/
1477 10_cyl_bessel_k/airy.cc: Adjust namespace of __detail::__airy for
1478 C++17 compatibility.
1480 * testsuite/24_iterators/headers/iterator/range_access.cc: Adjust
1481 expected signatures for C++14 compatibility.
1484 * include/bits/basic_string.h (operator=(__sv_type)
1485 (append(__sv_type), assign(__sv_type), insert(size_type, __sv_type))
1486 (replace(size_type, size_type, __sv_type))
1487 (replace(const_iterator, const_iterator, __sv_type))
1488 (find(__sv_type, size_type), rfind(__sv_type, size_type))
1489 (compare(size_type, size_type, __sv_type)): Reformat.
1490 (_If_sv): Define helper for SFINAE constaints.
1491 (append(const _Tp&, size_type, size_type))
1492 (assign(const _Tp&, size_type, size_type))
1493 (insert(size_type, const _Tp&, size_type, size_type))
1494 (replace(size_type, size_type, const _Tp&, size_type, size_type)):
1496 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc: Test
1498 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
1500 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1502 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
1504 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
1506 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
1508 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
1510 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
1512 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1514 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
1516 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
1519 2016-08-16 Jonathan Wakely <jwakely@redhat.com>
1522 * include/bits/stl_bvector.h (_Bvector_base::_M_deallocate): Zero
1523 pointers to start and end of storage.
1524 * testsuite/23_containers/vector/bool/72847.cc: New test.
1525 * include/bits/vector.tcc (vector<bool>::_M_reallocate): Only update
1526 _M_finish after deallocating.
1527 (vector<bool>::_M_fill_insert): Likewise.
1528 (vector<bool>::_M_insert_range): Likewise.
1529 (vector<bool>::_M_insert_aux): Likewise.
1531 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1533 Implement LWG 2744 and LWG 2754.
1534 * include/std/any (any(ValueType&&)): Constrain with __is_in_place_type.
1535 (any(in_place_type_t<_ValueType>, _Args&&...)): Use _Decay.
1536 (any(in_place_type_t<_ValueType>, initializer_list<_Up>, _Args&&...)):
1538 (emplace(_Args&&...)): Likewise.
1539 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
1540 * include/std/utility: (__is_in_place_type_impl): New.
1541 (__is_in_place_type): Likewise.
1542 * testsuite/20_util/any/assign/emplace.cc: Add tests for decaying
1544 * testsuite/20_util/any/cons/in_place.cc: Add tests for decaying
1545 in_place constructor.
1546 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
1547 * testsuite/20_util/any/requirements.cc: Add a test for
1548 in_place-constructing a non-default-constructible type.
1550 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1552 Add a feature macro for C++17 make_from_tuple.
1553 * include/std/tuple (__cpp_lib_make_from_tuple): New.
1554 (__make_from_tuple_impl(_Tuple&&, index_sequence<_Idx...>)):
1555 Qualify the call to get<>().
1556 * testsuite/20_util/tuple/make_from_tuple/1.cc: Adjust.
1558 2016-08-15 Uros Bizjak <ubizjak@gmail.com>
1560 * src/filesystem/ops.cc: Always include ostream and
1561 ext/stdio_filebuf.h.
1562 (do_copy_file): Check if _GLIBCXX_USE_FCHMODAT is defined.
1563 [_GLIBCXX_USE_SENDFILE]: Fallback to read/write operations in case
1564 sendfile fails with ENOSYS or EINVAL.
1566 2016-08-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
1569 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Fix dg-error
1572 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1574 Implement C++17 make_from_tuple.
1575 * include/std/tuple (__make_from_tuple_impl, make_from_tuple): New.
1576 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
1578 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1581 * include/bits/basic_string.h
1582 (append(__sv_type, size_type, size_type)): Turn into a template,
1583 change parameter type, constrain, add a conversion to __sv_type
1584 from the dependent parameter type.
1585 (assign(__sv_type, size_type, size_type)): Likewise.
1586 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
1587 (replace(size_type, size_type, __sv_type, size_type, size_type)):
1589 (compare(size_type, size_type,__sv_type, size_type, size_type)):
1591 * testsuite/21_strings/basic_string/lwg2758.cc: New.
1593 2016-08-06 Jonathan Wakely <jwakely@redhat.com>
1595 * doc/xml/manual/status_cxx2017.xml: Update status table.
1596 * doc/html/manual/status.html: Regenerate.
1598 * testsuite/lib/libstdc++.exp: Fix typo in comment.
1601 * include/std/functional (_Function_base::_Base_manager::_M_clone):
1602 Qualify new operator.
1603 * testsuite/20_util/function/cons/72820.cc: New test.
1605 * doc/xml/manual/status_cxx2017.xml: Add missing LFTSv2 features.
1606 * doc/html/manual/status.html: Regenerate.
1607 * include/Makefile.am: Add new header.
1608 * include/Makefile.in: Regenerate.
1609 * include/bits/invoke.h: New header.
1610 (__invoke): Make constexpr. Add && to types in exception specification.
1611 * include/experimental/tuple (apply, __apply_impl): Fix non-reserved
1612 names. Include <bits/invoke.h> and use std::__invoke.
1613 * include/std/functional (__invfwd, __invoke_impl, __invoke): Move to
1615 (invoke): Add && to types in exception specification.
1616 * include/std/tuple (apply, __apply_impl): Define for C++17.
1617 * testsuite/20_util/tuple/apply/1.cc: New test.
1618 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error
1621 2016-08-05 Jonathan Wakely <jwakely@redhat.com>
1623 * doc/xml/manual/status_cxx2017.xml: Correct shared_from_this status.
1624 * doc/html/manual/status.html: Regenerate.
1626 * include/std/chrono (floor, ceil, round, abs): New for C++17.
1627 * testsuite/20_util/duration_cast/rounding.cc: New test.
1628 * testsuite/20_util/time_point_cast/rounding.cc: New test.
1629 * doc/xml/manual/status_cxx2017.xml: Update status table.
1630 * doc/html/manual/status.html: Regenerate.
1631 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust
1633 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1634 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1635 * testsuite/20_util/duration/literals/range.cc: Likewise.
1637 * include/std/functional (__callable_functor): Remove.
1638 (_Function_handler::_M_invoke): Use __invoke instead of
1639 __callable_functor or mem_fn.
1640 (function::_Callable): Use lvalue in result_of expression.
1641 (function): Remove TODO comments about allocators.
1642 * testsuite/20_util/function/cons/refqual.cc: New test.
1644 2016-08-04 Jonathan Wakely <jwakely@redhat.com>
1646 * doc/xml/manual/status_cxx2017.xml: Update status table.
1647 * include/std/functional (__inv_unwrap): Move to <type_traits>.
1648 (__invoke_impl): Remove exception specifications.
1649 (__invoke, invoke): Add exception specifications using
1650 __is_nothrow_callable.
1651 * include/std/type_traits (__inv_unwrap): Move from <functional>.
1652 (__is_callable_impl, __call_is_nt, __call_is_nothrow): New helpers.
1653 (__is_callable, __is_nothrow_callable): New traits.
1654 (is_callable, is_callable_v): New C++17 traits.
1655 (is_nothrow_callable, is_nothrow_callable_v): Likewise.
1656 * testsuite/20_util/is_callable/requirements/
1657 explicit_instantiation.cc: New test.
1658 * testsuite/20_util/is_callable/requirements/
1659 explicit_instantiation_ext.cc: New test.
1660 * testsuite/20_util/is_callable/requirements/typedefs.cc: New test.
1661 * testsuite/20_util/is_callable/requirements/typedefs_ext.cc: New
1663 * testsuite/20_util/is_callable/value.cc: New test.
1664 * testsuite/20_util/is_callable/value_ext.cc: New test.
1665 * testsuite/20_util/is_nothrow_callable/requirements/
1666 explicit_instantiation.cc: New test.
1667 * testsuite/20_util/is_nothrow_callable/requirements/
1668 explicit_instantiation_ext.cc: New test.
1669 * testsuite/20_util/is_nothrow_callable/requirements/typedefs.cc:
1671 * testsuite/20_util/is_nothrow_callable/requirements/typedefs_ext.cc:
1673 * testsuite/20_util/is_nothrow_callable/value.cc: New test.
1674 * testsuite/20_util/is_nothrow_callable/value_ext.cc: New test.
1676 * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
1677 * doc/html/manual/status.html: Regenerate.
1679 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Use
1680 effective target not dg-options. Move check for feature-test macro to:
1681 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
1684 * include/std/functional (_Unwrap): Rename to __inv_unwrap.
1686 (__invoke_impl): Remove unused template parameters.
1687 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
1689 * testsuite/20_util/function_objects/invoke/ref_ext.cc: Copy 59768.cc
1690 and test __invoke extension for C++11.
1692 2016-08-03 Jonathan Wakely <jwakely@redhat.com>
1694 * include/bits/shared_ptr_base.h (__cpp_lib_enable_shared_from_this):
1695 Define feature-test macro.
1696 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Test
1699 * include/bits/shared_ptr.h (shared_ptr::weak_type): Define.
1700 * include/bits/shared_ptr_base.h (__shared_ptr::weak_type): Define.
1701 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
1702 * testsuite/20_util/shared_ptr/requirements/weak_type.cc: New test.
1703 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
1705 * include/std/utility (as_const): Define.
1706 * testsuite/20_util/as_const/1.cc: New test.
1707 * testsuite/20_util/as_const/rvalue_neg.cc: New test.
1709 * include/bits/shared_ptr.h (owner_less): Add default template
1711 * include/bits/shared_ptr_base.h (_Sp_owner_less<void, void>): Define
1713 (owner_less<void>): Define specialization.
1714 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
1716 * testsuite/20_util/owner_less/void.cc: New test.
1717 * testsuite/experimental/feat-cxx14.cc: Update macro value tested.
1719 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
1720 Define feature-test macro.
1721 * include/bits/range_access.h (__cpp_lib_array_constexpr): Likewise.
1722 * include/std/shared_mutex (__cpp_lib_shared_mutex): Uncomment.
1723 * include/std/type_traits (__cpp_lib_logical_traits): Fix value.
1724 (__cpp_lib_type_trait_variable_templates): Define.
1726 * include/bits/stl_function.h: Remove commented-out macro.
1727 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
1728 Define feature-test macro.
1729 * testsuite/experimental/feat-cxx14.cc: Add tests for more macros.
1731 * include/bits/c++config (_GLIBCXX_USE_STD_SPEC_FUNCS): Define for
1732 C++17, or for C++11/C++14 when __STDCPP_WANT_MATH_SPEC_FUNCS__ is
1734 * include/bits/specfun.h [!__STDCPP_WANT_MATH_SPEC_FUNCS__]: Don't
1735 do #error for C++17.
1736 * include/c_global/cmath: Check _GLIBCXX_USE_STD_SPEC_FUNCS instead
1737 of __STDCPP_WANT_MATH_SPEC_FUNCS__.
1738 * include/tr1/bessel_function.tcc: Likewise.
1739 * include/tr1/beta_function.tcc: Likewise.
1740 * include/tr1/cmath: Likewise.
1741 * include/tr1/ell_integral.tcc: Likewise.
1742 * include/tr1/exp_integral.tcc: Likewise.
1743 * include/tr1/gamma.tcc: Likewise.
1744 * include/tr1/hypergeometric.tcc: Likewise.
1745 * include/tr1/legendre_function.tcc: Likewise.
1746 * include/tr1/modified_bessel_func.tcc: Likewise.
1747 * include/tr1/poly_hermite.tcc: Likewise.
1748 * include/tr1/poly_laguerre.tcc: Likewise.
1749 * include/tr1/riemann_zeta.tcc: Likewise.
1750 * include/tr1/special_function_util.h: Likewise.
1751 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc: New.
1753 * include/std/type_traits (has_trivial_default_constructor): Remove.
1754 (has_trivial_copy_constructor, has_trivial_copy_assign): Likewise.
1755 * testsuite/20_util/has_trivial_copy_assign/requirements/
1756 explicit_instantiation.cc: Remove test.
1757 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
1759 * testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc:
1761 * testsuite/20_util/has_trivial_copy_assign/value.cc: Likewise.
1762 * testsuite/20_util/has_trivial_copy_constructor/requirements/
1763 explicit_instantiation.cc: Likewise.
1764 * testsuite/20_util/has_trivial_copy_constructor/requirements/
1765 typedefs.cc: Likewise.
1766 * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise.
1767 * testsuite/20_util/has_trivial_default_constructor/requirements/
1768 explicit_instantiation.cc: Likewise.
1769 * testsuite/20_util/has_trivial_default_constructor/requirements/
1770 typedefs.cc: Likewise.
1771 * testsuite/20_util/has_trivial_default_constructor/value.cc:
1773 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
1774 Check has_trivial_default_constructor, has_trivial_copy_constructor,
1775 and has_trivial_copy_assign are not defined.
1776 * testsuite/20_util/pair/requirements/dr801.cc: Remove commented out
1778 * testsuite/20_util/tuple/requirements/dr801.cc: Likewise.
1779 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
1780 dg-error line number.
1781 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1784 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
1786 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
1787 Remove reundant check for _GLIBCXX_USE_WCHAR_T and fix char type.
1788 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
1790 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
1792 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
1794 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
1796 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
1798 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
1801 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Improve
1804 * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Move
1805 dg-error to relevant line.
1806 * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc:
1808 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
1810 * scripts/testsuite_flags.in: Add -fno-show-column to cxxflags.
1812 * testsuite/18_support/bad_exception/23591_thread-1.c: Skip test if
1813 options are present that aren't valid for C.
1814 * testsuite/abi/header_cxxabi.c: Likewise.
1816 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/
1817 check_value.cc: Do not add special functions to namespace std in TR1
1820 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Only
1821 run for C++11 and later.
1822 * testsuite/ext/special_functions/conf_hyperg/check_value.cc:
1824 * testsuite/ext/special_functions/conf_hyperg/compile.cc: Likewise.
1825 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
1826 * testsuite/ext/special_functions/hyperg/check_value.cc: Likewise.
1827 * testsuite/ext/special_functions/hyperg/compile.cc: Likewise.
1828 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
1830 * testsuite/special_functions/01_assoc_laguerre/check_value.cc:
1832 * testsuite/special_functions/01_assoc_laguerre/compile.cc: Likewise.
1833 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc:
1835 * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
1837 * testsuite/special_functions/02_assoc_legendre/check_value.cc:
1839 * testsuite/special_functions/02_assoc_legendre/compile.cc: Likewise.
1840 * testsuite/special_functions/02_assoc_legendre/compile_2.cc:
1841 * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
1842 * testsuite/special_functions/03_beta/check_value.cc: Likewise.
1843 * testsuite/special_functions/03_beta/compile.cc: Likewise.
1844 * testsuite/special_functions/03_beta/compile_2.cc: Likewise.
1845 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: Likewise.
1846 * testsuite/special_functions/04_comp_ellint_1/check_value.cc:
1848 * testsuite/special_functions/04_comp_ellint_1/compile.cc: Likewise.
1849 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Likewise.
1850 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: Likewise.
1851 * testsuite/special_functions/05_comp_ellint_2/check_value.cc:
1853 * testsuite/special_functions/05_comp_ellint_2/compile.cc: Likewise.
1854 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Likewise.
1855 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: Likewise.
1856 * testsuite/special_functions/06_comp_ellint_3/check_value.cc:
1858 * testsuite/special_functions/06_comp_ellint_3/compile.cc: Likewise.
1859 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Likewise.
1860 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: Likewise.
1861 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc:
1863 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: Likewise.
1864 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Likewise.
1865 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: Likewise.
1866 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: Likewise.
1867 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc:
1869 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: Likewise.
1870 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Likewise.
1871 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: Likewise.
1872 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc:
1874 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: Likewise.
1875 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Likewise.
1876 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: Likewise.
1877 * testsuite/special_functions/10_cyl_neumann/check_value.cc: Likewise.
1878 * testsuite/special_functions/10_cyl_neumann/compile.cc: Likewise.
1879 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Likewise.
1880 * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
1881 * testsuite/special_functions/11_ellint_1/check_value.cc: Likewise.
1882 * testsuite/special_functions/11_ellint_1/compile.cc: Likewise.
1883 * testsuite/special_functions/11_ellint_1/compile_2.cc: Likewise.
1884 * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
1885 * testsuite/special_functions/12_ellint_2/check_value.cc: Likewise.
1886 * testsuite/special_functions/12_ellint_2/compile.cc: Likewise.
1887 * testsuite/special_functions/12_ellint_2/compile_2.cc: Likewise.
1888 * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
1889 * testsuite/special_functions/13_ellint_3/check_value.cc: Likewise.
1890 * testsuite/special_functions/13_ellint_3/compile.cc: Likewise.
1891 * testsuite/special_functions/13_ellint_3/compile_2.cc: Likewise.
1892 * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
1893 * testsuite/special_functions/14_expint/check_value.cc: Likewise.
1894 * testsuite/special_functions/14_expint/compile.cc: Likewise.
1895 * testsuite/special_functions/14_expint/compile_2.cc: Likewise.
1896 * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
1897 * testsuite/special_functions/15_hermite/check_value.cc: Likewise.
1898 * testsuite/special_functions/15_hermite/compile.cc: Likewise.
1899 * testsuite/special_functions/15_hermite/compile_2.cc: Likewise.
1900 * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
1901 * testsuite/special_functions/16_laguerre/check_value.cc: Likewise.
1902 * testsuite/special_functions/16_laguerre/compile.cc: Likewise.
1903 * testsuite/special_functions/16_laguerre/compile_2.cc: Likewise.
1904 * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
1905 * testsuite/special_functions/17_legendre/check_value.cc: Likewise.
1906 * testsuite/special_functions/17_legendre/compile.cc: Likewise.
1907 * testsuite/special_functions/17_legendre/compile_2.cc: Likewise.
1908 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: Likewise.
1909 * testsuite/special_functions/18_riemann_zeta/check_value.cc:
1911 * testsuite/special_functions/18_riemann_zeta/compile.cc: Likewise.
1912 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Likewise.
1913 * testsuite/special_functions/19_sph_bessel/check_nan.cc: Likewise.
1914 * testsuite/special_functions/19_sph_bessel/check_value.cc: Likewise.
1915 * testsuite/special_functions/19_sph_bessel/compile.cc: Likewise.
1916 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Likewise.
1917 * testsuite/special_functions/20_sph_legendre/check_nan.cc: Likewise.
1918 * testsuite/special_functions/20_sph_legendre/check_value.cc:
1920 * testsuite/special_functions/20_sph_legendre/compile.cc: Likewise.
1921 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Likewise.
1922 * testsuite/special_functions/21_sph_neumann/check_nan.cc: Likewise.
1923 * testsuite/special_functions/21_sph_neumann/check_value.cc: Likewise.
1924 * testsuite/special_functions/21_sph_neumann/compile.cc: Likewise.
1925 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Likewise.
1927 * testsuite/tr1/5_numerical_facilities/special_functions/
1928 08_cyl_bessel_i/check_value.cc: Use __attribute__((unused)) instead
1930 * testsuite/tr1/5_numerical_facilities/special_functions/
1931 09_cyl_bessel_j/check_value.cc: Likewise.
1932 * testsuite/tr1/5_numerical_facilities/special_functions/
1933 10_cyl_bessel_k/check_value.cc: Likewise.
1934 * testsuite/tr1/5_numerical_facilities/special_functions/
1935 11_cyl_neumann/check_value.cc: Likewise.
1936 * testsuite/tr1/5_numerical_facilities/special_functions/
1937 21_sph_bessel/check_value.cc: Likewise.
1938 * testsuite/tr1/5_numerical_facilities/special_functions/
1939 23_sph_neumann/check_value.cc: Likewise.
1941 2016-08-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1943 * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
1944 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
1945 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
1946 * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
1947 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
1948 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
1950 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
1952 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: Skip
1955 * testsuite/lib/libstdc++.exp (v3-build_support): Add -fno-lto to
1956 additional flags for compiling libtestc++.a objects.
1958 2016-08-01 Jonathan Wakely <jwakely@redhat.com>
1960 * include/bits/basic_string.h (data() const): Update comment.
1961 (data()): Add non-const overload for C++17.
1962 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
1963 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
1965 * include/bits/basic_string.tcc: Disable explicit instantiation
1966 declarations for C++17.
1968 * testsuite/23_containers/unordered_map/requirements/53339.cc: Remove
1969 ignored "xfail" from { dg-do compile { xfail selector } } directive.
1970 * testsuite/23_containers/unordered_multimap/requirements/53339.cc:
1972 * testsuite/26_numerics/headers/cmath/
1973 c99_classification_macros_c++11.cc: Likewise.
1974 * testsuite/26_numerics/headers/cmath/
1975 c99_classification_macros_c++98.cc: Likewise.
1976 * testsuite/26_numerics/headers/cmath/
1977 c99_classification_macros_c.cc: Likewise.
1979 * testsuite/backward/hash_set/check_construct_destroy.cc: Account
1980 for different construct/destroy counts in C++98 mode.
1982 * testsuite/17_intro/freestanding.cc: Remove "-x c" from dg-options.
1984 * testsuite/20_util/tuple/cons/66338.cc: Limit test to C++11 and
1986 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc:
1989 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Use
1990 C++98-compatible initialization for array.
1992 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc: Remove
1993 unused header and variable from compile-only test.
1994 * testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc: Likewise.
1995 * testsuite/28_regex/basic_regex/assign/char/cstring.cc: Likewise.
1996 * testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc: Likewise.
1997 * testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc:
2000 * testsuite/experimental/string_view/operations/rfind/char/2.cc:
2001 Remove duplicate dg-options directive.
2003 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
2004 808590.cc: Use -std=gnu++98 instead of -std=gnu++03.
2006 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Remove
2007 linker options from compile-only tests.
2008 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
2011 * testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Make test
2012 supported for C++11 and later.
2013 * testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
2014 * testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.
2016 2016-08-01 Uros Bizjak <ubizjak@gmail.com>
2018 * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
2020 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
2022 * testsuite/20_util/conditional/requirements/typedefs.cc: Change to
2025 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
2026 Ensure test is compiled with optimization.
2028 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
2029 Adjust dg-prune-output pattern for error in C++98 mode.
2031 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Only
2032 run for C++11 or later.
2034 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Fix
2035 test to not rely on GNU extension (escaped normal characters in POSIX
2036 BRE). Enable tests for other strings which are now supported.
2038 * testsuite/20_util/pair/astuple/get_neg.cc: Use effective-target
2039 c++11 instead of setting -std=gnu++14.
2042 * include/std/array (get): Use positive message for static assertions.
2043 * include/std/functional (_Safe_tuple_element_t): Fix indentation.
2044 * include/std/tuple (tuple_element<I, tuple<>>): Add partial
2045 specialization for invalid indices, with static assertion.
2046 * testsuite/20_util/tuple/element_access/get_neg.cc: New test.
2048 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Move
2049 dg-error to relevant line.
2050 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
2052 * testsuite/23_containers/forward_list/requirements/dr438/
2053 assign_neg.cc: Likewise.
2054 * testsuite/23_containers/forward_list/requirements/dr438/
2055 constructor_1_neg.cc: Likewise.
2056 * testsuite/23_containers/forward_list/requirements/dr438/
2057 constructor_2_neg.cc: Likewise.
2058 * testsuite/23_containers/forward_list/requirements/dr438/
2059 insert_neg.cc: Likewise.
2060 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc:
2062 * testsuite/26_numerics/random/linear_congruential_engine/
2063 requirements/non_uint_neg.cc: Likewise.
2064 * testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc:
2065 Likewise. Also test for std::atomic_address.
2067 2016-07-31 Ville Voutilainen <ville.voutilainen@gmail.com>
2069 Add missing variable traits, fix testsuite failures.
2070 * include/bits/uses_allocator.h (uses_allocator_v): New.
2071 * include/std/functional (is_bind_expression_v, is_placeholder_v):
2073 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
2074 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
2075 * testsuite/20_util/duration/literals/range.cc: Likewise.
2076 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
2077 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
2078 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
2079 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise.
2080 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
2082 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
2083 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
2086 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
2088 * testsuite/18_support/numeric_limits/40856.cc [__STRICT_ANSI__]: Do
2089 not test 128-bit types.
2090 * testsuite/20_util/is_floating_point/value.cc: Likewise.
2091 * testsuite/20_util/is_integral/value.cc: Likewise.
2092 * testsuite/20_util/is_signed/value.cc: Likewise.
2093 * testsuite/20_util/is_unsigned/value.cc: Likewise.
2094 * testsuite/20_util/make_signed/requirements/typedefs-1.cc: Likewise.
2095 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
2096 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
2098 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
2101 * testsuite/26_numerics/headers/cstdlib/54686.c: Rename to 54686.cc.
2103 2016-07-29 Ville Voutilainen <ville.voutilainen@gmail.com>
2105 Implement C++17 variable templates for type traits.
2106 * include/std/chrono (treat_as_floating_point_v): New.
2107 * include/std/ratio (ratio_equal_v, ratio_not_equal_v)
2108 (ratio_less_v, ratio_less_equal_v, ratio_greater_v)
2109 (ratio_greater_equal_v): Likewise.
2110 * include/std/system_error (is_error_code_enum_v)
2111 (is_error_condition_enum_v): Likewise.
2112 * include/std/tuple (tuple_size_v): Likewise.
2113 * type_traits (conjunction_v, disjunction_v, negation_v)
2114 (is_void_v, is_null_pointer_v, is_integral_v, is_floating_point_v)
2115 (is_array_v, is_pointer_v, is_lvalue_reference_v)
2116 (is_rvalue_reference_v, is_member_object_pointer_v)
2117 (is_member_function_pointer_v, is_enum_v, is_union_v)
2118 (is_class_v, is_function_v, is_reference_v, is_arithmetic_v)
2119 (is_fundamental_v, is_object_v, is_scalar_v, is_compound_v)
2120 (is_member_pointer_v, is_const_v, is_volatile_v, is_trivial_v)
2121 (is_trivially_copyable_v, is_standard_layout_v)
2122 (is_pod_v, is_literal_type_v, is_empty_v, is_polymorphic_v)
2123 (is_abstract_v, is_final_v, is_signed_v, is_unsigned_v)
2124 (is_constructible_v, is_default_constructible_v)
2125 (is_copy_constructible_v, is_move_constructible_v)
2126 (is_assignable_v, is_copy_assignable_v, is_move_assignable_v)
2127 (is_destructible_v, is_trivially_constructible_v)
2128 (is_trivially_default_constructible_v)
2129 (is_trivially_copy_constructible_v, is_trivially_move_constructible_v)
2130 (is_trivially_assignable_v, is_trivially_copy_assignable_v)
2131 (is_trivially_move_assignable_v, is_trivially_destructible_v)
2132 (is_nothrow_constructible_v, is_nothrow_default_constructible_v)
2133 (is_nothrow_copy_constructible_v, is_nothrow_move_constructible_v)
2134 (is_nothrow_assignable_v, is_nothrow_copy_assignable_v)
2135 (is_nothrow_move_assignable_v, is_nothrow_destructible_v)
2136 (has_virtual_destructor_v, alignment_of_v, rank_v, extent_v)
2137 (is_same_v, is_base_of_v, is_convertible_v): Likewise.
2138 * testsuite/19_diagnostics/error_code/is_error_code_v.cc: Likewise.
2139 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
2141 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc: Likewise.
2142 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
2143 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
2145 2016-07-29 Andreas Schwab <schwab@linux-m68k.org>
2147 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
2148 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
2149 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
2151 2016-07-29 Jonathan Wakely <jwakely@redhat.com>
2153 * doc/xml/manual/abi.xml: Document 6.0.22 library version.
2154 * doc/html/manual/abi.html: Regenerate.
2156 * acinclude.m4 (libtool_VERSION): Bump to 6:23:0.
2157 * config/abi/pre/gnu.ver: Add 3.4.23 version for new basic_string
2159 * configure: Regenerate.
2160 * testsuite/util/testsuite_abi.cc: Add new symbol version.
2162 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
2163 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
2164 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Likewise.
2165 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
2167 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
2168 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
2169 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Likewise.
2171 2016-07-28 Jonathan Wakely <jwakely@redhat.com>
2173 * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
2174 Adjust dg-prune-output pattern for error in C++98 mode.
2175 * testsuite/23_containers/deque/requirements/dr438/
2176 constructor_1_neg.cc: Likewise.
2177 * testsuite/23_containers/deque/requirements/dr438/
2178 constructor_2_neg.cc: Likewise.
2179 * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
2181 * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
2183 * testsuite/23_containers/list/requirements/dr438/
2184 constructor_1_neg.cc: Likewise.
2185 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
2187 * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
2189 * testsuite/23_containers/vector/requirements/dr438/
2190 constructor_1_neg.cc: Likewise.
2191 * testsuite/23_containers/vector/requirements/dr438/
2192 constructor_2_neg.cc: Likewise.
2193 * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
2196 * testsuite/23_containers/vector/check_construct_destroy.cc: Account
2197 for different construct/destroy counts in C++98 mode.
2199 * testsuite/17_intro/headers/c++2011/stdc++.cc: Change target-specific
2200 dg-options to dg-additional-options so that default options are used.
2201 * testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc:
2203 * testsuite/17_intro/headers/c++2014/stdc++.cc: Likewise.
2204 * testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc:
2206 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
2207 Use dg-additional-options instead of repeating the common options.
2209 * testsuite/22_locale/conversions/string/1.cc: Remove unintended
2210 dg-do compile directive.
2211 * testsuite/26_numerics/headers/cmath/fabs_inline.cc: Fix syntax of
2213 * testsuite/26_numerics/valarray/const_bracket.cc: Likewise.
2215 2016-07-28 Ville Voutilainen <ville.voutilainen@gmail.com>
2217 Implement std::string_view and P0254r2,
2218 Integrating std::string_view and std::string.
2219 * include/Makefile.am: Add string_view and string_view.tcc
2220 to the exported headers.
2221 * include/Makefile.in: Likewise.
2222 * include/bits/basic_string.h: Include <string_view> in C++17 mode.
2224 (basic_string(__sv_type, const _Alloc&)): Likewise.
2225 (operator=(__sv_type)): Likewise.
2226 (operator __sv_type()): Likewise.
2227 (operator+=(__sv_type)): Likewise.
2228 (append(__sv_type __sv)): Likewise.
2229 (append(__sv_type, size_type, size_type)): Likewise.
2230 (assign(__sv_type)): Likewise.
2231 (assign(__sv_type, size_type, size_type)): Likewise.
2232 (insert(size_type, __sv_type)): Likewise.
2233 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
2234 (replace(size_type, size_type, __sv_type)): Likewise.
2235 (replace(size_type, size_type, __sv_type, size_type, size_type)):
2237 (replace(const_iterator, const_iterator, __sv_type)): Likewise.
2238 (find(__sv_type, size_type)): Likewise.
2239 (rfind(__sv_type, size_type)): Likewise.
2240 (find_first_of(__sv_type, size_type)): Likewise.
2241 (find_last_of(__sv_type, size_type)): Likewise.
2242 (find_first_not_of(__sv_type, size_type)): Likewise.
2243 (find_last_not_of(__sv_type, size_type)): Likewise.
2244 (compare(__sv_type)): Likewise.
2245 (compare(size_type, size_type, __sv_type)): Likewise.
2246 (compare(size_type, size_type, __sv_type, size_type, size_type)):
2248 * include/bits/string_view.tcc: New.
2249 * include/std/string_view: Likewise.
2250 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
2251 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
2252 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
2254 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
2256 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
2258 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
2260 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
2262 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
2264 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
2266 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
2268 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
2270 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
2272 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
2274 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
2276 * testsuite/21_strings/basic_string/operators/char/5.cc: Likewise.
2277 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc: Likewise.
2278 * testsuite/21_strings/basic_string_view/capacity/1.cc: Likewise.
2279 * testsuite/21_strings/basic_string_view/cons/char/1.cc: Likewise.
2280 * testsuite/21_strings/basic_string_view/cons/char/2.cc: Likewise.
2281 * testsuite/21_strings/basic_string_view/cons/char/3.cc: Likewise.
2282 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc: Likewise.
2283 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc: Likewise.
2284 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc: Likewise.
2285 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
2287 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
2289 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
2291 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
2293 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
2295 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
2297 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
2299 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
2301 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
2302 * testsuite/21_strings/basic_string_view/inserters/char/1.cc: Likewise.
2303 * testsuite/21_strings/basic_string_view/inserters/char/2.cc: Likewise.
2304 * testsuite/21_strings/basic_string_view/inserters/char/3.cc: Likewise.
2305 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
2307 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
2309 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
2311 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
2313 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
2315 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
2317 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
2319 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
2321 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
2323 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
2325 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
2327 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
2329 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
2331 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
2333 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
2335 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
2337 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
2339 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
2341 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
2343 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
2345 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
2347 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
2349 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
2351 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
2353 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
2355 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
2357 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
2359 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
2361 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
2363 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
2365 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
2367 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
2369 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
2371 * testsuite/21_strings/basic_string_view/operators/char/2.cc: Likewise.
2372 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
2374 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
2376 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
2378 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
2380 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
2382 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
2384 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
2386 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
2388 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
2390 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
2391 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
2393 2016-07-27 Jonathan Wakely <jwakely@redhat.com>
2395 * testsuite/20_util/forward/1_neg.cc: Move dg-error to right line.
2397 2016-07-25 Georeth Chow <georeth2010@gmail.com>
2399 * include/ext/ropeimpl.h (rope<>::_S_dump(_RopeRep*, int)): Qualify
2400 _S_concat enumerator.
2401 * testsuite/ext/rope/6.cc: New test.
2403 2016-07-25 Jonathan Wakely <jwakely@redhat.com>
2405 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Use
2406 std::mt19937, std::thread and std::atomic to simplify test.
2407 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
2409 2016-07-22 Jonathan Wakely <jwakely@redhat.com>
2412 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2413 (basic_string::_Alloc_hider(pointer, _Alloc&&)): Add constructor.
2414 * include/bits/stl_tree.h (_Rb_tree(_Rb_tree&&)): Move allocator.
2415 * testsuite/21_strings/basic_string/allocator/71964.cc: New test.
2416 * testsuite/23_containers/set/allocator/71964.cc: New test.
2418 * testsuite/lib/libstdc++.exp (check_v3_target_namedlocale): Use
2419 delete[] instead of delete.
2421 2016-07-21 Jonathan Wakely <jwakely@redhat.com>
2423 * include/experimental/propagate_const (propagate_const::__t): Rename
2424 to _M_t and remove comment. Qualify std::move and std::forward.
2425 * testsuite/experimental/propagate_const/cons/default.cc: Fix test.
2427 * testsuite/23_containers/vector/zero_sized_allocations.cc:
2428 Define sized deallocation function.
2429 * testsuite/util/testsuite_new_operators.h:
2430 (operator delete(void*, const std::nothrow_t&)): Define nothrow
2431 deallocation function.
2433 * testsuite/21_strings/basic_string/modifiers/append/char/1.cc: Fix
2434 reads past the end of strings.
2435 * testsuite/21_strings/basic_string/operations/compare/char/1.cc:
2437 * testsuite/21_strings/char_traits/requirements/short/1.cc: Fix
2438 invalid array accesses.
2439 * testsuite/experimental/string_view/operations/compare/char/1.cc:
2440 Fix read past the end of string.
2441 * testsuite/util/testsuite_character.cc: Fix out-of-bounds write.
2443 * testsuite/24_iterators/container_access.cc: Fix missing returns.
2444 * testsuite/24_iterators/range_access_cpp14.cc: Likewise.
2446 * testsuite/18_support/new_delete_placement.cc: Don't allocate (and
2447 leak) memory for arguments to placement delete.
2448 * testsuite/20_util/addressof/1.cc: Don't leak memory.
2449 * testsuite/22_locale/locale/global_locale_objects/3.cc: Likewise.
2450 * testsuite/23_containers/unordered_multimap/insert/55028-debug.cc:
2453 2016-07-20 Jonathan Wakely <jwakely@redhat.com>
2455 * doc/xml/manual/intro.xml: Document DR 2684 status.
2456 * doc/html/*: Regenerate.
2458 * include/std/atomic (atomic_int8_t, atomic_uint8_t, atomic_int16_t)
2459 (atomic_uint16_t, atomic_int32_t, atomic_uint32_t, atomic_int64_t)
2460 (atomic_uint64_t): Define (LWG 2441).
2461 * testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc: Remove empty
2463 * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Test for
2465 * doc/xml/manual/intro.xml: Document DR 2441 status.
2467 * include/std/istream (operator>>(basic_istream&&, _Tp&)): Adjust
2468 to use perfect forwarding (LWG 2328).
2469 * testsuite/27_io/rvalue_streams.cc: Test perfect forwarding.
2470 * doc/xml/manual/intro.xml: Document DR 2328 status.
2472 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Use
2473 static objects for catching nullptr as pointer to member types.
2475 2016-07-18 Ville Voutilainen <ville.voutilainen@gmail.com>
2477 Clean up optional's comments.
2478 * include/std/optional: Remove incorrect section headers
2479 from comments when redundant, replace bare section
2480 headers with more descriptive comments.
2482 2016-07-15 Jonathan Wakely <jwakely@redhat.com>
2484 * include/bits/algorithmfwd.h: Change C++0x to C++11 in comments.
2485 * include/bits/move.h: Likewise.
2486 * include/bits/postypes.h: Likewise.
2487 * include/debug/bitset: Likewise.
2488 * include/ext/pb_ds/detail/type_utils.hpp: Likewise.
2489 * include/ext/string_conversions.h: Change C++0x to __cxx11 in
2491 * testsuite/27_io/fpos/14320-1.cc: Change C++0x to C++11 in comment.
2492 * testsuite/util/thread/all.h: Likewise.
2494 * include/bits/stl_algo.h (for_each): Remove redundant _GLIBCXX_MOVE
2498 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Make
2499 nullptr match handlers of pointer type.
2501 2016-07-15 Edward Smith-Rowland <3dw4rd@verizon.net>
2503 Implement C++17 P0025 clamp.
2504 * include/bits/algorithmfwd.h: Declare clamp overloads.
2505 * include/bits/stl_algo.h: Implement clamp. Feature __cpp_lib_clamp.
2506 * testsuite/25_algorithms/clamp/1.cc: New test.
2507 * testsuite/25_algorithms/clamp/2.cc: New test.
2508 * testsuite/25_algorithms/clamp/constexpr.cc: New test.
2509 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
2511 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
2514 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
2516 Fix the constraints for any's assignment operator template to properly
2517 reject assignment from a non-copyable lvalue.
2518 * include/std/any (operator=(_ValueType&&)): Constrain the decayed
2519 type for is_copy_constructible,
2520 * testsuite/20_util/any/requirements.cc: Add a test for
2521 non-copyable lvalues.
2523 2016-07-14 Jonathan Wakely <jwakely@redhat.com>
2525 * include/experimental/functional: Include <parallel/algorithm> in
2528 * testsuite/experimental/functional/searchers.cc: Include <algorithm>
2532 * include/bits/forward_list.h (forward_list): Update doxygen comments
2533 to reflect allocator propagation semantics. Remove ambiguous
2534 statements about data being lost.
2535 * include/bits/stl_deque.h (deque): Likewise.
2536 * include/bits/stl_list.h (list): Likewise.
2537 * include/bits/stl_map.h (map): Likewise.
2538 * include/bits/stl_multimap.h (multimap): Likewise.
2539 * include/bits/stl_multiset.h (multiset): Likewise.
2540 * include/bits/stl_set.h (set): Likewise.
2541 * include/bits/stl_vector.h (vector): Likewise.
2542 * include/bits/unordered_map.h (unordered_map, unordered_multimap):
2544 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
2547 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
2549 Implement P0032R3, Homogeneous interface for variant, any and optional,
2550 for the parts concerning any and optional.
2551 * include/std/any (_Storage()): Make constexpr and have it
2553 (any()): Make constexpr.
2554 (any(const any&)): Adjust.
2555 (any(any&&)): Likewise.
2556 (__any_constructible_t): New.
2557 (any(_ValueType&&)): Constrain.
2558 (any(in_place_type_t<_Tp>, _Args&&...)): New.
2559 (any(in_place_type_t<_Tp>, initializer_list<_Up>, _Args&&...)):
2562 (operator=(const any&)): Likewise.
2563 (operator=(any&&)): Likewise.
2564 (operator=(_ValueType&&)): Constrain.
2565 (emplace(_Args&&...)): New.
2566 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
2569 (swap(any&)): Adjust.
2573 (_Manager_internal::_S_create(_Storage&, _Args&&...)): New.
2574 (_Manager_external::_S_create(_Storage&, _Args&&...)): Likewise.
2575 (make_any(_Args&&...)): Likewise.
2576 (make_any(initializer_list<_Up>, _Args&&...)): Likewise.
2577 * include/std/optional (in_place_t, in_place): Remove.
2578 (bad_optional_access): Add a comment referring to LEWG 72.
2579 (emplace(_Args&&...)): Constrain.
2581 (reset()): Likewise.
2582 (make_optional(_Args&&...)): Likewise.
2583 (make_optional(initializer_list<_Up>, _Args&&...)): Likewise.
2584 * include/std/utility (in_place_tag): New.
2585 (__in_place, __in_place_type, __in_place_index): Likewise.
2586 (in_place_t, in_place_type_t, in_place_index_t): Likewise.
2587 (in_place(__in_place*)): Likewise.
2588 (in_place(__in_place_type<_Tp>*)): Likewise.
2589 (in_place(__in_place_index<_Idx>*)): Likewise.
2590 * testsuite/20_util/any/assign/1.cc: Adjust.
2591 * testsuite/20_util/any/assign/emplace.cc: New.
2592 * testsuite/20_util/any/assign/self.cc: Adjust.
2593 * testsuite/20_util/any/cons/1.cc: Likewise.
2594 * testsuite/20_util/any/cons/in_place.cc: New.
2595 * testsuite/20_util/any/make_any.cc: Likewise.
2596 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
2597 * testsuite/20_util/any/misc/swap.cc: Likewise.
2598 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2599 * testsuite/20_util/any/requirements.cc: New.
2600 * testsuite/20_util/in_place/requirements.cc: Likewise.
2601 * testsuite/20_util/optional/constexpr/in_place.cc: Adjust.
2602 * testsuite/20_util/optional/in_place.cc: Likewise.
2603 * testsuite/20_util/optional/make_optional.cc: Add tests for
2604 the new overloads of make_optional.
2606 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2608 Implement P0307R2, Making Optional Greater Equal Again.
2609 * include/experimental/optional (_Has_addressof): Fix the comment.
2610 * include/std/optional (_Has_addressof): Likewise.
2611 (operator=(_Up&&)): Constrain.
2612 (operator=(const optional<_Up>&)): Likewise.
2613 (operator=(optional<_Up>&&)): Likewise.
2614 (__optional_relop_t): New.
2615 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2616 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2617 Constrain and make transparent.
2618 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2619 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2620 Constrain and make transparent.
2621 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2622 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2623 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2624 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2625 (operator!=(const optional<_Tp>&, _Tp const&)):
2626 Constrain and make transparent.
2627 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2628 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2629 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2630 (operator>(const optional<_Tp>&, const _Tp&)):
2631 Constrain and make transparent.
2632 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2633 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2634 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2635 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2636 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2637 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2638 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2639 * testsuite/20_util/optional/relops/1.cc: Likewise.
2640 * testsuite/20_util/optional/relops/2.cc: Likewise.
2641 * testsuite/20_util/optional/relops/3.cc: Likewise.
2642 * testsuite/20_util/optional/relops/4.cc: Likewise.
2643 * testsuite/20_util/optional/requirements.cc: Add tests to verify
2644 that optional's relops are transparent and don't synthesize
2645 operators. Also test that assignment sfinaes.
2647 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2650 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Define to 1 not empty.
2651 * include/parallel/compiletime_settings.h (_GLIBCXX_ASSERTIONS):
2652 Rename to _GLIBCXX_PARALLEL_ASSERTIONS and make default value depend
2653 on _GLIBCXX_ASSERTIONS.
2654 * include/parallel/balanced_quicksort.h: Rename _GLIBCXX_ASSERTIONS.
2655 Include <unistd.h> for sleep.
2656 * include/parallel/losertree.h: Rename _GLIBCXX_ASSERTIONS.
2657 * include/parallel/merge.h: Likewise.
2658 * include/parallel/multiway_merge.h: Likewise.
2659 * include/parallel/partition.h: Likewise.
2660 * include/parallel/queue.h: Likewise.
2661 * include/parallel/sort.h: Likewise.
2662 * testsuite/25_algorithms/headers/algorithm/
2663 parallel_algorithm_assert.cc: New.
2665 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2666 (replace(__const_iterator, __const_iterator, initializer_list<C>)):
2667 Forward to different overload.
2669 * include/bits/allocated_ptr.h (__allocated_ptr::_S_raw_ptr): Make
2672 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2674 Revert "Add non-const overload of std::string::data()".
2676 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2678 Implement P0307R2, Making Optional Greater Equal Again.
2679 * include/experimental/optional (_Has_addressof): Fix the comment.
2680 * include/std/optional (_Has_addressof): Likewise.
2681 (operator=(_Up&&)): Constrain.
2682 (operator=(const optional<_Up>&)): Likewise.
2683 (operator=(optional<_Up>&&)): Likewise.
2684 (__optional_relop_t): New.
2685 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2686 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2687 Constrain and make transparent.
2688 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2689 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2690 Constrain and make transparent.
2691 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2692 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2693 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2694 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2695 (operator!=(const optional<_Tp>&, _Tp const&)):
2696 Constrain and make transparent.
2697 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2698 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2699 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2700 (operator>(const optional<_Tp>&, const _Tp&)):
2701 Constrain and make transparent.
2702 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2703 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2704 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2705 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2706 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2707 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2708 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2709 * testsuite/20_util/optional/relops/1.cc: Likewise.
2710 * testsuite/20_util/optional/relops/2.cc: Likewise.
2711 * testsuite/20_util/optional/relops/3.cc: Likewise.
2712 * testsuite/20_util/optional/relops/4.cc: Likewise.
2713 * testsuite/20_util/optional/requirements.cc: Add tests to verify
2714 that optional's relops are transparent and don't synthesize
2715 operators. Also test that assignment sfinaes.
2717 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2719 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (_M_c_str):
2721 (_M_disjunct, basic_string(const basic_string&, size_t)): Use data()
2722 instead of _M_data().
2723 (basic_string(const basic_string&, size_t, size_t, const _Alloc&)):
2725 (append(const basic_string&)): Likewise.
2726 (append(const basic_string&, size_type, size_type)): Likewise.
2727 (assign(const basic_string&, size_type, size_type)): Likewise.
2728 (insert(size_type, const basic_string&)): Likewise.
2729 (insert(size_type, const basic_string&, size_type, size_type)):
2731 (replace(size_type, size_type, const basic_string&, size_type,
2732 size_type)): Likewise.
2733 (replace(__const_iterator, __const_iterator, const basic_string&)):
2735 (c_str(), data()): Use c_str() instead of _M_data().
2736 (data()): Add non-const overload as per LWG 2391 and P0272R1.
2737 (compare(const basic_string&)): Use data() instead of _M_data().
2738 [!_GLIBCXX_USE_CXX11_ABI] (data()): Add non-const overload.
2739 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI] (_M_mutate):
2740 Pass raw pointers to _S_copy.
2741 (_M_erase, _M_replace_aux): Pass raw pointers to _S_move and
2743 (find(const _CharT*, size_type, size_type)): Use data instead of
2745 * testsuite/21_strings/basic_string/allocator/char/ext_ptr.cc: New.
2746 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
2747 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
2749 2016-07-12 Jonathan Wakely <jwakely@redhat.com>
2751 * libsupc++/new: Remove nothrow sized deletes (LWG 2458).
2752 * doc/xml/manual/intro.xml: Document DR 2458 status.
2753 * doc/html*: Regenerate.
2755 * testsuite/20_util/pair/astuple/astuple.cc: Only include <utility>.
2756 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
2757 Only include <array>.
2758 * testsuite/23_containers/array/tuple_interface/tuple_size.cc:
2760 * doc/xml/manual/intro.xml: Document LWG 2212 support.
2761 * doc/html*: Regenerate.
2763 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2764 Add testcase from LWG 2164.
2766 2016-07-11 François Dumont <fdumont@gcc.gnu.org>
2768 * include/bits/stl_vector.h (push_back(const value_type&)): Forward
2769 to _M_realloc_insert.
2770 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2771 (_M_realloc_insert): Declare new function.
2772 (_M_emplace_back_aux): Remove definition.
2773 * include/bits/vector.tcc (emplace_back(_Args...)):
2774 Use _M_realloc_insert.
2775 (insert(const_iterator, const value_type&)): Likewise.
2776 (_M_insert_rval, _M_emplace_aux): Likewise.
2777 (_M_emplace_back_aux): Remove declaration.
2778 (_M_realloc_insert): Define.
2779 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2780 Adjust expected results for emplacing an lvalue with reallocation.
2782 2016-07-10 Ville Voutilainen <ville.voutilainen@gmail.com>
2784 Implement std::optional.
2785 * include/Makefile.am: Add optional to exported headers.
2786 * include/Makefile.in: Likewise.
2787 * include/std/optional: New.
2788 * testsuite/20_util/optional/typedefs.cc: Likewise.
2789 * testsuite/20_util/optional/relops/2.cc: Likewise.
2790 * testsuite/20_util/optional/relops/3.cc: Likewise.
2791 * testsuite/20_util/optional/relops/4.cc: Likewise.
2792 * testsuite/20_util/optional/relops/5.cc: Likewise.
2793 * testsuite/20_util/optional/relops/1.cc: Likewise.
2794 * testsuite/20_util/optional/relops/6.cc: Likewise.
2795 * testsuite/20_util/optional/nullopt.cc: Likewise.
2796 * testsuite/20_util/optional/in_place.cc: Likewise.
2797 * testsuite/20_util/optional/make_optional.cc: Likewise.
2798 * testsuite/20_util/optional/assignment/2.cc: Likewise.
2799 * testsuite/20_util/optional/assignment/3.cc: Likewise.
2800 * testsuite/20_util/optional/assignment/4.cc: Likewise.
2801 * testsuite/20_util/optional/assignment/5.cc: Likewise.
2802 * testsuite/20_util/optional/assignment/1.cc: Likewise.
2803 * testsuite/20_util/optional/assignment/6.cc: Likewise.
2804 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
2805 * testsuite/20_util/optional/cons/default.cc: Likewise.
2806 * testsuite/20_util/optional/cons/move.cc: Likewise.
2807 * testsuite/20_util/optional/cons/value.cc: Likewise.
2808 * testsuite/20_util/optional/cons/copy.cc: Likewise.
2809 * testsuite/20_util/optional/requirements.cc: Likewise.
2810 * testsuite/20_util/optional/observers/2.cc: Likewise.
2811 * testsuite/20_util/optional/observers/3.cc: Likewise.
2812 * testsuite/20_util/optional/observers/4.cc: Likewise.
2813 * testsuite/20_util/optional/observers/5.cc: Likewise.
2814 * testsuite/20_util/optional/observers/1.cc: Likewise.
2815 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
2816 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
2817 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2818 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
2819 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
2820 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
2821 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
2822 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
2823 * testsuite/20_util/optional/constexpr/make_optional.cc: Likewise.
2824 * testsuite/20_util/optional/constexpr/cons/default.cc: Likewise.
2825 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
2826 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
2827 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
2828 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
2829 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
2830 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
2831 * testsuite/20_util/optional/swap/1.cc: Likewise.
2833 2016-07-08 Jonathan Wakely <jwakely@redhat.com>
2835 * testsuite/23_containers/vector/modifiers/insert/aliasing.cc: New.
2837 2016-07-07 Jonathan Wakely <jwakely@redhat.com>
2839 * doc/xml/manual/status_cxx2014.xml: Update LFTS status table.
2840 * doc/html/*: Regenerate.
2842 2016-07-07 Ville Voutilainen <ville.voutilainen@gmail.com>
2845 * include/Makefile.am: Add any and c++17_warning.h to exported headers.
2846 * include/Makefile.in: Likewise.
2847 * include/std/any: New.
2848 * testsuite/20_util/any/assign/1.cc: Likewise.
2849 * testsuite/20_util/any/assign/2.cc: Likewise.
2850 * testsuite/20_util/any/assign/self.cc: Likewise.
2851 * testsuite/20_util/any/cons/1.cc: Likewise.
2852 * testsuite/20_util/any/cons/2.cc: Likewise.
2853 * testsuite/20_util/any/cons/aligned.cc: Likewise.
2854 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
2855 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
2856 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
2857 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
2858 * testsuite/20_util/any/misc/swap.cc: Likewise.
2859 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2860 * testsuite/20_util/any/observers/type.cc: Likewise.
2861 * testsuite/20_util/any/typedefs.cc: Likewise.
2863 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2865 Add a new header for diagnosing the use of C++17 facilities
2867 * include/bits/c++17_warning.h: New.
2869 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2871 Implement LWG 2451, optional<T> should 'forward' T's
2872 implicit conversions.
2873 * include/experimental/optional (__is_optional_impl, __is_optional):
2875 (optional()): Make constexpr and default.
2876 (optional(_Up&&), optional(const optional<_Up>&),
2877 optional(optional<_Up>&& __t): New.
2878 (operator=(_Up&&)): Constrain.
2879 (operator=(const optional<_Up>&), operator=(optional<_Up>&&)): New.
2880 * testsuite/experimental/optional/cons/value.cc:
2881 Add tests for the functionality added by LWG 2451.
2882 * testsuite/experimental/optional/cons/value_neg.cc: New.
2884 2016-07-05 Ville Voutilainen <ville.voutilainen@gmail.com>
2887 any_cast doesn't work with rvalue reference targets and cannot
2888 move with a value target.
2889 * include/experimental/any (any(_ValueType&&)): Constrain and
2890 add an overload that doesn't forward.
2891 (any_cast(any&&)): Constrain and add an overload that moves.
2892 * testsuite/experimental/any/misc/any_cast.cc: Add tests for
2893 the functionality added by LWG 2509.
2895 2016-07-04 François Dumont <fdumont@gcc.gnu.org>
2897 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2899 * testsuite/23_containers/vector/modifiers/insert/self_insert.cc: New
2902 2016-07-04 Jonathan Wakely <jwakely@redhat.com>
2904 * include/bits/stl_vector.h (emplace(const_iterator, _Args&&...)):
2905 Define inline. Forward to _M_emplace_aux.
2906 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2907 (_M_insert_rval, _M_emplace_aux): Declare new functions.
2908 (_Temporary_value): New RAII type using allocator to construct/destroy.
2909 (_S_insert_aux_assign): Remove.
2910 (_M_insert_aux): Make non-variadic.
2911 * include/bits/vector.tcc (insert(const_iterator, const value_type&)):
2912 Use _Temporary_value.
2913 (emplace(const_iterator, _Args&&...)): Remove definition.
2914 (_M_insert_rval, _M_emplace_aux): Define.
2915 (_M_insert_aux): Make non-variadic, stop using _S_insert_aux_assign.
2916 (_M_fill_insert): Use _Temporary_value.
2917 * testsuite/23_containers/vector/allocator/construction.cc: New test.
2918 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2919 Adjust expected results for emplacing an lvalue with reallocation.
2920 * testsuite/23_containers/vector/check_construct_destroy.cc: Adjust
2921 expected results to account for construction/destruction of temporary
2923 * testsuite/backward/hash_set/check_construct_destroy.cc: Likewise.
2925 2016-07-04 Ville Voutilainen <ville.voutilainen@gmail.com>
2928 * src/filesystem/ops.cc (remove_all(const path&, error_code&)):
2929 Call remove_all for children of a directory.
2930 * testsuite/experimental/filesystem/operations/create_directories.cc:
2933 2016-07-02 François Dumont <fdumont@gcc.gnu.org>
2935 * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Adjust
2936 dg-error line numbers.
2937 * testsuite/23_containers/array/tuple_interface/
2938 tuple_element_debug_neg.cc: Likewise.
2939 * testsuite/25_algorithms/lexicographical_compare/debug/
2940 irreflexive_neg.cc: Remove.
2942 2016-06-30 Thomas Preud'homme <thomas.preudhomme@arm.com>
2944 * testsuite/29_atomics/atomic/65913.cc: Require atomic-builtins rather
2945 than specific target.
2947 2016-06-27 François Dumont <fdumont@gcc.gnu.org>
2950 * include/bits/hashtable.h: Remove _Unique_keya parameter in _Insert
2953 2016-06-23 François Dumont <fdumont@gcc.gnu.org>
2955 * include/debug/array (array<>::swap): Fix noexcept qualificaton for
2958 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2960 * configure.host: Remove mep-* support.
2962 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2964 * configure: Regenerate.
2965 * configure.host: Remove support for knetbsd.
2966 * crossconfig.m4: Likewise.
2968 2016-06-20 François Dumont <fdumont@gcc.gnu.org>
2971 * include/tr1/hashtable_policy.h
2972 (_Prime_rehash_policy::_M_next_bkt): Make past-the-end iterator
2973 dereferenceable to avoid check on lower_bound result.
2974 (_Prime_rehash_policy::_M_bkt_for_elements): Call latter.
2975 (_Prime_rehash_policy::_M_need_rehash): Likewise.
2976 * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
2977 Always return a value greater than input value. Set _M_next_resize to
2978 max value when reaching highest prime number.
2979 * src/shared/hashtable-aux.cc (__prime_list): Add comment about sentinel
2981 * testsuite/23_containers/unordered_set/hash_policy/71181.cc: New.
2982 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc
2984 * testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc: New.
2985 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
2988 2016-06-17 Jonathan Wakely <jwakely@redhat.com>
2991 * include/bits/stl_algobase.h (lower_bound, lexicographical_compare):
2992 Remove irreflexive checks.
2993 * include/bits/stl_algo.h (lower_bound, upper_bound, equal_range,
2994 binary_search): Likewise.
2995 * testsuite/25_algorithms/equal_range/partitioned.cc: New test.
2996 * testsuite/25_algorithms/lexicographical_compare/71545.cc: New test.
2997 * testsuite/25_algorithms/lower_bound/partitioned.cc: New test.
2998 * testsuite/25_algorithms/upper_bound/partitioned.cc: New test.
2999 * testsuite/util/testsuite_iterators.h (__gnu_test::test_container):
3000 Add constructor from array.
3002 2016-06-16 François Dumont <fdumont@gcc.gnu.org>
3004 * include/debug/debug.h
3005 (__glibcxx_requires_non_empty_range, __glibcxx_requires_nonempty)
3006 (__glibcxx_requires_subscript): Move...
3007 * include/debug/assertions.h: ...here and add __builtin_expect.
3008 (_GLIBCXX_DEBUG_ONLY): Remove ; value.
3009 * include/bits/stl_deque.h
3010 (std::deque<>::operator[]): Add __glibcxx_requires_subscript check.
3011 (std::deque<>::front()): Add __glibcxx_requires_nonempty check.
3012 (std::deque<>::back()): Likewise.
3013 (std::deque<>::pop_front()): Likewise.
3014 (std::deque<>::pop_back()): Likewise.
3015 (std::deque<>::swap(deque&)): Add allocator check.
3016 * include/bits/stl_vector.h
3017 (std::vector<>::operator[]): Add __glibcxx_requires_subscript check.
3018 (std::vector<>::front()): Add __glibcxx_requires_nonempty check.
3019 (std::vector<>::back()): Likewise.
3020 (std::vector<>::pop_back()): Likewise.
3021 (std::vector<>::swap(vector&)): Add allocator check.
3023 2016-06-16 Daniel Kruegler <daniel.kruegler@gmail.com>
3025 Provide swappable traits (p0185r1)
3026 * include/std/type_traits (is_swappable, is_nothrow_swappable,
3027 is_swappable_with, is_nothrow_swappable_with, is_swappable_v,
3028 is_nothrow_swappable_v, is_swappable_with_v,
3029 is_nothrow_swappable_with_v): New.
3030 * include/bits/stl_pair.h: Use it as per p0185r1.
3031 * include/bits/stl_queue.h: Likewise.
3032 * include/bits/stl_stack.h: Likewise.
3033 * include/bits/unique_ptr.h: Likewise.
3034 * include/std/tuple: Likewise.
3035 * include/std/array: Likewise. Fix zero-size member swap.
3036 * include/bits/hashtable.h: Use __and_.
3037 * testsuite/20_util/is_nothrow_swappable/requirements/
3038 explicit_instantiation.cc: Change test options to std=gnu++17.
3039 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
3041 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
3042 * testsuite/20_util/is_swappable/requirements/
3043 explicit_instantiation.cc: Likewise.
3044 * testsuite/20_util/is_swappable/requirements/typedefs.cc: Likewise.
3045 * testsuite/20_util/is_swappable/value.cc: Likewise.
3046 * testsuite/20_util/is_nothrow_swappable/requirements/
3047 explicit_instantiation_ext.cc: New.
3048 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs_ext.cc:
3050 * testsuite/20_util/is_nothrow_swappable/value.h: New.
3051 * testsuite/20_util/is_nothrow_swappable/value_ext.cc: New.
3052 * testsuite/20_util/is_nothrow_swappable_with/requirements/
3053 explicit_instantiation.cc: New.
3054 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
3056 * testsuite/20_util/is_nothrow_swappable_with/value.cc: New.
3057 * testsuite/20_util/is_swappable/requirements/
3058 explicit_instantiation_ext.cc: New.
3059 * testsuite/20_util/is_swappable/requirements/typedefs_ext.cc: New.
3060 * testsuite/20_util/is_swappable/value.h: New.
3061 * testsuite/20_util/is_swappable/value_ext.cc: New.
3062 * testsuite/20_util/is_swappable_with/requirements/
3063 explicit_instantiation.cc: New.
3064 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc: New.
3065 * testsuite/20_util/is_swappable_with/value.cc: New.
3066 * testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
3067 dg-error line numbers.
3068 * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
3071 2016-06-16 Jonathan Wakely <jwakely@redhat.com>
3073 * include/std/array: Remove trailing whitespace.
3074 * include/std/atomic: Likewise.
3075 * include/std/bitset: Likewise.
3076 * include/std/chrono: Likewise.
3077 * include/std/complex: Likewise.
3078 * include/std/condition_variable: Likewise.
3079 * include/std/fstream: Likewise.
3080 * include/std/functional: Likewise.
3081 * include/std/future: Likewise.
3082 * include/std/iomanip: Likewise.
3083 * include/std/iosfwd: Likewise.
3084 * include/std/istream: Likewise.
3085 * include/std/limits: Likewise.
3086 * include/std/ratio: Likewise.
3087 * include/std/scoped_allocator: Likewise.
3088 * include/std/sstream: Likewise.
3089 * include/std/stdexcept: Likewise.
3090 * include/std/string: Likewise.
3091 * include/std/system_error: Likewise.
3092 * include/std/thread: Likewise.
3093 * include/std/tuple: Likewise.
3094 * include/std/type_traits: Likewise.
3095 * include/std/utility: Likewise.
3096 * include/std/valarray: Likewise.
3097 * include/std/vector: Likewise.
3099 * include/bits/stl_vector.h (vector::_S_insert_aux_assign): Define
3100 new overloaded functions.
3101 * include/bits/vector.tcc (vector::_M_insert_aux): Use new functions
3102 to avoid creating a redundant temporary.
3103 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc: New
3106 2016-06-15 François Dumont <fdumont@gcc.gnu.org>
3108 * include/bits/stl_deque.h
3109 (std::deque<>::operator=): Call _M_assign_aux.
3110 (std::deque<>::assign(initializer_list<>)): Likewise.
3111 (std::deque<>::resize(size_t, const value_type&)): Call _M_fill_insert.
3112 (std::deque<>::insert(const_iterator, initializer_list<>)):
3113 Call _M_range_insert_aux.
3114 (std::deque<>::_M_assign_aux<It>(It, It, std::forward_iterator_tag):
3116 (std::deque<>::_M_fill_assign): Call _M_fill_insert.
3117 (std::deque<>::_M_move_assign2): Call _M_assign_aux.
3118 * include/bits/deque.tcc
3119 (std::deque<>::operator=): Call _M_range_insert_aux.
3120 (std::deque<>::_M_assign_aux<It>(It, It, std::input_iterator_tag)):
3122 * include/bits/stl_vector.h
3123 (std::vector<>::operator=): Call _M_assign_aux.
3124 (std::vector<>::assign(initializer_list<>)): Likewise.
3125 (std::vector<>::resize(size_t, const value_type&)): Call _M_fill_insert.
3126 (std::vector<>::insert(const_iterator, initializer_list<>)):
3127 Call _M_range_insert.
3128 * include/bits/vector.tcc (std::vector<>::_M_assign_aux): Likewise.
3130 2016-06-07 François Dumont <fdumont@gcc.gnu.org>
3132 * include/std/tuple (_Head_base<>): Default specialization condition at
3135 2016-06-06 Ville Voutilainen <ville.voutilainen@gmail.com>
3137 Support allocators in tuples of zero size.
3138 * include/std/tuple (tuple<>::tuple(),
3139 tuple<>::tuple(allocator_arg_t, const _Alloc&),
3140 tuple<>::tuple(allocator_arg_t, const _Alloc&, const tuple&)): New.
3141 * testsuite/20_util/tuple/cons/allocators.cc: Adjust.
3143 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
3146 * src/filesystem/ops.cc (permissions(const path&, perms, error_code&)):
3147 Add or remove permissions according to perms argument.
3148 * testsuite/experimental/filesystem/operations/permissions.cc: New
3151 2016-06-05 Ville Voutilainen <ville.voutilainen@gmail.com>
3153 Protect allocator-overloads of tuple-from-tuple constructors
3154 from cases that would create dangling references.
3155 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
3156 const tuple<_UElements...>&), tuple(allocator_arg_t, const _Alloc&,
3157 tuple<_UElements...>&&)): Add a check for _NonNestedTuple.
3158 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Adjust.
3160 2016-05-29 Gerald Pfeifer <gerald@pfeifer.com>
3162 * doc/xml/manual/backwards_compatibility.xml: Adjust
3163 lists.debian.org link to https.
3164 * doc/html/manual/backwards.html: Regenerate.
3166 2016-05-27 Jonathan Wakely <jwakely@redhat.com>
3168 * doc/xml/manual/abi.xml: Adjust URL to use https.
3169 * doc/html/manual/*: Regenerate.
3171 2016-05-27 Ville Voutilainen <ville.voutilainen@gmail.com>
3174 * include/std/tuple (_TMC): Add a check for _NotSameTuple.
3175 * include/std/tuple (tuple(_UElements&&...)): Remove the separate
3176 check for _NotSameTuple.
3177 * include/std/tuple (_TMCT): New.
3178 * include/std/tuple (tuple(const tuple<_UElements...>&)): Use it.
3179 * include/std/tuple (tuple(tuple<_UElements...>&&)): Likewise.
3180 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
3181 const tuple<_UElements...>&)): Likewise.
3182 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
3183 tuple<_UElements...>&&)): Likewise.
3184 * testsuite/20_util/tuple/cons/66338.cc: New.
3186 2016-05-25 Jonathan Wakely <jwakely@redhat.com>
3188 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Fix test for sendfile.
3189 * configure: Regenerate.
3190 * config.h.in: Regenerate.
3192 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): Remove it.
3193 * include/bits/hashtable_policy.h (_Power2_rehash_policy::_M_next_bkt):
3194 Remove const qualification on function. Replace
3195 _GLIBCXX14_USE_CONSTEXPR on automatic variables with const.
3196 (_Power2_rehash_policy::_M_need_rehash): Remove const qualification.
3197 (_Power2_rehash_policy::_M_next_bkt): Remove mutable specifier.
3199 2016-05-24 François Dumont <fdumont@gcc.gnu.org>
3201 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): New.
3202 * include/bits/hashtable_policy.h
3203 (_Prime_rehash_policy::__has_load_factor): New. Mark rehash policy
3204 having load factor management.
3205 (_Mask_range_hashing): New.
3207 (_Power2_rehash_policy): New.
3208 (_Inserts<>): Remove last template parameter, _Unique_keys, so that
3209 partial specializations only depend on whether iterators are constant
3211 * testsuite/23_containers/unordered_set/hash_policy/26132.cc: Adapt to
3212 test new hash policy.
3213 * testsuite/23_containers/unordered_set/hash_policy/load_factor.cc:
3215 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
3217 * testsuite/23_containers/unordered_set/insert/hash_policy.cc:
3219 * testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
3221 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc:
3223 * testsuite/performance/23_containers/insert/54075.cc: Add benchmark
3224 using the new hash policy.
3225 * testsuite/performance/23_containers/insert_erase/41975.cc: Likewise.
3227 2016-05-24 Jonathan Wakely <jwakely@redhat.com>
3229 * include/bits/stl_queue.h (priority_queue::value_compare): Define.
3231 2016-05-23 François Dumont <fdumont@gcc.gnu.org>
3233 * include/debug/safe_iterator.h
3234 (_Safe_iterator<>::operator->()): Implement using underlying iterator
3236 * include/debug/safe_local_iterator.h
3237 (_Safe_local_iterator<>::operator->()): Likewise.
3239 2016-05-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
3241 * testsuite/experimental/memory_resource/1.cc: Add required argument
3242 to dg-require-atomic-builtins.
3244 2016-05-13 Jonathan Wakely <jwakely@redhat.com>
3247 * include/debug/bitset: Add #pragma GCC system_header.
3248 * include/debug/deque: Likewise.
3249 * include/debug/list: Likewise.
3250 * include/debug/map: Likewise.
3251 * include/debug/set: Likewise.
3252 * include/debug/string: Likewise.
3253 * include/debug/unordered_map: Likewise.
3254 * include/debug/unordered_set: Likewise.
3255 * include/debug/vector: Likewise.
3256 * include/debug/functions.h: Adjust whitespace.
3258 2016-05-12 Jonathan Wakely <jwakely@redhat.com>
3261 * testsuite/experimental/memory_resource/1.cc: Require atomics.
3263 2016-05-11 Jonathan Wakely <jwakely@redhat.com>
3266 * src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_DUAL_ABI]: Don't define
3267 exception constructors with __sso_string parameters.
3269 2016-05-10 Jonathan Wakely <jwakely@redhat.com>
3271 * include/experimental/bits/fs_dir.h (begin, end): Add noexcept.
3272 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
3273 Test begin and end functions.
3274 * testsuite/experimental/filesystem/iterators/
3275 recursive_directory_iterator.cc: Likewise.
3278 * src/filesystem/ops.cc (do_copy_file): Fix backwards conditions.
3279 * testsuite/experimental/filesystem/operations/copy_file.cc: New test.
3281 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
3282 Overload operator* to move from rvalues.
3285 * src/filesystem/ops.cc (create_dir): Handle EEXIST from mkdir.
3286 * testsuite/experimental/filesystem/operations/create_directory.cc:
3290 * src/filesystem/ops.cc (canonical(const path&, const path&)): Add
3291 base path to exception.
3292 * testsuite/experimental/filesystem/operations/canonical.cc: Test
3293 paths contained in exception.
3295 * testsuite/experimental/type_erased_allocator/2.cc: Remove unused
3299 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
3301 (directory_iterator::operator++(int)): Return proxy.
3302 (recursive_directory_iterator::operator++(int)): Likewise.
3303 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
3304 Test post-increment.
3305 * testsuite/experimental/filesystem/iterators/
3306 recursive_directory_iterator.cc: Likewise.
3308 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
3311 * testsuite/experimental/filesystem/iterators/
3312 recursive_directory_iterator.cc: Fix test02 to not call member
3313 functions on invalid iterator, and use VERIFY not assert.
3315 2016-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
3317 Avoid endless run-time recursion for copying single-element
3318 tuples where the element type is by-value constructible
3320 * include/std/tuple (_NotSameTuple): New.
3321 * include/std/tuple (tuple(_UElements&&...): Use it.
3322 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc: New.
3324 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
3327 * include/experimental/bits/fs_dir.h (recursive_directory_iterator):
3328 Initialize scalar member variables in default constructor.
3329 * testsuite/experimental/filesystem/iterators/
3330 recursive_directory_iterator.cc: Test default construction.
3332 2016-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3334 * testsuite/lib/libstdc++.exp (libstdc++_init): Enable on *-*-solaris*.
3336 2016-05-05 Jonathan Wakely <jwakely@redhat.com>
3338 * testsuite/experimental/filesystem/path/native/string.cc: Add
3339 dg-require-filesystem-ts directive.
3341 2016-05-04 Jonathan Wakely <jwakely@redhat.com>
3344 * include/experimental/memory_resource
3345 (__resource_adaptor_imp::do_allocate): Do not default-construct
3347 (__resource_adaptor_imp::do_deallocate): Likewise. Use
3348 allocator_traits to get pointer type.
3349 (__null_memory_resource::do_allocate): Remove unused parameters.
3350 (__null_memory_resource::do_deallocate): Likewise.
3351 (__null_memory_resource::do_is_equal): Likewise. Add return statement.
3352 * testsuite/experimental/type_erased_allocator/1.cc: Combine with ...
3353 * testsuite/experimental/type_erased_allocator/1_neg.cc: This, and
3355 * testsuite/experimental/memory_resource/1.cc: Here.
3356 * testsuite/experimental/memory_resource/null_memory_resource.cc: New.
3357 * testsuite/experimental/memory_resource/resource_adaptor.cc: New.
3359 2016-04-29 Chris Gregory <czipperz@gmail.com>
3361 * config/*: Remove trailing whitespace.
3363 * testsuite/tr1/*: Likewise.
3364 * testsuite/util/*: Likewise.
3366 2016-04-28 Jonathan Wakely <jwakely@redhat.com>
3369 * include/bits/basic_ios.tcc (basic_ios::_M_cache_locale): Use
3371 * include/bits/stream_iterator.h (istream_iterator, ostream_iterator):
3373 * include/std/atomic (atomic<_Tp>): Likewise.
3374 * include/std/shared_mutex (shared_lock): Likewise.
3375 * testsuite/24_iterators/istream_iterator/70766.cc: New test.
3376 * testsuite/24_iterators/ostream_iterator/70766.cc : New test.
3377 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
3378 * testsuite/29_atomics/atomic/70766.cc: New test.
3379 * testsuite/30_threads/shared_lock/70766.cc: New test.
3381 * include/bits/hashtable_policy.h (__detail::_Insert_base,
3382 __detail::_Insert): Improve comments.
3384 2016-04-27 Jonathan Wakely <jwakely@redhat.com>
3387 * include/std/limits: Update comments about DRs.
3388 (numeric_limits<const _Tp>, numeric_limits<volatile _Tp>,
3389 numeric_limits<const volatile _Tp>): Define unconditionally.
3391 2016-04-24 Jonathan Wakely <jwakely@redhat.com>
3394 * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path): Use
3395 static counter to return a different path on every call.
3397 2016-04-22 Tim Shen <timshen@google.com>
3400 * include/bits/regex_executor.tcc (_Executor<>::_M_word_boundary):
3401 Fix the match_not_bow and match_not_eow behavior.
3402 * testsuite/28_regex/regression.cc: Add testcase.
3404 2016-04-20 Jonathan Wakely <jwakely@redhat.com>
3407 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in,
3408 __codecvt_utf8_utf16_base<char16_t>::do_in): Fix mask operations.
3410 2016-04-19 Jonathan Wakely <jwakely@redhat.com>
3413 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in):
3414 Override endianness bit in mode.
3415 * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: New test.
3416 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc: Test
3417 that little_endian mode is ignored.
3418 * testsuite/experimental/filesystem/path/native/string.cc: New test.
3421 * src/filesystem/ops.cc (close_fd): New function.
3422 (do_copy_file): Set permissions before copying file contents. Check
3423 result of closing file descriptors. Don't copy streambuf when file
3425 (copy(const path&, const path&, copy_options, error_code&)): Use
3426 lstat for source file when copy_symlinks is set.
3427 * testsuite/experimental/filesystem/operations/copy.cc: Test copy().
3429 * include/experimental/bits/fs_fwd.h (operator&, operator|, operator^,
3430 operator~ operator&=, operator|=, operator^=): Add noexcept to
3431 overloaded operators for copy_options, perms and directory_options.
3432 * src/filesystem/ops.cc (make_file_type, make_file_status,
3433 is_not_found_errno, file_time): Add noexcept.
3435 2016-04-19 Edward Smith-Rowland <3dw4rd@verizon.net>
3437 * include/bits/c++14_warning.h: Do not refer C++14 as experimental.
3439 2016-04-18 Jonathan Wakely <jwakely@redhat.com>
3442 * include/bits/random.h: Reword static assertion messages to state
3443 positive conditions.
3444 * include/bits/random.tcc: Likewise.
3445 * include/bits/uniform_int_dist.h: Likewise.
3446 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3449 * include/std/function (_Bind, _Bind_result): Remove unused typedefs.
3451 * config/cpu/sh/atomicity.h: Fix typo in comment.
3454 * include/std/thread (operator<, operator==): Move definitions to
3456 * testsuite/30_threads/thread/id/70294.cc: New test.
3458 * testsuite/18_support/bad_exception/23591_thread-1.c: Add
3459 -Wno-pedantic to dg-options.
3460 * testsuite/20_util/align/2.cc: Use type as operand of alignof.
3461 * testsuite/20_util/is_floating_point/value.cc: Add -Wno-pedantic
3463 * testsuite/20_util/specialized_algorithms/uninitialized_fill/32158.cc:
3464 Remove extra semi-colon.
3465 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
3466 Always supply second argument to static_assert.
3467 * testsuite/25_algorithms/lower_bound/no_operator_ne.cc: Remove extra
3469 * testsuite/26_numerics/complex/c99.cc: Add -Wno-pedantic to
3471 * testsuite/26_numerics/complex/literals/values.cc: Likewise.
3472 * testsuite/29_atomics/atomic/60695.cc: Likewise.
3473 * testsuite/29_atomics/atomic/62259.cc: use __alignof__ instead of
3474 alignof when operand is an object not a type.
3475 * testsuite/decimal/ctor.cc: Add -Wno-pedantic to dg-options.
3476 * testsuite/decimal/make-decimal.cc: Likewise.
3477 * testsuite/experimental/type_traits/value.cc: Always supply second
3478 argument to static_assert.
3479 * testsuite/util/testsuite_common_types.h: Use __extension__ for
3482 * testsuite/experimental/type_erased_allocator/1.cc: Don't include
3484 * testsuite/experimental/type_erased_allocator/1_neg.cc: Likewise.
3485 * testsuite/experimental/type_erased_allocator/2.cc: Likewise.
3486 * testsuite/experimental/type_erased_allocator/uses_allocator.cc:
3487 Likewise. Add licence and change to compile-only test.
3489 * include/bits/locale_facets.h (ctype::do_narrow): Add attribute to
3491 * include/bits/regex_automaton.h (_NFA::_M_insert_alt): Likewise.
3493 * include/ext/string_conversions.h (__stoa): Avoid -Wsign-compare
3496 2016-04-17 Edward Smith-Rowland <3dw4rd@verizon.net>
3498 * include/bits/specfun.h: Trivial comment misspelling.
3500 2016-04-14 Jason Merrill <jason@redhat.com>
3502 Revert Jonathan's empty ABI change from yesterday.
3504 2016-04-13 Martin Sebor <msebor@redhat.com>
3507 * testsuite/25_algorithms/rotate/moveable2.cc: Make sure VLA
3508 upper bound is positive.
3510 2016-04-13 Jonathan Wakely <jwakely@redhat.com>
3512 * include/bits/c++config (_GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES,
3513 _GLIBCXX_END_NAMESPACE_EMPTY_TYPES, _GLIBCXX_ABI_TAG_EMPTY): Define.
3514 * include/bits/hashtable.h (_Hashtable::_M_emplace): Change signatures
3515 of functions taking empty structs by value. Add a template parameter
3516 to overloads without hints. Rename overloads with hints to
3518 (_Hashtable::_M_erase(true_type, const_iterator),
3519 _Hashtable::_M_erase(false_type, const_iterator)): Change signatures
3520 by reordering parameters.
3521 * include/bits/hashtable_policy.h (_Insert::insert): Adjust to call
3522 _M_emplace_hint instead of _M_emplace.
3523 * include/bits/shared_ptr.h (shared_ptr(_Tp1*, _Deleter, _Alloc),
3524 shared_ptr(nullptr_t, _Deleter, _Alloc)): Use _GLIBCXX_ABI_TAG_EMPTY.
3525 * include/bits/shared_ptr_base.h (_Sp_counted_deleter, __shared_count,
3526 __shared_ptr): Likewise.
3527 * include/bits/stl_algo.h (replace_if): Likewise.
3528 * include/bits/stl_pair.h (piecewise_construct_t,
3529 piecewise_construct): Use _GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES.
3530 * include/bits/uses_allocator.h (allocator_arg_t, allocator_arg,
3531 __uses_alloc0): Likewise.
3532 * include/ext/pb_ds/assoc_container.hpp (basic_hash_table): Likewise.
3533 * testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error.
3534 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
3535 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
3536 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
3537 * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
3538 * testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.
3540 2016-04-12 Edward Smith-Rowland <3dw4rd@verizon.net>
3542 Document C++17/TR29124 C++ Special Math Functions.
3543 * include/bits/specfun.h: Add Doxygen markup.
3545 2016-04-07 Jonathan Wakely <jwakely@redhat.com>
3547 * testsuite/30_threads/thread/70503.cc: Adjust from xfail to pass.
3549 2016-04-06 Eric Botcazou <ebotcazou@adacore.com>
3551 * src/Makefile.am (libstdc++-symbols.ver): Remove useless /dev/null.
3552 * src/Makefile.in: Regenerate.
3554 2016-04-05 Jonathan Wakely <jwakely@redhat.com>
3557 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Don't test
3558 __atomic_fetch_add for bool.
3559 * configure: Regenerate.
3561 * testsuite/30_threads/thread/70503.cc: Require -static to work.
3564 * src/c++11/thread.cc (execute_native_thread_routine,
3565 execute_native_thread_routine_compat): Give internal linkage.
3566 * testsuite/30_threads/thread/70503.cc: New test.
3568 2016-04-05 Ville Voutilainen <ville.voutilainen@gmail.com>
3571 * include/bits/stl_pair.h (_ConstructiblePair,
3572 _ImplicitlyConvertiblePair, _MoveConstructiblePair,
3573 _ImplicitlyMoveConvertiblePair): Add shortcut conditions
3574 for same-type cases.
3575 * testsuite/20_util/pair/70437.cc: New.
3577 2016-03-24 Jonathan Wakely <jwakely@redhat.com>
3580 * config/abi/pre/gnu.ver: Add new symbol.
3581 * libsupc++/eh_alloc.cc (__gnu_cxx::__freeres): Define.
3582 * testsuite/18_support/free_eh_pool.cc: New test.
3584 2016-03-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
3586 * include/Makefile.am (install-freestanding-headers): Add
3587 concept_check.h and move.h to the installed headers.
3588 * include/Makefile.in: Regenerated.
3589 * include/bits/concept_check.h: Ignore _GLIBCXX_CONCEPT_CHECKS for
3590 freestanding implementations.
3591 * doc/xml/manual/using.xml (_GLIBCXX_CONCEPT_CHECKS): Mention
3592 that this macro has no effect for freestanding implementations.
3593 * doc/html/manual/using_macros.html: Likewise.
3595 2016-02-24 Jonathan Wakely <jwakely@redhat.com>
3598 * include/experimental/tuple (__apply_impl): Qualify get and forward.
3600 2016-02-23 Jonathan Wakely <jwakely@redhat.com>
3602 * doc/xml/manual/using.xml: Document __STDCPP_WANT_MATH_SPEC_FUNCS__.
3603 * doc/html/*: Regenerate.
3606 * include/tr1/cmath (acosh, asinh, atanh, cbrt, copysign, erf, erfc,
3607 exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma, llrint,
3608 llround, log1p, log2, logb, lrint, lround, nan, nearbyint, nextafter,
3609 nexttoward, remainder, remquo, rint, round, scalbln, scalbn, tgamma,
3610 trunc) [__cplusplus >= 201103L]: Import from namespace std.
3611 (fabs) [__cplusplus < 201103L]: Import from namespace std.
3612 * include/tr1/complex (acosh, asinh, atanh) [__cplusplus >= 201103L]:
3614 * testsuite/tr1/headers/c++200x/complex.cc: Add std::fabs to global
3615 namespace before including TR1 headers.
3616 * testsuite/tr1/headers/c++200x/math.cc: New test.
3618 2016-02-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
3621 * include/c_global/cstdarg: Undefine __need___va_list.
3622 * include/c_global/cstddef: Undefine all kinds of __need_*.
3624 2016-02-16 Tim Shen <timshen@google.com>
3627 * include/bits/regex_scanner.h: Add different special character
3628 sets for grep and egrep regex.
3629 * include/bits/regex_scanner.tcc: Use _M_spec_char more uniformly.
3630 * testsuite/28_regex/regression.cc: Add new testcase.
3632 2016-02-08 Jonathan Wakely <jwakely@redhat.com>
3634 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Remove accidentally
3635 added 'constexpr' in previous commit.
3636 * configure: Regenerate.
3639 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Enable isinf and isnan
3640 checks for all targets except *-*-solaris2.* and ensure we find the
3641 libc math.h header not our own.
3642 * configure: Regenerate.
3644 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
3646 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt (FUNC):
3647 New file. Copied over from s390-linux-gnu.
3649 2016-02-04 Jonathan Wakely <jwakely@redhat.com>
3652 * acinclude.m4 (GLIBCXX_ENABLE_C99): Check C99 stdlib.h functions
3653 with -std=c++98 and define _GLIBCXX98_USE_C99_STDLIB.
3654 * config.h.in: Regenerate.
3655 * configure: Regenerate.
3656 * testsuite/21_strings/c_strings/char/69626.cc: New.
3658 * doc/html/index.html: Regenerate.
3660 * doc/xml/manual/containers.xml: Add cross-reference to Dual ABI.
3661 * doc/xml/manual/spine.xml: Update copyright years and author blurb.
3662 * doc/html/*: Regenerate.
3664 2016-02-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
3667 * include/c_compatibility/math.h: Move header guards.
3668 * include/c_compatibility/stdlib.h: Likewise.
3670 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
3673 * config/os/newlib/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3675 2016-01-28 John David Anglin <danglin@gcc.gnu.org>
3678 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Split check for obsolete
3679 isinf and isnan functions into two independent checks. Check on hpux.
3680 * config.h.in: Regenerate.
3681 * configure: Regenerate.
3682 * include/c_global/cmath (isinf(double), isnan(double)): Use
3683 _GLIBCXX_HAVE_OBSOLETE_ISINF and _GLIBCXX_HAVE_OBSOLETE_ISNAN,
3686 2016-01-27 Jakub Jelinek <jakub@redhat.com>
3688 * testsuite/libstdc++-prettyprinters/whatis.cc: Include <random>.
3690 2016-01-27 Jonathan Wakely <jwakely@redhat.com>
3693 * testsuite/ext/special_functions/hyperg/check_value.cc: Use
3694 -ffp-contract=off, and -ffloat-store to disable excess precision.
3695 * testsuite/special_functions/02_assoc_legendre/check_value.cc: Use
3698 2016-01-26 Jonathan Wakely <jwakely@redhat.com>
3701 * include/bits/stl_algobase.h (__copy_move<_IsMove, true,
3702 random_access_iterator_tag>): Check is_move_assignable when moving.
3703 (__copy_move_backwards<_IsMove, true, random_access_iterator_tag>):
3705 * testsuite/25_algorithms/copy/move_iterators/69478.cc: New.
3706 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc: New.
3707 * testsuite/25_algorithms/move/69478.cc: New.
3708 * testsuite/25_algorithms/move_backward/69478.cc: new.
3710 2016-01-26 Andris Pavenis <andris.pavenis@iki.fi>
3712 * include/c_compatibility/stdlib.h: Include wide character related
3713 definitions only when they are available in cstdlib.
3715 2016-01-25 Jonathan Wakely <jwakely@redhat.com>
3718 * include/Makefile.am: Add new header.
3719 * include/Makefile.in: Regenerate.
3720 * include/bits/random.h (uniform_int_distribution): Move to
3721 bits/uniform_int_dist.h.
3722 * include/bits/random.tcc (uniform_int_distribution::operator(),
3723 uniform_int_distribution::__generate_impl): Likewise.
3724 * include/bits/uniform_int_dist.h: New header.
3725 * include/bits/stl_algo.h [__cplusplus >= 201103L]: Include
3726 <bits/uniform_int_dist.h> instead of <random>.
3727 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
3728 move_iterators/1.cc: Include correct header for uninitialized_copy.
3729 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
3730 move_iterators/1.cc: Likewise.
3731 * testsuite/25_algorithms/nth_element/58800.cc: Include correct
3733 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lines.
3735 2016-01-23 John David Anglin <danglin@gcc.gnu.org>
3738 * config/os/hpux/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3740 2016-01-22 Edward Smith-Rowland <3dw4rd@verizon.net>
3742 TR29124 C++ Special Math - <math.h> pulls funcs into global namespace.
3743 * include/c_compatibility/math.h: Import the TR29124 functions
3744 into the global namespace.
3745 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: Remove
3746 xfail and make compile-only.
3747 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: Ditto.
3748 * testsuite/special_functions/03_beta/compile_2.cc: Ditto.
3749 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Ditto.
3750 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Ditto.
3751 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Ditto.
3752 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Ditto.
3753 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Ditto.
3754 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Ditto.
3755 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Ditto.
3756 * testsuite/special_functions/11_ellint_1/compile_2.cc: Ditto.
3757 * testsuite/special_functions/12_ellint_2/compile_2.cc: Ditto.
3758 * testsuite/special_functions/13_ellint_3/compile_2.cc: Ditto.
3759 * testsuite/special_functions/14_expint/compile_2.cc: Ditto.
3760 * testsuite/special_functions/15_hermite/compile_2.cc: Ditto.
3761 * testsuite/special_functions/16_laguerre/compile_2.cc: Ditto.
3762 * testsuite/special_functions/17_legendre/compile_2.cc: Ditto.
3763 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Ditto.
3764 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Ditto.
3765 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Ditto.
3766 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Ditto.
3768 2016-01-22 Jonathan Wakely <jwakely@redhat.com>
3771 * include/bits/valarray_before.h (__fun, __fun_with_valarray): Only
3772 define result_type for types which can be safely used with valarrays.
3773 * testsuite/26_numerics/valarray/69116.cc: New.
3776 * config/os/gnu-linux/os_defines.h: Define
3777 _GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC.
3778 * include/c_global/cmath (isinf, isnan): Check it.
3779 * doc/xml/manual/internals.xml: Document it.
3780 * doc/html/*: Regenerate.
3782 2016-01-21 Jonathan Wakely <jwakely@redhat.com>
3785 * include/bits/cpp_type_traits.h: Ensure C++ language linkage.
3786 * include/ext/type_traits.h: Likewise.
3787 * testsuite/17_intro/headers/c++2011/linkage.cc: Check autoconf macros
3788 for presence of C headers.
3789 * testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Adjust
3790 dg-error line number.
3791 * testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise.
3792 * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise.
3793 * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Likewise.
3795 2016-01-20 Torvald Riegel <triegel@redhat.com>
3798 * config/os/bsd/darwin/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3800 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
3803 * include/c_compatibility/math.h (acosh, asinh, atanh, acbrt,
3804 copysign, erf, erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb,
3805 lgamma, llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
3806 nextafter, nexttoward, remainder, remquo, rint, round, scalbln, scalbn,
3807 tgamma, trunc) [__cplusplus >= 201103L && _GLIBCXX_USE_C99_MATH_TR1]:
3808 Add using declarations.
3809 * testsuite/26_numerics/headers/cmath/60401.cc: New.
3812 * include/c_global/ccomplex: Ensure C++ language linkage.
3813 * include/c_global/cmath: Likewise.
3814 * include/c_global/cstdlib: Likewise.
3815 * include/c_global/ctgmath: Likewise.
3816 * testsuite/17_intro/headers/c++2011/linkage.cc: New.
3818 2016-01-19 Jonathan Wakely <jwakely@redhat.com>
3822 * include/Makefile.am: Use c_compatibility math.h and stdlib.h for
3823 --enable-cheaders=c_global configs.
3824 * include/Makefile.in: Regenerate.
3825 * include/c_compatibility/math.h: Remove obsolete _GLIBCXX_NAMESPACE_C
3826 test and allow inclusion from C files.
3827 * include/c_compatibility/stdlib.h: Likewise. Support freestanding.
3828 (at_quick_exit, quick_exit): Add using directives.
3829 * include/c_global/cmath: Use #include_next for math.h.
3830 * include/c_global/cstdlib: Use #include_next for stdlib.h.
3831 * testsuite/26_numerics/headers/cmath/14608.cc: New.
3832 * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
3833 Remove xfail for most targets.
3834 * testsuite/26_numerics/headers/cstdlib/60401.cc: New.
3836 2016-01-18 Torvald Riegel <triegel@redhat.com>
3838 * include/bits/c++config (_GLIBCXX_USE_WEAK_REF): New.
3839 (_GLIBCXX_TXN_SAFE, _GLIBCXX_TXN_SAFE_DYN): Use _GLIBCXX_USE_WEAK_REF
3840 and move after its definition.
3841 * config/os/aix/os_defines.h (_GLIBCXX_USE_WEAK_REF): Override.
3842 * src/c++11/cow-stdexcept.cc: Use _GLIBCXX_USE_WEAK_REF instead of
3843 __GXX_WEAK__, and only provide transactional clones if
3844 _GLIBCXX_USE_WEAK_REF is true. Don't provide stubs of libitm
3847 2016-01-18 Jonathan Wakely <jwakely@redhat.com>
3850 * testsuite/26_numerics/headers/cmath/60637.cc: Add test.
3853 * include/std/functional (_Function_base::_M_not_empty_function):
3854 Change overloads for pointers to take arguments by value.
3855 * testsuite/20_util/function/cons/57465.cc: Add tests for
3856 pointer-to-member cases.
3859 * src/c++11/cow-stdexcept.cc (_txnal_cow_string_C1_for_exceptions):
3860 Use macros for exception handling and fix unused parameter warning.
3862 2016-01-17 John David Anglin <danglin@gcc.gnu.org>
3865 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
3867 2016-01-17 Torvald Riegel <triegel@redhat.com>
3869 * src/c++11/cow-stdexcept.cc (txnal_read_ptr): Fix static_assert.
3871 2016-01-16 H.J. Lu <hongjiu.lu@intel.com>
3873 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Add
3876 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
3879 * include/bits/uses_allocator.h (__uses_alloc<true, ...>): Add
3880 static assertion that type is constructible from the arguments.
3881 * testsuite/20_util/scoped_allocator/69293_neg.cc: New.
3882 * testsuite/20_util/uses_allocator/69293_neg.cc: New.
3883 * testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error.
3886 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
3887 and isnan on AIX. Quote variables.
3888 * configure: Regenerate.
3890 2016-01-15 Torvald Riegel <triegel@redhat.com>
3892 * include/bits/basic_string.h (basic_string): Declare friends.
3893 * include/bits/c++config (_GLIBCXX_TXN_SAFE,
3894 _GLIBCXX_TXN_SAFE_DYN, _GLIBCXX_USE_ALLOCATOR_NEW): New.
3895 * include/std/stdexcept (logic_error, domain_error, invalid_argument,
3896 length_error, out_of_range, runtime_error, range_error,
3897 underflow_error, overflow_error): Declare members as transaction-safe.
3898 (logic_error, runtime_error): Declare friend functions.
3899 * libsupc++/exception (exception, bad_exception): Declare members as
3901 * src/c++11/cow-stdexcept.cc: Define transactional clones for the
3902 transaction-safe members of exceptions and helper functions.
3903 * libsupc++/eh_exception.cc: Adjust and define transactional clones.
3904 * config/abi/pre/gnu.ver (GLIBCXX_3.4.22) Add transactional clones.
3905 (CXXABI_1.3.10): New.
3906 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): New.
3907 (GLIBCXX_ENABLE_ALLOCATOR): Set ENABLE_ALLOCATOR_NEW.
3908 * configure.ac: Call GLIBCXX_CHECK_SIZE_T_MANGLING.
3909 * include/Makefile.am: Write ENABLE_ALLOCATOR_NEW to c++config.h.
3910 * include/Makefile.in: Regenerate.
3911 * config.h.in: Regenerate.
3912 * configure: Regenerate.
3913 * testsuite/util/testsuite_abi.cc (check_version): Add CXXABI_1.3.10.
3915 2016-01-15 Steve Ellcey <sellcey@imgtec.com>
3917 * include/ext/random.tcc: Use __builtin_isfinite instead of
3920 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
3922 * include/bits/std_mutex.h: Fix Doxygen @file name.
3924 2016-01-14 Edward Smith-Rowland <3dw4rd@verizon.net>
3925 Jonathan Wakely <jwakely@redhat.com>
3926 Florian Goth <CaptainSifff@gmx.de>
3928 Implement TR29124 C++ special Math Functions.
3929 * include/Makefile.am: Add new headers.
3930 * include/Makefile.in: Regenerate.
3931 * include/bits/specfun.h: New.
3932 * include/c_global/cmath: Adjust for both tr1 and tr29124 maths.
3933 * include/tr1/bessel_function.tcc: Ditto.
3934 * include/tr1/beta_function.tcc: Ditto.
3935 * include/tr1/cmath: Ditto.
3936 * include/tr1/ell_integral.tcc: Ditto.
3937 * include/tr1/exp_integral.tcc: Ditto.
3938 * include/tr1/gamma.tcc: Ditto.
3939 * include/tr1/hypergeometric.tcc: Ditto.
3940 * include/tr1/legendre_function.tcc: Ditto.
3941 * include/tr1/modified_bessel_func.tcc: Ditto.
3942 * include/tr1/poly_hermite.tcc: Ditto.
3943 * include/tr1/poly_laguerre.tcc: Ditto.
3944 * include/tr1/riemann_zeta.tcc: Ditto.
3945 * include/tr1/special_function_util.h: Ditto.
3946 * testsuite/ext/special_functions/conf_hyperg: New.
3947 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: New.
3948 * testsuite/ext/special_functions/conf_hyperg/check_value.cc: New.
3949 * testsuite/ext/special_functions/conf_hyperg/compile.cc: New.
3950 * testsuite/ext/special_functions/hyperg: New.
3951 * testsuite/ext/special_functions/hyperg/check_nan.cc: New.
3952 * testsuite/ext/special_functions/hyperg/check_value.cc: New.
3953 * testsuite/ext/special_functions/hyperg/compile.cc: New.
3954 * testsuite/libstdc++-dg/conformance.exp: Add special_functions directory.
3955 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc: New.
3956 * testsuite/special_functions/01_assoc_laguerre/check_value.cc: New.
3957 * testsuite/special_functions/01_assoc_laguerre/compile.cc: New.
3958 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: New.
3959 * testsuite/special_functions/02_assoc_legendre/check_nan.cc: New.
3960 * testsuite/special_functions/02_assoc_legendre/check_value.cc: New.
3961 * testsuite/special_functions/02_assoc_legendre/compile.cc: New.
3962 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: New.
3963 * testsuite/special_functions/03_beta/check_nan.cc: New.
3964 * testsuite/special_functions/03_beta/check_value.cc: New.
3965 * testsuite/special_functions/03_beta/compile.cc: New.
3966 * testsuite/special_functions/03_beta/compile_2.cc: New.
3967 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: New.
3968 * testsuite/special_functions/04_comp_ellint_1/check_value.cc: New.
3969 * testsuite/special_functions/04_comp_ellint_1/compile.cc: New.
3970 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: New.
3971 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: New.
3972 * testsuite/special_functions/05_comp_ellint_2/check_value.cc: New.
3973 * testsuite/special_functions/05_comp_ellint_2/compile.cc: New.
3974 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: New.
3975 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: New.
3976 * testsuite/special_functions/06_comp_ellint_3/check_value.cc: New.
3977 * testsuite/special_functions/06_comp_ellint_3/compile.cc: New.
3978 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: New.
3979 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: New.
3980 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc: New.
3981 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: New.
3982 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: New.
3983 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: New.
3984 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: New.
3985 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: New.
3986 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: New.
3987 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: New.
3988 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: New.
3989 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc: New.
3990 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: New.
3991 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: New.
3992 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: New.
3993 * testsuite/special_functions/10_cyl_neumann/check_value.cc: New.
3994 * testsuite/special_functions/10_cyl_neumann/compile.cc: New.
3995 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: New.
3996 * testsuite/special_functions/11_ellint_1/check_nan.cc: New.
3997 * testsuite/special_functions/11_ellint_1/check_value.cc: New.
3998 * testsuite/special_functions/11_ellint_1/compile.cc: New.
3999 * testsuite/special_functions/11_ellint_1/compile_2.cc: New.
4000 * testsuite/special_functions/12_ellint_2/check_nan.cc: New.
4001 * testsuite/special_functions/12_ellint_2/check_value.cc: New.
4002 * testsuite/special_functions/12_ellint_2/compile.cc: New.
4003 * testsuite/special_functions/12_ellint_2/compile_2.cc: New.
4004 * testsuite/special_functions/13_ellint_3/check_nan.cc: New.
4005 * testsuite/special_functions/13_ellint_3/check_value.cc: New.
4006 * testsuite/special_functions/13_ellint_3/compile.cc: New.
4007 * testsuite/special_functions/13_ellint_3/compile_2.cc: New.
4008 * testsuite/special_functions/14_expint/check_nan.cc: New.
4009 * testsuite/special_functions/14_expint/check_value.cc: New.
4010 * testsuite/special_functions/14_expint/compile.cc: New.
4011 * testsuite/special_functions/14_expint/compile_2.cc: New.
4012 * testsuite/special_functions/15_hermite/check_nan.cc: New.
4013 * testsuite/special_functions/15_hermite/check_value.cc: New.
4014 * testsuite/special_functions/15_hermite/compile.cc: New.
4015 * testsuite/special_functions/15_hermite/compile_2.cc: New.
4016 * testsuite/special_functions/16_laguerre/check_nan.cc: New.
4017 * testsuite/special_functions/16_laguerre/check_value.cc: New.
4018 * testsuite/special_functions/16_laguerre/compile.cc: New.
4019 * testsuite/special_functions/16_laguerre/compile_2.cc: New.
4020 * testsuite/special_functions/17_legendre/check_nan.cc: New.
4021 * testsuite/special_functions/17_legendre/check_value.cc: New.
4022 * testsuite/special_functions/17_legendre/compile.cc: New.
4023 * testsuite/special_functions/17_legendre/compile_2.cc: New.
4024 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: New.
4025 * testsuite/special_functions/18_riemann_zeta/check_value.cc: New.
4026 * testsuite/special_functions/18_riemann_zeta/compile.cc: New.
4027 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: New.
4028 * testsuite/special_functions/19_sph_bessel/check_nan.cc: New.
4029 * testsuite/special_functions/19_sph_bessel/check_value.cc: New.
4030 * testsuite/special_functions/19_sph_bessel/compile.cc: New.
4031 * testsuite/special_functions/19_sph_bessel/compile_2.cc: New.
4032 * testsuite/special_functions/20_sph_legendre/check_nan.cc: New.
4033 * testsuite/special_functions/20_sph_legendre/check_value.cc: New.
4034 * testsuite/special_functions/20_sph_legendre/compile.cc: New.
4035 * testsuite/special_functions/20_sph_legendre/compile_2.cc: New.
4036 * testsuite/special_functions/21_sph_neumann/check_nan.cc: New.
4037 * testsuite/special_functions/21_sph_neumann/check_value.cc: New.
4038 * testsuite/special_functions/21_sph_neumann/compile.cc: New.
4039 * testsuite/special_functions/21_sph_neumann/compile_2.cc: New.
4040 * testsuite/util/specfun_testcase.h: New.
4041 * testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc: More testcases.
4042 * testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc: Ditto.
4043 * testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc: Ditto.
4044 * testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc: Ditto.
4045 * testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc: Ditto.
4046 * testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc: Ditto.
4047 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc: New.
4049 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
4052 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
4053 and isnan functions.
4054 * config.h.in: Regenerate.
4055 * configure: Regenerate.
4056 * include/c_global/cmath (isinf(double), isnan(double))
4057 [_GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN]: Import via using-directive.
4058 * testsuite/26_numerics/headers/cmath/48891.cc: New.
4060 2016-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4063 * configure.host (abi_baseline_pair): Use separate baseline for
4064 Solaris 11+ and Solaris 10 with gld.
4065 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: New file.
4066 * config/abi/post/solaris2.11/baseline_symbols.txt: New file.
4067 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: New file.
4069 2016-01-12 Daniel Kruegler <daniel.kruegler@gmail.com>
4072 * include/std/type_traits: Following N4511, reimplement __is_swappable
4073 and __is_nothrow_swappable. Move __is_swappable to namespace std,
4074 adjust callers. Use __is_nothrow_swappable in swap.
4075 * include/bits/move.h: Use __is_nothrow_swappable in swap.
4076 * testsuite/20_util/is_nothrow_swappable/value.cc: Extend; remove
4077 __is_swappable related tests.
4078 * testsuite/20_util/is_swappable/value.cc: New.
4079 * testsuite/20_util/is_swappable/requirements/
4080 explicit_instantiation.cc: New.
4081 * testsuite/20_util/is_swappable/requirements/typedefs.cc: New.
4082 * testsuite/25_algorithms/swap/68877.cc: New.
4084 2016-01-12 Jonathan Wakely <jwakely@redhat.com>
4086 * testsuite/20_util/function/68995.cc: Test reference_wrapper cases.
4090 * include/std/functional (function::_Invoke): Remove, use result_of.
4091 (function::_Callable): Replace alias template with class template
4092 and use partial specialization instead of _NotSelf alias template.
4093 (function(_Functor)): Add "not self" constraint so that _Callable is
4094 not used while type is incomplete.
4095 * testsuite/20_util/function/69222.cc: New.
4097 2016-01-11 Jonathan Wakely <jwakely@redhat.com>
4100 * include/bits/alloc_traits.h (allocator_traits<allocator<_Tp>>):
4101 Define partial specialization.
4102 * testsuite/20_util/shared_ptr/cons/58659.cc: Add construct and
4103 destroy members to std::allocator explicit specialization.
4105 2016-01-08 Jonathan Wakely <jwakely@redhat.com>
4107 * testsuite/26_numerics/headers/cmath/
4108 c99_classification_macros_c++.cc: Rename to ...
4109 * testsuite/26_numerics/headers/cmath/
4110 c99_classification_macros_c++98.cc: Here and add -std=gnu++98.
4111 * testsuite/26_numerics/headers/cmath/
4112 c99_classification_macros_c++0x.cc: Rename to ...
4113 * testsuite/26_numerics/headers/cmath/
4114 c99_classification_macros_c++11.cc: Here.
4117 * include/bits/uses_allocator.h: Add missing include.
4119 2016-01-07 Jonathan Wakely <jwakely@redhat.com>
4124 * include/bits/stl_iterator.h (back_insert_iterator,
4125 front_insert_iterator, insert_iterator): Use __addressof (LWG 2324).
4126 * include/bits/uses_allocator.h (__use_alloc): Use __addressof.
4127 * include/std/future (__future::base::_State_baseV2::__setter):
4129 * include/std/scoped_allocator (__outermost): Likewise.
4130 * testsuite/20_util/scoped_allocator/69114.cc: New.
4131 * testsuite/20_util/uses_allocator/69114.cc: New.
4132 * testsuite/30_threads/promise/69106.cc: New.
4134 2016-01-06 Jonathan Wakely <jwakely@redhat.com>
4137 * include/bits/basic_string.h (basic_string::_S_copy_chars<_Iterator>):
4138 Remove _GLIBCXX_NOEXCEPT.
4139 testsuite/21_strings/basic_string/cons/char/69092.cc: New.
4141 * include/Makefile.am: Adjust.
4142 * include/Makefile.in: Regenerate.
4143 * include/bits/mutex.h: Rename to bits/std_mutex.h.
4144 * include/std/condition_variable: Adjust include.
4145 * include/std/mutex: Likewise.
4147 2016-01-04 Jakub Jelinek <jakub@redhat.com>
4149 Update copyright years.
4151 Copyright (C) 2016 Free Software Foundation, Inc.
4153 Copying and distribution of this file, with or without modification,
4154 are permitted in any medium without royalty provided the copyright
4155 notice and this notice are preserved.