1 2016-10-10 Jonathan Wakely <jwakely@redhat.com>
3 * doc/xml/manual/appendix_contributing.xml (contrib.organization):
4 Replace <literallayout> with nested <variablelist> elements. Update
5 some more outdated text.
6 * doc/html/*: Regenerate.
8 2016-10-10 Ville Voutilainen <ville.voutilainen@gmail.com>
10 Make any's copy assignment operator exception-safe,
11 don't copy the underlying value when any is moved,
12 make in_place constructors explicit.
13 * include/std/any (any(in_place_type_t<_ValueType>, _Args&&...)):
15 (any(in_place_type_t<_ValueType>, initializer_list<_Up>, _Args&&...)):
17 (operator=(const any&)): Make strongly exception-safe.
18 (operator=(any&&)): reset() unconditionally in the case where
20 (operator=(_ValueType&&)): Indent the return type.
21 (_Manager_internal<_Tp>::_S_manage): Move in _Op_xfer, don't copy.
22 * testsuite/20_util/any/assign/2.cc: Adjust.
23 * testsuite/20_util/any/assign/exception.cc: New.
24 * testsuite/20_util/any/cons/2.cc: Adjust.
25 * testsuite/20_util/any/cons/explicit.cc: New.
26 * testsuite/20_util/any/misc/any_cast_neg.cc: Ajust.
28 2016-10-10 Jonathan Wakely <jwakely@redhat.com>
30 * doc/xml/manual/appendix_contributing.xml (contrib.organization):
31 Describe other subdirectories and add markup. Remove outdated
32 reference to check-script target.
33 * doc/html/*: Regenerate.
35 * doc/xml/manual/status_cxx2011.xml: Correct C++11 status.
37 * libsupc++/eh_ptr.cc (exception_ptr): Replace _GLIBCXX_USE_NOEXCEPT
40 * include/std/functional (_Bind_result::__enable_if_void): Use alias
41 template instead of class template.
42 (_Bind_result::__disable_if_void): Likewise.
43 (_Bind_result::__call): Adjust uses of __enable_if_void and
46 * doc/xml/manual/intro.xml: Document DR 2296 status.
47 * doc/xml/manual/status_cxx2017.xml: Update status.
48 * include/bits/move.h (__addressof): Add _GLIBCXX_CONSTEXPR and
49 call __builtin_addressof.
50 (addressof): Add _GLIBCXX17_CONSTEXPR.
51 * testsuite/20_util/addressof/requirements/constexpr.cc: New test.
52 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error lineno.
53 * testsuite/20_util/forward/f_neg.cc: Likewise.
55 * include/bits/allocator.h (allocator<T>::is_always_equal): Define.
56 * testsuite/20_util/allocator/requirements/typedefs.cc: Test for
58 * testsuite/util/testsuite_allocator.h
59 (uneq_allocator::is_always_equal): Define as false_type.
61 * include/experimental/numeric (gcd, lcm): Make bool arguments
63 * include/std/numeric (gcd, lcm): Likewise.
64 * testsuite/26_numerics/gcd/gcd_neg.cc: New test.
65 * testsuite/26_numerics/lcm/lcm_neg.cc: New test.
67 * include/bits/shared_ptr.h (enable_shared_from_this::weak_from_this):
69 * include/bits/shared_ptr_base.h
70 (__enable_shared_from_this::weak_from_this): Likewise.
71 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
72 Test exception-specification of weak_from_this.
74 2016-10-07 Jonathan Wakely <jwakely@redhat.com>
76 * doc/xml/manual/status_cxx1998.xml: Improve documentation of
77 implementation-defined properties.
78 * doc/xml/manual/status_cxx2011.xml: Likewise.
79 * doc/xml/manual/status_cxx2017.xml: Likewise.
81 * doc/xml/manual/status_cxx2017.xml: Update status.
82 * include/std/type_traits (has_unique_object_representations): Define.
83 * testsuite/20_util/has_unique_object_representations/value.cc: New.
84 * testsuite/20_util/has_unique_object_representations/requirements/
85 explicit_instantiation.cc: New.
86 * testsuite/20_util/has_unique_object_representations/requirements/
89 2016-10-06 Jonathan Wakely <jwakely@redhat.com>
91 * doc/xml/manual/status_cxx2011.xml: Update status.
92 * include/std/scoped_allocator (__outer_allocator_t, __outermost_type):
93 New helpers for recursive OUTERMOST.
94 (__outermost): Use __outermost_type::_S_outermost.
95 (__do_outermost, scoped_allocator_adaptor::__outermost_type): Remove.
96 (scoped_allocator_adaptor::__outermost_alloc_traits): Use new
97 __outermost_type helper.
98 (scoped_allocator_adaptor::_Constructible): New alias template.
99 (scoped_allocator_adaptor::scoped_allocator_adaptor<_Outer2>):
100 Constrain template constructors.
101 * testsuite/20_util/scoped_allocator/3.cc: New test.
102 * testsuite/20_util/scoped_allocator/outermost.cc: New test.
104 2016-10-05 Jonathan Wakely <jwakely@redhat.com>
107 * testsuite/20_util/not_fn/1.cc: Fix test.
108 * testsuite/experimental/functional/not_fn.cc: Likewise.
111 * include/bits/stl_queue.h (priority_queue): Fix allocator-extended
113 * testsuite/23_containers/priority_queue/allocator.cc: New test.
116 * include/bits/stl_map.h (map::map()): Use nothrow constructibility
117 of comparison function in conditional noexcept.
118 * include/bits/stl_multimap.h (multimap::multimap()): Likewise.
119 * include/bits/stl_multiset.h (multiset::multiset()): Likewise.
120 * include/bits/stl_set.h (set::set()): Likewise.
121 * testsuite/23_containers/map/cons/noexcept_default_construct.cc:
123 * testsuite/23_containers/multimap/cons/noexcept_default_construct.cc:
125 * testsuite/23_containers/multiset/cons/noexcept_default_construct.cc:
127 * testsuite/23_containers/set/cons/noexcept_default_construct.cc:
130 * include/bits/node_handle.h (_Node_handle): Remove invalid and unused
134 * include/experimental/functional (_Not_fn): Remove.
135 (not_fn): Use std::_Not_fn.
136 * include/std/functional (_Not_fn): Add second parameter to
137 disambiguate copying from initialization by not_fn. Define for C++14.
138 (not_fn): Add second argument to initialization.
139 * testsuite/20_util/not_fn/1.cc: Copy call wrapper using
140 direct-initialization.
142 2016-10-03 François Dumont <fdumont@gcc.gnu.org>
144 * src/c++11/shared_ptr.cc (mask, invalid, get_mutex): Move
146 * src/c++11/mutex_pool.h: ... here. New.
147 * src/c++11/debug.cc: Use latter.
149 2016-10-03 Jonathan Wakely <jwakely@redhat.com>
151 * doc/xml/manual/status_cxx2017.xml: Update gcd/lcm status.
152 * doc/html/*: Regenerate.
153 * include/experimental/numeric (__abs): Move to <numeric>.
154 (gcd, lcm): Use __detail::gcd and __detail::lcm.
155 * include/std/numeric (__detail::__abs_integral)
156 (__detail::__gcd, __detail::__lcm): Define.
157 (gcd, lcm): Define for C++17.
158 * testsuite/26_numerics/gcd/1.cc: New test.
159 * testsuite/26_numerics/lcm/1.cc: New test.
160 * testsuite/experimental/numeric/gcd.cc: Swap contents with ...
161 * testsuite/experimental/numeric/lcd.cc: ... this.
165 * config/abi/pre/gnu-versioned-namespace.ver: Add exports for
166 __cxa_thread_atexit and __gnu_cxx::__freeres.
167 * include/Makefile.am: Add <experimental/bits/lfts_config.h>
168 * include/Makefile.in: Regenerate.
169 * include.bits/basic_string.h: Fix nesting of versioned namespaces.
170 * include/bits/c++config: Declare versioned namespaces for literals.
171 * include/bits/regex.h (basic_regex, match_results): Add workarounds
173 * include/bits/uniform_int_dist.h: Fix nesting of versioned namespace.
174 * include/std/chrono: Likewise.
175 * include/std/complex: Likewise.
176 * include/std/string_view: Likewise.
177 * include/std/variant: Likewise. Add workaround for PR c++/59256.
178 * include/experimental/bits/fs_fwd.h: Declare versioned namespace.
179 * include/experimental/bits/lfts_config.h: Declare versioned
181 * include/experimental/algorithm: Include
182 <experimental/bits/lfts_config.h>.
183 * include/experimental/any: Likewise.
184 * include/experimental/bits/erase_if.h: Likewise.
185 * include/experimental/chrono: Likewise.
186 * include/experimental/functional: Likewise.
187 * include/experimental/memory_resource: Likewise.
188 * include/experimental/optional: Likewise.
189 * include/experimental/propagate_const: Likewise.
190 * include/experimental/random: Likewise.
191 * include/experimental/ratio: Likewise.
192 * include/experimental/system_error: Likewise.
193 * include/experimental/tuple: Likewise.
194 * include/experimental/type_traits: Likewise.
195 * include/experimental/utility: Likewise.
196 * include/experimental/string_view: Likewise. Fix nesting of
197 versioned namespaces.
198 * include/experimental/bits/string_view.tcc: Reopen inline namespace
199 for non-inline function definitions.
200 * testsuite/17_intro/using_namespace_std_exp_neg.cc: New test.
201 * testsuite/20_util/duration/literals/range.cc: Adjust dg-error line.
202 * testsuite/experimental/any/misc/any_cast_neg.cc: Likewise.
203 * testsuite/experimental/propagate_const/assignment/move_neg.cc:
205 * testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
206 * testsuite/experimental/propagate_const/requirements2.cc: Likewise.
207 * testsuite/experimental/propagate_const/requirements3.cc: Likewise.
208 * testsuite/experimental/propagate_const/requirements4.cc: Likewise.
209 * testsuite/experimental/propagate_const/requirements5.cc: Likewise.
210 * testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.
213 * include/bits/std_abs.h: Use "C++" language linkage.
214 * testsuite/17_intro/headers/c++2011/linkage.cc: Move <complex.h> to
215 the end. Add <stdalign.h>.
217 2016-10-03 Ville Voutilainen <ville.voutilainen@gmail.com>
220 * testsuite/20_util/tuple/77802.cc: New.
223 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
224 Implement LWG 2729 for tuple.
225 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)):
226 Suppress conditionally.
227 (_Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&&)): Likewise.
228 (__is_tuple_impl_trait_impl, __is_tuple_impl_trait): New.
229 (_Tuple_impl(const _Head&)): Constrain.
230 (_Tuple_impl(_UHead&&)): Likewise.
231 (_Tuple_impl(_Tuple_impl&&)): Suppress conditionally.
232 (_Tuple_impl(const _Tuple_impl<_Idx, _UHead>&)): Constrain.
233 (_Tuple_impl(_Tuple_impl<_Idx, _UHead>&&)): Likewise.
234 (operator=(const tuple&)): Enable conditionally.
235 (operator=(tuple&&)): Suppress conditionally.
236 (operator=(const tuple<_UElements...>&)): Constrain.
237 (operator=(tuple<_UElements...>&&)): Likewise.
238 (operator=(const tuple&)): Enable conditionally (2-param tuple).
239 (operator=(tuple&&)): Suppress conditionally (2-param tuple).
240 (operator=(const tuple<_U1, _U2>&)): Constrain.
241 (operator=(tuple<_U1, _U2>&&)): Likewise.
242 (operator=(const pair<_U1, _U2>&)): Likewise.
243 (operator=(pair<_U1, _U2>&&)): Likewise.
244 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust.
245 * testsuite/20_util/tuple/tuple_traits.cc: New.
247 2016-09-30 Jonathan Wakely <jwakely@redhat.com>
250 * acinclude.m4 (GLIBCXX_CHECK_STDIO_PROTO): Use -std=gnu++11 to check
252 * config.h.in: Regenerate.
253 * configure: Regenerate.
254 * include/c_global/cstdio [!_GLIBCXX_HAVE_GETS] (gets): Only declare
256 * include/c_std/cstdio [!_GLIBCXX_HAVE_GETS] (gets): Likewise.
257 * testsuite/27_io/headers/cstdio/functions_neg.cc: New test.
259 * doc/xml/manual/intro.xml: Document LWG 2192 changes.
260 * doc/html/*: Regenerate.
261 * include/Makefile.am: Add bits/std_abs.h.
262 * include/Makefile.in: Regenerate.
263 * include/bits/std_abs.h: New header defining all required overloads
264 of std::abs in one place (LWG 2294).
265 * include/c_global/cmath (abs(double), abs(float), abs(long double)):
266 Move to bits/std_abs.h.
267 (abs<_Tp>(_Tp)): Remove.
268 * include/c_global/cstdlib (abs(long), abs(long long), abs(__int<N>)):
269 Move to bits/std_abs.h.
270 * testsuite/26_numerics/headers/cmath/dr2192.cc: New test.
271 * testsuite/26_numerics/headers/cmath/dr2192_neg.cc: New test.
272 * testsuite/26_numerics/headers/cstdlib/dr2192.cc: New test.
273 * testsuite/26_numerics/headers/cstdlib/dr2192_neg.cc: New test.
276 * include/experimental/numeric: Include <numeric>.
278 (gcd, lcm): Use __abs instead of std::abs.
279 * testsuite/experimental/numeric/77801.cc: New test.
280 * testsuite/experimental/numeric/gcd.cc: Test unsigned inputs.
281 * testsuite/experimental/numeric/lcm.cc: Likewise.
283 2016-09-29 Ville Voutilainen <ville.voutilainen@gmail.com>
285 Make optional::reset noexcept, make optional::value
286 work in constant expressions.
287 * include/std/optional (_M_get): Make constexpr.
288 (reset): Make noexcept.
289 * testsuite/20_util/optional/assignment/7.cc: New.
290 * testsuite/20_util/optional/observers/6.cc: New.
292 2016-09-29 Jonathan Wakely <jwakely@redhat.com>
294 * include/c_global/cmath (hypot, __hypot3): Move C++17 overloads
295 outside _GLIBCXX_USE_C99_MATH_TR1 condition.
297 2016-09-29 Alan Modra <amodra@gmail.com>
299 * configure.ac (LONG_DOUBLE_COMPAT_FLAGS): New ACSUBST.
300 * src/Makefile.am (compatibility-ldbl.o, compatibility-ldbl.lo):
301 Use LONG_DOUBLE_COMPAT_FLAGS.
302 * Makefile.in: Regenerate.
303 * configure: Regenerate.
304 * doc/Makefile.in: Regenerate.
305 * include/Makefile.in: Regenerate.
306 * libsupc++/Makefile.in: Regenerate.
307 * po/Makefile.in: Regenerate.
308 * python/Makefile.in: Regenerate.
309 * src/Makefile.in: Regenerate.
310 * src/c++11/Makefile.in: Regenerate.
311 * src/c++98/Makefile.in: Regenerate.
312 * src/filesystem/Makefile.in: Regenerate.
313 * testsuite/Makefile.in: Regenerate.
315 2016-09-28 Jonathan Wakely <jwakely@redhat.com>
317 * include/std/chrono (system_clock): Fix typo in comment.
319 * include/experimental/bits/fs_fwd.h (file_time_type): Simplify
321 * src/filesystem/ops.cc (file_time): Take error_code parameter and
323 (do_copy_file, last_write_time): Pass error_code in file_time calls.
324 * testsuite/experimental/filesystem/operations/last_write_time.cc:
326 * testsuite/util/testsuite_fs.h (scoped_file): Define RAII helper.
329 * include/std/functional (_Any_data): Add may_alias attribute.
331 2016-09-27 Jonathan Wakely <jwakely@redhat.com>
333 * doc/xml/manual/status_cxx2017.xml: Update status.
334 * doc/html/*: Regenerate.
335 * include/std/functional (__cpp_lib_boyer_moore_searcher): Define.
336 * testsuite/20_util/function_objects/searchers.cc: Test feature macro.
338 * doc/xml/manual/status_cxx2017.xml: Update status.
339 * include/c_global/cmath (hypot): Add three-dimensional overloads.
340 * testsuite/26_numerics/headers/cmath/hypot.cc: New.
342 2016-09-26 Ville Voutilainen <ville.voutilainen@gmail.com>
345 * include/std/optional (optional(const optional<_Up>&)):
346 Default-initialize the base and use emplace.
347 (optional(optional<_Up>&&)): Likewise.
348 * testsuite/20_util/optional/cons/77727.cc: New.
350 2016-09-26 François Dumont <fdumont@gcc.gnu.org>
352 * include/debug/safe_base.h
353 (_Safe_iterator_base::_M_detach_single): Make public.
355 2016-09-26 Jonathan Wakely <jwakely@redhat.com>
357 * include/bits/range_access.h (__cpp_lib_array_constexpr): Do not
358 redefine macro defined in <bits/stl_iterator.h>.
360 * include/bits/stl_map.h (map::extract(const_iterator)): Assert that
361 iterator is not past-the-end.
362 * include/bits/stl_multimap.h (multimap::extract(const_iterator)):
364 * include/bits/stl_multiset.h (multiset::extract(const_iterator)):
366 * include/bits/stl_set.h (set::extract(const_iterator)): Likewise.
367 * include/bits/unordered_map.h (unordered_map::extract(const_iterator))
368 (unordered_multimap::extract(const_iterator)): Likewise.
369 * include/bits/unordered_set.h (unordered_set::extract(const_iterator))
370 (unordered_multiset::extract(const_iterator)): Likewise.
372 2016-09-26 Ville Voutilainen <ville.voutilainen@gmail.com>
375 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
376 Fix an out-of-bounds access.
378 2016-09-26 Marek Polacek <polacek@redhat.com>
381 * libsupc++/hash_bytes.cc: Add [[gnu::fallthrough]].
383 2016-09-25 François Dumont <fdumont@gcc.gnu.org>
385 * src/c++11/debug.cc: Include debug/vector. Include cctype. Remove
387 (get_safe_base_mutex): Get mutex based on address lowest non nil bits.
388 * testsuite/23_containers/vector/debug/mutex_association.cc: New.
390 * include/debug/bitset (bitset::reference::reference(const _Base_ref&,
391 bitset*)): Remove __unused__ attribute.
392 * include/debug/safe_base.h (_Safe_iterator_base): Make
393 _Safe_sequence_base a friend.
394 (_Safe_iterator_base::_M_attach): Make protected.
395 (_Safe_iterator_base::_M_attach_single): Likewise.
396 (_Safe_iterator_base::_M_detach): Likewise.
397 (_Safe_iterator_base::_M_detach_single): Likewise.
398 (_Safe_sequence_base): Make _Safe_iterator_base a friend.
399 (_Safe_sequence_base::_Safe_sequence_base(_Safe_sequence_base&&)): New.
400 (_Safe_sequence_base::_M_swap): Make protected.
401 (_Safe_sequence_base::_M_attach): Make private.
402 (_Safe_sequence_base::_M_attach_single): Likewise.
403 (_Safe_sequence_base::_M_detach): Likewise.
404 (_Safe_sequence_base::_M_detach_single): Likewise.
405 * include/debug/safe_container.h
406 (_Safe_container::_Safe_container(_Safe_container&&)): Make default.
407 * include/debug/safe_iterator.h
408 (_Safe_iterator::operator++()): Name __scoped_lock instance.
409 * include/debug/safe_iterator.tcc: Remove trailing line.
410 * include/debug/safe_unordered_base.h
411 (_Safe_local_iterator_base::_M_attach): Make protected.
412 (_Safe_local_iterator_base::_M_attach_single): Likewise.
413 (_Safe_local_iterator_base::_M_detach): Likewise.
414 (_Safe_local_iterator_base::_M_detach_single): Likewise.
415 (_Safe_unordered_container_base): Make _Safe_local_iterator_base friend.
416 (_Safe_unordered_container_base::_M_attach_local): Make private.
417 (_Safe_unordered_container_base::_M_attach_local_single): Likewise.
418 (_Safe_unordered_container_base::_M_detach_local): Likewise.
419 (_Safe_unordered_container_base::_M_detach_local_single): Likewise.
421 * include/parallel/algo.h: Generalize usage of std::__iterator_category.
424 2016-09-23 Jonathan Wakely <jwakely@redhat.com>
428 * include/bits/basic_string.h (basic_string::clear()): Drop reference
430 * include/ext/rc_string_base.h (__rc_string_base::_M_clear()):
432 * testsuite/21_strings/basic_string/56166.cc: New.
433 * testsuite/ext/vstring/modifiers/clear/56166.cc: New.
435 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
436 (basic_string::erase(size_type, size_type)): Add fast path for
437 truncating the string, by calling _M_set_length directly.
438 (basic_string::erase(__const_iterator, __const_iterator)): Likewise.
439 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
440 (basic_string::resize(size_type, _CharT)): Likewise.
442 2016-09-22 Jason Merrill <jason@redhat.com>
444 * configure.ac: Define HAVE_MEMALIGN for newlib.
446 2015-09-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
448 * config/cpu/m68k/atomicity.h: Adjust comment.
449 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Honor
450 explicit atomicity_dir setup via configure.host.
451 * configure.host (rtems-*): Set atomicity_dir.
452 * configure: Regenerate.
454 2016-09-22 Jonathan Wakely <jwakely@redhat.com>
456 Implement C++17 node extraction and insertion (P0083R5)
457 * doc/xml/manual/status_cxx2017.xml: Document status.
458 * doc/html/*: Regenerate.
459 * include/Makefile.am: Add bits/node_handle.h and reorder.
460 * include/Makefile.in: Regenerate.
461 * include/bits/hashtable.h (_Hashtable::node_type)
462 (_Hashtable::insert_return_type, _Hashtable::_M_reinsert_node)
463 (_Hashtable::_M_reinsert_node_multi, _Hashtable::extract)
464 (_Hashtable::_M_merge_unique, _Hashtable::_M_merge_multi): Define.
465 (_Hash_merge_helper): Define primary template.
466 * include/bits/node_handle.h: New header.
467 * include/bits/stl_map.h (map): Declare _Rb_tree_merge_helper as
469 (map::node_type, map::insert_return_type, map::extract, map::merge)
470 (map::insert(node_type&&), map::insert(const_iterator, node_type&&)):
472 (_Rb_tree_merge_helper): Specialize for map.
473 * include/bits/stl_multimap.h (multimap): Declare _Rb_tree_merge_helper
475 (multimap::node_type, multimap::extract, multimap::merge)
476 (multimap::insert(node_type&&))
477 (multimap::insert(const_iterator, node_type&&)): Define.
478 (_Rb_tree_merge_helper): Specialize for multimap.
479 * include/bits/stl_multiset.h (multiset): Declare _Rb_tree_merge_helper
481 (multiset::node_type, multiset::extract, multiset::merge)
482 (multiset::insert(node_type&&))
483 (multiset::insert(const_iterator, node_type&&)): Define.
484 * include/bits/stl_set.h (set): Declare _Rb_tree_merge_helper as
486 (set::node_type, set::insert_return_type, set::extract, set::merge)
487 (set::insert(node_type&&), set::insert(const_iterator, node_type&&)):
489 (_Rb_tree_merge_helper): Specialize for set.
490 * include/bits/stl_tree.h (_Rb_tree): Declare _Rb_tree<> as friend.
491 (_Rb_tree::node_type, _Rb_tree::insert_return_type)
492 (_Rb_tree::_M_reinsert_node_unique, _Rb_tree::_M_reinsert_node_equal)
493 (_Rb_tree::_M_reinsert_node_hint_unique)
494 (_Rb_tree::_M_reinsert_node_hint_equal, _Rb_tree::extract)
495 (_Rb_tree::_M_merge_unique, _Rb_tree::_M_merge_equal): Define.
496 (_Rb_tree_merge_helper): Specialize for multiset.
497 * include/bits/unordered_map.h (unordered_map): Declare
498 unordered_map<> and unordered_multimap<> as friends.
499 (unordered_map::node_type, unordered_map::insert_return_type)
500 (unordered_map::extract, unordered_map::merge)
501 (unordered_map::insert(node_type&&))
502 (unordered_map::insert(const_iterator, node_type&&))
503 (unordered_multimap): Declare _Hash_merge_helper as friend.
504 (unordered_multimap::node_type, unordered_multimap::extract)
505 (unordered_multimap::merge, unordered_multimap::insert(node_type&&))
506 (unordered_multimap::insert(const_iterator, node_type&&)): Define.
507 (_Hash_merge_helper): Specialize for unordered maps and multimaps.
508 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
509 Declare _Hash_merge_helper as friend.
510 (unordered_set::node_type, unordered_set::insert_return_type)
511 (unordered_set::extract, unordered_set::merge)
512 (unordered_set::insert(node_type&&))
513 (unordered_set::insert(const_iterator, node_type&&)): Define.
514 (unordered_multiset::node_type, unordered_multiset::extract)
515 (unordered_multiset::merge, unordered_multiset::insert(node_type&&))
516 (unordered_multiset::insert(const_iterator, node_type&&)): Define.
517 (_Hash_merge_helper): Specialize for unordered sets and multisets.
518 * include/debug/map.h (map): Add using declarations or forwarding
519 functions for new members.
520 * include/debug/map.h (multimap): Likewise.
521 * include/debug/map.h (multiset): Likewise.
522 * include/debug/map.h (set): Likewise.
523 * include/debug/unordered_map (unordered_map, unordered_multimap):
525 * include/debug/unordered_set( unordered_set, unordered_multiset):
527 * python/libstdcxx/v6/printers.py (get_value_from_aligned_membuf): New
529 (get_value_from_list_node, get_value_from_Rb_tree_node): Use helper.
530 (StdNodeHandlePrinter): Define printer for node handles.
531 (build_libstdcxx_dictionary): Register StdNodeHandlePrinter.
532 * testsuite/23_containers/map/modifiers/extract.cc: New.
533 * testsuite/23_containers/map/modifiers/merge.cc: New.
534 * testsuite/23_containers/multimap/modifiers/extract.cc: New.
535 * testsuite/23_containers/multimap/modifiers/merge.cc: New.
536 * testsuite/23_containers/multiset/modifiers/extract.cc: New.
537 * testsuite/23_containers/multiset/modifiers/merge.cc: New.
538 * testsuite/23_containers/set/modifiers/extract.cc: New.
539 * testsuite/23_containers/set/modifiers/merge.cc: New.
540 * testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
541 * testsuite/23_containers/unordered_map/modifiers/merge.cc: New.
542 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
544 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc: New.
545 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
547 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc: New.
548 * testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
549 * testsuite/23_containers/unordered_set/modifiers/merge.cc: New.
550 * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
552 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test node handles.
554 2016-09-22 Ville Voutilainen <ville.voutilainen@gmail.com>
556 Fix tests on old arm platforms for optional.
557 * testsuite/20_util/optional/77288.cc: Don't use exception_ptr.
559 2016-09-22 Jonathan Wakely <jwakely@redhat.com>
561 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Adjust for
562 recent change to _Variant_storage.
563 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test variant with
566 * include/bits/uses_allocator.h (__uses_allocator_construct): Qualify
567 std::forward and ::new. Cast pointer to void*.
568 * include/std/variant (_Variant_storage, _Union, _Variant_base)
569 (__access, __visit_invoke, variant, visit): Qualify std::forward.
570 * testsuite/20_util/variant/compile.cc: Test for ADL problems.
572 2016-09-22 Tim Shen <timshen@google.com>
574 * include/std/variant (variant::operator=): Fix assignment
576 * testsuite/20_util/variant/compile.cc: Add test.
578 2016-09-22 Tim Shen <timshen@google.com>
581 * include/std/variant (_Variant_storage::_Variant_storage):
582 Change _Variant_storage's union to be default constructible.
583 * testsuite/20_util/variant/compile.cc: New test.
585 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
588 * include/std/optional (__is_optional_impl, __is_optional): Remove.
589 (__converts_from_optional, __assigns_from_optional): New.
590 (optional(_Up&&)): Use is_same instead of __is_optional.
591 (optional(const optional<_Up>&)): Constrain with
592 __converts_from_optional.
593 (optional(optional<_Up>&&)): Likewise.
594 (operator=(_Up&&)): Use is_same instead of __is_optional, check
595 is_same and is_scalar.
596 (operator=(const optional<_Up>&)): Constrain with
597 __converts_from_optional and __assigns_from_optional.
598 (operator=(optional<_Up>&&)): Likewise.
599 * testsuite/20_util/optional/77288.cc: New.
600 * testsuite/20_util/optional/cons/value.cc: Adjust.
602 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
604 Implement LWG 2729 for tuple.
605 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)):
606 Suppress conditionally.
607 (_Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&&)): Likewise.
608 (__is_tuple_impl_trait_impl, __is_tuple_impl_trait): New.
609 (_Tuple_impl(const _Head&)): Constrain.
610 (_Tuple_impl(_UHead&&)): Likewise.
611 (_Tuple_impl(_Tuple_impl&&)): Suppress conditionally.
612 (_Tuple_impl(const _Tuple_impl<_Idx, _UHead>&)): Constrain.
613 (_Tuple_impl(_Tuple_impl<_Idx, _UHead>&&)): Likewise.
614 (operator=(const tuple&)): Enable conditionally.
615 (operator=(tuple&&)): Suppress conditionally.
616 (operator=(const tuple<_UElements...>&)): Constrain.
617 (operator=(tuple<_UElements...>&&)): Likewise.
618 (operator=(const tuple&)): Enable conditionally (2-param tuple).
619 (operator=(tuple&&)): Suppress conditionally (2-param tuple).
620 (operator=(const tuple<_U1, _U2>&)): Constrain.
621 (operator=(tuple<_U1, _U2>&&)): Likewise.
622 (operator=(const pair<_U1, _U2>&)): Likewise.
623 (operator=(pair<_U1, _U2>&&)): Likewise.
624 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust.
625 * testsuite/20_util/tuple/tuple_traits.cc: New.
627 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
630 Implement LWG 2729 for pair.
631 * include/bits/stl_pair.h (_PCC): New.
632 (_ConstructiblePair, _ImplicitlyConvertiblePair):
633 Turn into static member functions of _PCC.
634 (_MoveConstructiblePair, _ImplicitlyMoveConvertiblePair): Likewise.
636 (pair(const _T1&, const _T2&)): Adjust.
638 (pair(const pair<_U1, _U2>&)): Adjust.
639 (pair(_U1&&, const _T2&)): Likewise.
640 (pair(const _T1&, _U2&&)): Likewise.
641 (pair(_U1&&, _U2&&)): Likewise.
642 (pair(pair<_U1, _U2>&&)): Likewise.
643 (operator=(const pair&)): Make conditionally deleted.
644 (operator=(pair&&)): Make conditionally suppressed.
645 (operator=(const pair<_U1, _U2>&)): Constrain.
646 (operator=(pair<_U1, _U2>&&): Likewise.
647 * include/std/type_traits (__nonesuch): New.
648 * testsuite/20_util/pair/traits.cc: New.
650 2016-09-20 Ville Voutilainen <ville.voutilainen@gmail.com>
653 * include/bits/stl_construct.h: (_Construct_novalue): New.
654 (_Destroy_n_aux, _Destroy_n): New.
655 * include/bits/stl_uninitialized.h: (type_traits):
656 New include in C++11 mode.
657 (__uninitialized_default_novalue_1): New.
658 (__uninitialized_default_novalue_n_1): Likewise.
659 (__uninitialized_default_novalue): Likewise.
660 (__uninitialized_default_novalue_n): Likewise.
661 (__uninitialized_copy_n_pair): Likewise.
662 (uninitialized_default_construct):
663 Use __uninitialized_default_novalue.
664 (uninitialized_default_construct_n):
665 Use __uninitialized_default_novalue_n.
666 (uninitialized_value_construct): Use __uninitialized_default.
667 (uninitialized_value_construct_n): Use __uninitialized_default_n.
668 (uninitialized_move): Use uninitialized_copy.
669 (uninitialized_move_n): Use __uninitialized_copy_n_pair.
670 (destroy_at): Use _Destroy.
672 (destroy_n): Likewise.
673 * testsuite/20_util/specialized_algorithms/
674 memory_management_tools/1.cc: Add tests for exceptions,
675 add tests for trivial cases for construct and move.
677 2016-09-20 Jonathan Wakely <jwakely@redhat.com>
679 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
680 (DequeWorkerBase.index, VectorWorkerBase.get): Use // for division.
682 2016-09-19 Jonathan Wakely <jwakely@redhat.com>
685 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
686 (DequeWorkerBase.index, VectorWorkerBase.get): Cast results of
687 division to int to work with Python 3.
689 * testsuite/lib/gdb-test.exp (gdb-test): Fail if Python error occurs.
691 * python/libstdcxx/v6/printers.py (SingleObjContainerPrinter): Allow
692 display_hint to be set by subclasses.
693 (StdVariantPrinter): Use array for display_hint. Adjust output to be
694 more similar to std::any and std::optional output.
695 (register_type_printers): Add type printers for basic_string_view
696 typedefs and experimental::any. Adjust type printers for
697 fundamentals_v1 templates to match fundamentals_v2 and later.
698 * testsuite/libstdc++-prettyprinters/cxx17.cc: New.
701 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.index): Rename
703 (ListWorkerBase.get_value_from_node): Define new method.
704 (ListFrontWorker.__call__, ListBackWorker.__call__): Use it.
706 2016-09-17 Jonathan Wakely <jwakely@redhat.com>
708 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Define.
709 (StdExpAnyPrinter, StdExpOptionalPrinter, StdExpStringViewPrinter):
710 Register for C++17 components in namespace std. Strip inline namespace
713 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
715 * doc/xml/manual/profile_mode.xml: Fix typo.
716 * doc/html/manual/profile_mode_devel.html: Regenerate.
718 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
719 Marc Glisse <marc.glisse@inria.fr>
721 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_ALIGNED_ALLOC]
722 (operator new(size_t, align_val_t)): Replace modulus operator with
725 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
727 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_POSIX_MEMALIGN] (aligned_alloc):
728 Increase alignment if less than sizeof(void*).
729 [_GLIBCXX_HAVE_ALIGNED_ALLOC] (operator new(size_t, align_val_t)):
730 Increase size if not a multiple of alignment.
732 2016-09-15 Jonathan Wakely <jwakely@redhat.com>
734 * doc/xml/manual/debug_mode.xml: Minor editorial fixes.
735 * doc/html/*: Regenerate.
737 * testsuite/23_containers/vector/debug/insert6_neg.cc: Remove
739 * testsuite/util/debug/checks.h (generate_unique<bool>): Specialize.
741 2016-09-14 Marek Polacek <polacek@redhat.com>
743 * testsuite/23_containers/vector/debug/insert6_neg.cc: Use
746 2016-09-14 Christophe Lyon <christophe.lyon@linaro.org>
748 * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
749 Move dg-do directive before dg-skip.
750 * testsuite/21_strings/debug/iterator_self_move_assign_neg.cc:
751 Move dg-do directive before dg-require.
752 * testsuite/21_strings/debug/self_move_assign_neg.cc: Likewise.
753 * testsuite/23_containers/vector/debug/57779_neg.cc: Likewise.
754 * testsuite/23_containers/vector/debug/60587_neg.cc: Likewise.
755 * testsuite/23_containers/vector/debug/assign1_neg.cc: Likewise.
756 * testsuite/23_containers/vector/debug/assign2_neg.cc: Likewise.
757 * testsuite/23_containers/vector/debug/assign3_neg.cc: Likewise.
758 * testsuite/23_containers/vector/debug/construct1_neg.cc: Likewise.
759 * testsuite/23_containers/vector/debug/construct2_neg.cc: Likewise.
760 * testsuite/23_containers/vector/debug/construct3_neg.cc: Likewise.
761 * testsuite/23_containers/vector/debug/insert1_neg.cc: Likewise.
762 * testsuite/23_containers/vector/debug/insert2_neg.cc: Likewise.
763 * testsuite/23_containers/vector/debug/insert3_neg.cc: Likewise.
764 * testsuite/23_containers/vector/debug/insert5_neg.cc: Likewise.
765 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Likewise.
766 * testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
768 * testsuite/25_algorithms/pop_heap/empty2_neg.cc: Likewise.
769 * testsuite/25_algorithms/pop_heap/empty_neg.cc: Likewise.
770 * testsuite/27_io/objects/char/12048-5.cc: Likewise.
771 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Likewise.
772 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
774 2016-09-13 Ville Voutilainen <ville.voutilainen@gmail.com>
776 Implement P0040R3, Extending memory management tools.
777 * include/bits/stl_uninitialized.h (utility): New include
779 (uninitialized_default_construct): New.
780 (uninitialized_default_construct_n): Likewise.
781 (uninitialized_value_construct): Likewise.
782 (uninitialized_value_construct_n): Likewise.
783 (uninitialized_move): Likewise.
784 (uninitialized_move_n): Likewise.
785 (destroy_at, destroy, destroy_n): Likewise.
786 * testsuite/20_util/specialized_algorithms/memory_management_tools/
789 2016-09-12 Jason Merrill <jason@redhat.com>
791 * config/abi/pre/gnu.ver: Use [jmy] for size_t.
793 2016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
795 Implement P0253R1, Fixing a design mistake in the searchers
796 interface in Library Fundamentals.
797 * include/std/functional: (utility): New include in C++17 mode.
798 (default_searcher): Use a pair as return type, adjust the definition.
799 (boyer_moore_searcher): Likewise.
800 (boyer_moore_horspool_searcher): Likewise.
801 * testsuite/20_util/function_objects/searchers.cc: Adjust.
803 2016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
805 Implement C++17 string searchers.
806 * include/std/functional: (unordered_map, vector): New includes
808 (array, bits/stl_algo.h): Likewise.
809 (default_searcher, __boyer_moore_map_base): New.
810 (__boyer_moore_array_base, __is_std_equal_to): Likewise.
811 (__boyer_moore_base_t, boyer_moore_searcher): Likewise.
812 (boyer_moore_horspool_searcher, make_default_searcher): Likewise.
813 (make_boyer_moore_searcher): Likewise.
814 (make_boyer_moore_horspool_searcher): Likewise.
815 * testsuite/20_util/function_objects/searchers.cc: New.
817 2016-09-12 Matthew Wahab <matthew.wahab@arm.com>
819 * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
820 Move dg-do directive before dg-require.
821 * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc: Likewise.
822 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
824 * testsuite/22_locale/codecvt/utf8.cc: Likewise.
825 * testsuite/22_locale/locale/cons/unicode.cc: Likewise.
826 * testsuite/23_containers/deque/debug/assign1_neg.cc: Likewise.
827 * testsuite/23_containers/deque/debug/assign2_neg.cc: Likewise.
828 * testsuite/23_containers/deque/debug/assign3_neg.cc: Likewise.
829 * testsuite/23_containers/deque/debug/construct1_neg.cc: Likewise.
830 * testsuite/23_containers/deque/debug/construct2_neg.cc: Likewise.
831 * testsuite/23_containers/deque/debug/construct3_neg.cc: Likewise.
832 * testsuite/23_containers/deque/debug/insert1_neg.cc: Likewise.
833 * testsuite/23_containers/deque/debug/insert2_neg.cc: Likewise.
834 * testsuite/23_containers/deque/debug/insert3_neg.cc: Likewise.
835 * testsuite/23_containers/deque/debug/insert5_neg.cc: Likewise.
836 * testsuite/23_containers/deque/debug/iterator_self_move_assign_neg.cc:
838 * testsuite/23_containers/deque/debug/self_move_assign_neg.cc:
840 * testsuite/23_containers/deque/debug/shrink_to_fit.cc: Likewise.
841 * testsuite/23_containers/forward_list/debug/60499.cc: Likewise.
842 * testsuite/23_containers/forward_list/debug/construct1_neg.cc:
844 * testsuite/23_containers/forward_list/debug/construct2_neg.cc:
846 * testsuite/23_containers/forward_list/debug/construct3_neg.cc:
848 * testsuite/23_containers/forward_list/debug/erase_after1_neg.cc:
850 * testsuite/23_containers/forward_list/debug/erase_after2_neg.cc:
852 * testsuite/23_containers/forward_list/debug/erase_after3_neg.cc:
854 * testsuite/23_containers/forward_list/debug/erase_after4_neg.cc:
856 * testsuite/23_containers/forward_list/debug/erase_after5_neg.cc:
858 * testsuite/23_containers/forward_list/debug/erase_after6_neg.cc:
860 * testsuite/23_containers/forward_list/debug/erase_after7_neg.cc:
862 * testsuite/23_containers/forward_list/debug/erase_after8_neg.cc:
864 * testsuite/23_containers/forward_list/debug/erase_after9_neg.cc:
866 * testsuite/23_containers/forward_list/debug/insert_after1_neg.cc:
868 * testsuite/23_containers/forward_list/debug/insert_after2_neg.cc:
870 * testsuite/23_containers/forward_list/debug/insert_after3_neg.cc:
872 * testsuite/23_containers/forward_list/debug/insert_after4_neg.cc:
874 * testsuite/23_containers/forward_list/debug/
875 iterator_self_move_assign_neg.cc: Likewise.
876 * testsuite/23_containers/forward_list/debug/self_move_assign_neg.cc:
878 * testsuite/23_containers/forward_list/debug/splice_after1_neg.cc:
880 * testsuite/23_containers/forward_list/debug/splice_after2_neg.cc:
882 * testsuite/23_containers/forward_list/debug/splice_after3_neg.cc:
884 * testsuite/23_containers/forward_list/debug/splice_after4_neg.cc:
886 * testsuite/23_containers/forward_list/debug/splice_after5_neg.cc:
888 * testsuite/23_containers/forward_list/debug/splice_after6_neg.cc:
890 * testsuite/23_containers/forward_list/debug/splice_after7_neg.cc:
892 * testsuite/23_containers/list/debug/assign1_neg.cc: Likewise.
893 * testsuite/23_containers/list/debug/assign2_neg.cc: Likewise.
894 * testsuite/23_containers/list/debug/assign3_neg.cc: Likewise.
895 * testsuite/23_containers/list/debug/construct1_neg.cc: Likewise.
896 * testsuite/23_containers/list/debug/construct2_neg.cc: Likewise.
897 * testsuite/23_containers/list/debug/construct3_neg.cc: Likewise.
898 * testsuite/23_containers/list/debug/insert1_neg.cc: Likewise.
899 * testsuite/23_containers/list/debug/insert2_neg.cc: Likewise.
900 * testsuite/23_containers/list/debug/insert3_neg.cc: Likewise.
901 * testsuite/23_containers/list/debug/insert5_neg.cc: Likewise.
902 * testsuite/23_containers/list/debug/iterator_self_move_assign_neg.cc:
904 * testsuite/23_containers/list/debug/self_move_assign_neg.cc: Likewise.
905 * testsuite/23_containers/map/debug/60499.cc: Likewise.
906 * testsuite/23_containers/map/debug/construct1_neg.cc: Likewise.
907 * testsuite/23_containers/map/debug/construct2_neg.cc: Likewise.
908 * testsuite/23_containers/map/debug/construct3_neg.cc: Likewise.
909 * testsuite/23_containers/map/debug/insert1_neg.cc: Likewise.
910 * testsuite/23_containers/map/debug/insert2_neg.cc: Likewise.
911 * testsuite/23_containers/map/debug/insert3_neg.cc: Likewise.
912 * testsuite/23_containers/map/debug/iterator_self_move_assign_neg.cc:
914 * testsuite/23_containers/map/debug/self_move_assign_neg.cc: Likewise.
915 * testsuite/23_containers/multimap/debug/60499.cc: Likewise.
916 * testsuite/23_containers/multimap/debug/construct1_neg.cc: Likewise.
917 * testsuite/23_containers/multimap/debug/construct2_neg.cc: Likewise.
918 * testsuite/23_containers/multimap/debug/construct3_neg.cc: Likewise.
919 * testsuite/23_containers/multimap/debug/insert1_neg.cc: Likewise.
920 * testsuite/23_containers/multimap/debug/insert2_neg.cc: Likewise.
921 * testsuite/23_containers/multimap/debug/insert3_neg.cc: Likewise.
922 * testsuite/23_containers/multimap/debug/
923 iterator_self_move_assign_neg.cc: Likewise.
924 * testsuite/23_containers/multimap/debug/self_move_assign_neg.cc:
926 * testsuite/23_containers/multiset/debug/60499.cc: Likewise.
927 * testsuite/23_containers/multiset/debug/construct1_neg.cc: Likewise.
928 * testsuite/23_containers/multiset/debug/construct2_neg.cc: Likewise.
929 * testsuite/23_containers/multiset/debug/construct3_neg.cc: Likewise.
930 * testsuite/23_containers/multiset/debug/insert1_neg.cc: Likewise.
931 * testsuite/23_containers/multiset/debug/insert2_neg.cc: Likewise.
932 * testsuite/23_containers/multiset/debug/insert3_neg.cc: Likewise.
933 * testsuite/23_containers/multiset/debug/
934 iterator_self_move_assign_neg.cc: Likewise.
935 * testsuite/23_containers/multiset/debug/self_move_assign_neg.cc:
937 * testsuite/23_containers/set/debug/60499.cc: Likewise.
938 * testsuite/23_containers/set/debug/construct1_neg.cc: Likewise.
939 * testsuite/23_containers/set/debug/construct2_neg.cc: Likewise.
940 * testsuite/23_containers/set/debug/construct3_neg.cc: Likewise.
941 * testsuite/23_containers/set/debug/insert1_neg.cc: Likewise.
942 * testsuite/23_containers/set/debug/insert2_neg.cc: Likewise.
943 * testsuite/23_containers/set/debug/insert3_neg.cc: Likewise.
944 * testsuite/23_containers/set/debug/iterator_self_move_assign_neg.cc:
946 * testsuite/23_containers/set/debug/self_move_assign_neg.cc: Likewise.
947 * testsuite/23_containers/unordered_map/debug/60499.cc: Likewise.
948 * testsuite/23_containers/unordered_map/debug/begin1_neg.cc: Likewise.
949 * testsuite/23_containers/unordered_map/debug/begin2_neg.cc: Likewise.
950 * testsuite/23_containers/unordered_map/debug/bucket_size_neg.cc:
952 * testsuite/23_containers/unordered_map/debug/cbegin_neg.cc: Likewise.
953 * testsuite/23_containers/unordered_map/debug/cend_neg.cc: Likewise.
954 * testsuite/23_containers/unordered_map/debug/construct1_neg.cc:
956 * testsuite/23_containers/unordered_map/debug/construct2_neg.cc:
958 * testsuite/23_containers/unordered_map/debug/construct3_neg.cc:
960 * testsuite/23_containers/unordered_map/debug/end1_neg.cc: Likewise.
961 * testsuite/23_containers/unordered_map/debug/end2_neg.cc: Likewise.
962 * testsuite/23_containers/unordered_map/debug/insert1_neg.cc: Likewise.
963 * testsuite/23_containers/unordered_map/debug/insert2_neg.cc: Likewise.
964 * testsuite/23_containers/unordered_map/debug/insert3_neg.cc: Likewise.
965 * testsuite/23_containers/unordered_map/debug/
966 invalid_local_iterator_compare_neg.cc: Likewise.
967 * testsuite/23_containers/unordered_map/debug/
968 invalid_local_iterator_range_neg.cc: Likewise.
969 * testsuite/23_containers/unordered_map/debug/
970 iterator_self_move_assign_neg.cc: Likewise.
971 * testsuite/23_containers/unordered_map/debug/max_load_factor_neg.cc:
973 * testsuite/23_containers/unordered_map/debug/self_move_assign_neg.cc:
975 * testsuite/23_containers/unordered_map/debug/
976 use_erased_local_iterator_neg.cc: Likewise.
977 * testsuite/23_containers/unordered_map/debug/
978 use_invalid_iterator_neg.cc: Likewise.
979 * testsuite/23_containers/unordered_map/debug/
980 use_invalid_local_iterator_neg.cc: Likewise.
981 * testsuite/23_containers/unordered_multimap/debug/60499.cc: Likewise.
982 * testsuite/23_containers/unordered_multimap/debug/begin1_neg.cc:
984 * testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc:
986 * testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc:
988 * testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc:
990 * testsuite/23_containers/unordered_multimap/debug/cend_neg.cc:
992 * testsuite/23_containers/unordered_multimap/debug/construct1_neg.cc:
994 * testsuite/23_containers/unordered_multimap/debug/construct2_neg.cc:
996 * testsuite/23_containers/unordered_multimap/debug/construct3_neg.cc:
998 * testsuite/23_containers/unordered_multimap/debug/end1_neg.cc:
1000 * testsuite/23_containers/unordered_multimap/debug/end2_neg.cc:
1002 * testsuite/23_containers/unordered_multimap/debug/insert1_neg.cc:
1004 * testsuite/23_containers/unordered_multimap/debug/insert2_neg.cc:
1006 * testsuite/23_containers/unordered_multimap/debug/insert3_neg.cc:
1008 * testsuite/23_containers/unordered_multimap/debug/
1009 invalid_local_iterator_compare_neg.cc: Likewise.
1010 * testsuite/23_containers/unordered_multimap/debug/
1011 invalid_local_iterator_range_neg.cc: Likewise.
1012 * testsuite/23_containers/unordered_multimap/debug/
1013 iterator_self_move_assign_neg.cc: Likewise.
1014 * testsuite/23_containers/unordered_multimap/debug/
1015 max_load_factor_neg.cc: Likewise.
1016 * testsuite/23_containers/unordered_multimap/debug/
1017 self_move_assign_neg.cc: Likewise.
1018 * testsuite/23_containers/unordered_multimap/debug/
1019 use_erased_local_iterator_neg.cc: Likewise.
1020 * testsuite/23_containers/unordered_multimap/debug/
1021 use_invalid_iterator_neg.cc: Likewise.
1022 * testsuite/23_containers/unordered_multimap/debug/
1023 use_invalid_local_iterator_neg.cc: Likewise.
1024 * testsuite/23_containers/unordered_multiset/debug/60499.cc:
1026 * testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc:
1028 * testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc:
1030 * testsuite/23_containers/unordered_multiset/debug/bucket_size_neg.cc:
1032 * testsuite/23_containers/unordered_multiset/debug/cbegin_neg.cc:
1034 * testsuite/23_containers/unordered_multiset/debug/cend_neg.cc:
1036 * testsuite/23_containers/unordered_multiset/debug/construct1_neg.cc:
1038 * testsuite/23_containers/unordered_multiset/debug/construct2_neg.cc:
1040 * testsuite/23_containers/unordered_multiset/debug/construct3_neg.cc:
1042 * testsuite/23_containers/unordered_multiset/debug/end1_neg.cc:
1044 * testsuite/23_containers/unordered_multiset/debug/end2_neg.cc:
1046 * testsuite/23_containers/unordered_multiset/debug/insert1_neg.cc:
1048 * testsuite/23_containers/unordered_multiset/debug/insert2_neg.cc:
1050 * testsuite/23_containers/unordered_multiset/debug/insert3_neg.cc:
1052 * testsuite/23_containers/unordered_multiset/debug/
1053 invalid_local_iterator_compare_neg.cc: Likewise.
1054 * testsuite/23_containers/unordered_multiset/debug/
1055 invalid_local_iterator_range_neg.cc: Likewise.
1056 * testsuite/23_containers/unordered_multiset/debug/
1057 iterator_self_move_assign_neg.cc: Likewise.
1058 * testsuite/23_containers/unordered_multiset/debug/
1059 max_load_factor_neg.cc: Likewise.
1060 * testsuite/23_containers/unordered_multiset/debug/
1061 self_move_assign_neg.cc: Likewise.
1062 * testsuite/23_containers/unordered_multiset/debug/
1063 use_erased_local_iterator_neg.cc: Likewise.
1064 * testsuite/23_containers/unordered_multiset/debug/
1065 use_invalid_iterator_neg.cc: Likewise.
1066 * testsuite/23_containers/unordered_multiset/debug/
1067 use_invalid_local_iterator_neg.cc: Likewise.
1068 * testsuite/23_containers/unordered_set/debug/60499.cc: Likewise.
1069 * testsuite/23_containers/unordered_set/debug/begin1_neg.cc: Likewise.
1070 * testsuite/23_containers/unordered_set/debug/begin2_neg.cc: Likewise.
1071 * testsuite/23_containers/unordered_set/debug/bucket_size_neg.cc:
1073 * testsuite/23_containers/unordered_set/debug/cbegin_neg.cc: Likewise.
1074 * testsuite/23_containers/unordered_set/debug/cend_neg.cc: Likewise.
1075 * testsuite/23_containers/unordered_set/debug/construct1_neg.cc:
1077 * testsuite/23_containers/unordered_set/debug/construct2_neg.cc:
1079 * testsuite/23_containers/unordered_set/debug/construct3_neg.cc:
1081 * testsuite/23_containers/unordered_set/debug/end1_neg.cc: Likewise.
1082 * testsuite/23_containers/unordered_set/debug/end2_neg.cc: Likewise.
1083 * testsuite/23_containers/unordered_set/debug/insert1_neg.cc: Likewise.
1084 * testsuite/23_containers/unordered_set/debug/insert2_neg.cc: Likewise.
1085 * testsuite/23_containers/unordered_set/debug/insert3_neg.cc: Likewise.
1086 * testsuite/23_containers/unordered_set/debug/
1087 invalid_local_iterator_compare_neg.cc: Likewise.
1088 * testsuite/23_containers/unordered_set/debug/
1089 invalid_local_iterator_range_neg.cc: Likewise.
1090 * testsuite/23_containers/unordered_set/debug/
1091 iterator_self_move_assign_neg.cc: Likewise.
1092 * testsuite/23_containers/unordered_set/debug/
1093 max_load_factor_neg.cc: Likewise.
1094 * testsuite/23_containers/unordered_set/debug/
1095 self_move_assign_neg.cc: Likewise.
1096 * testsuite/23_containers/unordered_set/debug/
1097 use_erased_local_iterator_neg.cc: Likewise.
1098 * testsuite/23_containers/unordered_set/debug/
1099 use_invalid_iterator_neg.cc: Likewise.
1100 * testsuite/23_containers/unordered_set/debug/
1101 use_invalid_local_iterator_neg.cc: Likewise.
1102 * testsuite/23_containers/vector/debug/52433.cc: Likewise.
1103 * testsuite/23_containers/vector/debug/60499.cc: Likewise.
1104 * testsuite/23_containers/vector/debug/bool/shrink_to_fit.cc: Likewise.
1105 * testsuite/23_containers/vector/debug/
1106 iterator_self_move_assign_neg.cc: Likewise.
1107 * testsuite/23_containers/vector/debug/self_move_assign_neg.cc:
1109 * testsuite/23_containers/vector/debug/shrink_to_fit.cc: Likewise.
1110 * testsuite/25_algorithms/pop_heap/complexity.cc: Likewise.
1111 * testsuite/25_algorithms/push_heap/complexity.cc: Likewise.
1112 * testsuite/25_algorithms/sort_heap/complexity.cc: Likewise.
1113 * testsuite/29_atomics/atomic/60658.cc: Likewise.
1114 * testsuite/29_atomics/atomic/60695.cc: Likewise.
1115 * testsuite/29_atomics/atomic/62259.cc: Likewise.
1116 * testsuite/29_atomics/atomic/64658.cc: Likewise.
1117 * testsuite/29_atomics/atomic/cons/49445.cc: Likewise.
1118 * testsuite/29_atomics/atomic/operators/51811.cc: Likewise.
1119 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
1122 2016-09-11 Jonathan Wakely <jwakely@redhat.com>
1124 * libsupc++/new_opant.cc: Include exception_defines.h.
1125 * libsupc++/new_opvant.cc: Likewise.
1127 2016-09-09 Jason Merrill <jason@redhat.com>
1129 Implement P0035R4, C++17 new of over-aligned types.
1130 * libsupc++/new: Declare aligned new/delete operators.
1131 * config/abi/pre/gnu.ver: Export them.
1132 * configure.ac: Check for aligned_alloc, posix_memalign, memalign,
1134 * libsupc++/new_opa.cc: New.
1135 * libsupc++/new_opant.cc: New.
1136 * libsupc++/new_opva.cc: New.
1137 * libsupc++/new_opva.cc: New.
1138 * libsupc++/del_opa.cc: New.
1139 * libsupc++/del_opant.cc: New.
1140 * libsupc++/del_opsa.cc: New.
1141 * libsupc++/del_opva.cc: New.
1142 * libsupc++/del_opvant.cc: New.
1143 * libsupc++/del_opvsa.cc: New.
1144 * libsupc++/Makefile.am: Build them.
1146 2016-09-05 Tim Shen <timshen@google.com>
1148 * include/std/variant: include bits/move.h for std::addressof.
1150 2016-09-05 Mikhail Strelnikov <mikhail.strelnikov@gmail.com>
1152 * include/std/variant (_Variant_storage::_M_storage()): Use
1153 std::addressof instead of operator& to take address.
1155 2016-09-02 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
1157 * acinclude.m4 (GLIBCXX_CONFIGURE_TESTSUITE): Check for presence of
1158 setrlimit on both native and cross targets.
1159 * configure: Regenerate.
1161 2016-08-31 Jonathan Wakely <jwakely@redhat.com>
1163 * include/bits/shared_ptr.h (_Assignable): New alias template.
1164 (shared_ptr::operator=(const shared_ptr<_Tp1>&))
1165 (shared_ptr::operator=(shared_ptr<_Tp1>&&))
1166 (shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
1168 * include/bits/shared_ptr_base.h (_Assignable): New alias template.
1169 (__shared_ptr::operator=(const __shared_ptr<_Tp1>&))
1170 (__shared_ptr::operator=(__shared_ptr<_Tp1>&&))
1171 (__shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
1173 (__shared_ptr::reset(_Tp1*), __shared_ptr::reset(_Tp1*, _Deleter))
1174 (__shared_ptr::reset(_Tp1*, _Deleter, _Alloc)): Constrain with
1176 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Change dg-error to
1178 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
1179 * testsuite/20_util/shared_ptr/assign/sfinae.cc: New test.
1180 * testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc: Update
1181 expected errors. Remove unnecessary code.
1182 * testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc: New test.
1184 * include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Move
1186 * testsuite/23_containers/set/move_comparison.cc: New test.
1188 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
1191 2016-08-30 Ville Voutilainen <ville.voutilainen@gmail.com>
1194 * include/std/type_traits (is_constructible): Forward-declare...
1195 (__is_base_to_derived_ref): ...and use here.
1196 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
1197 * testsuite/20_util/is_constructible/77395.cc: New.
1198 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust.
1199 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1201 * testsuite/20_util/tuple/77395.cc: New.
1203 2016-08-30 Uros Bizjak <ubizjak@gmail.com>
1205 * testsuite/22_locale/time_get/get/char/2.cc: Move dg-do run
1206 directive above dg-require-namedlocale directive.
1207 * testsuite/22_locale/time_get/get/wchar_t/2.cc: Ditto.
1208 * testsuite/27_io/manipulators/extended/get_time/char/2.cc: Ditto.
1209 * testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc: Ditto.
1210 * testsuite/27_io/manipulators/extended/put_time/char/2.cc: Ditto.
1211 * testsuite/27_io/manipulators/extended/put_time/wchar_t/2.cc: Ditto.
1213 2016-08-27 Tim Shen <timshen@google.com>
1216 * include/bits/regex_compiler.tcc(_M_insert_bracket_matcher,
1217 _M_expression_term): Modify to support dash literal.
1218 * include/bits/regex_scanner.h: Add dash as a token type to make
1219 a different from the mandated dash literal by escaping.
1220 * include/bits/regex_scanner.tcc(_M_scan_in_bracket): Emit dash
1221 token in bracket expression parsing.
1222 * testsuite/28_regex/regression.cc: Add new testcases.
1224 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
1227 * doc/xml/manual/intro.xml: Document DR 2127 change.
1228 * doc/html/*: Regenerate.
1229 * include/bits/stl_raw_storage_iter.h (operator=(_Tp&&)): Add.
1230 (operator++(), operator++(int)): Use injected class name.
1231 * testsuite/20_util/raw_storage_iterator/dr2127.cc: New test.
1233 * testsuite/*: Use { target c++11 } or { target c++14 } instead of
1234 using -std in dg-options.
1236 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
1237 Pedro Alves <palves@redhat.com>
1239 * testsuite/lib/gdb-test.exp (gdb-dg-runtest): Define wrapper to save
1240 and restore dg-interpreter-batch-mode.
1241 * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Use
1242 gdb-dg-runtest instead of dg-runtest.
1243 * testsuite/libstdc++-xmethods/xmethods.exp: Likewise.
1245 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
1247 * config/abi/pre/gnu.ver (GLIBCXX_3.4, GLIBCXX_3.4.21): Use more
1248 precise patterns for basic_string constructors.
1249 (GLIBCXX_3.4.23): Export new constructors.
1250 * doc/xml/manual/intro.xml: Document LWG 2583 status.
1251 * doc/html/*: Regenerate.
1252 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1253 (basic_string(const basic_string&, size_type, const Alloc&)): Add
1254 new constructor for LWG 2583.
1255 (basic_string(const basic_string&, size_type, size_type)): Remove
1257 [!_GLIBCXX_USE_CXX11_ABI]: Likewise.
1258 * include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]: Define it.
1259 * testsuite/21_strings/basic_string/cons/char/8.cc: New test.
1260 * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: New test.
1262 2016-08-24 Aditya Kumar <hiraditya@msn.com>
1264 * include/bits/algorithmfwd.h: Remove trailing whitespace.
1265 * include/bits/shared_ptr_base.h: Likewise.
1267 2016-08-23 Jonathan Wakely <jwakely@redhat.com>
1269 * include/debug/array (array): Add _GLIBCXX17_CONSTEXPR.
1270 * include/profile/array (array): Likewise.
1271 (array::swap): Fix exception specification for zero-sized arrays.
1274 * include/bits/stl_tree.h (_Rb_tree::_M_move_assign): New functions.
1275 (_Rb_tree::operator=(_Rb_tree&&)): Dispatch to _M_move_assign.
1276 * testsuite/23_containers/map/77334.cc: New test.
1278 * doc/xml/manual/using.xml: Remove reference to -pthreads option.
1279 * doc/html/*: Regenerate.
1281 * testsuite/experimental/feat-cxx14.cc: Only preprocess, not compile.
1282 * testsuite/experimental/feat-lib-fund.cc: Likewise.
1285 * include/bits/stl_iterator.h
1286 (operator-(reverse_iterator<Iter>, reverse_iterator<Iter>): Only
1287 define for C++98 mode.
1288 (operator-(move_iterator<Iter>, move_iterator<Iter>): Don't define.
1289 * testsuite/24_iterators/headers/iterator/synopsis.cc: Use
1291 * testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: New test.
1292 * testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: New test.
1293 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: New test.
1294 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Don't test
1295 difference operator.
1296 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc: Only test
1297 difference operator for C++98.
1298 * testsuite/24_iterators/reverse_iterator/71771.cc: New test.
1300 * include/bits/c++config (_GLIBCXX17_CONSTEXPR): Define.
1301 * include/bits/range_access.h (begin, end, rbegin, rend, crbegin)
1302 (crend): Add _GLIBCXX17_CONSTEXPR as per P0031R0.
1303 * include/bits/stl_iterator.h (reverse_iterator, move_iterator)
1304 (__make_reverse_iterator, make_reverse_iterator, make_move_iterator):
1306 * include/bits/stl_iterator_base_funcs.h (__distance, __advance): Add
1307 _GLIBCXX14_CONSTEXPR.
1308 (distance, advance, next, prev): Add _GLIBCXX17_CONSTEXPR.
1309 * include/std/array (array::begin, array::end, array::rbegin)
1310 (array::rend, array::cbegin, array:cend, array::crbegin)
1311 (array::crend, array::operator[], array::at, array::front)
1312 (array::back, array::data): Likewise.
1313 * testsuite/24_iterators/headers/iterator/range_access.cc: Replace
1314 with separate tests for C++11, C++14, and C++17.
1315 * testsuite/24_iterators/headers/iterator/range_access_c++11.cc: New.
1316 * testsuite/24_iterators/headers/iterator/range_access_c++14.cc: New.
1317 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc: New.
1319 2016-08-22 Tim Shen <timshen@google.com>
1321 Split _M_dfs() into smaller functions.
1322 * regex_executor.h(_M_handle_repeat, _M_handle_subexpr_begin)
1323 (_M_handle_subexpr_end, _M_handle_line_begin_assertion)
1324 (_M_handle_line_end_assertion, _M_handle_word_boundary)
1325 (_M_handle_subexpr_lookahead, _M_handle_match)
1326 (_M_handle_backref, _M_handle_accept, _M_handle_alternative):
1327 Add separate function declarations.
1328 * regex_executor.tcc: Split _M_dfs() into multiple handler functions.
1330 2016-08-22 Gleb Natapov <gleb@scylladb.com>
1333 * config/abi/pre/gnu-versioned-namespace.ver: Export
1334 __cxa_init_primary_exception and std::exception_ptr(void*).
1335 * config/abi/pre/gnu.ver (CXXABI_1.3.11) : Add new symbol version and
1336 export __cxa_init_primary_exception and std::exception_ptr(void*).
1337 * include/Makefile.am: Add new headers.
1338 * include/Makefile.in: Regenerate.
1339 * libsupc++/Makefile.am: Add new headers.
1340 * libsupc++/Makefile.in: Regenerate.
1341 * libsupc++/cxxabi.h (__cxa_allocate_exception): Move to ...
1342 * libsupc++/cxxabi_init_exception.h: New header.
1343 (__cxa_init_primary_exception): Declare.
1344 * libsupc++/eh_throw.cc (__cxa_init_primary_exception): Define.
1345 (__cxa_throw): Use __cxa_init_primary_exception.
1346 * libsupc++/exception (std::exception): Move to ...
1347 * libsupc++/exception.h: New header.
1348 * libsupc++/exception_ptr.h (__exception_ptr::exception_ptr): Add
1350 (__exception_ptr::__dest_thunk): New function template.
1351 (std::make_exception_ptr) [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]:
1352 Use __cxa_allocate_exception and __cxa_init_primary_exception to
1353 create exception_ptr.
1354 * libsupc++/typeinfo: Include bits/exception.h instead of exception.
1355 * testsuite/util/testsuite_abi.cc: Add CXXABI_1.3.11 version.
1357 2016-08-22 Jonathan Wakely <jwakely@redhat.com>
1359 * doc/xml/api.xml: Replace hardcoded links for specific versions with
1360 link to docs for all releases.
1361 * doc/html/*: Regenerate.
1364 * doc/xml/manual/intro.xml: Document DR 2062 change.
1365 * include/std/functional (function::swap): Add noexcept.
1366 (swap(function<Res(Args...)&, function<Res(Args...)&)): Likewise.
1367 * testsuite/20_util/function/77322.cc: New test.
1369 2016-08-19 Jonathan Wakely <jwakely@redhat.com>
1371 * testsuite/21_strings/basic_string/pthread18185.cc: Use -pthread for
1372 *-*-solaris* instead of -pthreads.
1373 * testsuite/21_strings/basic_string/pthread4.cc : Likewise.
1374 * testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
1375 * testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
1376 * testsuite/23_containers/list/pthread1.cc: Likewise.
1377 * testsuite/23_containers/list/pthread5.cc: Likewise.
1378 * testsuite/23_containers/map/pthread6.cc: Likewise.
1379 * testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
1380 * testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
1381 * testsuite/30_threads/shared_mutex/*: Likewise.
1382 * testsuite/ext/rope/pthread7-rope.cc: Likewise.
1383 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
1384 default_weaktoshared.cc: Likewise.
1385 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
1386 mutex_weaktoshared.cc: Likewise.
1387 * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise. Use
1388 dg-require-effective-target instead of using -std option.
1389 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
1391 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
1392 * testsuite/23_containers/vector/debug/multithreaded_swap.cc:
1394 * testsuite/30_threads/async/*: Likewise.
1395 * testsuite/30_threads/call_once/*: Likewise.
1396 * testsuite/30_threads/condition_variable/*: Likewise.
1397 * testsuite/30_threads/condition_variable_any/*: Likewise.
1398 * testsuite/30_threads/future/*: Likewise.
1399 * testsuite/30_threads/lock/*: Likewise.
1400 * testsuite/30_threads/mutex/*: Likewise.
1401 * testsuite/30_threads/packaged_task/*: Likewise.
1402 * testsuite/30_threads/promise/*: Likewise.
1403 * testsuite/30_threads/recursive_mutex/*: Likewise.
1404 * testsuite/30_threads/recursive_timed_mutex/*: Likewise.
1405 * testsuite/30_threads/shared_future/*: Likewise.
1406 * testsuite/30_threads/shared_lock/*: Likewise.
1407 * testsuite/30_threads/shared_timed_mutex/*: Likewise.
1408 * testsuite/30_threads/this_thread/*: Likewise.
1409 * testsuite/30_threads/thread/*: Likewise.
1410 * testsuite/30_threads/timed_mutex/*: Likewise.
1411 * testsuite/30_threads/try_lock/*: Likewise.
1412 * testsuite/30_threads/unique_lock/*: Likewise.
1414 * doc/xml/manual/status_cxx2017.xml: Update status of not_fn.
1415 * doc/html/*: Regenerate.
1416 * include/experimental/functional (_Not_fn, not_fn): Match C++17
1418 * include/std/functional (_Not_fn, not_fn): Define for C++17.
1419 * testsuite/20_util/not_fn/1.cc: New.
1420 * testsuite/experimental/functional/not_fn.cc: Test abstract class.
1421 Remove test for volatile-qualified wrapper.
1423 * include/std/atomic (atomic::is_always_lock_free): Define.
1424 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
1425 * testsuite/29_atomics/atomic/is_always_lock_free.cc: New.
1426 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc: New.
1427 * doc/xml/manual/status_cxx2017.xml: Update status.
1428 * doc/html/*: Regenerate.
1430 * include/experimental/tuple (apply): Qualify call to __apply_impl.
1431 * include/std/tuple (apply): Likewise.
1432 * testsuite/experimental/system_error/value.cc: Fix ambiguities in
1434 * testsuite/experimental/tuple/tuple_size.cc: Likewise.
1435 * testsuite/experimental/type_traits/value.cc: Likewise.
1437 * doc/xml/manual/status_cxx2017.xml: Update status of make_from_tuple
1439 * doc/html/*: Regenerate.
1441 2016-08-18 Ville Voutilainen <ville.voutilainen@gmail.com>
1443 Implement the latest proposed resolution of LWG 2756.
1444 * include/std/optional (Optional_base(const _Tp&))
1445 (Optional_base(_Tp&&), using _Base::_Base): Remove.
1446 (optional(nullopt_t)): New.
1447 (optional(_Up&&)): Invoke base directly with in_place
1448 rather than creating a temporary, add default template
1449 argument, change constraints.
1450 (optional(const optional<_Up>&)): Invoke base directly
1451 with in_place, remove unnecessary constraints.
1452 (optional(optional<_Up>&& __t)): Likewise.
1453 (optional(in_place_t, _Args&&...)): New.
1454 (optional(in_place_t, initializer_list<_Up>, _Args&&...)): Likewise.
1455 (operator=(_Up&&)): Add default template argument, change constraints.
1456 (operator=(const optional<_Up>&)): Put is_same first in the
1458 (operator=(optional<_Up>&&)): Likewise.
1459 * testsuite/20_util/optional/assignment/5.cc: Add a test to
1460 verify assignment from something that can't be perfect-forwarded.
1461 * testsuite/20_util/optional/cons/value.cc: Add tests to verify
1462 that a nested optional is disengaged when constructed
1463 from a disengaged element type, and to verify that assignments
1464 from an engaged element type engage the optional.
1466 2016-08-18 Tim Shen <timshen@google.com>
1470 * include/Makefile.am: Add new file std/variant.
1471 * include/Makefile.in: Generated from Makefile.am.
1472 * include/bits/enable_special_members.h: Add a tag type to allow
1473 the construction in non-default constructor.
1474 * include/bits/uses_allocator.h: Add convenience traits to
1475 detect constructibility.
1476 * include/std/variant: Implement <variant>.
1477 * testsuite/20_util/variant/compile.cc: Compile-time tests.
1478 * testsuite/20_util/variant/run.cc: Runtime tests.
1480 2016-08-18 Jonathan Wakely <jwakely@redhat.com>
1482 * doc/xml/manual/test.xml (test.run.permutations): Expand section.
1483 (test.new_tests): Rewrite section.
1484 (tests.dg.directives): New section.
1485 * doc/html/*: Regenerate.
1487 * doc/xml/manual/test.xml: Improve documentation of test targets.
1488 Document new-abi-baseline, check-debug, and check-parallel targets.
1490 * doc/xml/manual/build_hacking.xml: New section on shared library
1493 * doc/xml/manual/build_hacking.xml: Improve markup.
1494 * doc/xml/manual/test.xml: Likewise. Change section title from "Test"
1496 * doc/xml/faq.xml: Change link text to "Testing".
1498 * testsuite/tr1/3_function_objects/function/10.cc: Remove unintended
1499 dg-options directive.
1501 2016-08-17 Jonathan Wakely <jwakely@redhat.com>
1503 * testsuite/20_util/reference_wrapper/invoke-2.cc: Fix invalid dg-do
1504 directive and use effective target instead of dg-options.
1506 * testsuite/20_util/hash/chi2_q_bit_flip_set.cc: Use effective target
1507 instead of -std in dg-options.
1508 * testsuite/20_util/hash/chi2_q_bit_string_set.cc: Likewise.
1509 * testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc: Likewise.
1510 * testsuite/20_util/hash/chi2_q_uniform_random.cc: Likewise.
1511 * testsuite/20_util/hash/quality.cc: Likewise.
1512 * testsuite/25_algorithms/heap/moveable.cc: Likewise.
1513 * testsuite/25_algorithms/heap/moveable2.cc: Likewise.
1514 * testsuite/25_algorithms/nth_element/random_test.cc: Likewise.
1515 * testsuite/25_algorithms/partial_sort/random_test.cc: Likewise.
1516 * testsuite/25_algorithms/partial_sort_copy/random_test.cc: Likewise.
1517 * testsuite/25_algorithms/sort/random_test.cc: Likewise.
1519 * testsuite/20_util/tuple/67844.cc: Require c++11 effective target.
1520 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Likewise.
1521 * testsuite/27_io/rvalue_streams.cc: Likewise.
1523 * testsuite/26_numerics/complex/literals/types.cc: Add comment.
1525 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
1526 Remove duplicate dg-options directive.
1528 * testsuite/ext/profile/all.cc: Use effective target instead of
1529 -std=gnu++11. Use dg-additional-options instead of repeating options.
1531 * testsuite/20_util/bind/ref_neg.cc: Use effective target instead of
1532 -std=gnu++11. Add -fno-show-columns to dg-options. Use dg-prune-output
1533 instead of dg-excess-errors.
1535 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Disable
1537 * testsuite/experimental/chrono/value.cc: Avoid ambiguities in C++17.
1538 * testsuite/experimental/ratio/value.cc: Likewise.
1539 * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Disable test for
1541 * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
1542 * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
1543 * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
1544 * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
1545 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
1546 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
1547 * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
1548 * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
1549 * testsuite/tr1/5_numerical_facilities/special_functions/
1550 10_cyl_bessel_k/airy.cc: Adjust namespace of __detail::__airy for
1551 C++17 compatibility.
1553 * testsuite/24_iterators/headers/iterator/range_access.cc: Adjust
1554 expected signatures for C++14 compatibility.
1557 * include/bits/basic_string.h (operator=(__sv_type)
1558 (append(__sv_type), assign(__sv_type), insert(size_type, __sv_type))
1559 (replace(size_type, size_type, __sv_type))
1560 (replace(const_iterator, const_iterator, __sv_type))
1561 (find(__sv_type, size_type), rfind(__sv_type, size_type))
1562 (compare(size_type, size_type, __sv_type)): Reformat.
1563 (_If_sv): Define helper for SFINAE constaints.
1564 (append(const _Tp&, size_type, size_type))
1565 (assign(const _Tp&, size_type, size_type))
1566 (insert(size_type, const _Tp&, size_type, size_type))
1567 (replace(size_type, size_type, const _Tp&, size_type, size_type)):
1569 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc: Test
1571 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
1573 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1575 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
1577 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
1579 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
1581 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
1583 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
1585 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1587 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
1589 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
1592 2016-08-16 Jonathan Wakely <jwakely@redhat.com>
1595 * include/bits/stl_bvector.h (_Bvector_base::_M_deallocate): Zero
1596 pointers to start and end of storage.
1597 * testsuite/23_containers/vector/bool/72847.cc: New test.
1598 * include/bits/vector.tcc (vector<bool>::_M_reallocate): Only update
1599 _M_finish after deallocating.
1600 (vector<bool>::_M_fill_insert): Likewise.
1601 (vector<bool>::_M_insert_range): Likewise.
1602 (vector<bool>::_M_insert_aux): Likewise.
1604 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1606 Implement LWG 2744 and LWG 2754.
1607 * include/std/any (any(ValueType&&)): Constrain with __is_in_place_type.
1608 (any(in_place_type_t<_ValueType>, _Args&&...)): Use _Decay.
1609 (any(in_place_type_t<_ValueType>, initializer_list<_Up>, _Args&&...)):
1611 (emplace(_Args&&...)): Likewise.
1612 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
1613 * include/std/utility: (__is_in_place_type_impl): New.
1614 (__is_in_place_type): Likewise.
1615 * testsuite/20_util/any/assign/emplace.cc: Add tests for decaying
1617 * testsuite/20_util/any/cons/in_place.cc: Add tests for decaying
1618 in_place constructor.
1619 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
1620 * testsuite/20_util/any/requirements.cc: Add a test for
1621 in_place-constructing a non-default-constructible type.
1623 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1625 Add a feature macro for C++17 make_from_tuple.
1626 * include/std/tuple (__cpp_lib_make_from_tuple): New.
1627 (__make_from_tuple_impl(_Tuple&&, index_sequence<_Idx...>)):
1628 Qualify the call to get<>().
1629 * testsuite/20_util/tuple/make_from_tuple/1.cc: Adjust.
1631 2016-08-15 Uros Bizjak <ubizjak@gmail.com>
1633 * src/filesystem/ops.cc: Always include ostream and
1634 ext/stdio_filebuf.h.
1635 (do_copy_file): Check if _GLIBCXX_USE_FCHMODAT is defined.
1636 [_GLIBCXX_USE_SENDFILE]: Fallback to read/write operations in case
1637 sendfile fails with ENOSYS or EINVAL.
1639 2016-08-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
1642 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Fix dg-error
1645 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1647 Implement C++17 make_from_tuple.
1648 * include/std/tuple (__make_from_tuple_impl, make_from_tuple): New.
1649 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
1651 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1654 * include/bits/basic_string.h
1655 (append(__sv_type, size_type, size_type)): Turn into a template,
1656 change parameter type, constrain, add a conversion to __sv_type
1657 from the dependent parameter type.
1658 (assign(__sv_type, size_type, size_type)): Likewise.
1659 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
1660 (replace(size_type, size_type, __sv_type, size_type, size_type)):
1662 (compare(size_type, size_type,__sv_type, size_type, size_type)):
1664 * testsuite/21_strings/basic_string/lwg2758.cc: New.
1666 2016-08-06 Jonathan Wakely <jwakely@redhat.com>
1668 * doc/xml/manual/status_cxx2017.xml: Update status table.
1669 * doc/html/manual/status.html: Regenerate.
1671 * testsuite/lib/libstdc++.exp: Fix typo in comment.
1674 * include/std/functional (_Function_base::_Base_manager::_M_clone):
1675 Qualify new operator.
1676 * testsuite/20_util/function/cons/72820.cc: New test.
1678 * doc/xml/manual/status_cxx2017.xml: Add missing LFTSv2 features.
1679 * doc/html/manual/status.html: Regenerate.
1680 * include/Makefile.am: Add new header.
1681 * include/Makefile.in: Regenerate.
1682 * include/bits/invoke.h: New header.
1683 (__invoke): Make constexpr. Add && to types in exception specification.
1684 * include/experimental/tuple (apply, __apply_impl): Fix non-reserved
1685 names. Include <bits/invoke.h> and use std::__invoke.
1686 * include/std/functional (__invfwd, __invoke_impl, __invoke): Move to
1688 (invoke): Add && to types in exception specification.
1689 * include/std/tuple (apply, __apply_impl): Define for C++17.
1690 * testsuite/20_util/tuple/apply/1.cc: New test.
1691 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error
1694 2016-08-05 Jonathan Wakely <jwakely@redhat.com>
1696 * doc/xml/manual/status_cxx2017.xml: Correct shared_from_this status.
1697 * doc/html/manual/status.html: Regenerate.
1699 * include/std/chrono (floor, ceil, round, abs): New for C++17.
1700 * testsuite/20_util/duration_cast/rounding.cc: New test.
1701 * testsuite/20_util/time_point_cast/rounding.cc: New test.
1702 * doc/xml/manual/status_cxx2017.xml: Update status table.
1703 * doc/html/manual/status.html: Regenerate.
1704 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust
1706 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1707 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1708 * testsuite/20_util/duration/literals/range.cc: Likewise.
1710 * include/std/functional (__callable_functor): Remove.
1711 (_Function_handler::_M_invoke): Use __invoke instead of
1712 __callable_functor or mem_fn.
1713 (function::_Callable): Use lvalue in result_of expression.
1714 (function): Remove TODO comments about allocators.
1715 * testsuite/20_util/function/cons/refqual.cc: New test.
1717 2016-08-04 Jonathan Wakely <jwakely@redhat.com>
1719 * doc/xml/manual/status_cxx2017.xml: Update status table.
1720 * include/std/functional (__inv_unwrap): Move to <type_traits>.
1721 (__invoke_impl): Remove exception specifications.
1722 (__invoke, invoke): Add exception specifications using
1723 __is_nothrow_callable.
1724 * include/std/type_traits (__inv_unwrap): Move from <functional>.
1725 (__is_callable_impl, __call_is_nt, __call_is_nothrow): New helpers.
1726 (__is_callable, __is_nothrow_callable): New traits.
1727 (is_callable, is_callable_v): New C++17 traits.
1728 (is_nothrow_callable, is_nothrow_callable_v): Likewise.
1729 * testsuite/20_util/is_callable/requirements/
1730 explicit_instantiation.cc: New test.
1731 * testsuite/20_util/is_callable/requirements/
1732 explicit_instantiation_ext.cc: New test.
1733 * testsuite/20_util/is_callable/requirements/typedefs.cc: New test.
1734 * testsuite/20_util/is_callable/requirements/typedefs_ext.cc: New
1736 * testsuite/20_util/is_callable/value.cc: New test.
1737 * testsuite/20_util/is_callable/value_ext.cc: New test.
1738 * testsuite/20_util/is_nothrow_callable/requirements/
1739 explicit_instantiation.cc: New test.
1740 * testsuite/20_util/is_nothrow_callable/requirements/
1741 explicit_instantiation_ext.cc: New test.
1742 * testsuite/20_util/is_nothrow_callable/requirements/typedefs.cc:
1744 * testsuite/20_util/is_nothrow_callable/requirements/typedefs_ext.cc:
1746 * testsuite/20_util/is_nothrow_callable/value.cc: New test.
1747 * testsuite/20_util/is_nothrow_callable/value_ext.cc: New test.
1749 * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
1750 * doc/html/manual/status.html: Regenerate.
1752 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Use
1753 effective target not dg-options. Move check for feature-test macro to:
1754 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
1757 * include/std/functional (_Unwrap): Rename to __inv_unwrap.
1759 (__invoke_impl): Remove unused template parameters.
1760 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
1762 * testsuite/20_util/function_objects/invoke/ref_ext.cc: Copy 59768.cc
1763 and test __invoke extension for C++11.
1765 2016-08-03 Jonathan Wakely <jwakely@redhat.com>
1767 * include/bits/shared_ptr_base.h (__cpp_lib_enable_shared_from_this):
1768 Define feature-test macro.
1769 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Test
1772 * include/bits/shared_ptr.h (shared_ptr::weak_type): Define.
1773 * include/bits/shared_ptr_base.h (__shared_ptr::weak_type): Define.
1774 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
1775 * testsuite/20_util/shared_ptr/requirements/weak_type.cc: New test.
1776 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
1778 * include/std/utility (as_const): Define.
1779 * testsuite/20_util/as_const/1.cc: New test.
1780 * testsuite/20_util/as_const/rvalue_neg.cc: New test.
1782 * include/bits/shared_ptr.h (owner_less): Add default template
1784 * include/bits/shared_ptr_base.h (_Sp_owner_less<void, void>): Define
1786 (owner_less<void>): Define specialization.
1787 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
1789 * testsuite/20_util/owner_less/void.cc: New test.
1790 * testsuite/experimental/feat-cxx14.cc: Update macro value tested.
1792 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
1793 Define feature-test macro.
1794 * include/bits/range_access.h (__cpp_lib_array_constexpr): Likewise.
1795 * include/std/shared_mutex (__cpp_lib_shared_mutex): Uncomment.
1796 * include/std/type_traits (__cpp_lib_logical_traits): Fix value.
1797 (__cpp_lib_type_trait_variable_templates): Define.
1799 * include/bits/stl_function.h: Remove commented-out macro.
1800 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
1801 Define feature-test macro.
1802 * testsuite/experimental/feat-cxx14.cc: Add tests for more macros.
1804 * include/bits/c++config (_GLIBCXX_USE_STD_SPEC_FUNCS): Define for
1805 C++17, or for C++11/C++14 when __STDCPP_WANT_MATH_SPEC_FUNCS__ is
1807 * include/bits/specfun.h [!__STDCPP_WANT_MATH_SPEC_FUNCS__]: Don't
1808 do #error for C++17.
1809 * include/c_global/cmath: Check _GLIBCXX_USE_STD_SPEC_FUNCS instead
1810 of __STDCPP_WANT_MATH_SPEC_FUNCS__.
1811 * include/tr1/bessel_function.tcc: Likewise.
1812 * include/tr1/beta_function.tcc: Likewise.
1813 * include/tr1/cmath: Likewise.
1814 * include/tr1/ell_integral.tcc: Likewise.
1815 * include/tr1/exp_integral.tcc: Likewise.
1816 * include/tr1/gamma.tcc: Likewise.
1817 * include/tr1/hypergeometric.tcc: Likewise.
1818 * include/tr1/legendre_function.tcc: Likewise.
1819 * include/tr1/modified_bessel_func.tcc: Likewise.
1820 * include/tr1/poly_hermite.tcc: Likewise.
1821 * include/tr1/poly_laguerre.tcc: Likewise.
1822 * include/tr1/riemann_zeta.tcc: Likewise.
1823 * include/tr1/special_function_util.h: Likewise.
1824 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc: New.
1826 * include/std/type_traits (has_trivial_default_constructor): Remove.
1827 (has_trivial_copy_constructor, has_trivial_copy_assign): Likewise.
1828 * testsuite/20_util/has_trivial_copy_assign/requirements/
1829 explicit_instantiation.cc: Remove test.
1830 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
1832 * testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc:
1834 * testsuite/20_util/has_trivial_copy_assign/value.cc: Likewise.
1835 * testsuite/20_util/has_trivial_copy_constructor/requirements/
1836 explicit_instantiation.cc: Likewise.
1837 * testsuite/20_util/has_trivial_copy_constructor/requirements/
1838 typedefs.cc: Likewise.
1839 * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise.
1840 * testsuite/20_util/has_trivial_default_constructor/requirements/
1841 explicit_instantiation.cc: Likewise.
1842 * testsuite/20_util/has_trivial_default_constructor/requirements/
1843 typedefs.cc: Likewise.
1844 * testsuite/20_util/has_trivial_default_constructor/value.cc:
1846 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
1847 Check has_trivial_default_constructor, has_trivial_copy_constructor,
1848 and has_trivial_copy_assign are not defined.
1849 * testsuite/20_util/pair/requirements/dr801.cc: Remove commented out
1851 * testsuite/20_util/tuple/requirements/dr801.cc: Likewise.
1852 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
1853 dg-error line number.
1854 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1857 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
1859 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
1860 Remove reundant check for _GLIBCXX_USE_WCHAR_T and fix char type.
1861 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
1863 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
1865 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
1867 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
1869 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
1871 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
1874 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Improve
1877 * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Move
1878 dg-error to relevant line.
1879 * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc:
1881 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
1883 * scripts/testsuite_flags.in: Add -fno-show-column to cxxflags.
1885 * testsuite/18_support/bad_exception/23591_thread-1.c: Skip test if
1886 options are present that aren't valid for C.
1887 * testsuite/abi/header_cxxabi.c: Likewise.
1889 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/
1890 check_value.cc: Do not add special functions to namespace std in TR1
1893 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Only
1894 run for C++11 and later.
1895 * testsuite/ext/special_functions/conf_hyperg/check_value.cc:
1897 * testsuite/ext/special_functions/conf_hyperg/compile.cc: Likewise.
1898 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
1899 * testsuite/ext/special_functions/hyperg/check_value.cc: Likewise.
1900 * testsuite/ext/special_functions/hyperg/compile.cc: Likewise.
1901 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
1903 * testsuite/special_functions/01_assoc_laguerre/check_value.cc:
1905 * testsuite/special_functions/01_assoc_laguerre/compile.cc: Likewise.
1906 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc:
1908 * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
1910 * testsuite/special_functions/02_assoc_legendre/check_value.cc:
1912 * testsuite/special_functions/02_assoc_legendre/compile.cc: Likewise.
1913 * testsuite/special_functions/02_assoc_legendre/compile_2.cc:
1914 * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
1915 * testsuite/special_functions/03_beta/check_value.cc: Likewise.
1916 * testsuite/special_functions/03_beta/compile.cc: Likewise.
1917 * testsuite/special_functions/03_beta/compile_2.cc: Likewise.
1918 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: Likewise.
1919 * testsuite/special_functions/04_comp_ellint_1/check_value.cc:
1921 * testsuite/special_functions/04_comp_ellint_1/compile.cc: Likewise.
1922 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Likewise.
1923 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: Likewise.
1924 * testsuite/special_functions/05_comp_ellint_2/check_value.cc:
1926 * testsuite/special_functions/05_comp_ellint_2/compile.cc: Likewise.
1927 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Likewise.
1928 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: Likewise.
1929 * testsuite/special_functions/06_comp_ellint_3/check_value.cc:
1931 * testsuite/special_functions/06_comp_ellint_3/compile.cc: Likewise.
1932 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Likewise.
1933 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: Likewise.
1934 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc:
1936 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: Likewise.
1937 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Likewise.
1938 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: Likewise.
1939 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: Likewise.
1940 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc:
1942 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: Likewise.
1943 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Likewise.
1944 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: Likewise.
1945 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc:
1947 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: Likewise.
1948 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Likewise.
1949 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: Likewise.
1950 * testsuite/special_functions/10_cyl_neumann/check_value.cc: Likewise.
1951 * testsuite/special_functions/10_cyl_neumann/compile.cc: Likewise.
1952 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Likewise.
1953 * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
1954 * testsuite/special_functions/11_ellint_1/check_value.cc: Likewise.
1955 * testsuite/special_functions/11_ellint_1/compile.cc: Likewise.
1956 * testsuite/special_functions/11_ellint_1/compile_2.cc: Likewise.
1957 * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
1958 * testsuite/special_functions/12_ellint_2/check_value.cc: Likewise.
1959 * testsuite/special_functions/12_ellint_2/compile.cc: Likewise.
1960 * testsuite/special_functions/12_ellint_2/compile_2.cc: Likewise.
1961 * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
1962 * testsuite/special_functions/13_ellint_3/check_value.cc: Likewise.
1963 * testsuite/special_functions/13_ellint_3/compile.cc: Likewise.
1964 * testsuite/special_functions/13_ellint_3/compile_2.cc: Likewise.
1965 * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
1966 * testsuite/special_functions/14_expint/check_value.cc: Likewise.
1967 * testsuite/special_functions/14_expint/compile.cc: Likewise.
1968 * testsuite/special_functions/14_expint/compile_2.cc: Likewise.
1969 * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
1970 * testsuite/special_functions/15_hermite/check_value.cc: Likewise.
1971 * testsuite/special_functions/15_hermite/compile.cc: Likewise.
1972 * testsuite/special_functions/15_hermite/compile_2.cc: Likewise.
1973 * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
1974 * testsuite/special_functions/16_laguerre/check_value.cc: Likewise.
1975 * testsuite/special_functions/16_laguerre/compile.cc: Likewise.
1976 * testsuite/special_functions/16_laguerre/compile_2.cc: Likewise.
1977 * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
1978 * testsuite/special_functions/17_legendre/check_value.cc: Likewise.
1979 * testsuite/special_functions/17_legendre/compile.cc: Likewise.
1980 * testsuite/special_functions/17_legendre/compile_2.cc: Likewise.
1981 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: Likewise.
1982 * testsuite/special_functions/18_riemann_zeta/check_value.cc:
1984 * testsuite/special_functions/18_riemann_zeta/compile.cc: Likewise.
1985 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Likewise.
1986 * testsuite/special_functions/19_sph_bessel/check_nan.cc: Likewise.
1987 * testsuite/special_functions/19_sph_bessel/check_value.cc: Likewise.
1988 * testsuite/special_functions/19_sph_bessel/compile.cc: Likewise.
1989 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Likewise.
1990 * testsuite/special_functions/20_sph_legendre/check_nan.cc: Likewise.
1991 * testsuite/special_functions/20_sph_legendre/check_value.cc:
1993 * testsuite/special_functions/20_sph_legendre/compile.cc: Likewise.
1994 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Likewise.
1995 * testsuite/special_functions/21_sph_neumann/check_nan.cc: Likewise.
1996 * testsuite/special_functions/21_sph_neumann/check_value.cc: Likewise.
1997 * testsuite/special_functions/21_sph_neumann/compile.cc: Likewise.
1998 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Likewise.
2000 * testsuite/tr1/5_numerical_facilities/special_functions/
2001 08_cyl_bessel_i/check_value.cc: Use __attribute__((unused)) instead
2003 * testsuite/tr1/5_numerical_facilities/special_functions/
2004 09_cyl_bessel_j/check_value.cc: Likewise.
2005 * testsuite/tr1/5_numerical_facilities/special_functions/
2006 10_cyl_bessel_k/check_value.cc: Likewise.
2007 * testsuite/tr1/5_numerical_facilities/special_functions/
2008 11_cyl_neumann/check_value.cc: Likewise.
2009 * testsuite/tr1/5_numerical_facilities/special_functions/
2010 21_sph_bessel/check_value.cc: Likewise.
2011 * testsuite/tr1/5_numerical_facilities/special_functions/
2012 23_sph_neumann/check_value.cc: Likewise.
2014 2016-08-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2016 * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
2017 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
2018 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
2019 * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
2020 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
2021 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
2023 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
2025 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: Skip
2028 * testsuite/lib/libstdc++.exp (v3-build_support): Add -fno-lto to
2029 additional flags for compiling libtestc++.a objects.
2031 2016-08-01 Jonathan Wakely <jwakely@redhat.com>
2033 * include/bits/basic_string.h (data() const): Update comment.
2034 (data()): Add non-const overload for C++17.
2035 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
2036 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
2038 * include/bits/basic_string.tcc: Disable explicit instantiation
2039 declarations for C++17.
2041 * testsuite/23_containers/unordered_map/requirements/53339.cc: Remove
2042 ignored "xfail" from { dg-do compile { xfail selector } } directive.
2043 * testsuite/23_containers/unordered_multimap/requirements/53339.cc:
2045 * testsuite/26_numerics/headers/cmath/
2046 c99_classification_macros_c++11.cc: Likewise.
2047 * testsuite/26_numerics/headers/cmath/
2048 c99_classification_macros_c++98.cc: Likewise.
2049 * testsuite/26_numerics/headers/cmath/
2050 c99_classification_macros_c.cc: Likewise.
2052 * testsuite/backward/hash_set/check_construct_destroy.cc: Account
2053 for different construct/destroy counts in C++98 mode.
2055 * testsuite/17_intro/freestanding.cc: Remove "-x c" from dg-options.
2057 * testsuite/20_util/tuple/cons/66338.cc: Limit test to C++11 and
2059 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc:
2062 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Use
2063 C++98-compatible initialization for array.
2065 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc: Remove
2066 unused header and variable from compile-only test.
2067 * testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc: Likewise.
2068 * testsuite/28_regex/basic_regex/assign/char/cstring.cc: Likewise.
2069 * testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc: Likewise.
2070 * testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc:
2073 * testsuite/experimental/string_view/operations/rfind/char/2.cc:
2074 Remove duplicate dg-options directive.
2076 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
2077 808590.cc: Use -std=gnu++98 instead of -std=gnu++03.
2079 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Remove
2080 linker options from compile-only tests.
2081 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
2084 * testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Make test
2085 supported for C++11 and later.
2086 * testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
2087 * testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.
2089 2016-08-01 Uros Bizjak <ubizjak@gmail.com>
2091 * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
2093 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
2095 * testsuite/20_util/conditional/requirements/typedefs.cc: Change to
2098 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
2099 Ensure test is compiled with optimization.
2101 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
2102 Adjust dg-prune-output pattern for error in C++98 mode.
2104 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Only
2105 run for C++11 or later.
2107 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Fix
2108 test to not rely on GNU extension (escaped normal characters in POSIX
2109 BRE). Enable tests for other strings which are now supported.
2111 * testsuite/20_util/pair/astuple/get_neg.cc: Use effective-target
2112 c++11 instead of setting -std=gnu++14.
2115 * include/std/array (get): Use positive message for static assertions.
2116 * include/std/functional (_Safe_tuple_element_t): Fix indentation.
2117 * include/std/tuple (tuple_element<I, tuple<>>): Add partial
2118 specialization for invalid indices, with static assertion.
2119 * testsuite/20_util/tuple/element_access/get_neg.cc: New test.
2121 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Move
2122 dg-error to relevant line.
2123 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
2125 * testsuite/23_containers/forward_list/requirements/dr438/
2126 assign_neg.cc: Likewise.
2127 * testsuite/23_containers/forward_list/requirements/dr438/
2128 constructor_1_neg.cc: Likewise.
2129 * testsuite/23_containers/forward_list/requirements/dr438/
2130 constructor_2_neg.cc: Likewise.
2131 * testsuite/23_containers/forward_list/requirements/dr438/
2132 insert_neg.cc: Likewise.
2133 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc:
2135 * testsuite/26_numerics/random/linear_congruential_engine/
2136 requirements/non_uint_neg.cc: Likewise.
2137 * testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc:
2138 Likewise. Also test for std::atomic_address.
2140 2016-07-31 Ville Voutilainen <ville.voutilainen@gmail.com>
2142 Add missing variable traits, fix testsuite failures.
2143 * include/bits/uses_allocator.h (uses_allocator_v): New.
2144 * include/std/functional (is_bind_expression_v, is_placeholder_v):
2146 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
2147 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
2148 * testsuite/20_util/duration/literals/range.cc: Likewise.
2149 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
2150 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
2151 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
2152 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise.
2153 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
2155 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
2156 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
2159 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
2161 * testsuite/18_support/numeric_limits/40856.cc [__STRICT_ANSI__]: Do
2162 not test 128-bit types.
2163 * testsuite/20_util/is_floating_point/value.cc: Likewise.
2164 * testsuite/20_util/is_integral/value.cc: Likewise.
2165 * testsuite/20_util/is_signed/value.cc: Likewise.
2166 * testsuite/20_util/is_unsigned/value.cc: Likewise.
2167 * testsuite/20_util/make_signed/requirements/typedefs-1.cc: Likewise.
2168 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
2169 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
2171 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
2174 * testsuite/26_numerics/headers/cstdlib/54686.c: Rename to 54686.cc.
2176 2016-07-29 Ville Voutilainen <ville.voutilainen@gmail.com>
2178 Implement C++17 variable templates for type traits.
2179 * include/std/chrono (treat_as_floating_point_v): New.
2180 * include/std/ratio (ratio_equal_v, ratio_not_equal_v)
2181 (ratio_less_v, ratio_less_equal_v, ratio_greater_v)
2182 (ratio_greater_equal_v): Likewise.
2183 * include/std/system_error (is_error_code_enum_v)
2184 (is_error_condition_enum_v): Likewise.
2185 * include/std/tuple (tuple_size_v): Likewise.
2186 * type_traits (conjunction_v, disjunction_v, negation_v)
2187 (is_void_v, is_null_pointer_v, is_integral_v, is_floating_point_v)
2188 (is_array_v, is_pointer_v, is_lvalue_reference_v)
2189 (is_rvalue_reference_v, is_member_object_pointer_v)
2190 (is_member_function_pointer_v, is_enum_v, is_union_v)
2191 (is_class_v, is_function_v, is_reference_v, is_arithmetic_v)
2192 (is_fundamental_v, is_object_v, is_scalar_v, is_compound_v)
2193 (is_member_pointer_v, is_const_v, is_volatile_v, is_trivial_v)
2194 (is_trivially_copyable_v, is_standard_layout_v)
2195 (is_pod_v, is_literal_type_v, is_empty_v, is_polymorphic_v)
2196 (is_abstract_v, is_final_v, is_signed_v, is_unsigned_v)
2197 (is_constructible_v, is_default_constructible_v)
2198 (is_copy_constructible_v, is_move_constructible_v)
2199 (is_assignable_v, is_copy_assignable_v, is_move_assignable_v)
2200 (is_destructible_v, is_trivially_constructible_v)
2201 (is_trivially_default_constructible_v)
2202 (is_trivially_copy_constructible_v, is_trivially_move_constructible_v)
2203 (is_trivially_assignable_v, is_trivially_copy_assignable_v)
2204 (is_trivially_move_assignable_v, is_trivially_destructible_v)
2205 (is_nothrow_constructible_v, is_nothrow_default_constructible_v)
2206 (is_nothrow_copy_constructible_v, is_nothrow_move_constructible_v)
2207 (is_nothrow_assignable_v, is_nothrow_copy_assignable_v)
2208 (is_nothrow_move_assignable_v, is_nothrow_destructible_v)
2209 (has_virtual_destructor_v, alignment_of_v, rank_v, extent_v)
2210 (is_same_v, is_base_of_v, is_convertible_v): Likewise.
2211 * testsuite/19_diagnostics/error_code/is_error_code_v.cc: Likewise.
2212 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
2214 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc: Likewise.
2215 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
2216 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
2218 2016-07-29 Andreas Schwab <schwab@linux-m68k.org>
2220 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
2221 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
2222 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
2224 2016-07-29 Jonathan Wakely <jwakely@redhat.com>
2226 * doc/xml/manual/abi.xml: Document 6.0.22 library version.
2227 * doc/html/manual/abi.html: Regenerate.
2229 * acinclude.m4 (libtool_VERSION): Bump to 6:23:0.
2230 * config/abi/pre/gnu.ver: Add 3.4.23 version for new basic_string
2232 * configure: Regenerate.
2233 * testsuite/util/testsuite_abi.cc: Add new symbol version.
2235 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
2236 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
2237 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Likewise.
2238 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
2240 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
2241 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
2242 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Likewise.
2244 2016-07-28 Jonathan Wakely <jwakely@redhat.com>
2246 * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
2247 Adjust dg-prune-output pattern for error in C++98 mode.
2248 * testsuite/23_containers/deque/requirements/dr438/
2249 constructor_1_neg.cc: Likewise.
2250 * testsuite/23_containers/deque/requirements/dr438/
2251 constructor_2_neg.cc: Likewise.
2252 * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
2254 * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
2256 * testsuite/23_containers/list/requirements/dr438/
2257 constructor_1_neg.cc: Likewise.
2258 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
2260 * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
2262 * testsuite/23_containers/vector/requirements/dr438/
2263 constructor_1_neg.cc: Likewise.
2264 * testsuite/23_containers/vector/requirements/dr438/
2265 constructor_2_neg.cc: Likewise.
2266 * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
2269 * testsuite/23_containers/vector/check_construct_destroy.cc: Account
2270 for different construct/destroy counts in C++98 mode.
2272 * testsuite/17_intro/headers/c++2011/stdc++.cc: Change target-specific
2273 dg-options to dg-additional-options so that default options are used.
2274 * testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc:
2276 * testsuite/17_intro/headers/c++2014/stdc++.cc: Likewise.
2277 * testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc:
2279 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
2280 Use dg-additional-options instead of repeating the common options.
2282 * testsuite/22_locale/conversions/string/1.cc: Remove unintended
2283 dg-do compile directive.
2284 * testsuite/26_numerics/headers/cmath/fabs_inline.cc: Fix syntax of
2286 * testsuite/26_numerics/valarray/const_bracket.cc: Likewise.
2288 2016-07-28 Ville Voutilainen <ville.voutilainen@gmail.com>
2290 Implement std::string_view and P0254r2,
2291 Integrating std::string_view and std::string.
2292 * include/Makefile.am: Add string_view and string_view.tcc
2293 to the exported headers.
2294 * include/Makefile.in: Likewise.
2295 * include/bits/basic_string.h: Include <string_view> in C++17 mode.
2297 (basic_string(__sv_type, const _Alloc&)): Likewise.
2298 (operator=(__sv_type)): Likewise.
2299 (operator __sv_type()): Likewise.
2300 (operator+=(__sv_type)): Likewise.
2301 (append(__sv_type __sv)): Likewise.
2302 (append(__sv_type, size_type, size_type)): Likewise.
2303 (assign(__sv_type)): Likewise.
2304 (assign(__sv_type, size_type, size_type)): Likewise.
2305 (insert(size_type, __sv_type)): Likewise.
2306 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
2307 (replace(size_type, size_type, __sv_type)): Likewise.
2308 (replace(size_type, size_type, __sv_type, size_type, size_type)):
2310 (replace(const_iterator, const_iterator, __sv_type)): Likewise.
2311 (find(__sv_type, size_type)): Likewise.
2312 (rfind(__sv_type, size_type)): Likewise.
2313 (find_first_of(__sv_type, size_type)): Likewise.
2314 (find_last_of(__sv_type, size_type)): Likewise.
2315 (find_first_not_of(__sv_type, size_type)): Likewise.
2316 (find_last_not_of(__sv_type, size_type)): Likewise.
2317 (compare(__sv_type)): Likewise.
2318 (compare(size_type, size_type, __sv_type)): Likewise.
2319 (compare(size_type, size_type, __sv_type, size_type, size_type)):
2321 * include/bits/string_view.tcc: New.
2322 * include/std/string_view: Likewise.
2323 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
2324 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
2325 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
2327 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
2329 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
2331 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
2333 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
2335 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
2337 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
2339 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
2341 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
2343 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
2345 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
2347 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
2349 * testsuite/21_strings/basic_string/operators/char/5.cc: Likewise.
2350 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc: Likewise.
2351 * testsuite/21_strings/basic_string_view/capacity/1.cc: Likewise.
2352 * testsuite/21_strings/basic_string_view/cons/char/1.cc: Likewise.
2353 * testsuite/21_strings/basic_string_view/cons/char/2.cc: Likewise.
2354 * testsuite/21_strings/basic_string_view/cons/char/3.cc: Likewise.
2355 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc: Likewise.
2356 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc: Likewise.
2357 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc: Likewise.
2358 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
2360 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
2362 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
2364 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
2366 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
2368 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
2370 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
2372 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
2374 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
2375 * testsuite/21_strings/basic_string_view/inserters/char/1.cc: Likewise.
2376 * testsuite/21_strings/basic_string_view/inserters/char/2.cc: Likewise.
2377 * testsuite/21_strings/basic_string_view/inserters/char/3.cc: Likewise.
2378 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
2380 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
2382 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
2384 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
2386 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
2388 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
2390 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
2392 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
2394 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
2396 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
2398 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
2400 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
2402 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
2404 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
2406 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
2408 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
2410 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
2412 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
2414 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
2416 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
2418 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
2420 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
2422 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
2424 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
2426 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
2428 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
2430 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
2432 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
2434 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
2436 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
2438 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
2440 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
2442 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
2444 * testsuite/21_strings/basic_string_view/operators/char/2.cc: Likewise.
2445 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
2447 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
2449 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
2451 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
2453 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
2455 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
2457 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
2459 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
2461 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
2463 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
2464 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
2466 2016-07-27 Jonathan Wakely <jwakely@redhat.com>
2468 * testsuite/20_util/forward/1_neg.cc: Move dg-error to right line.
2470 2016-07-25 Georeth Chow <georeth2010@gmail.com>
2472 * include/ext/ropeimpl.h (rope<>::_S_dump(_RopeRep*, int)): Qualify
2473 _S_concat enumerator.
2474 * testsuite/ext/rope/6.cc: New test.
2476 2016-07-25 Jonathan Wakely <jwakely@redhat.com>
2478 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Use
2479 std::mt19937, std::thread and std::atomic to simplify test.
2480 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
2482 2016-07-22 Jonathan Wakely <jwakely@redhat.com>
2485 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2486 (basic_string::_Alloc_hider(pointer, _Alloc&&)): Add constructor.
2487 * include/bits/stl_tree.h (_Rb_tree(_Rb_tree&&)): Move allocator.
2488 * testsuite/21_strings/basic_string/allocator/71964.cc: New test.
2489 * testsuite/23_containers/set/allocator/71964.cc: New test.
2491 * testsuite/lib/libstdc++.exp (check_v3_target_namedlocale): Use
2492 delete[] instead of delete.
2494 2016-07-21 Jonathan Wakely <jwakely@redhat.com>
2496 * include/experimental/propagate_const (propagate_const::__t): Rename
2497 to _M_t and remove comment. Qualify std::move and std::forward.
2498 * testsuite/experimental/propagate_const/cons/default.cc: Fix test.
2500 * testsuite/23_containers/vector/zero_sized_allocations.cc:
2501 Define sized deallocation function.
2502 * testsuite/util/testsuite_new_operators.h:
2503 (operator delete(void*, const std::nothrow_t&)): Define nothrow
2504 deallocation function.
2506 * testsuite/21_strings/basic_string/modifiers/append/char/1.cc: Fix
2507 reads past the end of strings.
2508 * testsuite/21_strings/basic_string/operations/compare/char/1.cc:
2510 * testsuite/21_strings/char_traits/requirements/short/1.cc: Fix
2511 invalid array accesses.
2512 * testsuite/experimental/string_view/operations/compare/char/1.cc:
2513 Fix read past the end of string.
2514 * testsuite/util/testsuite_character.cc: Fix out-of-bounds write.
2516 * testsuite/24_iterators/container_access.cc: Fix missing returns.
2517 * testsuite/24_iterators/range_access_cpp14.cc: Likewise.
2519 * testsuite/18_support/new_delete_placement.cc: Don't allocate (and
2520 leak) memory for arguments to placement delete.
2521 * testsuite/20_util/addressof/1.cc: Don't leak memory.
2522 * testsuite/22_locale/locale/global_locale_objects/3.cc: Likewise.
2523 * testsuite/23_containers/unordered_multimap/insert/55028-debug.cc:
2526 2016-07-20 Jonathan Wakely <jwakely@redhat.com>
2528 * doc/xml/manual/intro.xml: Document DR 2684 status.
2529 * doc/html/*: Regenerate.
2531 * include/std/atomic (atomic_int8_t, atomic_uint8_t, atomic_int16_t)
2532 (atomic_uint16_t, atomic_int32_t, atomic_uint32_t, atomic_int64_t)
2533 (atomic_uint64_t): Define (LWG 2441).
2534 * testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc: Remove empty
2536 * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Test for
2538 * doc/xml/manual/intro.xml: Document DR 2441 status.
2540 * include/std/istream (operator>>(basic_istream&&, _Tp&)): Adjust
2541 to use perfect forwarding (LWG 2328).
2542 * testsuite/27_io/rvalue_streams.cc: Test perfect forwarding.
2543 * doc/xml/manual/intro.xml: Document DR 2328 status.
2545 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Use
2546 static objects for catching nullptr as pointer to member types.
2548 2016-07-18 Ville Voutilainen <ville.voutilainen@gmail.com>
2550 Clean up optional's comments.
2551 * include/std/optional: Remove incorrect section headers
2552 from comments when redundant, replace bare section
2553 headers with more descriptive comments.
2555 2016-07-15 Jonathan Wakely <jwakely@redhat.com>
2557 * include/bits/algorithmfwd.h: Change C++0x to C++11 in comments.
2558 * include/bits/move.h: Likewise.
2559 * include/bits/postypes.h: Likewise.
2560 * include/debug/bitset: Likewise.
2561 * include/ext/pb_ds/detail/type_utils.hpp: Likewise.
2562 * include/ext/string_conversions.h: Change C++0x to __cxx11 in
2564 * testsuite/27_io/fpos/14320-1.cc: Change C++0x to C++11 in comment.
2565 * testsuite/util/thread/all.h: Likewise.
2567 * include/bits/stl_algo.h (for_each): Remove redundant _GLIBCXX_MOVE
2571 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Make
2572 nullptr match handlers of pointer type.
2574 2016-07-15 Edward Smith-Rowland <3dw4rd@verizon.net>
2576 Implement C++17 P0025 clamp.
2577 * include/bits/algorithmfwd.h: Declare clamp overloads.
2578 * include/bits/stl_algo.h: Implement clamp. Feature __cpp_lib_clamp.
2579 * testsuite/25_algorithms/clamp/1.cc: New test.
2580 * testsuite/25_algorithms/clamp/2.cc: New test.
2581 * testsuite/25_algorithms/clamp/constexpr.cc: New test.
2582 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
2584 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
2587 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
2589 Fix the constraints for any's assignment operator template to properly
2590 reject assignment from a non-copyable lvalue.
2591 * include/std/any (operator=(_ValueType&&)): Constrain the decayed
2592 type for is_copy_constructible,
2593 * testsuite/20_util/any/requirements.cc: Add a test for
2594 non-copyable lvalues.
2596 2016-07-14 Jonathan Wakely <jwakely@redhat.com>
2598 * include/experimental/functional: Include <parallel/algorithm> in
2601 * testsuite/experimental/functional/searchers.cc: Include <algorithm>
2605 * include/bits/forward_list.h (forward_list): Update doxygen comments
2606 to reflect allocator propagation semantics. Remove ambiguous
2607 statements about data being lost.
2608 * include/bits/stl_deque.h (deque): Likewise.
2609 * include/bits/stl_list.h (list): Likewise.
2610 * include/bits/stl_map.h (map): Likewise.
2611 * include/bits/stl_multimap.h (multimap): Likewise.
2612 * include/bits/stl_multiset.h (multiset): Likewise.
2613 * include/bits/stl_set.h (set): Likewise.
2614 * include/bits/stl_vector.h (vector): Likewise.
2615 * include/bits/unordered_map.h (unordered_map, unordered_multimap):
2617 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
2620 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
2622 Implement P0032R3, Homogeneous interface for variant, any and optional,
2623 for the parts concerning any and optional.
2624 * include/std/any (_Storage()): Make constexpr and have it
2626 (any()): Make constexpr.
2627 (any(const any&)): Adjust.
2628 (any(any&&)): Likewise.
2629 (__any_constructible_t): New.
2630 (any(_ValueType&&)): Constrain.
2631 (any(in_place_type_t<_Tp>, _Args&&...)): New.
2632 (any(in_place_type_t<_Tp>, initializer_list<_Up>, _Args&&...)):
2635 (operator=(const any&)): Likewise.
2636 (operator=(any&&)): Likewise.
2637 (operator=(_ValueType&&)): Constrain.
2638 (emplace(_Args&&...)): New.
2639 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
2642 (swap(any&)): Adjust.
2646 (_Manager_internal::_S_create(_Storage&, _Args&&...)): New.
2647 (_Manager_external::_S_create(_Storage&, _Args&&...)): Likewise.
2648 (make_any(_Args&&...)): Likewise.
2649 (make_any(initializer_list<_Up>, _Args&&...)): Likewise.
2650 * include/std/optional (in_place_t, in_place): Remove.
2651 (bad_optional_access): Add a comment referring to LEWG 72.
2652 (emplace(_Args&&...)): Constrain.
2654 (reset()): Likewise.
2655 (make_optional(_Args&&...)): Likewise.
2656 (make_optional(initializer_list<_Up>, _Args&&...)): Likewise.
2657 * include/std/utility (in_place_tag): New.
2658 (__in_place, __in_place_type, __in_place_index): Likewise.
2659 (in_place_t, in_place_type_t, in_place_index_t): Likewise.
2660 (in_place(__in_place*)): Likewise.
2661 (in_place(__in_place_type<_Tp>*)): Likewise.
2662 (in_place(__in_place_index<_Idx>*)): Likewise.
2663 * testsuite/20_util/any/assign/1.cc: Adjust.
2664 * testsuite/20_util/any/assign/emplace.cc: New.
2665 * testsuite/20_util/any/assign/self.cc: Adjust.
2666 * testsuite/20_util/any/cons/1.cc: Likewise.
2667 * testsuite/20_util/any/cons/in_place.cc: New.
2668 * testsuite/20_util/any/make_any.cc: Likewise.
2669 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
2670 * testsuite/20_util/any/misc/swap.cc: Likewise.
2671 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2672 * testsuite/20_util/any/requirements.cc: New.
2673 * testsuite/20_util/in_place/requirements.cc: Likewise.
2674 * testsuite/20_util/optional/constexpr/in_place.cc: Adjust.
2675 * testsuite/20_util/optional/in_place.cc: Likewise.
2676 * testsuite/20_util/optional/make_optional.cc: Add tests for
2677 the new overloads of make_optional.
2679 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2681 Implement P0307R2, Making Optional Greater Equal Again.
2682 * include/experimental/optional (_Has_addressof): Fix the comment.
2683 * include/std/optional (_Has_addressof): Likewise.
2684 (operator=(_Up&&)): Constrain.
2685 (operator=(const optional<_Up>&)): Likewise.
2686 (operator=(optional<_Up>&&)): Likewise.
2687 (__optional_relop_t): New.
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>&)): Constrain.
2692 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2693 Constrain and make transparent.
2694 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2695 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2696 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2697 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2698 (operator!=(const optional<_Tp>&, _Tp const&)):
2699 Constrain and make transparent.
2700 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2701 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2702 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2703 (operator>(const optional<_Tp>&, const _Tp&)):
2704 Constrain and make transparent.
2705 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2706 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2707 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2708 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2709 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2710 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2711 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2712 * testsuite/20_util/optional/relops/1.cc: Likewise.
2713 * testsuite/20_util/optional/relops/2.cc: Likewise.
2714 * testsuite/20_util/optional/relops/3.cc: Likewise.
2715 * testsuite/20_util/optional/relops/4.cc: Likewise.
2716 * testsuite/20_util/optional/requirements.cc: Add tests to verify
2717 that optional's relops are transparent and don't synthesize
2718 operators. Also test that assignment sfinaes.
2720 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2723 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Define to 1 not empty.
2724 * include/parallel/compiletime_settings.h (_GLIBCXX_ASSERTIONS):
2725 Rename to _GLIBCXX_PARALLEL_ASSERTIONS and make default value depend
2726 on _GLIBCXX_ASSERTIONS.
2727 * include/parallel/balanced_quicksort.h: Rename _GLIBCXX_ASSERTIONS.
2728 Include <unistd.h> for sleep.
2729 * include/parallel/losertree.h: Rename _GLIBCXX_ASSERTIONS.
2730 * include/parallel/merge.h: Likewise.
2731 * include/parallel/multiway_merge.h: Likewise.
2732 * include/parallel/partition.h: Likewise.
2733 * include/parallel/queue.h: Likewise.
2734 * include/parallel/sort.h: Likewise.
2735 * testsuite/25_algorithms/headers/algorithm/
2736 parallel_algorithm_assert.cc: New.
2738 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2739 (replace(__const_iterator, __const_iterator, initializer_list<C>)):
2740 Forward to different overload.
2742 * include/bits/allocated_ptr.h (__allocated_ptr::_S_raw_ptr): Make
2745 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2747 Revert "Add non-const overload of std::string::data()".
2749 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2751 Implement P0307R2, Making Optional Greater Equal Again.
2752 * include/experimental/optional (_Has_addressof): Fix the comment.
2753 * include/std/optional (_Has_addressof): Likewise.
2754 (operator=(_Up&&)): Constrain.
2755 (operator=(const optional<_Up>&)): Likewise.
2756 (operator=(optional<_Up>&&)): Likewise.
2757 (__optional_relop_t): New.
2758 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2759 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2760 Constrain and make transparent.
2761 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2762 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2763 Constrain and make transparent.
2764 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2765 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2766 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2767 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2768 (operator!=(const optional<_Tp>&, _Tp const&)):
2769 Constrain and make transparent.
2770 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2771 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2772 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2773 (operator>(const optional<_Tp>&, const _Tp&)):
2774 Constrain and make transparent.
2775 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2776 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2777 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2778 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2779 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2780 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2781 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2782 * testsuite/20_util/optional/relops/1.cc: Likewise.
2783 * testsuite/20_util/optional/relops/2.cc: Likewise.
2784 * testsuite/20_util/optional/relops/3.cc: Likewise.
2785 * testsuite/20_util/optional/relops/4.cc: Likewise.
2786 * testsuite/20_util/optional/requirements.cc: Add tests to verify
2787 that optional's relops are transparent and don't synthesize
2788 operators. Also test that assignment sfinaes.
2790 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2792 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (_M_c_str):
2794 (_M_disjunct, basic_string(const basic_string&, size_t)): Use data()
2795 instead of _M_data().
2796 (basic_string(const basic_string&, size_t, size_t, const _Alloc&)):
2798 (append(const basic_string&)): Likewise.
2799 (append(const basic_string&, size_type, size_type)): Likewise.
2800 (assign(const basic_string&, size_type, size_type)): Likewise.
2801 (insert(size_type, const basic_string&)): Likewise.
2802 (insert(size_type, const basic_string&, size_type, size_type)):
2804 (replace(size_type, size_type, const basic_string&, size_type,
2805 size_type)): Likewise.
2806 (replace(__const_iterator, __const_iterator, const basic_string&)):
2808 (c_str(), data()): Use c_str() instead of _M_data().
2809 (data()): Add non-const overload as per LWG 2391 and P0272R1.
2810 (compare(const basic_string&)): Use data() instead of _M_data().
2811 [!_GLIBCXX_USE_CXX11_ABI] (data()): Add non-const overload.
2812 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI] (_M_mutate):
2813 Pass raw pointers to _S_copy.
2814 (_M_erase, _M_replace_aux): Pass raw pointers to _S_move and
2816 (find(const _CharT*, size_type, size_type)): Use data instead of
2818 * testsuite/21_strings/basic_string/allocator/char/ext_ptr.cc: New.
2819 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
2820 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
2822 2016-07-12 Jonathan Wakely <jwakely@redhat.com>
2824 * libsupc++/new: Remove nothrow sized deletes (LWG 2458).
2825 * doc/xml/manual/intro.xml: Document DR 2458 status.
2826 * doc/html*: Regenerate.
2828 * testsuite/20_util/pair/astuple/astuple.cc: Only include <utility>.
2829 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
2830 Only include <array>.
2831 * testsuite/23_containers/array/tuple_interface/tuple_size.cc:
2833 * doc/xml/manual/intro.xml: Document LWG 2212 support.
2834 * doc/html*: Regenerate.
2836 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2837 Add testcase from LWG 2164.
2839 2016-07-11 François Dumont <fdumont@gcc.gnu.org>
2841 * include/bits/stl_vector.h (push_back(const value_type&)): Forward
2842 to _M_realloc_insert.
2843 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2844 (_M_realloc_insert): Declare new function.
2845 (_M_emplace_back_aux): Remove definition.
2846 * include/bits/vector.tcc (emplace_back(_Args...)):
2847 Use _M_realloc_insert.
2848 (insert(const_iterator, const value_type&)): Likewise.
2849 (_M_insert_rval, _M_emplace_aux): Likewise.
2850 (_M_emplace_back_aux): Remove declaration.
2851 (_M_realloc_insert): Define.
2852 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2853 Adjust expected results for emplacing an lvalue with reallocation.
2855 2016-07-10 Ville Voutilainen <ville.voutilainen@gmail.com>
2857 Implement std::optional.
2858 * include/Makefile.am: Add optional to exported headers.
2859 * include/Makefile.in: Likewise.
2860 * include/std/optional: New.
2861 * testsuite/20_util/optional/typedefs.cc: Likewise.
2862 * testsuite/20_util/optional/relops/2.cc: Likewise.
2863 * testsuite/20_util/optional/relops/3.cc: Likewise.
2864 * testsuite/20_util/optional/relops/4.cc: Likewise.
2865 * testsuite/20_util/optional/relops/5.cc: Likewise.
2866 * testsuite/20_util/optional/relops/1.cc: Likewise.
2867 * testsuite/20_util/optional/relops/6.cc: Likewise.
2868 * testsuite/20_util/optional/nullopt.cc: Likewise.
2869 * testsuite/20_util/optional/in_place.cc: Likewise.
2870 * testsuite/20_util/optional/make_optional.cc: Likewise.
2871 * testsuite/20_util/optional/assignment/2.cc: Likewise.
2872 * testsuite/20_util/optional/assignment/3.cc: Likewise.
2873 * testsuite/20_util/optional/assignment/4.cc: Likewise.
2874 * testsuite/20_util/optional/assignment/5.cc: Likewise.
2875 * testsuite/20_util/optional/assignment/1.cc: Likewise.
2876 * testsuite/20_util/optional/assignment/6.cc: Likewise.
2877 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
2878 * testsuite/20_util/optional/cons/default.cc: Likewise.
2879 * testsuite/20_util/optional/cons/move.cc: Likewise.
2880 * testsuite/20_util/optional/cons/value.cc: Likewise.
2881 * testsuite/20_util/optional/cons/copy.cc: Likewise.
2882 * testsuite/20_util/optional/requirements.cc: Likewise.
2883 * testsuite/20_util/optional/observers/2.cc: Likewise.
2884 * testsuite/20_util/optional/observers/3.cc: Likewise.
2885 * testsuite/20_util/optional/observers/4.cc: Likewise.
2886 * testsuite/20_util/optional/observers/5.cc: Likewise.
2887 * testsuite/20_util/optional/observers/1.cc: Likewise.
2888 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
2889 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
2890 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2891 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
2892 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
2893 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
2894 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
2895 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
2896 * testsuite/20_util/optional/constexpr/make_optional.cc: Likewise.
2897 * testsuite/20_util/optional/constexpr/cons/default.cc: Likewise.
2898 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
2899 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
2900 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
2901 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
2902 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
2903 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
2904 * testsuite/20_util/optional/swap/1.cc: Likewise.
2906 2016-07-08 Jonathan Wakely <jwakely@redhat.com>
2908 * testsuite/23_containers/vector/modifiers/insert/aliasing.cc: New.
2910 2016-07-07 Jonathan Wakely <jwakely@redhat.com>
2912 * doc/xml/manual/status_cxx2014.xml: Update LFTS status table.
2913 * doc/html/*: Regenerate.
2915 2016-07-07 Ville Voutilainen <ville.voutilainen@gmail.com>
2918 * include/Makefile.am: Add any and c++17_warning.h to exported headers.
2919 * include/Makefile.in: Likewise.
2920 * include/std/any: New.
2921 * testsuite/20_util/any/assign/1.cc: Likewise.
2922 * testsuite/20_util/any/assign/2.cc: Likewise.
2923 * testsuite/20_util/any/assign/self.cc: Likewise.
2924 * testsuite/20_util/any/cons/1.cc: Likewise.
2925 * testsuite/20_util/any/cons/2.cc: Likewise.
2926 * testsuite/20_util/any/cons/aligned.cc: Likewise.
2927 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
2928 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
2929 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
2930 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
2931 * testsuite/20_util/any/misc/swap.cc: Likewise.
2932 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2933 * testsuite/20_util/any/observers/type.cc: Likewise.
2934 * testsuite/20_util/any/typedefs.cc: Likewise.
2936 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2938 Add a new header for diagnosing the use of C++17 facilities
2940 * include/bits/c++17_warning.h: New.
2942 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2944 Implement LWG 2451, optional<T> should 'forward' T's
2945 implicit conversions.
2946 * include/experimental/optional (__is_optional_impl, __is_optional):
2948 (optional()): Make constexpr and default.
2949 (optional(_Up&&), optional(const optional<_Up>&),
2950 optional(optional<_Up>&& __t): New.
2951 (operator=(_Up&&)): Constrain.
2952 (operator=(const optional<_Up>&), operator=(optional<_Up>&&)): New.
2953 * testsuite/experimental/optional/cons/value.cc:
2954 Add tests for the functionality added by LWG 2451.
2955 * testsuite/experimental/optional/cons/value_neg.cc: New.
2957 2016-07-05 Ville Voutilainen <ville.voutilainen@gmail.com>
2960 any_cast doesn't work with rvalue reference targets and cannot
2961 move with a value target.
2962 * include/experimental/any (any(_ValueType&&)): Constrain and
2963 add an overload that doesn't forward.
2964 (any_cast(any&&)): Constrain and add an overload that moves.
2965 * testsuite/experimental/any/misc/any_cast.cc: Add tests for
2966 the functionality added by LWG 2509.
2968 2016-07-04 François Dumont <fdumont@gcc.gnu.org>
2970 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2972 * testsuite/23_containers/vector/modifiers/insert/self_insert.cc: New
2975 2016-07-04 Jonathan Wakely <jwakely@redhat.com>
2977 * include/bits/stl_vector.h (emplace(const_iterator, _Args&&...)):
2978 Define inline. Forward to _M_emplace_aux.
2979 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2980 (_M_insert_rval, _M_emplace_aux): Declare new functions.
2981 (_Temporary_value): New RAII type using allocator to construct/destroy.
2982 (_S_insert_aux_assign): Remove.
2983 (_M_insert_aux): Make non-variadic.
2984 * include/bits/vector.tcc (insert(const_iterator, const value_type&)):
2985 Use _Temporary_value.
2986 (emplace(const_iterator, _Args&&...)): Remove definition.
2987 (_M_insert_rval, _M_emplace_aux): Define.
2988 (_M_insert_aux): Make non-variadic, stop using _S_insert_aux_assign.
2989 (_M_fill_insert): Use _Temporary_value.
2990 * testsuite/23_containers/vector/allocator/construction.cc: New test.
2991 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2992 Adjust expected results for emplacing an lvalue with reallocation.
2993 * testsuite/23_containers/vector/check_construct_destroy.cc: Adjust
2994 expected results to account for construction/destruction of temporary
2996 * testsuite/backward/hash_set/check_construct_destroy.cc: Likewise.
2998 2016-07-04 Ville Voutilainen <ville.voutilainen@gmail.com>
3001 * src/filesystem/ops.cc (remove_all(const path&, error_code&)):
3002 Call remove_all for children of a directory.
3003 * testsuite/experimental/filesystem/operations/create_directories.cc:
3006 2016-07-02 François Dumont <fdumont@gcc.gnu.org>
3008 * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Adjust
3009 dg-error line numbers.
3010 * testsuite/23_containers/array/tuple_interface/
3011 tuple_element_debug_neg.cc: Likewise.
3012 * testsuite/25_algorithms/lexicographical_compare/debug/
3013 irreflexive_neg.cc: Remove.
3015 2016-06-30 Thomas Preud'homme <thomas.preudhomme@arm.com>
3017 * testsuite/29_atomics/atomic/65913.cc: Require atomic-builtins rather
3018 than specific target.
3020 2016-06-27 François Dumont <fdumont@gcc.gnu.org>
3023 * include/bits/hashtable.h: Remove _Unique_keya parameter in _Insert
3026 2016-06-23 François Dumont <fdumont@gcc.gnu.org>
3028 * include/debug/array (array<>::swap): Fix noexcept qualificaton for
3031 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3033 * configure.host: Remove mep-* support.
3035 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3037 * configure: Regenerate.
3038 * configure.host: Remove support for knetbsd.
3039 * crossconfig.m4: Likewise.
3041 2016-06-20 François Dumont <fdumont@gcc.gnu.org>
3044 * include/tr1/hashtable_policy.h
3045 (_Prime_rehash_policy::_M_next_bkt): Make past-the-end iterator
3046 dereferenceable to avoid check on lower_bound result.
3047 (_Prime_rehash_policy::_M_bkt_for_elements): Call latter.
3048 (_Prime_rehash_policy::_M_need_rehash): Likewise.
3049 * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
3050 Always return a value greater than input value. Set _M_next_resize to
3051 max value when reaching highest prime number.
3052 * src/shared/hashtable-aux.cc (__prime_list): Add comment about sentinel
3054 * testsuite/23_containers/unordered_set/hash_policy/71181.cc: New.
3055 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc
3057 * testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc: New.
3058 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
3061 2016-06-17 Jonathan Wakely <jwakely@redhat.com>
3064 * include/bits/stl_algobase.h (lower_bound, lexicographical_compare):
3065 Remove irreflexive checks.
3066 * include/bits/stl_algo.h (lower_bound, upper_bound, equal_range,
3067 binary_search): Likewise.
3068 * testsuite/25_algorithms/equal_range/partitioned.cc: New test.
3069 * testsuite/25_algorithms/lexicographical_compare/71545.cc: New test.
3070 * testsuite/25_algorithms/lower_bound/partitioned.cc: New test.
3071 * testsuite/25_algorithms/upper_bound/partitioned.cc: New test.
3072 * testsuite/util/testsuite_iterators.h (__gnu_test::test_container):
3073 Add constructor from array.
3075 2016-06-16 François Dumont <fdumont@gcc.gnu.org>
3077 * include/debug/debug.h
3078 (__glibcxx_requires_non_empty_range, __glibcxx_requires_nonempty)
3079 (__glibcxx_requires_subscript): Move...
3080 * include/debug/assertions.h: ...here and add __builtin_expect.
3081 (_GLIBCXX_DEBUG_ONLY): Remove ; value.
3082 * include/bits/stl_deque.h
3083 (std::deque<>::operator[]): Add __glibcxx_requires_subscript check.
3084 (std::deque<>::front()): Add __glibcxx_requires_nonempty check.
3085 (std::deque<>::back()): Likewise.
3086 (std::deque<>::pop_front()): Likewise.
3087 (std::deque<>::pop_back()): Likewise.
3088 (std::deque<>::swap(deque&)): Add allocator check.
3089 * include/bits/stl_vector.h
3090 (std::vector<>::operator[]): Add __glibcxx_requires_subscript check.
3091 (std::vector<>::front()): Add __glibcxx_requires_nonempty check.
3092 (std::vector<>::back()): Likewise.
3093 (std::vector<>::pop_back()): Likewise.
3094 (std::vector<>::swap(vector&)): Add allocator check.
3096 2016-06-16 Daniel Kruegler <daniel.kruegler@gmail.com>
3098 Provide swappable traits (p0185r1)
3099 * include/std/type_traits (is_swappable, is_nothrow_swappable,
3100 is_swappable_with, is_nothrow_swappable_with, is_swappable_v,
3101 is_nothrow_swappable_v, is_swappable_with_v,
3102 is_nothrow_swappable_with_v): New.
3103 * include/bits/stl_pair.h: Use it as per p0185r1.
3104 * include/bits/stl_queue.h: Likewise.
3105 * include/bits/stl_stack.h: Likewise.
3106 * include/bits/unique_ptr.h: Likewise.
3107 * include/std/tuple: Likewise.
3108 * include/std/array: Likewise. Fix zero-size member swap.
3109 * include/bits/hashtable.h: Use __and_.
3110 * testsuite/20_util/is_nothrow_swappable/requirements/
3111 explicit_instantiation.cc: Change test options to std=gnu++17.
3112 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
3114 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
3115 * testsuite/20_util/is_swappable/requirements/
3116 explicit_instantiation.cc: Likewise.
3117 * testsuite/20_util/is_swappable/requirements/typedefs.cc: Likewise.
3118 * testsuite/20_util/is_swappable/value.cc: Likewise.
3119 * testsuite/20_util/is_nothrow_swappable/requirements/
3120 explicit_instantiation_ext.cc: New.
3121 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs_ext.cc:
3123 * testsuite/20_util/is_nothrow_swappable/value.h: New.
3124 * testsuite/20_util/is_nothrow_swappable/value_ext.cc: New.
3125 * testsuite/20_util/is_nothrow_swappable_with/requirements/
3126 explicit_instantiation.cc: New.
3127 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
3129 * testsuite/20_util/is_nothrow_swappable_with/value.cc: New.
3130 * testsuite/20_util/is_swappable/requirements/
3131 explicit_instantiation_ext.cc: New.
3132 * testsuite/20_util/is_swappable/requirements/typedefs_ext.cc: New.
3133 * testsuite/20_util/is_swappable/value.h: New.
3134 * testsuite/20_util/is_swappable/value_ext.cc: New.
3135 * testsuite/20_util/is_swappable_with/requirements/
3136 explicit_instantiation.cc: New.
3137 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc: New.
3138 * testsuite/20_util/is_swappable_with/value.cc: New.
3139 * testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
3140 dg-error line numbers.
3141 * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
3144 2016-06-16 Jonathan Wakely <jwakely@redhat.com>
3146 * include/std/array: Remove trailing whitespace.
3147 * include/std/atomic: Likewise.
3148 * include/std/bitset: Likewise.
3149 * include/std/chrono: Likewise.
3150 * include/std/complex: Likewise.
3151 * include/std/condition_variable: Likewise.
3152 * include/std/fstream: Likewise.
3153 * include/std/functional: Likewise.
3154 * include/std/future: Likewise.
3155 * include/std/iomanip: Likewise.
3156 * include/std/iosfwd: Likewise.
3157 * include/std/istream: Likewise.
3158 * include/std/limits: Likewise.
3159 * include/std/ratio: Likewise.
3160 * include/std/scoped_allocator: Likewise.
3161 * include/std/sstream: Likewise.
3162 * include/std/stdexcept: Likewise.
3163 * include/std/string: Likewise.
3164 * include/std/system_error: Likewise.
3165 * include/std/thread: Likewise.
3166 * include/std/tuple: Likewise.
3167 * include/std/type_traits: Likewise.
3168 * include/std/utility: Likewise.
3169 * include/std/valarray: Likewise.
3170 * include/std/vector: Likewise.
3172 * include/bits/stl_vector.h (vector::_S_insert_aux_assign): Define
3173 new overloaded functions.
3174 * include/bits/vector.tcc (vector::_M_insert_aux): Use new functions
3175 to avoid creating a redundant temporary.
3176 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc: New
3179 2016-06-15 François Dumont <fdumont@gcc.gnu.org>
3181 * include/bits/stl_deque.h
3182 (std::deque<>::operator=): Call _M_assign_aux.
3183 (std::deque<>::assign(initializer_list<>)): Likewise.
3184 (std::deque<>::resize(size_t, const value_type&)): Call _M_fill_insert.
3185 (std::deque<>::insert(const_iterator, initializer_list<>)):
3186 Call _M_range_insert_aux.
3187 (std::deque<>::_M_assign_aux<It>(It, It, std::forward_iterator_tag):
3189 (std::deque<>::_M_fill_assign): Call _M_fill_insert.
3190 (std::deque<>::_M_move_assign2): Call _M_assign_aux.
3191 * include/bits/deque.tcc
3192 (std::deque<>::operator=): Call _M_range_insert_aux.
3193 (std::deque<>::_M_assign_aux<It>(It, It, std::input_iterator_tag)):
3195 * include/bits/stl_vector.h
3196 (std::vector<>::operator=): Call _M_assign_aux.
3197 (std::vector<>::assign(initializer_list<>)): Likewise.
3198 (std::vector<>::resize(size_t, const value_type&)): Call _M_fill_insert.
3199 (std::vector<>::insert(const_iterator, initializer_list<>)):
3200 Call _M_range_insert.
3201 * include/bits/vector.tcc (std::vector<>::_M_assign_aux): Likewise.
3203 2016-06-07 François Dumont <fdumont@gcc.gnu.org>
3205 * include/std/tuple (_Head_base<>): Default specialization condition at
3208 2016-06-06 Ville Voutilainen <ville.voutilainen@gmail.com>
3210 Support allocators in tuples of zero size.
3211 * include/std/tuple (tuple<>::tuple(),
3212 tuple<>::tuple(allocator_arg_t, const _Alloc&),
3213 tuple<>::tuple(allocator_arg_t, const _Alloc&, const tuple&)): New.
3214 * testsuite/20_util/tuple/cons/allocators.cc: Adjust.
3216 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
3219 * src/filesystem/ops.cc (permissions(const path&, perms, error_code&)):
3220 Add or remove permissions according to perms argument.
3221 * testsuite/experimental/filesystem/operations/permissions.cc: New
3224 2016-06-05 Ville Voutilainen <ville.voutilainen@gmail.com>
3226 Protect allocator-overloads of tuple-from-tuple constructors
3227 from cases that would create dangling references.
3228 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
3229 const tuple<_UElements...>&), tuple(allocator_arg_t, const _Alloc&,
3230 tuple<_UElements...>&&)): Add a check for _NonNestedTuple.
3231 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Adjust.
3233 2016-05-29 Gerald Pfeifer <gerald@pfeifer.com>
3235 * doc/xml/manual/backwards_compatibility.xml: Adjust
3236 lists.debian.org link to https.
3237 * doc/html/manual/backwards.html: Regenerate.
3239 2016-05-27 Jonathan Wakely <jwakely@redhat.com>
3241 * doc/xml/manual/abi.xml: Adjust URL to use https.
3242 * doc/html/manual/*: Regenerate.
3244 2016-05-27 Ville Voutilainen <ville.voutilainen@gmail.com>
3247 * include/std/tuple (_TMC): Add a check for _NotSameTuple.
3248 * include/std/tuple (tuple(_UElements&&...)): Remove the separate
3249 check for _NotSameTuple.
3250 * include/std/tuple (_TMCT): New.
3251 * include/std/tuple (tuple(const tuple<_UElements...>&)): Use it.
3252 * include/std/tuple (tuple(tuple<_UElements...>&&)): Likewise.
3253 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
3254 const tuple<_UElements...>&)): Likewise.
3255 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
3256 tuple<_UElements...>&&)): Likewise.
3257 * testsuite/20_util/tuple/cons/66338.cc: New.
3259 2016-05-25 Jonathan Wakely <jwakely@redhat.com>
3261 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Fix test for sendfile.
3262 * configure: Regenerate.
3263 * config.h.in: Regenerate.
3265 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): Remove it.
3266 * include/bits/hashtable_policy.h (_Power2_rehash_policy::_M_next_bkt):
3267 Remove const qualification on function. Replace
3268 _GLIBCXX14_USE_CONSTEXPR on automatic variables with const.
3269 (_Power2_rehash_policy::_M_need_rehash): Remove const qualification.
3270 (_Power2_rehash_policy::_M_next_bkt): Remove mutable specifier.
3272 2016-05-24 François Dumont <fdumont@gcc.gnu.org>
3274 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): New.
3275 * include/bits/hashtable_policy.h
3276 (_Prime_rehash_policy::__has_load_factor): New. Mark rehash policy
3277 having load factor management.
3278 (_Mask_range_hashing): New.
3280 (_Power2_rehash_policy): New.
3281 (_Inserts<>): Remove last template parameter, _Unique_keys, so that
3282 partial specializations only depend on whether iterators are constant
3284 * testsuite/23_containers/unordered_set/hash_policy/26132.cc: Adapt to
3285 test new hash policy.
3286 * testsuite/23_containers/unordered_set/hash_policy/load_factor.cc:
3288 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
3290 * testsuite/23_containers/unordered_set/insert/hash_policy.cc:
3292 * testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
3294 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc:
3296 * testsuite/performance/23_containers/insert/54075.cc: Add benchmark
3297 using the new hash policy.
3298 * testsuite/performance/23_containers/insert_erase/41975.cc: Likewise.
3300 2016-05-24 Jonathan Wakely <jwakely@redhat.com>
3302 * include/bits/stl_queue.h (priority_queue::value_compare): Define.
3304 2016-05-23 François Dumont <fdumont@gcc.gnu.org>
3306 * include/debug/safe_iterator.h
3307 (_Safe_iterator<>::operator->()): Implement using underlying iterator
3309 * include/debug/safe_local_iterator.h
3310 (_Safe_local_iterator<>::operator->()): Likewise.
3312 2016-05-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
3314 * testsuite/experimental/memory_resource/1.cc: Add required argument
3315 to dg-require-atomic-builtins.
3317 2016-05-13 Jonathan Wakely <jwakely@redhat.com>
3320 * include/debug/bitset: Add #pragma GCC system_header.
3321 * include/debug/deque: Likewise.
3322 * include/debug/list: Likewise.
3323 * include/debug/map: Likewise.
3324 * include/debug/set: Likewise.
3325 * include/debug/string: Likewise.
3326 * include/debug/unordered_map: Likewise.
3327 * include/debug/unordered_set: Likewise.
3328 * include/debug/vector: Likewise.
3329 * include/debug/functions.h: Adjust whitespace.
3331 2016-05-12 Jonathan Wakely <jwakely@redhat.com>
3334 * testsuite/experimental/memory_resource/1.cc: Require atomics.
3336 2016-05-11 Jonathan Wakely <jwakely@redhat.com>
3339 * src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_DUAL_ABI]: Don't define
3340 exception constructors with __sso_string parameters.
3342 2016-05-10 Jonathan Wakely <jwakely@redhat.com>
3344 * include/experimental/bits/fs_dir.h (begin, end): Add noexcept.
3345 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
3346 Test begin and end functions.
3347 * testsuite/experimental/filesystem/iterators/
3348 recursive_directory_iterator.cc: Likewise.
3351 * src/filesystem/ops.cc (do_copy_file): Fix backwards conditions.
3352 * testsuite/experimental/filesystem/operations/copy_file.cc: New test.
3354 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
3355 Overload operator* to move from rvalues.
3358 * src/filesystem/ops.cc (create_dir): Handle EEXIST from mkdir.
3359 * testsuite/experimental/filesystem/operations/create_directory.cc:
3363 * src/filesystem/ops.cc (canonical(const path&, const path&)): Add
3364 base path to exception.
3365 * testsuite/experimental/filesystem/operations/canonical.cc: Test
3366 paths contained in exception.
3368 * testsuite/experimental/type_erased_allocator/2.cc: Remove unused
3372 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
3374 (directory_iterator::operator++(int)): Return proxy.
3375 (recursive_directory_iterator::operator++(int)): Likewise.
3376 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
3377 Test post-increment.
3378 * testsuite/experimental/filesystem/iterators/
3379 recursive_directory_iterator.cc: Likewise.
3381 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
3384 * testsuite/experimental/filesystem/iterators/
3385 recursive_directory_iterator.cc: Fix test02 to not call member
3386 functions on invalid iterator, and use VERIFY not assert.
3388 2016-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
3390 Avoid endless run-time recursion for copying single-element
3391 tuples where the element type is by-value constructible
3393 * include/std/tuple (_NotSameTuple): New.
3394 * include/std/tuple (tuple(_UElements&&...): Use it.
3395 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc: New.
3397 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
3400 * include/experimental/bits/fs_dir.h (recursive_directory_iterator):
3401 Initialize scalar member variables in default constructor.
3402 * testsuite/experimental/filesystem/iterators/
3403 recursive_directory_iterator.cc: Test default construction.
3405 2016-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3407 * testsuite/lib/libstdc++.exp (libstdc++_init): Enable on *-*-solaris*.
3409 2016-05-05 Jonathan Wakely <jwakely@redhat.com>
3411 * testsuite/experimental/filesystem/path/native/string.cc: Add
3412 dg-require-filesystem-ts directive.
3414 2016-05-04 Jonathan Wakely <jwakely@redhat.com>
3417 * include/experimental/memory_resource
3418 (__resource_adaptor_imp::do_allocate): Do not default-construct
3420 (__resource_adaptor_imp::do_deallocate): Likewise. Use
3421 allocator_traits to get pointer type.
3422 (__null_memory_resource::do_allocate): Remove unused parameters.
3423 (__null_memory_resource::do_deallocate): Likewise.
3424 (__null_memory_resource::do_is_equal): Likewise. Add return statement.
3425 * testsuite/experimental/type_erased_allocator/1.cc: Combine with ...
3426 * testsuite/experimental/type_erased_allocator/1_neg.cc: This, and
3428 * testsuite/experimental/memory_resource/1.cc: Here.
3429 * testsuite/experimental/memory_resource/null_memory_resource.cc: New.
3430 * testsuite/experimental/memory_resource/resource_adaptor.cc: New.
3432 2016-04-29 Chris Gregory <czipperz@gmail.com>
3434 * config/*: Remove trailing whitespace.
3436 * testsuite/tr1/*: Likewise.
3437 * testsuite/util/*: Likewise.
3439 2016-04-28 Jonathan Wakely <jwakely@redhat.com>
3442 * include/bits/basic_ios.tcc (basic_ios::_M_cache_locale): Use
3444 * include/bits/stream_iterator.h (istream_iterator, ostream_iterator):
3446 * include/std/atomic (atomic<_Tp>): Likewise.
3447 * include/std/shared_mutex (shared_lock): Likewise.
3448 * testsuite/24_iterators/istream_iterator/70766.cc: New test.
3449 * testsuite/24_iterators/ostream_iterator/70766.cc : New test.
3450 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
3451 * testsuite/29_atomics/atomic/70766.cc: New test.
3452 * testsuite/30_threads/shared_lock/70766.cc: New test.
3454 * include/bits/hashtable_policy.h (__detail::_Insert_base,
3455 __detail::_Insert): Improve comments.
3457 2016-04-27 Jonathan Wakely <jwakely@redhat.com>
3460 * include/std/limits: Update comments about DRs.
3461 (numeric_limits<const _Tp>, numeric_limits<volatile _Tp>,
3462 numeric_limits<const volatile _Tp>): Define unconditionally.
3464 2016-04-24 Jonathan Wakely <jwakely@redhat.com>
3467 * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path): Use
3468 static counter to return a different path on every call.
3470 2016-04-22 Tim Shen <timshen@google.com>
3473 * include/bits/regex_executor.tcc (_Executor<>::_M_word_boundary):
3474 Fix the match_not_bow and match_not_eow behavior.
3475 * testsuite/28_regex/regression.cc: Add testcase.
3477 2016-04-20 Jonathan Wakely <jwakely@redhat.com>
3480 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in,
3481 __codecvt_utf8_utf16_base<char16_t>::do_in): Fix mask operations.
3483 2016-04-19 Jonathan Wakely <jwakely@redhat.com>
3486 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in):
3487 Override endianness bit in mode.
3488 * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: New test.
3489 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc: Test
3490 that little_endian mode is ignored.
3491 * testsuite/experimental/filesystem/path/native/string.cc: New test.
3494 * src/filesystem/ops.cc (close_fd): New function.
3495 (do_copy_file): Set permissions before copying file contents. Check
3496 result of closing file descriptors. Don't copy streambuf when file
3498 (copy(const path&, const path&, copy_options, error_code&)): Use
3499 lstat for source file when copy_symlinks is set.
3500 * testsuite/experimental/filesystem/operations/copy.cc: Test copy().
3502 * include/experimental/bits/fs_fwd.h (operator&, operator|, operator^,
3503 operator~ operator&=, operator|=, operator^=): Add noexcept to
3504 overloaded operators for copy_options, perms and directory_options.
3505 * src/filesystem/ops.cc (make_file_type, make_file_status,
3506 is_not_found_errno, file_time): Add noexcept.
3508 2016-04-19 Edward Smith-Rowland <3dw4rd@verizon.net>
3510 * include/bits/c++14_warning.h: Do not refer C++14 as experimental.
3512 2016-04-18 Jonathan Wakely <jwakely@redhat.com>
3515 * include/bits/random.h: Reword static assertion messages to state
3516 positive conditions.
3517 * include/bits/random.tcc: Likewise.
3518 * include/bits/uniform_int_dist.h: Likewise.
3519 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3522 * include/std/function (_Bind, _Bind_result): Remove unused typedefs.
3524 * config/cpu/sh/atomicity.h: Fix typo in comment.
3527 * include/std/thread (operator<, operator==): Move definitions to
3529 * testsuite/30_threads/thread/id/70294.cc: New test.
3531 * testsuite/18_support/bad_exception/23591_thread-1.c: Add
3532 -Wno-pedantic to dg-options.
3533 * testsuite/20_util/align/2.cc: Use type as operand of alignof.
3534 * testsuite/20_util/is_floating_point/value.cc: Add -Wno-pedantic
3536 * testsuite/20_util/specialized_algorithms/uninitialized_fill/32158.cc:
3537 Remove extra semi-colon.
3538 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
3539 Always supply second argument to static_assert.
3540 * testsuite/25_algorithms/lower_bound/no_operator_ne.cc: Remove extra
3542 * testsuite/26_numerics/complex/c99.cc: Add -Wno-pedantic to
3544 * testsuite/26_numerics/complex/literals/values.cc: Likewise.
3545 * testsuite/29_atomics/atomic/60695.cc: Likewise.
3546 * testsuite/29_atomics/atomic/62259.cc: use __alignof__ instead of
3547 alignof when operand is an object not a type.
3548 * testsuite/decimal/ctor.cc: Add -Wno-pedantic to dg-options.
3549 * testsuite/decimal/make-decimal.cc: Likewise.
3550 * testsuite/experimental/type_traits/value.cc: Always supply second
3551 argument to static_assert.
3552 * testsuite/util/testsuite_common_types.h: Use __extension__ for
3555 * testsuite/experimental/type_erased_allocator/1.cc: Don't include
3557 * testsuite/experimental/type_erased_allocator/1_neg.cc: Likewise.
3558 * testsuite/experimental/type_erased_allocator/2.cc: Likewise.
3559 * testsuite/experimental/type_erased_allocator/uses_allocator.cc:
3560 Likewise. Add licence and change to compile-only test.
3562 * include/bits/locale_facets.h (ctype::do_narrow): Add attribute to
3564 * include/bits/regex_automaton.h (_NFA::_M_insert_alt): Likewise.
3566 * include/ext/string_conversions.h (__stoa): Avoid -Wsign-compare
3569 2016-04-17 Edward Smith-Rowland <3dw4rd@verizon.net>
3571 * include/bits/specfun.h: Trivial comment misspelling.
3573 2016-04-14 Jason Merrill <jason@redhat.com>
3575 Revert Jonathan's empty ABI change from yesterday.
3577 2016-04-13 Martin Sebor <msebor@redhat.com>
3580 * testsuite/25_algorithms/rotate/moveable2.cc: Make sure VLA
3581 upper bound is positive.
3583 2016-04-13 Jonathan Wakely <jwakely@redhat.com>
3585 * include/bits/c++config (_GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES,
3586 _GLIBCXX_END_NAMESPACE_EMPTY_TYPES, _GLIBCXX_ABI_TAG_EMPTY): Define.
3587 * include/bits/hashtable.h (_Hashtable::_M_emplace): Change signatures
3588 of functions taking empty structs by value. Add a template parameter
3589 to overloads without hints. Rename overloads with hints to
3591 (_Hashtable::_M_erase(true_type, const_iterator),
3592 _Hashtable::_M_erase(false_type, const_iterator)): Change signatures
3593 by reordering parameters.
3594 * include/bits/hashtable_policy.h (_Insert::insert): Adjust to call
3595 _M_emplace_hint instead of _M_emplace.
3596 * include/bits/shared_ptr.h (shared_ptr(_Tp1*, _Deleter, _Alloc),
3597 shared_ptr(nullptr_t, _Deleter, _Alloc)): Use _GLIBCXX_ABI_TAG_EMPTY.
3598 * include/bits/shared_ptr_base.h (_Sp_counted_deleter, __shared_count,
3599 __shared_ptr): Likewise.
3600 * include/bits/stl_algo.h (replace_if): Likewise.
3601 * include/bits/stl_pair.h (piecewise_construct_t,
3602 piecewise_construct): Use _GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES.
3603 * include/bits/uses_allocator.h (allocator_arg_t, allocator_arg,
3604 __uses_alloc0): Likewise.
3605 * include/ext/pb_ds/assoc_container.hpp (basic_hash_table): Likewise.
3606 * testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error.
3607 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
3608 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
3609 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
3610 * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
3611 * testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.
3613 2016-04-12 Edward Smith-Rowland <3dw4rd@verizon.net>
3615 Document C++17/TR29124 C++ Special Math Functions.
3616 * include/bits/specfun.h: Add Doxygen markup.
3618 2016-04-07 Jonathan Wakely <jwakely@redhat.com>
3620 * testsuite/30_threads/thread/70503.cc: Adjust from xfail to pass.
3622 2016-04-06 Eric Botcazou <ebotcazou@adacore.com>
3624 * src/Makefile.am (libstdc++-symbols.ver): Remove useless /dev/null.
3625 * src/Makefile.in: Regenerate.
3627 2016-04-05 Jonathan Wakely <jwakely@redhat.com>
3630 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Don't test
3631 __atomic_fetch_add for bool.
3632 * configure: Regenerate.
3634 * testsuite/30_threads/thread/70503.cc: Require -static to work.
3637 * src/c++11/thread.cc (execute_native_thread_routine,
3638 execute_native_thread_routine_compat): Give internal linkage.
3639 * testsuite/30_threads/thread/70503.cc: New test.
3641 2016-04-05 Ville Voutilainen <ville.voutilainen@gmail.com>
3644 * include/bits/stl_pair.h (_ConstructiblePair,
3645 _ImplicitlyConvertiblePair, _MoveConstructiblePair,
3646 _ImplicitlyMoveConvertiblePair): Add shortcut conditions
3647 for same-type cases.
3648 * testsuite/20_util/pair/70437.cc: New.
3650 2016-03-24 Jonathan Wakely <jwakely@redhat.com>
3653 * config/abi/pre/gnu.ver: Add new symbol.
3654 * libsupc++/eh_alloc.cc (__gnu_cxx::__freeres): Define.
3655 * testsuite/18_support/free_eh_pool.cc: New test.
3657 2016-03-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
3659 * include/Makefile.am (install-freestanding-headers): Add
3660 concept_check.h and move.h to the installed headers.
3661 * include/Makefile.in: Regenerated.
3662 * include/bits/concept_check.h: Ignore _GLIBCXX_CONCEPT_CHECKS for
3663 freestanding implementations.
3664 * doc/xml/manual/using.xml (_GLIBCXX_CONCEPT_CHECKS): Mention
3665 that this macro has no effect for freestanding implementations.
3666 * doc/html/manual/using_macros.html: Likewise.
3668 2016-02-24 Jonathan Wakely <jwakely@redhat.com>
3671 * include/experimental/tuple (__apply_impl): Qualify get and forward.
3673 2016-02-23 Jonathan Wakely <jwakely@redhat.com>
3675 * doc/xml/manual/using.xml: Document __STDCPP_WANT_MATH_SPEC_FUNCS__.
3676 * doc/html/*: Regenerate.
3679 * include/tr1/cmath (acosh, asinh, atanh, cbrt, copysign, erf, erfc,
3680 exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma, llrint,
3681 llround, log1p, log2, logb, lrint, lround, nan, nearbyint, nextafter,
3682 nexttoward, remainder, remquo, rint, round, scalbln, scalbn, tgamma,
3683 trunc) [__cplusplus >= 201103L]: Import from namespace std.
3684 (fabs) [__cplusplus < 201103L]: Import from namespace std.
3685 * include/tr1/complex (acosh, asinh, atanh) [__cplusplus >= 201103L]:
3687 * testsuite/tr1/headers/c++200x/complex.cc: Add std::fabs to global
3688 namespace before including TR1 headers.
3689 * testsuite/tr1/headers/c++200x/math.cc: New test.
3691 2016-02-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
3694 * include/c_global/cstdarg: Undefine __need___va_list.
3695 * include/c_global/cstddef: Undefine all kinds of __need_*.
3697 2016-02-16 Tim Shen <timshen@google.com>
3700 * include/bits/regex_scanner.h: Add different special character
3701 sets for grep and egrep regex.
3702 * include/bits/regex_scanner.tcc: Use _M_spec_char more uniformly.
3703 * testsuite/28_regex/regression.cc: Add new testcase.
3705 2016-02-08 Jonathan Wakely <jwakely@redhat.com>
3707 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Remove accidentally
3708 added 'constexpr' in previous commit.
3709 * configure: Regenerate.
3712 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Enable isinf and isnan
3713 checks for all targets except *-*-solaris2.* and ensure we find the
3714 libc math.h header not our own.
3715 * configure: Regenerate.
3717 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
3719 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt (FUNC):
3720 New file. Copied over from s390-linux-gnu.
3722 2016-02-04 Jonathan Wakely <jwakely@redhat.com>
3725 * acinclude.m4 (GLIBCXX_ENABLE_C99): Check C99 stdlib.h functions
3726 with -std=c++98 and define _GLIBCXX98_USE_C99_STDLIB.
3727 * config.h.in: Regenerate.
3728 * configure: Regenerate.
3729 * testsuite/21_strings/c_strings/char/69626.cc: New.
3731 * doc/html/index.html: Regenerate.
3733 * doc/xml/manual/containers.xml: Add cross-reference to Dual ABI.
3734 * doc/xml/manual/spine.xml: Update copyright years and author blurb.
3735 * doc/html/*: Regenerate.
3737 2016-02-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
3740 * include/c_compatibility/math.h: Move header guards.
3741 * include/c_compatibility/stdlib.h: Likewise.
3743 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
3746 * config/os/newlib/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3748 2016-01-28 John David Anglin <danglin@gcc.gnu.org>
3751 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Split check for obsolete
3752 isinf and isnan functions into two independent checks. Check on hpux.
3753 * config.h.in: Regenerate.
3754 * configure: Regenerate.
3755 * include/c_global/cmath (isinf(double), isnan(double)): Use
3756 _GLIBCXX_HAVE_OBSOLETE_ISINF and _GLIBCXX_HAVE_OBSOLETE_ISNAN,
3759 2016-01-27 Jakub Jelinek <jakub@redhat.com>
3761 * testsuite/libstdc++-prettyprinters/whatis.cc: Include <random>.
3763 2016-01-27 Jonathan Wakely <jwakely@redhat.com>
3766 * testsuite/ext/special_functions/hyperg/check_value.cc: Use
3767 -ffp-contract=off, and -ffloat-store to disable excess precision.
3768 * testsuite/special_functions/02_assoc_legendre/check_value.cc: Use
3771 2016-01-26 Jonathan Wakely <jwakely@redhat.com>
3774 * include/bits/stl_algobase.h (__copy_move<_IsMove, true,
3775 random_access_iterator_tag>): Check is_move_assignable when moving.
3776 (__copy_move_backwards<_IsMove, true, random_access_iterator_tag>):
3778 * testsuite/25_algorithms/copy/move_iterators/69478.cc: New.
3779 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc: New.
3780 * testsuite/25_algorithms/move/69478.cc: New.
3781 * testsuite/25_algorithms/move_backward/69478.cc: new.
3783 2016-01-26 Andris Pavenis <andris.pavenis@iki.fi>
3785 * include/c_compatibility/stdlib.h: Include wide character related
3786 definitions only when they are available in cstdlib.
3788 2016-01-25 Jonathan Wakely <jwakely@redhat.com>
3791 * include/Makefile.am: Add new header.
3792 * include/Makefile.in: Regenerate.
3793 * include/bits/random.h (uniform_int_distribution): Move to
3794 bits/uniform_int_dist.h.
3795 * include/bits/random.tcc (uniform_int_distribution::operator(),
3796 uniform_int_distribution::__generate_impl): Likewise.
3797 * include/bits/uniform_int_dist.h: New header.
3798 * include/bits/stl_algo.h [__cplusplus >= 201103L]: Include
3799 <bits/uniform_int_dist.h> instead of <random>.
3800 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
3801 move_iterators/1.cc: Include correct header for uninitialized_copy.
3802 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
3803 move_iterators/1.cc: Likewise.
3804 * testsuite/25_algorithms/nth_element/58800.cc: Include correct
3806 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lines.
3808 2016-01-23 John David Anglin <danglin@gcc.gnu.org>
3811 * config/os/hpux/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3813 2016-01-22 Edward Smith-Rowland <3dw4rd@verizon.net>
3815 TR29124 C++ Special Math - <math.h> pulls funcs into global namespace.
3816 * include/c_compatibility/math.h: Import the TR29124 functions
3817 into the global namespace.
3818 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: Remove
3819 xfail and make compile-only.
3820 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: Ditto.
3821 * testsuite/special_functions/03_beta/compile_2.cc: Ditto.
3822 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Ditto.
3823 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Ditto.
3824 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Ditto.
3825 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Ditto.
3826 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Ditto.
3827 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Ditto.
3828 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Ditto.
3829 * testsuite/special_functions/11_ellint_1/compile_2.cc: Ditto.
3830 * testsuite/special_functions/12_ellint_2/compile_2.cc: Ditto.
3831 * testsuite/special_functions/13_ellint_3/compile_2.cc: Ditto.
3832 * testsuite/special_functions/14_expint/compile_2.cc: Ditto.
3833 * testsuite/special_functions/15_hermite/compile_2.cc: Ditto.
3834 * testsuite/special_functions/16_laguerre/compile_2.cc: Ditto.
3835 * testsuite/special_functions/17_legendre/compile_2.cc: Ditto.
3836 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Ditto.
3837 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Ditto.
3838 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Ditto.
3839 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Ditto.
3841 2016-01-22 Jonathan Wakely <jwakely@redhat.com>
3844 * include/bits/valarray_before.h (__fun, __fun_with_valarray): Only
3845 define result_type for types which can be safely used with valarrays.
3846 * testsuite/26_numerics/valarray/69116.cc: New.
3849 * config/os/gnu-linux/os_defines.h: Define
3850 _GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC.
3851 * include/c_global/cmath (isinf, isnan): Check it.
3852 * doc/xml/manual/internals.xml: Document it.
3853 * doc/html/*: Regenerate.
3855 2016-01-21 Jonathan Wakely <jwakely@redhat.com>
3858 * include/bits/cpp_type_traits.h: Ensure C++ language linkage.
3859 * include/ext/type_traits.h: Likewise.
3860 * testsuite/17_intro/headers/c++2011/linkage.cc: Check autoconf macros
3861 for presence of C headers.
3862 * testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Adjust
3863 dg-error line number.
3864 * testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise.
3865 * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise.
3866 * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Likewise.
3868 2016-01-20 Torvald Riegel <triegel@redhat.com>
3871 * config/os/bsd/darwin/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3873 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
3876 * include/c_compatibility/math.h (acosh, asinh, atanh, acbrt,
3877 copysign, erf, erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb,
3878 lgamma, llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
3879 nextafter, nexttoward, remainder, remquo, rint, round, scalbln, scalbn,
3880 tgamma, trunc) [__cplusplus >= 201103L && _GLIBCXX_USE_C99_MATH_TR1]:
3881 Add using declarations.
3882 * testsuite/26_numerics/headers/cmath/60401.cc: New.
3885 * include/c_global/ccomplex: Ensure C++ language linkage.
3886 * include/c_global/cmath: Likewise.
3887 * include/c_global/cstdlib: Likewise.
3888 * include/c_global/ctgmath: Likewise.
3889 * testsuite/17_intro/headers/c++2011/linkage.cc: New.
3891 2016-01-19 Jonathan Wakely <jwakely@redhat.com>
3895 * include/Makefile.am: Use c_compatibility math.h and stdlib.h for
3896 --enable-cheaders=c_global configs.
3897 * include/Makefile.in: Regenerate.
3898 * include/c_compatibility/math.h: Remove obsolete _GLIBCXX_NAMESPACE_C
3899 test and allow inclusion from C files.
3900 * include/c_compatibility/stdlib.h: Likewise. Support freestanding.
3901 (at_quick_exit, quick_exit): Add using directives.
3902 * include/c_global/cmath: Use #include_next for math.h.
3903 * include/c_global/cstdlib: Use #include_next for stdlib.h.
3904 * testsuite/26_numerics/headers/cmath/14608.cc: New.
3905 * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
3906 Remove xfail for most targets.
3907 * testsuite/26_numerics/headers/cstdlib/60401.cc: New.
3909 2016-01-18 Torvald Riegel <triegel@redhat.com>
3911 * include/bits/c++config (_GLIBCXX_USE_WEAK_REF): New.
3912 (_GLIBCXX_TXN_SAFE, _GLIBCXX_TXN_SAFE_DYN): Use _GLIBCXX_USE_WEAK_REF
3913 and move after its definition.
3914 * config/os/aix/os_defines.h (_GLIBCXX_USE_WEAK_REF): Override.
3915 * src/c++11/cow-stdexcept.cc: Use _GLIBCXX_USE_WEAK_REF instead of
3916 __GXX_WEAK__, and only provide transactional clones if
3917 _GLIBCXX_USE_WEAK_REF is true. Don't provide stubs of libitm
3920 2016-01-18 Jonathan Wakely <jwakely@redhat.com>
3923 * testsuite/26_numerics/headers/cmath/60637.cc: Add test.
3926 * include/std/functional (_Function_base::_M_not_empty_function):
3927 Change overloads for pointers to take arguments by value.
3928 * testsuite/20_util/function/cons/57465.cc: Add tests for
3929 pointer-to-member cases.
3932 * src/c++11/cow-stdexcept.cc (_txnal_cow_string_C1_for_exceptions):
3933 Use macros for exception handling and fix unused parameter warning.
3935 2016-01-17 John David Anglin <danglin@gcc.gnu.org>
3938 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
3940 2016-01-17 Torvald Riegel <triegel@redhat.com>
3942 * src/c++11/cow-stdexcept.cc (txnal_read_ptr): Fix static_assert.
3944 2016-01-16 H.J. Lu <hongjiu.lu@intel.com>
3946 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Add
3949 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
3952 * include/bits/uses_allocator.h (__uses_alloc<true, ...>): Add
3953 static assertion that type is constructible from the arguments.
3954 * testsuite/20_util/scoped_allocator/69293_neg.cc: New.
3955 * testsuite/20_util/uses_allocator/69293_neg.cc: New.
3956 * testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error.
3959 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
3960 and isnan on AIX. Quote variables.
3961 * configure: Regenerate.
3963 2016-01-15 Torvald Riegel <triegel@redhat.com>
3965 * include/bits/basic_string.h (basic_string): Declare friends.
3966 * include/bits/c++config (_GLIBCXX_TXN_SAFE,
3967 _GLIBCXX_TXN_SAFE_DYN, _GLIBCXX_USE_ALLOCATOR_NEW): New.
3968 * include/std/stdexcept (logic_error, domain_error, invalid_argument,
3969 length_error, out_of_range, runtime_error, range_error,
3970 underflow_error, overflow_error): Declare members as transaction-safe.
3971 (logic_error, runtime_error): Declare friend functions.
3972 * libsupc++/exception (exception, bad_exception): Declare members as
3974 * src/c++11/cow-stdexcept.cc: Define transactional clones for the
3975 transaction-safe members of exceptions and helper functions.
3976 * libsupc++/eh_exception.cc: Adjust and define transactional clones.
3977 * config/abi/pre/gnu.ver (GLIBCXX_3.4.22) Add transactional clones.
3978 (CXXABI_1.3.10): New.
3979 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): New.
3980 (GLIBCXX_ENABLE_ALLOCATOR): Set ENABLE_ALLOCATOR_NEW.
3981 * configure.ac: Call GLIBCXX_CHECK_SIZE_T_MANGLING.
3982 * include/Makefile.am: Write ENABLE_ALLOCATOR_NEW to c++config.h.
3983 * include/Makefile.in: Regenerate.
3984 * config.h.in: Regenerate.
3985 * configure: Regenerate.
3986 * testsuite/util/testsuite_abi.cc (check_version): Add CXXABI_1.3.10.
3988 2016-01-15 Steve Ellcey <sellcey@imgtec.com>
3990 * include/ext/random.tcc: Use __builtin_isfinite instead of
3993 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
3995 * include/bits/std_mutex.h: Fix Doxygen @file name.
3997 2016-01-14 Edward Smith-Rowland <3dw4rd@verizon.net>
3998 Jonathan Wakely <jwakely@redhat.com>
3999 Florian Goth <CaptainSifff@gmx.de>
4001 Implement TR29124 C++ special Math Functions.
4002 * include/Makefile.am: Add new headers.
4003 * include/Makefile.in: Regenerate.
4004 * include/bits/specfun.h: New.
4005 * include/c_global/cmath: Adjust for both tr1 and tr29124 maths.
4006 * include/tr1/bessel_function.tcc: Ditto.
4007 * include/tr1/beta_function.tcc: Ditto.
4008 * include/tr1/cmath: Ditto.
4009 * include/tr1/ell_integral.tcc: Ditto.
4010 * include/tr1/exp_integral.tcc: Ditto.
4011 * include/tr1/gamma.tcc: Ditto.
4012 * include/tr1/hypergeometric.tcc: Ditto.
4013 * include/tr1/legendre_function.tcc: Ditto.
4014 * include/tr1/modified_bessel_func.tcc: Ditto.
4015 * include/tr1/poly_hermite.tcc: Ditto.
4016 * include/tr1/poly_laguerre.tcc: Ditto.
4017 * include/tr1/riemann_zeta.tcc: Ditto.
4018 * include/tr1/special_function_util.h: Ditto.
4019 * testsuite/ext/special_functions/conf_hyperg: New.
4020 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: New.
4021 * testsuite/ext/special_functions/conf_hyperg/check_value.cc: New.
4022 * testsuite/ext/special_functions/conf_hyperg/compile.cc: New.
4023 * testsuite/ext/special_functions/hyperg: New.
4024 * testsuite/ext/special_functions/hyperg/check_nan.cc: New.
4025 * testsuite/ext/special_functions/hyperg/check_value.cc: New.
4026 * testsuite/ext/special_functions/hyperg/compile.cc: New.
4027 * testsuite/libstdc++-dg/conformance.exp: Add special_functions directory.
4028 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc: New.
4029 * testsuite/special_functions/01_assoc_laguerre/check_value.cc: New.
4030 * testsuite/special_functions/01_assoc_laguerre/compile.cc: New.
4031 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: New.
4032 * testsuite/special_functions/02_assoc_legendre/check_nan.cc: New.
4033 * testsuite/special_functions/02_assoc_legendre/check_value.cc: New.
4034 * testsuite/special_functions/02_assoc_legendre/compile.cc: New.
4035 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: New.
4036 * testsuite/special_functions/03_beta/check_nan.cc: New.
4037 * testsuite/special_functions/03_beta/check_value.cc: New.
4038 * testsuite/special_functions/03_beta/compile.cc: New.
4039 * testsuite/special_functions/03_beta/compile_2.cc: New.
4040 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: New.
4041 * testsuite/special_functions/04_comp_ellint_1/check_value.cc: New.
4042 * testsuite/special_functions/04_comp_ellint_1/compile.cc: New.
4043 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: New.
4044 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: New.
4045 * testsuite/special_functions/05_comp_ellint_2/check_value.cc: New.
4046 * testsuite/special_functions/05_comp_ellint_2/compile.cc: New.
4047 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: New.
4048 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: New.
4049 * testsuite/special_functions/06_comp_ellint_3/check_value.cc: New.
4050 * testsuite/special_functions/06_comp_ellint_3/compile.cc: New.
4051 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: New.
4052 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: New.
4053 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc: New.
4054 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: New.
4055 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: New.
4056 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: New.
4057 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: New.
4058 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: New.
4059 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: New.
4060 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: New.
4061 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: New.
4062 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc: New.
4063 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: New.
4064 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: New.
4065 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: New.
4066 * testsuite/special_functions/10_cyl_neumann/check_value.cc: New.
4067 * testsuite/special_functions/10_cyl_neumann/compile.cc: New.
4068 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: New.
4069 * testsuite/special_functions/11_ellint_1/check_nan.cc: New.
4070 * testsuite/special_functions/11_ellint_1/check_value.cc: New.
4071 * testsuite/special_functions/11_ellint_1/compile.cc: New.
4072 * testsuite/special_functions/11_ellint_1/compile_2.cc: New.
4073 * testsuite/special_functions/12_ellint_2/check_nan.cc: New.
4074 * testsuite/special_functions/12_ellint_2/check_value.cc: New.
4075 * testsuite/special_functions/12_ellint_2/compile.cc: New.
4076 * testsuite/special_functions/12_ellint_2/compile_2.cc: New.
4077 * testsuite/special_functions/13_ellint_3/check_nan.cc: New.
4078 * testsuite/special_functions/13_ellint_3/check_value.cc: New.
4079 * testsuite/special_functions/13_ellint_3/compile.cc: New.
4080 * testsuite/special_functions/13_ellint_3/compile_2.cc: New.
4081 * testsuite/special_functions/14_expint/check_nan.cc: New.
4082 * testsuite/special_functions/14_expint/check_value.cc: New.
4083 * testsuite/special_functions/14_expint/compile.cc: New.
4084 * testsuite/special_functions/14_expint/compile_2.cc: New.
4085 * testsuite/special_functions/15_hermite/check_nan.cc: New.
4086 * testsuite/special_functions/15_hermite/check_value.cc: New.
4087 * testsuite/special_functions/15_hermite/compile.cc: New.
4088 * testsuite/special_functions/15_hermite/compile_2.cc: New.
4089 * testsuite/special_functions/16_laguerre/check_nan.cc: New.
4090 * testsuite/special_functions/16_laguerre/check_value.cc: New.
4091 * testsuite/special_functions/16_laguerre/compile.cc: New.
4092 * testsuite/special_functions/16_laguerre/compile_2.cc: New.
4093 * testsuite/special_functions/17_legendre/check_nan.cc: New.
4094 * testsuite/special_functions/17_legendre/check_value.cc: New.
4095 * testsuite/special_functions/17_legendre/compile.cc: New.
4096 * testsuite/special_functions/17_legendre/compile_2.cc: New.
4097 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: New.
4098 * testsuite/special_functions/18_riemann_zeta/check_value.cc: New.
4099 * testsuite/special_functions/18_riemann_zeta/compile.cc: New.
4100 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: New.
4101 * testsuite/special_functions/19_sph_bessel/check_nan.cc: New.
4102 * testsuite/special_functions/19_sph_bessel/check_value.cc: New.
4103 * testsuite/special_functions/19_sph_bessel/compile.cc: New.
4104 * testsuite/special_functions/19_sph_bessel/compile_2.cc: New.
4105 * testsuite/special_functions/20_sph_legendre/check_nan.cc: New.
4106 * testsuite/special_functions/20_sph_legendre/check_value.cc: New.
4107 * testsuite/special_functions/20_sph_legendre/compile.cc: New.
4108 * testsuite/special_functions/20_sph_legendre/compile_2.cc: New.
4109 * testsuite/special_functions/21_sph_neumann/check_nan.cc: New.
4110 * testsuite/special_functions/21_sph_neumann/check_value.cc: New.
4111 * testsuite/special_functions/21_sph_neumann/compile.cc: New.
4112 * testsuite/special_functions/21_sph_neumann/compile_2.cc: New.
4113 * testsuite/util/specfun_testcase.h: New.
4114 * testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc: More testcases.
4115 * testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc: Ditto.
4116 * testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc: Ditto.
4117 * testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc: Ditto.
4118 * testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc: Ditto.
4119 * testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc: Ditto.
4120 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc: New.
4122 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
4125 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
4126 and isnan functions.
4127 * config.h.in: Regenerate.
4128 * configure: Regenerate.
4129 * include/c_global/cmath (isinf(double), isnan(double))
4130 [_GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN]: Import via using-directive.
4131 * testsuite/26_numerics/headers/cmath/48891.cc: New.
4133 2016-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4136 * configure.host (abi_baseline_pair): Use separate baseline for
4137 Solaris 11+ and Solaris 10 with gld.
4138 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: New file.
4139 * config/abi/post/solaris2.11/baseline_symbols.txt: New file.
4140 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: New file.
4142 2016-01-12 Daniel Kruegler <daniel.kruegler@gmail.com>
4145 * include/std/type_traits: Following N4511, reimplement __is_swappable
4146 and __is_nothrow_swappable. Move __is_swappable to namespace std,
4147 adjust callers. Use __is_nothrow_swappable in swap.
4148 * include/bits/move.h: Use __is_nothrow_swappable in swap.
4149 * testsuite/20_util/is_nothrow_swappable/value.cc: Extend; remove
4150 __is_swappable related tests.
4151 * testsuite/20_util/is_swappable/value.cc: New.
4152 * testsuite/20_util/is_swappable/requirements/
4153 explicit_instantiation.cc: New.
4154 * testsuite/20_util/is_swappable/requirements/typedefs.cc: New.
4155 * testsuite/25_algorithms/swap/68877.cc: New.
4157 2016-01-12 Jonathan Wakely <jwakely@redhat.com>
4159 * testsuite/20_util/function/68995.cc: Test reference_wrapper cases.
4163 * include/std/functional (function::_Invoke): Remove, use result_of.
4164 (function::_Callable): Replace alias template with class template
4165 and use partial specialization instead of _NotSelf alias template.
4166 (function(_Functor)): Add "not self" constraint so that _Callable is
4167 not used while type is incomplete.
4168 * testsuite/20_util/function/69222.cc: New.
4170 2016-01-11 Jonathan Wakely <jwakely@redhat.com>
4173 * include/bits/alloc_traits.h (allocator_traits<allocator<_Tp>>):
4174 Define partial specialization.
4175 * testsuite/20_util/shared_ptr/cons/58659.cc: Add construct and
4176 destroy members to std::allocator explicit specialization.
4178 2016-01-08 Jonathan Wakely <jwakely@redhat.com>
4180 * testsuite/26_numerics/headers/cmath/
4181 c99_classification_macros_c++.cc: Rename to ...
4182 * testsuite/26_numerics/headers/cmath/
4183 c99_classification_macros_c++98.cc: Here and add -std=gnu++98.
4184 * testsuite/26_numerics/headers/cmath/
4185 c99_classification_macros_c++0x.cc: Rename to ...
4186 * testsuite/26_numerics/headers/cmath/
4187 c99_classification_macros_c++11.cc: Here.
4190 * include/bits/uses_allocator.h: Add missing include.
4192 2016-01-07 Jonathan Wakely <jwakely@redhat.com>
4197 * include/bits/stl_iterator.h (back_insert_iterator,
4198 front_insert_iterator, insert_iterator): Use __addressof (LWG 2324).
4199 * include/bits/uses_allocator.h (__use_alloc): Use __addressof.
4200 * include/std/future (__future::base::_State_baseV2::__setter):
4202 * include/std/scoped_allocator (__outermost): Likewise.
4203 * testsuite/20_util/scoped_allocator/69114.cc: New.
4204 * testsuite/20_util/uses_allocator/69114.cc: New.
4205 * testsuite/30_threads/promise/69106.cc: New.
4207 2016-01-06 Jonathan Wakely <jwakely@redhat.com>
4210 * include/bits/basic_string.h (basic_string::_S_copy_chars<_Iterator>):
4211 Remove _GLIBCXX_NOEXCEPT.
4212 testsuite/21_strings/basic_string/cons/char/69092.cc: New.
4214 * include/Makefile.am: Adjust.
4215 * include/Makefile.in: Regenerate.
4216 * include/bits/mutex.h: Rename to bits/std_mutex.h.
4217 * include/std/condition_variable: Adjust include.
4218 * include/std/mutex: Likewise.
4220 2016-01-04 Jakub Jelinek <jakub@redhat.com>
4222 Update copyright years.
4224 Copyright (C) 2016 Free Software Foundation, Inc.
4226 Copying and distribution of this file, with or without modification,
4227 are permitted in any medium without royalty provided the copyright
4228 notice and this notice are preserved.