1 2016-10-11 Jonathan Wakely <jwakely@redhat.com>
3 * include/bits/std_mutex.h (mutex::native_handle)
4 (lock_guard(mutex_type&, adopt_lock_t)
5 (unique_lock(mutex_type&, adopt_lock_t): Add noexcept.
6 * include/std/mutex (recursive_mutex, timed_mutex)
7 (recursive_timed_mutex): Likewise.
9 2016-10-10 Jonathan Wakely <jwakely@redhat.com>
11 * doc/xml/manual/appendix_contributing.xml (contrib.organization):
12 Replace <literallayout> with nested <variablelist> elements. Update
13 some more outdated text.
14 * doc/html/*: Regenerate.
16 2016-10-10 Ville Voutilainen <ville.voutilainen@gmail.com>
18 Make any's copy assignment operator exception-safe,
19 don't copy the underlying value when any is moved,
20 make in_place constructors explicit.
21 * include/std/any (any(in_place_type_t<_ValueType>, _Args&&...)):
23 (any(in_place_type_t<_ValueType>, initializer_list<_Up>, _Args&&...)):
25 (operator=(const any&)): Make strongly exception-safe.
26 (operator=(any&&)): reset() unconditionally in the case where
28 (operator=(_ValueType&&)): Indent the return type.
29 (_Manager_internal<_Tp>::_S_manage): Move in _Op_xfer, don't copy.
30 * testsuite/20_util/any/assign/2.cc: Adjust.
31 * testsuite/20_util/any/assign/exception.cc: New.
32 * testsuite/20_util/any/cons/2.cc: Adjust.
33 * testsuite/20_util/any/cons/explicit.cc: New.
34 * testsuite/20_util/any/misc/any_cast_neg.cc: Ajust.
36 2016-10-10 Jonathan Wakely <jwakely@redhat.com>
38 * doc/xml/manual/appendix_contributing.xml (contrib.organization):
39 Describe other subdirectories and add markup. Remove outdated
40 reference to check-script target.
41 * doc/html/*: Regenerate.
43 * doc/xml/manual/status_cxx2011.xml: Correct C++11 status.
45 * libsupc++/eh_ptr.cc (exception_ptr): Replace _GLIBCXX_USE_NOEXCEPT
48 * include/std/functional (_Bind_result::__enable_if_void): Use alias
49 template instead of class template.
50 (_Bind_result::__disable_if_void): Likewise.
51 (_Bind_result::__call): Adjust uses of __enable_if_void and
54 * doc/xml/manual/intro.xml: Document DR 2296 status.
55 * doc/xml/manual/status_cxx2017.xml: Update status.
56 * include/bits/move.h (__addressof): Add _GLIBCXX_CONSTEXPR and
57 call __builtin_addressof.
58 (addressof): Add _GLIBCXX17_CONSTEXPR.
59 * testsuite/20_util/addressof/requirements/constexpr.cc: New test.
60 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error lineno.
61 * testsuite/20_util/forward/f_neg.cc: Likewise.
63 * include/bits/allocator.h (allocator<T>::is_always_equal): Define.
64 * testsuite/20_util/allocator/requirements/typedefs.cc: Test for
66 * testsuite/util/testsuite_allocator.h
67 (uneq_allocator::is_always_equal): Define as false_type.
69 * include/experimental/numeric (gcd, lcm): Make bool arguments
71 * include/std/numeric (gcd, lcm): Likewise.
72 * testsuite/26_numerics/gcd/gcd_neg.cc: New test.
73 * testsuite/26_numerics/lcm/lcm_neg.cc: New test.
75 * include/bits/shared_ptr.h (enable_shared_from_this::weak_from_this):
77 * include/bits/shared_ptr_base.h
78 (__enable_shared_from_this::weak_from_this): Likewise.
79 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
80 Test exception-specification of weak_from_this.
82 2016-10-07 Jonathan Wakely <jwakely@redhat.com>
84 * doc/xml/manual/status_cxx1998.xml: Improve documentation of
85 implementation-defined properties.
86 * doc/xml/manual/status_cxx2011.xml: Likewise.
87 * doc/xml/manual/status_cxx2017.xml: Likewise.
89 * doc/xml/manual/status_cxx2017.xml: Update status.
90 * include/std/type_traits (has_unique_object_representations): Define.
91 * testsuite/20_util/has_unique_object_representations/value.cc: New.
92 * testsuite/20_util/has_unique_object_representations/requirements/
93 explicit_instantiation.cc: New.
94 * testsuite/20_util/has_unique_object_representations/requirements/
97 2016-10-06 Jonathan Wakely <jwakely@redhat.com>
99 * doc/xml/manual/status_cxx2011.xml: Update status.
100 * include/std/scoped_allocator (__outer_allocator_t, __outermost_type):
101 New helpers for recursive OUTERMOST.
102 (__outermost): Use __outermost_type::_S_outermost.
103 (__do_outermost, scoped_allocator_adaptor::__outermost_type): Remove.
104 (scoped_allocator_adaptor::__outermost_alloc_traits): Use new
105 __outermost_type helper.
106 (scoped_allocator_adaptor::_Constructible): New alias template.
107 (scoped_allocator_adaptor::scoped_allocator_adaptor<_Outer2>):
108 Constrain template constructors.
109 * testsuite/20_util/scoped_allocator/3.cc: New test.
110 * testsuite/20_util/scoped_allocator/outermost.cc: New test.
112 2016-10-05 Jonathan Wakely <jwakely@redhat.com>
115 * testsuite/20_util/not_fn/1.cc: Fix test.
116 * testsuite/experimental/functional/not_fn.cc: Likewise.
119 * include/bits/stl_queue.h (priority_queue): Fix allocator-extended
121 * testsuite/23_containers/priority_queue/allocator.cc: New test.
124 * include/bits/stl_map.h (map::map()): Use nothrow constructibility
125 of comparison function in conditional noexcept.
126 * include/bits/stl_multimap.h (multimap::multimap()): Likewise.
127 * include/bits/stl_multiset.h (multiset::multiset()): Likewise.
128 * include/bits/stl_set.h (set::set()): Likewise.
129 * testsuite/23_containers/map/cons/noexcept_default_construct.cc:
131 * testsuite/23_containers/multimap/cons/noexcept_default_construct.cc:
133 * testsuite/23_containers/multiset/cons/noexcept_default_construct.cc:
135 * testsuite/23_containers/set/cons/noexcept_default_construct.cc:
138 * include/bits/node_handle.h (_Node_handle): Remove invalid and unused
142 * include/experimental/functional (_Not_fn): Remove.
143 (not_fn): Use std::_Not_fn.
144 * include/std/functional (_Not_fn): Add second parameter to
145 disambiguate copying from initialization by not_fn. Define for C++14.
146 (not_fn): Add second argument to initialization.
147 * testsuite/20_util/not_fn/1.cc: Copy call wrapper using
148 direct-initialization.
150 2016-10-03 François Dumont <fdumont@gcc.gnu.org>
152 * src/c++11/shared_ptr.cc (mask, invalid, get_mutex): Move
154 * src/c++11/mutex_pool.h: ... here. New.
155 * src/c++11/debug.cc: Use latter.
157 2016-10-03 Jonathan Wakely <jwakely@redhat.com>
159 * doc/xml/manual/status_cxx2017.xml: Update gcd/lcm status.
160 * doc/html/*: Regenerate.
161 * include/experimental/numeric (__abs): Move to <numeric>.
162 (gcd, lcm): Use __detail::gcd and __detail::lcm.
163 * include/std/numeric (__detail::__abs_integral)
164 (__detail::__gcd, __detail::__lcm): Define.
165 (gcd, lcm): Define for C++17.
166 * testsuite/26_numerics/gcd/1.cc: New test.
167 * testsuite/26_numerics/lcm/1.cc: New test.
168 * testsuite/experimental/numeric/gcd.cc: Swap contents with ...
169 * testsuite/experimental/numeric/lcd.cc: ... this.
173 * config/abi/pre/gnu-versioned-namespace.ver: Add exports for
174 __cxa_thread_atexit and __gnu_cxx::__freeres.
175 * include/Makefile.am: Add <experimental/bits/lfts_config.h>
176 * include/Makefile.in: Regenerate.
177 * include.bits/basic_string.h: Fix nesting of versioned namespaces.
178 * include/bits/c++config: Declare versioned namespaces for literals.
179 * include/bits/regex.h (basic_regex, match_results): Add workarounds
181 * include/bits/uniform_int_dist.h: Fix nesting of versioned namespace.
182 * include/std/chrono: Likewise.
183 * include/std/complex: Likewise.
184 * include/std/string_view: Likewise.
185 * include/std/variant: Likewise. Add workaround for PR c++/59256.
186 * include/experimental/bits/fs_fwd.h: Declare versioned namespace.
187 * include/experimental/bits/lfts_config.h: Declare versioned
189 * include/experimental/algorithm: Include
190 <experimental/bits/lfts_config.h>.
191 * include/experimental/any: Likewise.
192 * include/experimental/bits/erase_if.h: Likewise.
193 * include/experimental/chrono: Likewise.
194 * include/experimental/functional: Likewise.
195 * include/experimental/memory_resource: Likewise.
196 * include/experimental/optional: Likewise.
197 * include/experimental/propagate_const: Likewise.
198 * include/experimental/random: Likewise.
199 * include/experimental/ratio: Likewise.
200 * include/experimental/system_error: Likewise.
201 * include/experimental/tuple: Likewise.
202 * include/experimental/type_traits: Likewise.
203 * include/experimental/utility: Likewise.
204 * include/experimental/string_view: Likewise. Fix nesting of
205 versioned namespaces.
206 * include/experimental/bits/string_view.tcc: Reopen inline namespace
207 for non-inline function definitions.
208 * testsuite/17_intro/using_namespace_std_exp_neg.cc: New test.
209 * testsuite/20_util/duration/literals/range.cc: Adjust dg-error line.
210 * testsuite/experimental/any/misc/any_cast_neg.cc: Likewise.
211 * testsuite/experimental/propagate_const/assignment/move_neg.cc:
213 * testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
214 * testsuite/experimental/propagate_const/requirements2.cc: Likewise.
215 * testsuite/experimental/propagate_const/requirements3.cc: Likewise.
216 * testsuite/experimental/propagate_const/requirements4.cc: Likewise.
217 * testsuite/experimental/propagate_const/requirements5.cc: Likewise.
218 * testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.
221 * include/bits/std_abs.h: Use "C++" language linkage.
222 * testsuite/17_intro/headers/c++2011/linkage.cc: Move <complex.h> to
223 the end. Add <stdalign.h>.
225 2016-10-03 Ville Voutilainen <ville.voutilainen@gmail.com>
228 * testsuite/20_util/tuple/77802.cc: New.
231 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
232 Implement LWG 2729 for tuple.
233 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)):
234 Suppress conditionally.
235 (_Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&&)): Likewise.
236 (__is_tuple_impl_trait_impl, __is_tuple_impl_trait): New.
237 (_Tuple_impl(const _Head&)): Constrain.
238 (_Tuple_impl(_UHead&&)): Likewise.
239 (_Tuple_impl(_Tuple_impl&&)): Suppress conditionally.
240 (_Tuple_impl(const _Tuple_impl<_Idx, _UHead>&)): Constrain.
241 (_Tuple_impl(_Tuple_impl<_Idx, _UHead>&&)): Likewise.
242 (operator=(const tuple&)): Enable conditionally.
243 (operator=(tuple&&)): Suppress conditionally.
244 (operator=(const tuple<_UElements...>&)): Constrain.
245 (operator=(tuple<_UElements...>&&)): Likewise.
246 (operator=(const tuple&)): Enable conditionally (2-param tuple).
247 (operator=(tuple&&)): Suppress conditionally (2-param tuple).
248 (operator=(const tuple<_U1, _U2>&)): Constrain.
249 (operator=(tuple<_U1, _U2>&&)): Likewise.
250 (operator=(const pair<_U1, _U2>&)): Likewise.
251 (operator=(pair<_U1, _U2>&&)): Likewise.
252 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust.
253 * testsuite/20_util/tuple/tuple_traits.cc: New.
255 2016-09-30 Jonathan Wakely <jwakely@redhat.com>
258 * acinclude.m4 (GLIBCXX_CHECK_STDIO_PROTO): Use -std=gnu++11 to check
260 * config.h.in: Regenerate.
261 * configure: Regenerate.
262 * include/c_global/cstdio [!_GLIBCXX_HAVE_GETS] (gets): Only declare
264 * include/c_std/cstdio [!_GLIBCXX_HAVE_GETS] (gets): Likewise.
265 * testsuite/27_io/headers/cstdio/functions_neg.cc: New test.
267 * doc/xml/manual/intro.xml: Document LWG 2192 changes.
268 * doc/html/*: Regenerate.
269 * include/Makefile.am: Add bits/std_abs.h.
270 * include/Makefile.in: Regenerate.
271 * include/bits/std_abs.h: New header defining all required overloads
272 of std::abs in one place (LWG 2294).
273 * include/c_global/cmath (abs(double), abs(float), abs(long double)):
274 Move to bits/std_abs.h.
275 (abs<_Tp>(_Tp)): Remove.
276 * include/c_global/cstdlib (abs(long), abs(long long), abs(__int<N>)):
277 Move to bits/std_abs.h.
278 * testsuite/26_numerics/headers/cmath/dr2192.cc: New test.
279 * testsuite/26_numerics/headers/cmath/dr2192_neg.cc: New test.
280 * testsuite/26_numerics/headers/cstdlib/dr2192.cc: New test.
281 * testsuite/26_numerics/headers/cstdlib/dr2192_neg.cc: New test.
284 * include/experimental/numeric: Include <numeric>.
286 (gcd, lcm): Use __abs instead of std::abs.
287 * testsuite/experimental/numeric/77801.cc: New test.
288 * testsuite/experimental/numeric/gcd.cc: Test unsigned inputs.
289 * testsuite/experimental/numeric/lcm.cc: Likewise.
291 2016-09-29 Ville Voutilainen <ville.voutilainen@gmail.com>
293 Make optional::reset noexcept, make optional::value
294 work in constant expressions.
295 * include/std/optional (_M_get): Make constexpr.
296 (reset): Make noexcept.
297 * testsuite/20_util/optional/assignment/7.cc: New.
298 * testsuite/20_util/optional/observers/6.cc: New.
300 2016-09-29 Jonathan Wakely <jwakely@redhat.com>
302 * include/c_global/cmath (hypot, __hypot3): Move C++17 overloads
303 outside _GLIBCXX_USE_C99_MATH_TR1 condition.
305 2016-09-29 Alan Modra <amodra@gmail.com>
307 * configure.ac (LONG_DOUBLE_COMPAT_FLAGS): New ACSUBST.
308 * src/Makefile.am (compatibility-ldbl.o, compatibility-ldbl.lo):
309 Use LONG_DOUBLE_COMPAT_FLAGS.
310 * Makefile.in: Regenerate.
311 * configure: Regenerate.
312 * doc/Makefile.in: Regenerate.
313 * include/Makefile.in: Regenerate.
314 * libsupc++/Makefile.in: Regenerate.
315 * po/Makefile.in: Regenerate.
316 * python/Makefile.in: Regenerate.
317 * src/Makefile.in: Regenerate.
318 * src/c++11/Makefile.in: Regenerate.
319 * src/c++98/Makefile.in: Regenerate.
320 * src/filesystem/Makefile.in: Regenerate.
321 * testsuite/Makefile.in: Regenerate.
323 2016-09-28 Jonathan Wakely <jwakely@redhat.com>
325 * include/std/chrono (system_clock): Fix typo in comment.
327 * include/experimental/bits/fs_fwd.h (file_time_type): Simplify
329 * src/filesystem/ops.cc (file_time): Take error_code parameter and
331 (do_copy_file, last_write_time): Pass error_code in file_time calls.
332 * testsuite/experimental/filesystem/operations/last_write_time.cc:
334 * testsuite/util/testsuite_fs.h (scoped_file): Define RAII helper.
337 * include/std/functional (_Any_data): Add may_alias attribute.
339 2016-09-27 Jonathan Wakely <jwakely@redhat.com>
341 * doc/xml/manual/status_cxx2017.xml: Update status.
342 * doc/html/*: Regenerate.
343 * include/std/functional (__cpp_lib_boyer_moore_searcher): Define.
344 * testsuite/20_util/function_objects/searchers.cc: Test feature macro.
346 * doc/xml/manual/status_cxx2017.xml: Update status.
347 * include/c_global/cmath (hypot): Add three-dimensional overloads.
348 * testsuite/26_numerics/headers/cmath/hypot.cc: New.
350 2016-09-26 Ville Voutilainen <ville.voutilainen@gmail.com>
353 * include/std/optional (optional(const optional<_Up>&)):
354 Default-initialize the base and use emplace.
355 (optional(optional<_Up>&&)): Likewise.
356 * testsuite/20_util/optional/cons/77727.cc: New.
358 2016-09-26 François Dumont <fdumont@gcc.gnu.org>
360 * include/debug/safe_base.h
361 (_Safe_iterator_base::_M_detach_single): Make public.
363 2016-09-26 Jonathan Wakely <jwakely@redhat.com>
365 * include/bits/range_access.h (__cpp_lib_array_constexpr): Do not
366 redefine macro defined in <bits/stl_iterator.h>.
368 * include/bits/stl_map.h (map::extract(const_iterator)): Assert that
369 iterator is not past-the-end.
370 * include/bits/stl_multimap.h (multimap::extract(const_iterator)):
372 * include/bits/stl_multiset.h (multiset::extract(const_iterator)):
374 * include/bits/stl_set.h (set::extract(const_iterator)): Likewise.
375 * include/bits/unordered_map.h (unordered_map::extract(const_iterator))
376 (unordered_multimap::extract(const_iterator)): Likewise.
377 * include/bits/unordered_set.h (unordered_set::extract(const_iterator))
378 (unordered_multiset::extract(const_iterator)): Likewise.
380 2016-09-26 Ville Voutilainen <ville.voutilainen@gmail.com>
383 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
384 Fix an out-of-bounds access.
386 2016-09-26 Marek Polacek <polacek@redhat.com>
389 * libsupc++/hash_bytes.cc: Add [[gnu::fallthrough]].
391 2016-09-25 François Dumont <fdumont@gcc.gnu.org>
393 * src/c++11/debug.cc: Include debug/vector. Include cctype. Remove
395 (get_safe_base_mutex): Get mutex based on address lowest non nil bits.
396 * testsuite/23_containers/vector/debug/mutex_association.cc: New.
398 * include/debug/bitset (bitset::reference::reference(const _Base_ref&,
399 bitset*)): Remove __unused__ attribute.
400 * include/debug/safe_base.h (_Safe_iterator_base): Make
401 _Safe_sequence_base a friend.
402 (_Safe_iterator_base::_M_attach): Make protected.
403 (_Safe_iterator_base::_M_attach_single): Likewise.
404 (_Safe_iterator_base::_M_detach): Likewise.
405 (_Safe_iterator_base::_M_detach_single): Likewise.
406 (_Safe_sequence_base): Make _Safe_iterator_base a friend.
407 (_Safe_sequence_base::_Safe_sequence_base(_Safe_sequence_base&&)): New.
408 (_Safe_sequence_base::_M_swap): Make protected.
409 (_Safe_sequence_base::_M_attach): Make private.
410 (_Safe_sequence_base::_M_attach_single): Likewise.
411 (_Safe_sequence_base::_M_detach): Likewise.
412 (_Safe_sequence_base::_M_detach_single): Likewise.
413 * include/debug/safe_container.h
414 (_Safe_container::_Safe_container(_Safe_container&&)): Make default.
415 * include/debug/safe_iterator.h
416 (_Safe_iterator::operator++()): Name __scoped_lock instance.
417 * include/debug/safe_iterator.tcc: Remove trailing line.
418 * include/debug/safe_unordered_base.h
419 (_Safe_local_iterator_base::_M_attach): Make protected.
420 (_Safe_local_iterator_base::_M_attach_single): Likewise.
421 (_Safe_local_iterator_base::_M_detach): Likewise.
422 (_Safe_local_iterator_base::_M_detach_single): Likewise.
423 (_Safe_unordered_container_base): Make _Safe_local_iterator_base friend.
424 (_Safe_unordered_container_base::_M_attach_local): Make private.
425 (_Safe_unordered_container_base::_M_attach_local_single): Likewise.
426 (_Safe_unordered_container_base::_M_detach_local): Likewise.
427 (_Safe_unordered_container_base::_M_detach_local_single): Likewise.
429 * include/parallel/algo.h: Generalize usage of std::__iterator_category.
432 2016-09-23 Jonathan Wakely <jwakely@redhat.com>
436 * include/bits/basic_string.h (basic_string::clear()): Drop reference
438 * include/ext/rc_string_base.h (__rc_string_base::_M_clear()):
440 * testsuite/21_strings/basic_string/56166.cc: New.
441 * testsuite/ext/vstring/modifiers/clear/56166.cc: New.
443 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
444 (basic_string::erase(size_type, size_type)): Add fast path for
445 truncating the string, by calling _M_set_length directly.
446 (basic_string::erase(__const_iterator, __const_iterator)): Likewise.
447 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
448 (basic_string::resize(size_type, _CharT)): Likewise.
450 2016-09-22 Jason Merrill <jason@redhat.com>
452 * configure.ac: Define HAVE_MEMALIGN for newlib.
454 2015-09-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
456 * config/cpu/m68k/atomicity.h: Adjust comment.
457 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Honor
458 explicit atomicity_dir setup via configure.host.
459 * configure.host (rtems-*): Set atomicity_dir.
460 * configure: Regenerate.
462 2016-09-22 Jonathan Wakely <jwakely@redhat.com>
464 Implement C++17 node extraction and insertion (P0083R5)
465 * doc/xml/manual/status_cxx2017.xml: Document status.
466 * doc/html/*: Regenerate.
467 * include/Makefile.am: Add bits/node_handle.h and reorder.
468 * include/Makefile.in: Regenerate.
469 * include/bits/hashtable.h (_Hashtable::node_type)
470 (_Hashtable::insert_return_type, _Hashtable::_M_reinsert_node)
471 (_Hashtable::_M_reinsert_node_multi, _Hashtable::extract)
472 (_Hashtable::_M_merge_unique, _Hashtable::_M_merge_multi): Define.
473 (_Hash_merge_helper): Define primary template.
474 * include/bits/node_handle.h: New header.
475 * include/bits/stl_map.h (map): Declare _Rb_tree_merge_helper as
477 (map::node_type, map::insert_return_type, map::extract, map::merge)
478 (map::insert(node_type&&), map::insert(const_iterator, node_type&&)):
480 (_Rb_tree_merge_helper): Specialize for map.
481 * include/bits/stl_multimap.h (multimap): Declare _Rb_tree_merge_helper
483 (multimap::node_type, multimap::extract, multimap::merge)
484 (multimap::insert(node_type&&))
485 (multimap::insert(const_iterator, node_type&&)): Define.
486 (_Rb_tree_merge_helper): Specialize for multimap.
487 * include/bits/stl_multiset.h (multiset): Declare _Rb_tree_merge_helper
489 (multiset::node_type, multiset::extract, multiset::merge)
490 (multiset::insert(node_type&&))
491 (multiset::insert(const_iterator, node_type&&)): Define.
492 * include/bits/stl_set.h (set): Declare _Rb_tree_merge_helper as
494 (set::node_type, set::insert_return_type, set::extract, set::merge)
495 (set::insert(node_type&&), set::insert(const_iterator, node_type&&)):
497 (_Rb_tree_merge_helper): Specialize for set.
498 * include/bits/stl_tree.h (_Rb_tree): Declare _Rb_tree<> as friend.
499 (_Rb_tree::node_type, _Rb_tree::insert_return_type)
500 (_Rb_tree::_M_reinsert_node_unique, _Rb_tree::_M_reinsert_node_equal)
501 (_Rb_tree::_M_reinsert_node_hint_unique)
502 (_Rb_tree::_M_reinsert_node_hint_equal, _Rb_tree::extract)
503 (_Rb_tree::_M_merge_unique, _Rb_tree::_M_merge_equal): Define.
504 (_Rb_tree_merge_helper): Specialize for multiset.
505 * include/bits/unordered_map.h (unordered_map): Declare
506 unordered_map<> and unordered_multimap<> as friends.
507 (unordered_map::node_type, unordered_map::insert_return_type)
508 (unordered_map::extract, unordered_map::merge)
509 (unordered_map::insert(node_type&&))
510 (unordered_map::insert(const_iterator, node_type&&))
511 (unordered_multimap): Declare _Hash_merge_helper as friend.
512 (unordered_multimap::node_type, unordered_multimap::extract)
513 (unordered_multimap::merge, unordered_multimap::insert(node_type&&))
514 (unordered_multimap::insert(const_iterator, node_type&&)): Define.
515 (_Hash_merge_helper): Specialize for unordered maps and multimaps.
516 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
517 Declare _Hash_merge_helper as friend.
518 (unordered_set::node_type, unordered_set::insert_return_type)
519 (unordered_set::extract, unordered_set::merge)
520 (unordered_set::insert(node_type&&))
521 (unordered_set::insert(const_iterator, node_type&&)): Define.
522 (unordered_multiset::node_type, unordered_multiset::extract)
523 (unordered_multiset::merge, unordered_multiset::insert(node_type&&))
524 (unordered_multiset::insert(const_iterator, node_type&&)): Define.
525 (_Hash_merge_helper): Specialize for unordered sets and multisets.
526 * include/debug/map.h (map): Add using declarations or forwarding
527 functions for new members.
528 * include/debug/map.h (multimap): Likewise.
529 * include/debug/map.h (multiset): Likewise.
530 * include/debug/map.h (set): Likewise.
531 * include/debug/unordered_map (unordered_map, unordered_multimap):
533 * include/debug/unordered_set( unordered_set, unordered_multiset):
535 * python/libstdcxx/v6/printers.py (get_value_from_aligned_membuf): New
537 (get_value_from_list_node, get_value_from_Rb_tree_node): Use helper.
538 (StdNodeHandlePrinter): Define printer for node handles.
539 (build_libstdcxx_dictionary): Register StdNodeHandlePrinter.
540 * testsuite/23_containers/map/modifiers/extract.cc: New.
541 * testsuite/23_containers/map/modifiers/merge.cc: New.
542 * testsuite/23_containers/multimap/modifiers/extract.cc: New.
543 * testsuite/23_containers/multimap/modifiers/merge.cc: New.
544 * testsuite/23_containers/multiset/modifiers/extract.cc: New.
545 * testsuite/23_containers/multiset/modifiers/merge.cc: New.
546 * testsuite/23_containers/set/modifiers/extract.cc: New.
547 * testsuite/23_containers/set/modifiers/merge.cc: New.
548 * testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
549 * testsuite/23_containers/unordered_map/modifiers/merge.cc: New.
550 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
552 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc: New.
553 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
555 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc: New.
556 * testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
557 * testsuite/23_containers/unordered_set/modifiers/merge.cc: New.
558 * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
560 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test node handles.
562 2016-09-22 Ville Voutilainen <ville.voutilainen@gmail.com>
564 Fix tests on old arm platforms for optional.
565 * testsuite/20_util/optional/77288.cc: Don't use exception_ptr.
567 2016-09-22 Jonathan Wakely <jwakely@redhat.com>
569 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Adjust for
570 recent change to _Variant_storage.
571 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test variant with
574 * include/bits/uses_allocator.h (__uses_allocator_construct): Qualify
575 std::forward and ::new. Cast pointer to void*.
576 * include/std/variant (_Variant_storage, _Union, _Variant_base)
577 (__access, __visit_invoke, variant, visit): Qualify std::forward.
578 * testsuite/20_util/variant/compile.cc: Test for ADL problems.
580 2016-09-22 Tim Shen <timshen@google.com>
582 * include/std/variant (variant::operator=): Fix assignment
584 * testsuite/20_util/variant/compile.cc: Add test.
586 2016-09-22 Tim Shen <timshen@google.com>
589 * include/std/variant (_Variant_storage::_Variant_storage):
590 Change _Variant_storage's union to be default constructible.
591 * testsuite/20_util/variant/compile.cc: New test.
593 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
596 * include/std/optional (__is_optional_impl, __is_optional): Remove.
597 (__converts_from_optional, __assigns_from_optional): New.
598 (optional(_Up&&)): Use is_same instead of __is_optional.
599 (optional(const optional<_Up>&)): Constrain with
600 __converts_from_optional.
601 (optional(optional<_Up>&&)): Likewise.
602 (operator=(_Up&&)): Use is_same instead of __is_optional, check
603 is_same and is_scalar.
604 (operator=(const optional<_Up>&)): Constrain with
605 __converts_from_optional and __assigns_from_optional.
606 (operator=(optional<_Up>&&)): Likewise.
607 * testsuite/20_util/optional/77288.cc: New.
608 * testsuite/20_util/optional/cons/value.cc: Adjust.
610 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
612 Implement LWG 2729 for tuple.
613 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)):
614 Suppress conditionally.
615 (_Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&&)): Likewise.
616 (__is_tuple_impl_trait_impl, __is_tuple_impl_trait): New.
617 (_Tuple_impl(const _Head&)): Constrain.
618 (_Tuple_impl(_UHead&&)): Likewise.
619 (_Tuple_impl(_Tuple_impl&&)): Suppress conditionally.
620 (_Tuple_impl(const _Tuple_impl<_Idx, _UHead>&)): Constrain.
621 (_Tuple_impl(_Tuple_impl<_Idx, _UHead>&&)): Likewise.
622 (operator=(const tuple&)): Enable conditionally.
623 (operator=(tuple&&)): Suppress conditionally.
624 (operator=(const tuple<_UElements...>&)): Constrain.
625 (operator=(tuple<_UElements...>&&)): Likewise.
626 (operator=(const tuple&)): Enable conditionally (2-param tuple).
627 (operator=(tuple&&)): Suppress conditionally (2-param tuple).
628 (operator=(const tuple<_U1, _U2>&)): Constrain.
629 (operator=(tuple<_U1, _U2>&&)): Likewise.
630 (operator=(const pair<_U1, _U2>&)): Likewise.
631 (operator=(pair<_U1, _U2>&&)): Likewise.
632 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust.
633 * testsuite/20_util/tuple/tuple_traits.cc: New.
635 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
638 Implement LWG 2729 for pair.
639 * include/bits/stl_pair.h (_PCC): New.
640 (_ConstructiblePair, _ImplicitlyConvertiblePair):
641 Turn into static member functions of _PCC.
642 (_MoveConstructiblePair, _ImplicitlyMoveConvertiblePair): Likewise.
644 (pair(const _T1&, const _T2&)): Adjust.
646 (pair(const pair<_U1, _U2>&)): Adjust.
647 (pair(_U1&&, const _T2&)): Likewise.
648 (pair(const _T1&, _U2&&)): Likewise.
649 (pair(_U1&&, _U2&&)): Likewise.
650 (pair(pair<_U1, _U2>&&)): Likewise.
651 (operator=(const pair&)): Make conditionally deleted.
652 (operator=(pair&&)): Make conditionally suppressed.
653 (operator=(const pair<_U1, _U2>&)): Constrain.
654 (operator=(pair<_U1, _U2>&&): Likewise.
655 * include/std/type_traits (__nonesuch): New.
656 * testsuite/20_util/pair/traits.cc: New.
658 2016-09-20 Ville Voutilainen <ville.voutilainen@gmail.com>
661 * include/bits/stl_construct.h: (_Construct_novalue): New.
662 (_Destroy_n_aux, _Destroy_n): New.
663 * include/bits/stl_uninitialized.h: (type_traits):
664 New include in C++11 mode.
665 (__uninitialized_default_novalue_1): New.
666 (__uninitialized_default_novalue_n_1): Likewise.
667 (__uninitialized_default_novalue): Likewise.
668 (__uninitialized_default_novalue_n): Likewise.
669 (__uninitialized_copy_n_pair): Likewise.
670 (uninitialized_default_construct):
671 Use __uninitialized_default_novalue.
672 (uninitialized_default_construct_n):
673 Use __uninitialized_default_novalue_n.
674 (uninitialized_value_construct): Use __uninitialized_default.
675 (uninitialized_value_construct_n): Use __uninitialized_default_n.
676 (uninitialized_move): Use uninitialized_copy.
677 (uninitialized_move_n): Use __uninitialized_copy_n_pair.
678 (destroy_at): Use _Destroy.
680 (destroy_n): Likewise.
681 * testsuite/20_util/specialized_algorithms/
682 memory_management_tools/1.cc: Add tests for exceptions,
683 add tests for trivial cases for construct and move.
685 2016-09-20 Jonathan Wakely <jwakely@redhat.com>
687 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
688 (DequeWorkerBase.index, VectorWorkerBase.get): Use // for division.
690 2016-09-19 Jonathan Wakely <jwakely@redhat.com>
693 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
694 (DequeWorkerBase.index, VectorWorkerBase.get): Cast results of
695 division to int to work with Python 3.
697 * testsuite/lib/gdb-test.exp (gdb-test): Fail if Python error occurs.
699 * python/libstdcxx/v6/printers.py (SingleObjContainerPrinter): Allow
700 display_hint to be set by subclasses.
701 (StdVariantPrinter): Use array for display_hint. Adjust output to be
702 more similar to std::any and std::optional output.
703 (register_type_printers): Add type printers for basic_string_view
704 typedefs and experimental::any. Adjust type printers for
705 fundamentals_v1 templates to match fundamentals_v2 and later.
706 * testsuite/libstdc++-prettyprinters/cxx17.cc: New.
709 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.index): Rename
711 (ListWorkerBase.get_value_from_node): Define new method.
712 (ListFrontWorker.__call__, ListBackWorker.__call__): Use it.
714 2016-09-17 Jonathan Wakely <jwakely@redhat.com>
716 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Define.
717 (StdExpAnyPrinter, StdExpOptionalPrinter, StdExpStringViewPrinter):
718 Register for C++17 components in namespace std. Strip inline namespace
721 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
723 * doc/xml/manual/profile_mode.xml: Fix typo.
724 * doc/html/manual/profile_mode_devel.html: Regenerate.
726 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
727 Marc Glisse <marc.glisse@inria.fr>
729 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_ALIGNED_ALLOC]
730 (operator new(size_t, align_val_t)): Replace modulus operator with
733 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
735 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_POSIX_MEMALIGN] (aligned_alloc):
736 Increase alignment if less than sizeof(void*).
737 [_GLIBCXX_HAVE_ALIGNED_ALLOC] (operator new(size_t, align_val_t)):
738 Increase size if not a multiple of alignment.
740 2016-09-15 Jonathan Wakely <jwakely@redhat.com>
742 * doc/xml/manual/debug_mode.xml: Minor editorial fixes.
743 * doc/html/*: Regenerate.
745 * testsuite/23_containers/vector/debug/insert6_neg.cc: Remove
747 * testsuite/util/debug/checks.h (generate_unique<bool>): Specialize.
749 2016-09-14 Marek Polacek <polacek@redhat.com>
751 * testsuite/23_containers/vector/debug/insert6_neg.cc: Use
754 2016-09-14 Christophe Lyon <christophe.lyon@linaro.org>
756 * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
757 Move dg-do directive before dg-skip.
758 * testsuite/21_strings/debug/iterator_self_move_assign_neg.cc:
759 Move dg-do directive before dg-require.
760 * testsuite/21_strings/debug/self_move_assign_neg.cc: Likewise.
761 * testsuite/23_containers/vector/debug/57779_neg.cc: Likewise.
762 * testsuite/23_containers/vector/debug/60587_neg.cc: Likewise.
763 * testsuite/23_containers/vector/debug/assign1_neg.cc: Likewise.
764 * testsuite/23_containers/vector/debug/assign2_neg.cc: Likewise.
765 * testsuite/23_containers/vector/debug/assign3_neg.cc: Likewise.
766 * testsuite/23_containers/vector/debug/construct1_neg.cc: Likewise.
767 * testsuite/23_containers/vector/debug/construct2_neg.cc: Likewise.
768 * testsuite/23_containers/vector/debug/construct3_neg.cc: Likewise.
769 * testsuite/23_containers/vector/debug/insert1_neg.cc: Likewise.
770 * testsuite/23_containers/vector/debug/insert2_neg.cc: Likewise.
771 * testsuite/23_containers/vector/debug/insert3_neg.cc: Likewise.
772 * testsuite/23_containers/vector/debug/insert5_neg.cc: Likewise.
773 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Likewise.
774 * testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
776 * testsuite/25_algorithms/pop_heap/empty2_neg.cc: Likewise.
777 * testsuite/25_algorithms/pop_heap/empty_neg.cc: Likewise.
778 * testsuite/27_io/objects/char/12048-5.cc: Likewise.
779 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Likewise.
780 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
782 2016-09-13 Ville Voutilainen <ville.voutilainen@gmail.com>
784 Implement P0040R3, Extending memory management tools.
785 * include/bits/stl_uninitialized.h (utility): New include
787 (uninitialized_default_construct): New.
788 (uninitialized_default_construct_n): Likewise.
789 (uninitialized_value_construct): Likewise.
790 (uninitialized_value_construct_n): Likewise.
791 (uninitialized_move): Likewise.
792 (uninitialized_move_n): Likewise.
793 (destroy_at, destroy, destroy_n): Likewise.
794 * testsuite/20_util/specialized_algorithms/memory_management_tools/
797 2016-09-12 Jason Merrill <jason@redhat.com>
799 * config/abi/pre/gnu.ver: Use [jmy] for size_t.
801 2016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
803 Implement P0253R1, Fixing a design mistake in the searchers
804 interface in Library Fundamentals.
805 * include/std/functional: (utility): New include in C++17 mode.
806 (default_searcher): Use a pair as return type, adjust the definition.
807 (boyer_moore_searcher): Likewise.
808 (boyer_moore_horspool_searcher): Likewise.
809 * testsuite/20_util/function_objects/searchers.cc: Adjust.
811 2016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
813 Implement C++17 string searchers.
814 * include/std/functional: (unordered_map, vector): New includes
816 (array, bits/stl_algo.h): Likewise.
817 (default_searcher, __boyer_moore_map_base): New.
818 (__boyer_moore_array_base, __is_std_equal_to): Likewise.
819 (__boyer_moore_base_t, boyer_moore_searcher): Likewise.
820 (boyer_moore_horspool_searcher, make_default_searcher): Likewise.
821 (make_boyer_moore_searcher): Likewise.
822 (make_boyer_moore_horspool_searcher): Likewise.
823 * testsuite/20_util/function_objects/searchers.cc: New.
825 2016-09-12 Matthew Wahab <matthew.wahab@arm.com>
827 * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
828 Move dg-do directive before dg-require.
829 * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc: Likewise.
830 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
832 * testsuite/22_locale/codecvt/utf8.cc: Likewise.
833 * testsuite/22_locale/locale/cons/unicode.cc: Likewise.
834 * testsuite/23_containers/deque/debug/assign1_neg.cc: Likewise.
835 * testsuite/23_containers/deque/debug/assign2_neg.cc: Likewise.
836 * testsuite/23_containers/deque/debug/assign3_neg.cc: Likewise.
837 * testsuite/23_containers/deque/debug/construct1_neg.cc: Likewise.
838 * testsuite/23_containers/deque/debug/construct2_neg.cc: Likewise.
839 * testsuite/23_containers/deque/debug/construct3_neg.cc: Likewise.
840 * testsuite/23_containers/deque/debug/insert1_neg.cc: Likewise.
841 * testsuite/23_containers/deque/debug/insert2_neg.cc: Likewise.
842 * testsuite/23_containers/deque/debug/insert3_neg.cc: Likewise.
843 * testsuite/23_containers/deque/debug/insert5_neg.cc: Likewise.
844 * testsuite/23_containers/deque/debug/iterator_self_move_assign_neg.cc:
846 * testsuite/23_containers/deque/debug/self_move_assign_neg.cc:
848 * testsuite/23_containers/deque/debug/shrink_to_fit.cc: Likewise.
849 * testsuite/23_containers/forward_list/debug/60499.cc: Likewise.
850 * testsuite/23_containers/forward_list/debug/construct1_neg.cc:
852 * testsuite/23_containers/forward_list/debug/construct2_neg.cc:
854 * testsuite/23_containers/forward_list/debug/construct3_neg.cc:
856 * testsuite/23_containers/forward_list/debug/erase_after1_neg.cc:
858 * testsuite/23_containers/forward_list/debug/erase_after2_neg.cc:
860 * testsuite/23_containers/forward_list/debug/erase_after3_neg.cc:
862 * testsuite/23_containers/forward_list/debug/erase_after4_neg.cc:
864 * testsuite/23_containers/forward_list/debug/erase_after5_neg.cc:
866 * testsuite/23_containers/forward_list/debug/erase_after6_neg.cc:
868 * testsuite/23_containers/forward_list/debug/erase_after7_neg.cc:
870 * testsuite/23_containers/forward_list/debug/erase_after8_neg.cc:
872 * testsuite/23_containers/forward_list/debug/erase_after9_neg.cc:
874 * testsuite/23_containers/forward_list/debug/insert_after1_neg.cc:
876 * testsuite/23_containers/forward_list/debug/insert_after2_neg.cc:
878 * testsuite/23_containers/forward_list/debug/insert_after3_neg.cc:
880 * testsuite/23_containers/forward_list/debug/insert_after4_neg.cc:
882 * testsuite/23_containers/forward_list/debug/
883 iterator_self_move_assign_neg.cc: Likewise.
884 * testsuite/23_containers/forward_list/debug/self_move_assign_neg.cc:
886 * testsuite/23_containers/forward_list/debug/splice_after1_neg.cc:
888 * testsuite/23_containers/forward_list/debug/splice_after2_neg.cc:
890 * testsuite/23_containers/forward_list/debug/splice_after3_neg.cc:
892 * testsuite/23_containers/forward_list/debug/splice_after4_neg.cc:
894 * testsuite/23_containers/forward_list/debug/splice_after5_neg.cc:
896 * testsuite/23_containers/forward_list/debug/splice_after6_neg.cc:
898 * testsuite/23_containers/forward_list/debug/splice_after7_neg.cc:
900 * testsuite/23_containers/list/debug/assign1_neg.cc: Likewise.
901 * testsuite/23_containers/list/debug/assign2_neg.cc: Likewise.
902 * testsuite/23_containers/list/debug/assign3_neg.cc: Likewise.
903 * testsuite/23_containers/list/debug/construct1_neg.cc: Likewise.
904 * testsuite/23_containers/list/debug/construct2_neg.cc: Likewise.
905 * testsuite/23_containers/list/debug/construct3_neg.cc: Likewise.
906 * testsuite/23_containers/list/debug/insert1_neg.cc: Likewise.
907 * testsuite/23_containers/list/debug/insert2_neg.cc: Likewise.
908 * testsuite/23_containers/list/debug/insert3_neg.cc: Likewise.
909 * testsuite/23_containers/list/debug/insert5_neg.cc: Likewise.
910 * testsuite/23_containers/list/debug/iterator_self_move_assign_neg.cc:
912 * testsuite/23_containers/list/debug/self_move_assign_neg.cc: Likewise.
913 * testsuite/23_containers/map/debug/60499.cc: Likewise.
914 * testsuite/23_containers/map/debug/construct1_neg.cc: Likewise.
915 * testsuite/23_containers/map/debug/construct2_neg.cc: Likewise.
916 * testsuite/23_containers/map/debug/construct3_neg.cc: Likewise.
917 * testsuite/23_containers/map/debug/insert1_neg.cc: Likewise.
918 * testsuite/23_containers/map/debug/insert2_neg.cc: Likewise.
919 * testsuite/23_containers/map/debug/insert3_neg.cc: Likewise.
920 * testsuite/23_containers/map/debug/iterator_self_move_assign_neg.cc:
922 * testsuite/23_containers/map/debug/self_move_assign_neg.cc: Likewise.
923 * testsuite/23_containers/multimap/debug/60499.cc: Likewise.
924 * testsuite/23_containers/multimap/debug/construct1_neg.cc: Likewise.
925 * testsuite/23_containers/multimap/debug/construct2_neg.cc: Likewise.
926 * testsuite/23_containers/multimap/debug/construct3_neg.cc: Likewise.
927 * testsuite/23_containers/multimap/debug/insert1_neg.cc: Likewise.
928 * testsuite/23_containers/multimap/debug/insert2_neg.cc: Likewise.
929 * testsuite/23_containers/multimap/debug/insert3_neg.cc: Likewise.
930 * testsuite/23_containers/multimap/debug/
931 iterator_self_move_assign_neg.cc: Likewise.
932 * testsuite/23_containers/multimap/debug/self_move_assign_neg.cc:
934 * testsuite/23_containers/multiset/debug/60499.cc: Likewise.
935 * testsuite/23_containers/multiset/debug/construct1_neg.cc: Likewise.
936 * testsuite/23_containers/multiset/debug/construct2_neg.cc: Likewise.
937 * testsuite/23_containers/multiset/debug/construct3_neg.cc: Likewise.
938 * testsuite/23_containers/multiset/debug/insert1_neg.cc: Likewise.
939 * testsuite/23_containers/multiset/debug/insert2_neg.cc: Likewise.
940 * testsuite/23_containers/multiset/debug/insert3_neg.cc: Likewise.
941 * testsuite/23_containers/multiset/debug/
942 iterator_self_move_assign_neg.cc: Likewise.
943 * testsuite/23_containers/multiset/debug/self_move_assign_neg.cc:
945 * testsuite/23_containers/set/debug/60499.cc: Likewise.
946 * testsuite/23_containers/set/debug/construct1_neg.cc: Likewise.
947 * testsuite/23_containers/set/debug/construct2_neg.cc: Likewise.
948 * testsuite/23_containers/set/debug/construct3_neg.cc: Likewise.
949 * testsuite/23_containers/set/debug/insert1_neg.cc: Likewise.
950 * testsuite/23_containers/set/debug/insert2_neg.cc: Likewise.
951 * testsuite/23_containers/set/debug/insert3_neg.cc: Likewise.
952 * testsuite/23_containers/set/debug/iterator_self_move_assign_neg.cc:
954 * testsuite/23_containers/set/debug/self_move_assign_neg.cc: Likewise.
955 * testsuite/23_containers/unordered_map/debug/60499.cc: Likewise.
956 * testsuite/23_containers/unordered_map/debug/begin1_neg.cc: Likewise.
957 * testsuite/23_containers/unordered_map/debug/begin2_neg.cc: Likewise.
958 * testsuite/23_containers/unordered_map/debug/bucket_size_neg.cc:
960 * testsuite/23_containers/unordered_map/debug/cbegin_neg.cc: Likewise.
961 * testsuite/23_containers/unordered_map/debug/cend_neg.cc: Likewise.
962 * testsuite/23_containers/unordered_map/debug/construct1_neg.cc:
964 * testsuite/23_containers/unordered_map/debug/construct2_neg.cc:
966 * testsuite/23_containers/unordered_map/debug/construct3_neg.cc:
968 * testsuite/23_containers/unordered_map/debug/end1_neg.cc: Likewise.
969 * testsuite/23_containers/unordered_map/debug/end2_neg.cc: Likewise.
970 * testsuite/23_containers/unordered_map/debug/insert1_neg.cc: Likewise.
971 * testsuite/23_containers/unordered_map/debug/insert2_neg.cc: Likewise.
972 * testsuite/23_containers/unordered_map/debug/insert3_neg.cc: Likewise.
973 * testsuite/23_containers/unordered_map/debug/
974 invalid_local_iterator_compare_neg.cc: Likewise.
975 * testsuite/23_containers/unordered_map/debug/
976 invalid_local_iterator_range_neg.cc: Likewise.
977 * testsuite/23_containers/unordered_map/debug/
978 iterator_self_move_assign_neg.cc: Likewise.
979 * testsuite/23_containers/unordered_map/debug/max_load_factor_neg.cc:
981 * testsuite/23_containers/unordered_map/debug/self_move_assign_neg.cc:
983 * testsuite/23_containers/unordered_map/debug/
984 use_erased_local_iterator_neg.cc: Likewise.
985 * testsuite/23_containers/unordered_map/debug/
986 use_invalid_iterator_neg.cc: Likewise.
987 * testsuite/23_containers/unordered_map/debug/
988 use_invalid_local_iterator_neg.cc: Likewise.
989 * testsuite/23_containers/unordered_multimap/debug/60499.cc: Likewise.
990 * testsuite/23_containers/unordered_multimap/debug/begin1_neg.cc:
992 * testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc:
994 * testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc:
996 * testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc:
998 * testsuite/23_containers/unordered_multimap/debug/cend_neg.cc:
1000 * testsuite/23_containers/unordered_multimap/debug/construct1_neg.cc:
1002 * testsuite/23_containers/unordered_multimap/debug/construct2_neg.cc:
1004 * testsuite/23_containers/unordered_multimap/debug/construct3_neg.cc:
1006 * testsuite/23_containers/unordered_multimap/debug/end1_neg.cc:
1008 * testsuite/23_containers/unordered_multimap/debug/end2_neg.cc:
1010 * testsuite/23_containers/unordered_multimap/debug/insert1_neg.cc:
1012 * testsuite/23_containers/unordered_multimap/debug/insert2_neg.cc:
1014 * testsuite/23_containers/unordered_multimap/debug/insert3_neg.cc:
1016 * testsuite/23_containers/unordered_multimap/debug/
1017 invalid_local_iterator_compare_neg.cc: Likewise.
1018 * testsuite/23_containers/unordered_multimap/debug/
1019 invalid_local_iterator_range_neg.cc: Likewise.
1020 * testsuite/23_containers/unordered_multimap/debug/
1021 iterator_self_move_assign_neg.cc: Likewise.
1022 * testsuite/23_containers/unordered_multimap/debug/
1023 max_load_factor_neg.cc: Likewise.
1024 * testsuite/23_containers/unordered_multimap/debug/
1025 self_move_assign_neg.cc: Likewise.
1026 * testsuite/23_containers/unordered_multimap/debug/
1027 use_erased_local_iterator_neg.cc: Likewise.
1028 * testsuite/23_containers/unordered_multimap/debug/
1029 use_invalid_iterator_neg.cc: Likewise.
1030 * testsuite/23_containers/unordered_multimap/debug/
1031 use_invalid_local_iterator_neg.cc: Likewise.
1032 * testsuite/23_containers/unordered_multiset/debug/60499.cc:
1034 * testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc:
1036 * testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc:
1038 * testsuite/23_containers/unordered_multiset/debug/bucket_size_neg.cc:
1040 * testsuite/23_containers/unordered_multiset/debug/cbegin_neg.cc:
1042 * testsuite/23_containers/unordered_multiset/debug/cend_neg.cc:
1044 * testsuite/23_containers/unordered_multiset/debug/construct1_neg.cc:
1046 * testsuite/23_containers/unordered_multiset/debug/construct2_neg.cc:
1048 * testsuite/23_containers/unordered_multiset/debug/construct3_neg.cc:
1050 * testsuite/23_containers/unordered_multiset/debug/end1_neg.cc:
1052 * testsuite/23_containers/unordered_multiset/debug/end2_neg.cc:
1054 * testsuite/23_containers/unordered_multiset/debug/insert1_neg.cc:
1056 * testsuite/23_containers/unordered_multiset/debug/insert2_neg.cc:
1058 * testsuite/23_containers/unordered_multiset/debug/insert3_neg.cc:
1060 * testsuite/23_containers/unordered_multiset/debug/
1061 invalid_local_iterator_compare_neg.cc: Likewise.
1062 * testsuite/23_containers/unordered_multiset/debug/
1063 invalid_local_iterator_range_neg.cc: Likewise.
1064 * testsuite/23_containers/unordered_multiset/debug/
1065 iterator_self_move_assign_neg.cc: Likewise.
1066 * testsuite/23_containers/unordered_multiset/debug/
1067 max_load_factor_neg.cc: Likewise.
1068 * testsuite/23_containers/unordered_multiset/debug/
1069 self_move_assign_neg.cc: Likewise.
1070 * testsuite/23_containers/unordered_multiset/debug/
1071 use_erased_local_iterator_neg.cc: Likewise.
1072 * testsuite/23_containers/unordered_multiset/debug/
1073 use_invalid_iterator_neg.cc: Likewise.
1074 * testsuite/23_containers/unordered_multiset/debug/
1075 use_invalid_local_iterator_neg.cc: Likewise.
1076 * testsuite/23_containers/unordered_set/debug/60499.cc: Likewise.
1077 * testsuite/23_containers/unordered_set/debug/begin1_neg.cc: Likewise.
1078 * testsuite/23_containers/unordered_set/debug/begin2_neg.cc: Likewise.
1079 * testsuite/23_containers/unordered_set/debug/bucket_size_neg.cc:
1081 * testsuite/23_containers/unordered_set/debug/cbegin_neg.cc: Likewise.
1082 * testsuite/23_containers/unordered_set/debug/cend_neg.cc: Likewise.
1083 * testsuite/23_containers/unordered_set/debug/construct1_neg.cc:
1085 * testsuite/23_containers/unordered_set/debug/construct2_neg.cc:
1087 * testsuite/23_containers/unordered_set/debug/construct3_neg.cc:
1089 * testsuite/23_containers/unordered_set/debug/end1_neg.cc: Likewise.
1090 * testsuite/23_containers/unordered_set/debug/end2_neg.cc: Likewise.
1091 * testsuite/23_containers/unordered_set/debug/insert1_neg.cc: Likewise.
1092 * testsuite/23_containers/unordered_set/debug/insert2_neg.cc: Likewise.
1093 * testsuite/23_containers/unordered_set/debug/insert3_neg.cc: Likewise.
1094 * testsuite/23_containers/unordered_set/debug/
1095 invalid_local_iterator_compare_neg.cc: Likewise.
1096 * testsuite/23_containers/unordered_set/debug/
1097 invalid_local_iterator_range_neg.cc: Likewise.
1098 * testsuite/23_containers/unordered_set/debug/
1099 iterator_self_move_assign_neg.cc: Likewise.
1100 * testsuite/23_containers/unordered_set/debug/
1101 max_load_factor_neg.cc: Likewise.
1102 * testsuite/23_containers/unordered_set/debug/
1103 self_move_assign_neg.cc: Likewise.
1104 * testsuite/23_containers/unordered_set/debug/
1105 use_erased_local_iterator_neg.cc: Likewise.
1106 * testsuite/23_containers/unordered_set/debug/
1107 use_invalid_iterator_neg.cc: Likewise.
1108 * testsuite/23_containers/unordered_set/debug/
1109 use_invalid_local_iterator_neg.cc: Likewise.
1110 * testsuite/23_containers/vector/debug/52433.cc: Likewise.
1111 * testsuite/23_containers/vector/debug/60499.cc: Likewise.
1112 * testsuite/23_containers/vector/debug/bool/shrink_to_fit.cc: Likewise.
1113 * testsuite/23_containers/vector/debug/
1114 iterator_self_move_assign_neg.cc: Likewise.
1115 * testsuite/23_containers/vector/debug/self_move_assign_neg.cc:
1117 * testsuite/23_containers/vector/debug/shrink_to_fit.cc: Likewise.
1118 * testsuite/25_algorithms/pop_heap/complexity.cc: Likewise.
1119 * testsuite/25_algorithms/push_heap/complexity.cc: Likewise.
1120 * testsuite/25_algorithms/sort_heap/complexity.cc: Likewise.
1121 * testsuite/29_atomics/atomic/60658.cc: Likewise.
1122 * testsuite/29_atomics/atomic/60695.cc: Likewise.
1123 * testsuite/29_atomics/atomic/62259.cc: Likewise.
1124 * testsuite/29_atomics/atomic/64658.cc: Likewise.
1125 * testsuite/29_atomics/atomic/cons/49445.cc: Likewise.
1126 * testsuite/29_atomics/atomic/operators/51811.cc: Likewise.
1127 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
1130 2016-09-11 Jonathan Wakely <jwakely@redhat.com>
1132 * libsupc++/new_opant.cc: Include exception_defines.h.
1133 * libsupc++/new_opvant.cc: Likewise.
1135 2016-09-09 Jason Merrill <jason@redhat.com>
1137 Implement P0035R4, C++17 new of over-aligned types.
1138 * libsupc++/new: Declare aligned new/delete operators.
1139 * config/abi/pre/gnu.ver: Export them.
1140 * configure.ac: Check for aligned_alloc, posix_memalign, memalign,
1142 * libsupc++/new_opa.cc: New.
1143 * libsupc++/new_opant.cc: New.
1144 * libsupc++/new_opva.cc: New.
1145 * libsupc++/new_opva.cc: New.
1146 * libsupc++/del_opa.cc: New.
1147 * libsupc++/del_opant.cc: New.
1148 * libsupc++/del_opsa.cc: New.
1149 * libsupc++/del_opva.cc: New.
1150 * libsupc++/del_opvant.cc: New.
1151 * libsupc++/del_opvsa.cc: New.
1152 * libsupc++/Makefile.am: Build them.
1154 2016-09-05 Tim Shen <timshen@google.com>
1156 * include/std/variant: include bits/move.h for std::addressof.
1158 2016-09-05 Mikhail Strelnikov <mikhail.strelnikov@gmail.com>
1160 * include/std/variant (_Variant_storage::_M_storage()): Use
1161 std::addressof instead of operator& to take address.
1163 2016-09-02 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
1165 * acinclude.m4 (GLIBCXX_CONFIGURE_TESTSUITE): Check for presence of
1166 setrlimit on both native and cross targets.
1167 * configure: Regenerate.
1169 2016-08-31 Jonathan Wakely <jwakely@redhat.com>
1171 * include/bits/shared_ptr.h (_Assignable): New alias template.
1172 (shared_ptr::operator=(const shared_ptr<_Tp1>&))
1173 (shared_ptr::operator=(shared_ptr<_Tp1>&&))
1174 (shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
1176 * include/bits/shared_ptr_base.h (_Assignable): New alias template.
1177 (__shared_ptr::operator=(const __shared_ptr<_Tp1>&))
1178 (__shared_ptr::operator=(__shared_ptr<_Tp1>&&))
1179 (__shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
1181 (__shared_ptr::reset(_Tp1*), __shared_ptr::reset(_Tp1*, _Deleter))
1182 (__shared_ptr::reset(_Tp1*, _Deleter, _Alloc)): Constrain with
1184 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Change dg-error to
1186 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
1187 * testsuite/20_util/shared_ptr/assign/sfinae.cc: New test.
1188 * testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc: Update
1189 expected errors. Remove unnecessary code.
1190 * testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc: New test.
1192 * include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Move
1194 * testsuite/23_containers/set/move_comparison.cc: New test.
1196 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
1199 2016-08-30 Ville Voutilainen <ville.voutilainen@gmail.com>
1202 * include/std/type_traits (is_constructible): Forward-declare...
1203 (__is_base_to_derived_ref): ...and use here.
1204 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
1205 * testsuite/20_util/is_constructible/77395.cc: New.
1206 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust.
1207 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1209 * testsuite/20_util/tuple/77395.cc: New.
1211 2016-08-30 Uros Bizjak <ubizjak@gmail.com>
1213 * testsuite/22_locale/time_get/get/char/2.cc: Move dg-do run
1214 directive above dg-require-namedlocale directive.
1215 * testsuite/22_locale/time_get/get/wchar_t/2.cc: Ditto.
1216 * testsuite/27_io/manipulators/extended/get_time/char/2.cc: Ditto.
1217 * testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc: Ditto.
1218 * testsuite/27_io/manipulators/extended/put_time/char/2.cc: Ditto.
1219 * testsuite/27_io/manipulators/extended/put_time/wchar_t/2.cc: Ditto.
1221 2016-08-27 Tim Shen <timshen@google.com>
1224 * include/bits/regex_compiler.tcc(_M_insert_bracket_matcher,
1225 _M_expression_term): Modify to support dash literal.
1226 * include/bits/regex_scanner.h: Add dash as a token type to make
1227 a different from the mandated dash literal by escaping.
1228 * include/bits/regex_scanner.tcc(_M_scan_in_bracket): Emit dash
1229 token in bracket expression parsing.
1230 * testsuite/28_regex/regression.cc: Add new testcases.
1232 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
1235 * doc/xml/manual/intro.xml: Document DR 2127 change.
1236 * doc/html/*: Regenerate.
1237 * include/bits/stl_raw_storage_iter.h (operator=(_Tp&&)): Add.
1238 (operator++(), operator++(int)): Use injected class name.
1239 * testsuite/20_util/raw_storage_iterator/dr2127.cc: New test.
1241 * testsuite/*: Use { target c++11 } or { target c++14 } instead of
1242 using -std in dg-options.
1244 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
1245 Pedro Alves <palves@redhat.com>
1247 * testsuite/lib/gdb-test.exp (gdb-dg-runtest): Define wrapper to save
1248 and restore dg-interpreter-batch-mode.
1249 * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Use
1250 gdb-dg-runtest instead of dg-runtest.
1251 * testsuite/libstdc++-xmethods/xmethods.exp: Likewise.
1253 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
1255 * config/abi/pre/gnu.ver (GLIBCXX_3.4, GLIBCXX_3.4.21): Use more
1256 precise patterns for basic_string constructors.
1257 (GLIBCXX_3.4.23): Export new constructors.
1258 * doc/xml/manual/intro.xml: Document LWG 2583 status.
1259 * doc/html/*: Regenerate.
1260 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1261 (basic_string(const basic_string&, size_type, const Alloc&)): Add
1262 new constructor for LWG 2583.
1263 (basic_string(const basic_string&, size_type, size_type)): Remove
1265 [!_GLIBCXX_USE_CXX11_ABI]: Likewise.
1266 * include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]: Define it.
1267 * testsuite/21_strings/basic_string/cons/char/8.cc: New test.
1268 * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: New test.
1270 2016-08-24 Aditya Kumar <hiraditya@msn.com>
1272 * include/bits/algorithmfwd.h: Remove trailing whitespace.
1273 * include/bits/shared_ptr_base.h: Likewise.
1275 2016-08-23 Jonathan Wakely <jwakely@redhat.com>
1277 * include/debug/array (array): Add _GLIBCXX17_CONSTEXPR.
1278 * include/profile/array (array): Likewise.
1279 (array::swap): Fix exception specification for zero-sized arrays.
1282 * include/bits/stl_tree.h (_Rb_tree::_M_move_assign): New functions.
1283 (_Rb_tree::operator=(_Rb_tree&&)): Dispatch to _M_move_assign.
1284 * testsuite/23_containers/map/77334.cc: New test.
1286 * doc/xml/manual/using.xml: Remove reference to -pthreads option.
1287 * doc/html/*: Regenerate.
1289 * testsuite/experimental/feat-cxx14.cc: Only preprocess, not compile.
1290 * testsuite/experimental/feat-lib-fund.cc: Likewise.
1293 * include/bits/stl_iterator.h
1294 (operator-(reverse_iterator<Iter>, reverse_iterator<Iter>): Only
1295 define for C++98 mode.
1296 (operator-(move_iterator<Iter>, move_iterator<Iter>): Don't define.
1297 * testsuite/24_iterators/headers/iterator/synopsis.cc: Use
1299 * testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: New test.
1300 * testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: New test.
1301 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: New test.
1302 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Don't test
1303 difference operator.
1304 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc: Only test
1305 difference operator for C++98.
1306 * testsuite/24_iterators/reverse_iterator/71771.cc: New test.
1308 * include/bits/c++config (_GLIBCXX17_CONSTEXPR): Define.
1309 * include/bits/range_access.h (begin, end, rbegin, rend, crbegin)
1310 (crend): Add _GLIBCXX17_CONSTEXPR as per P0031R0.
1311 * include/bits/stl_iterator.h (reverse_iterator, move_iterator)
1312 (__make_reverse_iterator, make_reverse_iterator, make_move_iterator):
1314 * include/bits/stl_iterator_base_funcs.h (__distance, __advance): Add
1315 _GLIBCXX14_CONSTEXPR.
1316 (distance, advance, next, prev): Add _GLIBCXX17_CONSTEXPR.
1317 * include/std/array (array::begin, array::end, array::rbegin)
1318 (array::rend, array::cbegin, array:cend, array::crbegin)
1319 (array::crend, array::operator[], array::at, array::front)
1320 (array::back, array::data): Likewise.
1321 * testsuite/24_iterators/headers/iterator/range_access.cc: Replace
1322 with separate tests for C++11, C++14, and C++17.
1323 * testsuite/24_iterators/headers/iterator/range_access_c++11.cc: New.
1324 * testsuite/24_iterators/headers/iterator/range_access_c++14.cc: New.
1325 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc: New.
1327 2016-08-22 Tim Shen <timshen@google.com>
1329 Split _M_dfs() into smaller functions.
1330 * regex_executor.h(_M_handle_repeat, _M_handle_subexpr_begin)
1331 (_M_handle_subexpr_end, _M_handle_line_begin_assertion)
1332 (_M_handle_line_end_assertion, _M_handle_word_boundary)
1333 (_M_handle_subexpr_lookahead, _M_handle_match)
1334 (_M_handle_backref, _M_handle_accept, _M_handle_alternative):
1335 Add separate function declarations.
1336 * regex_executor.tcc: Split _M_dfs() into multiple handler functions.
1338 2016-08-22 Gleb Natapov <gleb@scylladb.com>
1341 * config/abi/pre/gnu-versioned-namespace.ver: Export
1342 __cxa_init_primary_exception and std::exception_ptr(void*).
1343 * config/abi/pre/gnu.ver (CXXABI_1.3.11) : Add new symbol version and
1344 export __cxa_init_primary_exception and std::exception_ptr(void*).
1345 * include/Makefile.am: Add new headers.
1346 * include/Makefile.in: Regenerate.
1347 * libsupc++/Makefile.am: Add new headers.
1348 * libsupc++/Makefile.in: Regenerate.
1349 * libsupc++/cxxabi.h (__cxa_allocate_exception): Move to ...
1350 * libsupc++/cxxabi_init_exception.h: New header.
1351 (__cxa_init_primary_exception): Declare.
1352 * libsupc++/eh_throw.cc (__cxa_init_primary_exception): Define.
1353 (__cxa_throw): Use __cxa_init_primary_exception.
1354 * libsupc++/exception (std::exception): Move to ...
1355 * libsupc++/exception.h: New header.
1356 * libsupc++/exception_ptr.h (__exception_ptr::exception_ptr): Add
1358 (__exception_ptr::__dest_thunk): New function template.
1359 (std::make_exception_ptr) [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]:
1360 Use __cxa_allocate_exception and __cxa_init_primary_exception to
1361 create exception_ptr.
1362 * libsupc++/typeinfo: Include bits/exception.h instead of exception.
1363 * testsuite/util/testsuite_abi.cc: Add CXXABI_1.3.11 version.
1365 2016-08-22 Jonathan Wakely <jwakely@redhat.com>
1367 * doc/xml/api.xml: Replace hardcoded links for specific versions with
1368 link to docs for all releases.
1369 * doc/html/*: Regenerate.
1372 * doc/xml/manual/intro.xml: Document DR 2062 change.
1373 * include/std/functional (function::swap): Add noexcept.
1374 (swap(function<Res(Args...)&, function<Res(Args...)&)): Likewise.
1375 * testsuite/20_util/function/77322.cc: New test.
1377 2016-08-19 Jonathan Wakely <jwakely@redhat.com>
1379 * testsuite/21_strings/basic_string/pthread18185.cc: Use -pthread for
1380 *-*-solaris* instead of -pthreads.
1381 * testsuite/21_strings/basic_string/pthread4.cc : Likewise.
1382 * testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
1383 * testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
1384 * testsuite/23_containers/list/pthread1.cc: Likewise.
1385 * testsuite/23_containers/list/pthread5.cc: Likewise.
1386 * testsuite/23_containers/map/pthread6.cc: Likewise.
1387 * testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
1388 * testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
1389 * testsuite/30_threads/shared_mutex/*: Likewise.
1390 * testsuite/ext/rope/pthread7-rope.cc: Likewise.
1391 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
1392 default_weaktoshared.cc: Likewise.
1393 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
1394 mutex_weaktoshared.cc: Likewise.
1395 * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise. Use
1396 dg-require-effective-target instead of using -std option.
1397 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
1399 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
1400 * testsuite/23_containers/vector/debug/multithreaded_swap.cc:
1402 * testsuite/30_threads/async/*: Likewise.
1403 * testsuite/30_threads/call_once/*: Likewise.
1404 * testsuite/30_threads/condition_variable/*: Likewise.
1405 * testsuite/30_threads/condition_variable_any/*: Likewise.
1406 * testsuite/30_threads/future/*: Likewise.
1407 * testsuite/30_threads/lock/*: Likewise.
1408 * testsuite/30_threads/mutex/*: Likewise.
1409 * testsuite/30_threads/packaged_task/*: Likewise.
1410 * testsuite/30_threads/promise/*: Likewise.
1411 * testsuite/30_threads/recursive_mutex/*: Likewise.
1412 * testsuite/30_threads/recursive_timed_mutex/*: Likewise.
1413 * testsuite/30_threads/shared_future/*: Likewise.
1414 * testsuite/30_threads/shared_lock/*: Likewise.
1415 * testsuite/30_threads/shared_timed_mutex/*: Likewise.
1416 * testsuite/30_threads/this_thread/*: Likewise.
1417 * testsuite/30_threads/thread/*: Likewise.
1418 * testsuite/30_threads/timed_mutex/*: Likewise.
1419 * testsuite/30_threads/try_lock/*: Likewise.
1420 * testsuite/30_threads/unique_lock/*: Likewise.
1422 * doc/xml/manual/status_cxx2017.xml: Update status of not_fn.
1423 * doc/html/*: Regenerate.
1424 * include/experimental/functional (_Not_fn, not_fn): Match C++17
1426 * include/std/functional (_Not_fn, not_fn): Define for C++17.
1427 * testsuite/20_util/not_fn/1.cc: New.
1428 * testsuite/experimental/functional/not_fn.cc: Test abstract class.
1429 Remove test for volatile-qualified wrapper.
1431 * include/std/atomic (atomic::is_always_lock_free): Define.
1432 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
1433 * testsuite/29_atomics/atomic/is_always_lock_free.cc: New.
1434 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc: New.
1435 * doc/xml/manual/status_cxx2017.xml: Update status.
1436 * doc/html/*: Regenerate.
1438 * include/experimental/tuple (apply): Qualify call to __apply_impl.
1439 * include/std/tuple (apply): Likewise.
1440 * testsuite/experimental/system_error/value.cc: Fix ambiguities in
1442 * testsuite/experimental/tuple/tuple_size.cc: Likewise.
1443 * testsuite/experimental/type_traits/value.cc: Likewise.
1445 * doc/xml/manual/status_cxx2017.xml: Update status of make_from_tuple
1447 * doc/html/*: Regenerate.
1449 2016-08-18 Ville Voutilainen <ville.voutilainen@gmail.com>
1451 Implement the latest proposed resolution of LWG 2756.
1452 * include/std/optional (Optional_base(const _Tp&))
1453 (Optional_base(_Tp&&), using _Base::_Base): Remove.
1454 (optional(nullopt_t)): New.
1455 (optional(_Up&&)): Invoke base directly with in_place
1456 rather than creating a temporary, add default template
1457 argument, change constraints.
1458 (optional(const optional<_Up>&)): Invoke base directly
1459 with in_place, remove unnecessary constraints.
1460 (optional(optional<_Up>&& __t)): Likewise.
1461 (optional(in_place_t, _Args&&...)): New.
1462 (optional(in_place_t, initializer_list<_Up>, _Args&&...)): Likewise.
1463 (operator=(_Up&&)): Add default template argument, change constraints.
1464 (operator=(const optional<_Up>&)): Put is_same first in the
1466 (operator=(optional<_Up>&&)): Likewise.
1467 * testsuite/20_util/optional/assignment/5.cc: Add a test to
1468 verify assignment from something that can't be perfect-forwarded.
1469 * testsuite/20_util/optional/cons/value.cc: Add tests to verify
1470 that a nested optional is disengaged when constructed
1471 from a disengaged element type, and to verify that assignments
1472 from an engaged element type engage the optional.
1474 2016-08-18 Tim Shen <timshen@google.com>
1478 * include/Makefile.am: Add new file std/variant.
1479 * include/Makefile.in: Generated from Makefile.am.
1480 * include/bits/enable_special_members.h: Add a tag type to allow
1481 the construction in non-default constructor.
1482 * include/bits/uses_allocator.h: Add convenience traits to
1483 detect constructibility.
1484 * include/std/variant: Implement <variant>.
1485 * testsuite/20_util/variant/compile.cc: Compile-time tests.
1486 * testsuite/20_util/variant/run.cc: Runtime tests.
1488 2016-08-18 Jonathan Wakely <jwakely@redhat.com>
1490 * doc/xml/manual/test.xml (test.run.permutations): Expand section.
1491 (test.new_tests): Rewrite section.
1492 (tests.dg.directives): New section.
1493 * doc/html/*: Regenerate.
1495 * doc/xml/manual/test.xml: Improve documentation of test targets.
1496 Document new-abi-baseline, check-debug, and check-parallel targets.
1498 * doc/xml/manual/build_hacking.xml: New section on shared library
1501 * doc/xml/manual/build_hacking.xml: Improve markup.
1502 * doc/xml/manual/test.xml: Likewise. Change section title from "Test"
1504 * doc/xml/faq.xml: Change link text to "Testing".
1506 * testsuite/tr1/3_function_objects/function/10.cc: Remove unintended
1507 dg-options directive.
1509 2016-08-17 Jonathan Wakely <jwakely@redhat.com>
1511 * testsuite/20_util/reference_wrapper/invoke-2.cc: Fix invalid dg-do
1512 directive and use effective target instead of dg-options.
1514 * testsuite/20_util/hash/chi2_q_bit_flip_set.cc: Use effective target
1515 instead of -std in dg-options.
1516 * testsuite/20_util/hash/chi2_q_bit_string_set.cc: Likewise.
1517 * testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc: Likewise.
1518 * testsuite/20_util/hash/chi2_q_uniform_random.cc: Likewise.
1519 * testsuite/20_util/hash/quality.cc: Likewise.
1520 * testsuite/25_algorithms/heap/moveable.cc: Likewise.
1521 * testsuite/25_algorithms/heap/moveable2.cc: Likewise.
1522 * testsuite/25_algorithms/nth_element/random_test.cc: Likewise.
1523 * testsuite/25_algorithms/partial_sort/random_test.cc: Likewise.
1524 * testsuite/25_algorithms/partial_sort_copy/random_test.cc: Likewise.
1525 * testsuite/25_algorithms/sort/random_test.cc: Likewise.
1527 * testsuite/20_util/tuple/67844.cc: Require c++11 effective target.
1528 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Likewise.
1529 * testsuite/27_io/rvalue_streams.cc: Likewise.
1531 * testsuite/26_numerics/complex/literals/types.cc: Add comment.
1533 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
1534 Remove duplicate dg-options directive.
1536 * testsuite/ext/profile/all.cc: Use effective target instead of
1537 -std=gnu++11. Use dg-additional-options instead of repeating options.
1539 * testsuite/20_util/bind/ref_neg.cc: Use effective target instead of
1540 -std=gnu++11. Add -fno-show-columns to dg-options. Use dg-prune-output
1541 instead of dg-excess-errors.
1543 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Disable
1545 * testsuite/experimental/chrono/value.cc: Avoid ambiguities in C++17.
1546 * testsuite/experimental/ratio/value.cc: Likewise.
1547 * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Disable test for
1549 * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
1550 * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
1551 * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
1552 * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
1553 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
1554 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
1555 * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
1556 * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
1557 * testsuite/tr1/5_numerical_facilities/special_functions/
1558 10_cyl_bessel_k/airy.cc: Adjust namespace of __detail::__airy for
1559 C++17 compatibility.
1561 * testsuite/24_iterators/headers/iterator/range_access.cc: Adjust
1562 expected signatures for C++14 compatibility.
1565 * include/bits/basic_string.h (operator=(__sv_type)
1566 (append(__sv_type), assign(__sv_type), insert(size_type, __sv_type))
1567 (replace(size_type, size_type, __sv_type))
1568 (replace(const_iterator, const_iterator, __sv_type))
1569 (find(__sv_type, size_type), rfind(__sv_type, size_type))
1570 (compare(size_type, size_type, __sv_type)): Reformat.
1571 (_If_sv): Define helper for SFINAE constaints.
1572 (append(const _Tp&, size_type, size_type))
1573 (assign(const _Tp&, size_type, size_type))
1574 (insert(size_type, const _Tp&, size_type, size_type))
1575 (replace(size_type, size_type, const _Tp&, size_type, size_type)):
1577 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc: Test
1579 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
1581 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1583 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
1585 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
1587 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
1589 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
1591 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
1593 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1595 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
1597 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
1600 2016-08-16 Jonathan Wakely <jwakely@redhat.com>
1603 * include/bits/stl_bvector.h (_Bvector_base::_M_deallocate): Zero
1604 pointers to start and end of storage.
1605 * testsuite/23_containers/vector/bool/72847.cc: New test.
1606 * include/bits/vector.tcc (vector<bool>::_M_reallocate): Only update
1607 _M_finish after deallocating.
1608 (vector<bool>::_M_fill_insert): Likewise.
1609 (vector<bool>::_M_insert_range): Likewise.
1610 (vector<bool>::_M_insert_aux): Likewise.
1612 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1614 Implement LWG 2744 and LWG 2754.
1615 * include/std/any (any(ValueType&&)): Constrain with __is_in_place_type.
1616 (any(in_place_type_t<_ValueType>, _Args&&...)): Use _Decay.
1617 (any(in_place_type_t<_ValueType>, initializer_list<_Up>, _Args&&...)):
1619 (emplace(_Args&&...)): Likewise.
1620 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
1621 * include/std/utility: (__is_in_place_type_impl): New.
1622 (__is_in_place_type): Likewise.
1623 * testsuite/20_util/any/assign/emplace.cc: Add tests for decaying
1625 * testsuite/20_util/any/cons/in_place.cc: Add tests for decaying
1626 in_place constructor.
1627 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
1628 * testsuite/20_util/any/requirements.cc: Add a test for
1629 in_place-constructing a non-default-constructible type.
1631 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1633 Add a feature macro for C++17 make_from_tuple.
1634 * include/std/tuple (__cpp_lib_make_from_tuple): New.
1635 (__make_from_tuple_impl(_Tuple&&, index_sequence<_Idx...>)):
1636 Qualify the call to get<>().
1637 * testsuite/20_util/tuple/make_from_tuple/1.cc: Adjust.
1639 2016-08-15 Uros Bizjak <ubizjak@gmail.com>
1641 * src/filesystem/ops.cc: Always include ostream and
1642 ext/stdio_filebuf.h.
1643 (do_copy_file): Check if _GLIBCXX_USE_FCHMODAT is defined.
1644 [_GLIBCXX_USE_SENDFILE]: Fallback to read/write operations in case
1645 sendfile fails with ENOSYS or EINVAL.
1647 2016-08-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
1650 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Fix dg-error
1653 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1655 Implement C++17 make_from_tuple.
1656 * include/std/tuple (__make_from_tuple_impl, make_from_tuple): New.
1657 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
1659 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1662 * include/bits/basic_string.h
1663 (append(__sv_type, size_type, size_type)): Turn into a template,
1664 change parameter type, constrain, add a conversion to __sv_type
1665 from the dependent parameter type.
1666 (assign(__sv_type, size_type, size_type)): Likewise.
1667 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
1668 (replace(size_type, size_type, __sv_type, size_type, size_type)):
1670 (compare(size_type, size_type,__sv_type, size_type, size_type)):
1672 * testsuite/21_strings/basic_string/lwg2758.cc: New.
1674 2016-08-06 Jonathan Wakely <jwakely@redhat.com>
1676 * doc/xml/manual/status_cxx2017.xml: Update status table.
1677 * doc/html/manual/status.html: Regenerate.
1679 * testsuite/lib/libstdc++.exp: Fix typo in comment.
1682 * include/std/functional (_Function_base::_Base_manager::_M_clone):
1683 Qualify new operator.
1684 * testsuite/20_util/function/cons/72820.cc: New test.
1686 * doc/xml/manual/status_cxx2017.xml: Add missing LFTSv2 features.
1687 * doc/html/manual/status.html: Regenerate.
1688 * include/Makefile.am: Add new header.
1689 * include/Makefile.in: Regenerate.
1690 * include/bits/invoke.h: New header.
1691 (__invoke): Make constexpr. Add && to types in exception specification.
1692 * include/experimental/tuple (apply, __apply_impl): Fix non-reserved
1693 names. Include <bits/invoke.h> and use std::__invoke.
1694 * include/std/functional (__invfwd, __invoke_impl, __invoke): Move to
1696 (invoke): Add && to types in exception specification.
1697 * include/std/tuple (apply, __apply_impl): Define for C++17.
1698 * testsuite/20_util/tuple/apply/1.cc: New test.
1699 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error
1702 2016-08-05 Jonathan Wakely <jwakely@redhat.com>
1704 * doc/xml/manual/status_cxx2017.xml: Correct shared_from_this status.
1705 * doc/html/manual/status.html: Regenerate.
1707 * include/std/chrono (floor, ceil, round, abs): New for C++17.
1708 * testsuite/20_util/duration_cast/rounding.cc: New test.
1709 * testsuite/20_util/time_point_cast/rounding.cc: New test.
1710 * doc/xml/manual/status_cxx2017.xml: Update status table.
1711 * doc/html/manual/status.html: Regenerate.
1712 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust
1714 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1715 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1716 * testsuite/20_util/duration/literals/range.cc: Likewise.
1718 * include/std/functional (__callable_functor): Remove.
1719 (_Function_handler::_M_invoke): Use __invoke instead of
1720 __callable_functor or mem_fn.
1721 (function::_Callable): Use lvalue in result_of expression.
1722 (function): Remove TODO comments about allocators.
1723 * testsuite/20_util/function/cons/refqual.cc: New test.
1725 2016-08-04 Jonathan Wakely <jwakely@redhat.com>
1727 * doc/xml/manual/status_cxx2017.xml: Update status table.
1728 * include/std/functional (__inv_unwrap): Move to <type_traits>.
1729 (__invoke_impl): Remove exception specifications.
1730 (__invoke, invoke): Add exception specifications using
1731 __is_nothrow_callable.
1732 * include/std/type_traits (__inv_unwrap): Move from <functional>.
1733 (__is_callable_impl, __call_is_nt, __call_is_nothrow): New helpers.
1734 (__is_callable, __is_nothrow_callable): New traits.
1735 (is_callable, is_callable_v): New C++17 traits.
1736 (is_nothrow_callable, is_nothrow_callable_v): Likewise.
1737 * testsuite/20_util/is_callable/requirements/
1738 explicit_instantiation.cc: New test.
1739 * testsuite/20_util/is_callable/requirements/
1740 explicit_instantiation_ext.cc: New test.
1741 * testsuite/20_util/is_callable/requirements/typedefs.cc: New test.
1742 * testsuite/20_util/is_callable/requirements/typedefs_ext.cc: New
1744 * testsuite/20_util/is_callable/value.cc: New test.
1745 * testsuite/20_util/is_callable/value_ext.cc: New test.
1746 * testsuite/20_util/is_nothrow_callable/requirements/
1747 explicit_instantiation.cc: New test.
1748 * testsuite/20_util/is_nothrow_callable/requirements/
1749 explicit_instantiation_ext.cc: New test.
1750 * testsuite/20_util/is_nothrow_callable/requirements/typedefs.cc:
1752 * testsuite/20_util/is_nothrow_callable/requirements/typedefs_ext.cc:
1754 * testsuite/20_util/is_nothrow_callable/value.cc: New test.
1755 * testsuite/20_util/is_nothrow_callable/value_ext.cc: New test.
1757 * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
1758 * doc/html/manual/status.html: Regenerate.
1760 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Use
1761 effective target not dg-options. Move check for feature-test macro to:
1762 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
1765 * include/std/functional (_Unwrap): Rename to __inv_unwrap.
1767 (__invoke_impl): Remove unused template parameters.
1768 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
1770 * testsuite/20_util/function_objects/invoke/ref_ext.cc: Copy 59768.cc
1771 and test __invoke extension for C++11.
1773 2016-08-03 Jonathan Wakely <jwakely@redhat.com>
1775 * include/bits/shared_ptr_base.h (__cpp_lib_enable_shared_from_this):
1776 Define feature-test macro.
1777 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Test
1780 * include/bits/shared_ptr.h (shared_ptr::weak_type): Define.
1781 * include/bits/shared_ptr_base.h (__shared_ptr::weak_type): Define.
1782 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
1783 * testsuite/20_util/shared_ptr/requirements/weak_type.cc: New test.
1784 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
1786 * include/std/utility (as_const): Define.
1787 * testsuite/20_util/as_const/1.cc: New test.
1788 * testsuite/20_util/as_const/rvalue_neg.cc: New test.
1790 * include/bits/shared_ptr.h (owner_less): Add default template
1792 * include/bits/shared_ptr_base.h (_Sp_owner_less<void, void>): Define
1794 (owner_less<void>): Define specialization.
1795 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
1797 * testsuite/20_util/owner_less/void.cc: New test.
1798 * testsuite/experimental/feat-cxx14.cc: Update macro value tested.
1800 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
1801 Define feature-test macro.
1802 * include/bits/range_access.h (__cpp_lib_array_constexpr): Likewise.
1803 * include/std/shared_mutex (__cpp_lib_shared_mutex): Uncomment.
1804 * include/std/type_traits (__cpp_lib_logical_traits): Fix value.
1805 (__cpp_lib_type_trait_variable_templates): Define.
1807 * include/bits/stl_function.h: Remove commented-out macro.
1808 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
1809 Define feature-test macro.
1810 * testsuite/experimental/feat-cxx14.cc: Add tests for more macros.
1812 * include/bits/c++config (_GLIBCXX_USE_STD_SPEC_FUNCS): Define for
1813 C++17, or for C++11/C++14 when __STDCPP_WANT_MATH_SPEC_FUNCS__ is
1815 * include/bits/specfun.h [!__STDCPP_WANT_MATH_SPEC_FUNCS__]: Don't
1816 do #error for C++17.
1817 * include/c_global/cmath: Check _GLIBCXX_USE_STD_SPEC_FUNCS instead
1818 of __STDCPP_WANT_MATH_SPEC_FUNCS__.
1819 * include/tr1/bessel_function.tcc: Likewise.
1820 * include/tr1/beta_function.tcc: Likewise.
1821 * include/tr1/cmath: Likewise.
1822 * include/tr1/ell_integral.tcc: Likewise.
1823 * include/tr1/exp_integral.tcc: Likewise.
1824 * include/tr1/gamma.tcc: Likewise.
1825 * include/tr1/hypergeometric.tcc: Likewise.
1826 * include/tr1/legendre_function.tcc: Likewise.
1827 * include/tr1/modified_bessel_func.tcc: Likewise.
1828 * include/tr1/poly_hermite.tcc: Likewise.
1829 * include/tr1/poly_laguerre.tcc: Likewise.
1830 * include/tr1/riemann_zeta.tcc: Likewise.
1831 * include/tr1/special_function_util.h: Likewise.
1832 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc: New.
1834 * include/std/type_traits (has_trivial_default_constructor): Remove.
1835 (has_trivial_copy_constructor, has_trivial_copy_assign): Likewise.
1836 * testsuite/20_util/has_trivial_copy_assign/requirements/
1837 explicit_instantiation.cc: Remove test.
1838 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
1840 * testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc:
1842 * testsuite/20_util/has_trivial_copy_assign/value.cc: Likewise.
1843 * testsuite/20_util/has_trivial_copy_constructor/requirements/
1844 explicit_instantiation.cc: Likewise.
1845 * testsuite/20_util/has_trivial_copy_constructor/requirements/
1846 typedefs.cc: Likewise.
1847 * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise.
1848 * testsuite/20_util/has_trivial_default_constructor/requirements/
1849 explicit_instantiation.cc: Likewise.
1850 * testsuite/20_util/has_trivial_default_constructor/requirements/
1851 typedefs.cc: Likewise.
1852 * testsuite/20_util/has_trivial_default_constructor/value.cc:
1854 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
1855 Check has_trivial_default_constructor, has_trivial_copy_constructor,
1856 and has_trivial_copy_assign are not defined.
1857 * testsuite/20_util/pair/requirements/dr801.cc: Remove commented out
1859 * testsuite/20_util/tuple/requirements/dr801.cc: Likewise.
1860 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
1861 dg-error line number.
1862 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1865 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
1867 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
1868 Remove reundant check for _GLIBCXX_USE_WCHAR_T and fix char type.
1869 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
1871 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
1873 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
1875 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
1877 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
1879 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
1882 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Improve
1885 * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Move
1886 dg-error to relevant line.
1887 * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc:
1889 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
1891 * scripts/testsuite_flags.in: Add -fno-show-column to cxxflags.
1893 * testsuite/18_support/bad_exception/23591_thread-1.c: Skip test if
1894 options are present that aren't valid for C.
1895 * testsuite/abi/header_cxxabi.c: Likewise.
1897 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/
1898 check_value.cc: Do not add special functions to namespace std in TR1
1901 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Only
1902 run for C++11 and later.
1903 * testsuite/ext/special_functions/conf_hyperg/check_value.cc:
1905 * testsuite/ext/special_functions/conf_hyperg/compile.cc: Likewise.
1906 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
1907 * testsuite/ext/special_functions/hyperg/check_value.cc: Likewise.
1908 * testsuite/ext/special_functions/hyperg/compile.cc: Likewise.
1909 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
1911 * testsuite/special_functions/01_assoc_laguerre/check_value.cc:
1913 * testsuite/special_functions/01_assoc_laguerre/compile.cc: Likewise.
1914 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc:
1916 * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
1918 * testsuite/special_functions/02_assoc_legendre/check_value.cc:
1920 * testsuite/special_functions/02_assoc_legendre/compile.cc: Likewise.
1921 * testsuite/special_functions/02_assoc_legendre/compile_2.cc:
1922 * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
1923 * testsuite/special_functions/03_beta/check_value.cc: Likewise.
1924 * testsuite/special_functions/03_beta/compile.cc: Likewise.
1925 * testsuite/special_functions/03_beta/compile_2.cc: Likewise.
1926 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: Likewise.
1927 * testsuite/special_functions/04_comp_ellint_1/check_value.cc:
1929 * testsuite/special_functions/04_comp_ellint_1/compile.cc: Likewise.
1930 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Likewise.
1931 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: Likewise.
1932 * testsuite/special_functions/05_comp_ellint_2/check_value.cc:
1934 * testsuite/special_functions/05_comp_ellint_2/compile.cc: Likewise.
1935 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Likewise.
1936 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: Likewise.
1937 * testsuite/special_functions/06_comp_ellint_3/check_value.cc:
1939 * testsuite/special_functions/06_comp_ellint_3/compile.cc: Likewise.
1940 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Likewise.
1941 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: Likewise.
1942 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc:
1944 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: Likewise.
1945 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Likewise.
1946 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: Likewise.
1947 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: Likewise.
1948 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc:
1950 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: Likewise.
1951 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Likewise.
1952 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: Likewise.
1953 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc:
1955 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: Likewise.
1956 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Likewise.
1957 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: Likewise.
1958 * testsuite/special_functions/10_cyl_neumann/check_value.cc: Likewise.
1959 * testsuite/special_functions/10_cyl_neumann/compile.cc: Likewise.
1960 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Likewise.
1961 * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
1962 * testsuite/special_functions/11_ellint_1/check_value.cc: Likewise.
1963 * testsuite/special_functions/11_ellint_1/compile.cc: Likewise.
1964 * testsuite/special_functions/11_ellint_1/compile_2.cc: Likewise.
1965 * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
1966 * testsuite/special_functions/12_ellint_2/check_value.cc: Likewise.
1967 * testsuite/special_functions/12_ellint_2/compile.cc: Likewise.
1968 * testsuite/special_functions/12_ellint_2/compile_2.cc: Likewise.
1969 * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
1970 * testsuite/special_functions/13_ellint_3/check_value.cc: Likewise.
1971 * testsuite/special_functions/13_ellint_3/compile.cc: Likewise.
1972 * testsuite/special_functions/13_ellint_3/compile_2.cc: Likewise.
1973 * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
1974 * testsuite/special_functions/14_expint/check_value.cc: Likewise.
1975 * testsuite/special_functions/14_expint/compile.cc: Likewise.
1976 * testsuite/special_functions/14_expint/compile_2.cc: Likewise.
1977 * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
1978 * testsuite/special_functions/15_hermite/check_value.cc: Likewise.
1979 * testsuite/special_functions/15_hermite/compile.cc: Likewise.
1980 * testsuite/special_functions/15_hermite/compile_2.cc: Likewise.
1981 * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
1982 * testsuite/special_functions/16_laguerre/check_value.cc: Likewise.
1983 * testsuite/special_functions/16_laguerre/compile.cc: Likewise.
1984 * testsuite/special_functions/16_laguerre/compile_2.cc: Likewise.
1985 * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
1986 * testsuite/special_functions/17_legendre/check_value.cc: Likewise.
1987 * testsuite/special_functions/17_legendre/compile.cc: Likewise.
1988 * testsuite/special_functions/17_legendre/compile_2.cc: Likewise.
1989 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: Likewise.
1990 * testsuite/special_functions/18_riemann_zeta/check_value.cc:
1992 * testsuite/special_functions/18_riemann_zeta/compile.cc: Likewise.
1993 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Likewise.
1994 * testsuite/special_functions/19_sph_bessel/check_nan.cc: Likewise.
1995 * testsuite/special_functions/19_sph_bessel/check_value.cc: Likewise.
1996 * testsuite/special_functions/19_sph_bessel/compile.cc: Likewise.
1997 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Likewise.
1998 * testsuite/special_functions/20_sph_legendre/check_nan.cc: Likewise.
1999 * testsuite/special_functions/20_sph_legendre/check_value.cc:
2001 * testsuite/special_functions/20_sph_legendre/compile.cc: Likewise.
2002 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Likewise.
2003 * testsuite/special_functions/21_sph_neumann/check_nan.cc: Likewise.
2004 * testsuite/special_functions/21_sph_neumann/check_value.cc: Likewise.
2005 * testsuite/special_functions/21_sph_neumann/compile.cc: Likewise.
2006 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Likewise.
2008 * testsuite/tr1/5_numerical_facilities/special_functions/
2009 08_cyl_bessel_i/check_value.cc: Use __attribute__((unused)) instead
2011 * testsuite/tr1/5_numerical_facilities/special_functions/
2012 09_cyl_bessel_j/check_value.cc: Likewise.
2013 * testsuite/tr1/5_numerical_facilities/special_functions/
2014 10_cyl_bessel_k/check_value.cc: Likewise.
2015 * testsuite/tr1/5_numerical_facilities/special_functions/
2016 11_cyl_neumann/check_value.cc: Likewise.
2017 * testsuite/tr1/5_numerical_facilities/special_functions/
2018 21_sph_bessel/check_value.cc: Likewise.
2019 * testsuite/tr1/5_numerical_facilities/special_functions/
2020 23_sph_neumann/check_value.cc: Likewise.
2022 2016-08-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2024 * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
2025 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
2026 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
2027 * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
2028 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
2029 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
2031 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
2033 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: Skip
2036 * testsuite/lib/libstdc++.exp (v3-build_support): Add -fno-lto to
2037 additional flags for compiling libtestc++.a objects.
2039 2016-08-01 Jonathan Wakely <jwakely@redhat.com>
2041 * include/bits/basic_string.h (data() const): Update comment.
2042 (data()): Add non-const overload for C++17.
2043 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
2044 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
2046 * include/bits/basic_string.tcc: Disable explicit instantiation
2047 declarations for C++17.
2049 * testsuite/23_containers/unordered_map/requirements/53339.cc: Remove
2050 ignored "xfail" from { dg-do compile { xfail selector } } directive.
2051 * testsuite/23_containers/unordered_multimap/requirements/53339.cc:
2053 * testsuite/26_numerics/headers/cmath/
2054 c99_classification_macros_c++11.cc: Likewise.
2055 * testsuite/26_numerics/headers/cmath/
2056 c99_classification_macros_c++98.cc: Likewise.
2057 * testsuite/26_numerics/headers/cmath/
2058 c99_classification_macros_c.cc: Likewise.
2060 * testsuite/backward/hash_set/check_construct_destroy.cc: Account
2061 for different construct/destroy counts in C++98 mode.
2063 * testsuite/17_intro/freestanding.cc: Remove "-x c" from dg-options.
2065 * testsuite/20_util/tuple/cons/66338.cc: Limit test to C++11 and
2067 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc:
2070 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Use
2071 C++98-compatible initialization for array.
2073 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc: Remove
2074 unused header and variable from compile-only test.
2075 * testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc: Likewise.
2076 * testsuite/28_regex/basic_regex/assign/char/cstring.cc: Likewise.
2077 * testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc: Likewise.
2078 * testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc:
2081 * testsuite/experimental/string_view/operations/rfind/char/2.cc:
2082 Remove duplicate dg-options directive.
2084 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
2085 808590.cc: Use -std=gnu++98 instead of -std=gnu++03.
2087 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Remove
2088 linker options from compile-only tests.
2089 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
2092 * testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Make test
2093 supported for C++11 and later.
2094 * testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
2095 * testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.
2097 2016-08-01 Uros Bizjak <ubizjak@gmail.com>
2099 * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
2101 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
2103 * testsuite/20_util/conditional/requirements/typedefs.cc: Change to
2106 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
2107 Ensure test is compiled with optimization.
2109 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
2110 Adjust dg-prune-output pattern for error in C++98 mode.
2112 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Only
2113 run for C++11 or later.
2115 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Fix
2116 test to not rely on GNU extension (escaped normal characters in POSIX
2117 BRE). Enable tests for other strings which are now supported.
2119 * testsuite/20_util/pair/astuple/get_neg.cc: Use effective-target
2120 c++11 instead of setting -std=gnu++14.
2123 * include/std/array (get): Use positive message for static assertions.
2124 * include/std/functional (_Safe_tuple_element_t): Fix indentation.
2125 * include/std/tuple (tuple_element<I, tuple<>>): Add partial
2126 specialization for invalid indices, with static assertion.
2127 * testsuite/20_util/tuple/element_access/get_neg.cc: New test.
2129 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Move
2130 dg-error to relevant line.
2131 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
2133 * testsuite/23_containers/forward_list/requirements/dr438/
2134 assign_neg.cc: Likewise.
2135 * testsuite/23_containers/forward_list/requirements/dr438/
2136 constructor_1_neg.cc: Likewise.
2137 * testsuite/23_containers/forward_list/requirements/dr438/
2138 constructor_2_neg.cc: Likewise.
2139 * testsuite/23_containers/forward_list/requirements/dr438/
2140 insert_neg.cc: Likewise.
2141 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc:
2143 * testsuite/26_numerics/random/linear_congruential_engine/
2144 requirements/non_uint_neg.cc: Likewise.
2145 * testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc:
2146 Likewise. Also test for std::atomic_address.
2148 2016-07-31 Ville Voutilainen <ville.voutilainen@gmail.com>
2150 Add missing variable traits, fix testsuite failures.
2151 * include/bits/uses_allocator.h (uses_allocator_v): New.
2152 * include/std/functional (is_bind_expression_v, is_placeholder_v):
2154 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
2155 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
2156 * testsuite/20_util/duration/literals/range.cc: Likewise.
2157 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
2158 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
2159 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
2160 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise.
2161 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
2163 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
2164 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
2167 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
2169 * testsuite/18_support/numeric_limits/40856.cc [__STRICT_ANSI__]: Do
2170 not test 128-bit types.
2171 * testsuite/20_util/is_floating_point/value.cc: Likewise.
2172 * testsuite/20_util/is_integral/value.cc: Likewise.
2173 * testsuite/20_util/is_signed/value.cc: Likewise.
2174 * testsuite/20_util/is_unsigned/value.cc: Likewise.
2175 * testsuite/20_util/make_signed/requirements/typedefs-1.cc: Likewise.
2176 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
2177 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
2179 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
2182 * testsuite/26_numerics/headers/cstdlib/54686.c: Rename to 54686.cc.
2184 2016-07-29 Ville Voutilainen <ville.voutilainen@gmail.com>
2186 Implement C++17 variable templates for type traits.
2187 * include/std/chrono (treat_as_floating_point_v): New.
2188 * include/std/ratio (ratio_equal_v, ratio_not_equal_v)
2189 (ratio_less_v, ratio_less_equal_v, ratio_greater_v)
2190 (ratio_greater_equal_v): Likewise.
2191 * include/std/system_error (is_error_code_enum_v)
2192 (is_error_condition_enum_v): Likewise.
2193 * include/std/tuple (tuple_size_v): Likewise.
2194 * type_traits (conjunction_v, disjunction_v, negation_v)
2195 (is_void_v, is_null_pointer_v, is_integral_v, is_floating_point_v)
2196 (is_array_v, is_pointer_v, is_lvalue_reference_v)
2197 (is_rvalue_reference_v, is_member_object_pointer_v)
2198 (is_member_function_pointer_v, is_enum_v, is_union_v)
2199 (is_class_v, is_function_v, is_reference_v, is_arithmetic_v)
2200 (is_fundamental_v, is_object_v, is_scalar_v, is_compound_v)
2201 (is_member_pointer_v, is_const_v, is_volatile_v, is_trivial_v)
2202 (is_trivially_copyable_v, is_standard_layout_v)
2203 (is_pod_v, is_literal_type_v, is_empty_v, is_polymorphic_v)
2204 (is_abstract_v, is_final_v, is_signed_v, is_unsigned_v)
2205 (is_constructible_v, is_default_constructible_v)
2206 (is_copy_constructible_v, is_move_constructible_v)
2207 (is_assignable_v, is_copy_assignable_v, is_move_assignable_v)
2208 (is_destructible_v, is_trivially_constructible_v)
2209 (is_trivially_default_constructible_v)
2210 (is_trivially_copy_constructible_v, is_trivially_move_constructible_v)
2211 (is_trivially_assignable_v, is_trivially_copy_assignable_v)
2212 (is_trivially_move_assignable_v, is_trivially_destructible_v)
2213 (is_nothrow_constructible_v, is_nothrow_default_constructible_v)
2214 (is_nothrow_copy_constructible_v, is_nothrow_move_constructible_v)
2215 (is_nothrow_assignable_v, is_nothrow_copy_assignable_v)
2216 (is_nothrow_move_assignable_v, is_nothrow_destructible_v)
2217 (has_virtual_destructor_v, alignment_of_v, rank_v, extent_v)
2218 (is_same_v, is_base_of_v, is_convertible_v): Likewise.
2219 * testsuite/19_diagnostics/error_code/is_error_code_v.cc: Likewise.
2220 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
2222 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc: Likewise.
2223 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
2224 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
2226 2016-07-29 Andreas Schwab <schwab@linux-m68k.org>
2228 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
2229 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
2230 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
2232 2016-07-29 Jonathan Wakely <jwakely@redhat.com>
2234 * doc/xml/manual/abi.xml: Document 6.0.22 library version.
2235 * doc/html/manual/abi.html: Regenerate.
2237 * acinclude.m4 (libtool_VERSION): Bump to 6:23:0.
2238 * config/abi/pre/gnu.ver: Add 3.4.23 version for new basic_string
2240 * configure: Regenerate.
2241 * testsuite/util/testsuite_abi.cc: Add new symbol version.
2243 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
2244 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
2245 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Likewise.
2246 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
2248 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
2249 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
2250 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Likewise.
2252 2016-07-28 Jonathan Wakely <jwakely@redhat.com>
2254 * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
2255 Adjust dg-prune-output pattern for error in C++98 mode.
2256 * testsuite/23_containers/deque/requirements/dr438/
2257 constructor_1_neg.cc: Likewise.
2258 * testsuite/23_containers/deque/requirements/dr438/
2259 constructor_2_neg.cc: Likewise.
2260 * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
2262 * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
2264 * testsuite/23_containers/list/requirements/dr438/
2265 constructor_1_neg.cc: Likewise.
2266 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
2268 * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
2270 * testsuite/23_containers/vector/requirements/dr438/
2271 constructor_1_neg.cc: Likewise.
2272 * testsuite/23_containers/vector/requirements/dr438/
2273 constructor_2_neg.cc: Likewise.
2274 * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
2277 * testsuite/23_containers/vector/check_construct_destroy.cc: Account
2278 for different construct/destroy counts in C++98 mode.
2280 * testsuite/17_intro/headers/c++2011/stdc++.cc: Change target-specific
2281 dg-options to dg-additional-options so that default options are used.
2282 * testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc:
2284 * testsuite/17_intro/headers/c++2014/stdc++.cc: Likewise.
2285 * testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc:
2287 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
2288 Use dg-additional-options instead of repeating the common options.
2290 * testsuite/22_locale/conversions/string/1.cc: Remove unintended
2291 dg-do compile directive.
2292 * testsuite/26_numerics/headers/cmath/fabs_inline.cc: Fix syntax of
2294 * testsuite/26_numerics/valarray/const_bracket.cc: Likewise.
2296 2016-07-28 Ville Voutilainen <ville.voutilainen@gmail.com>
2298 Implement std::string_view and P0254r2,
2299 Integrating std::string_view and std::string.
2300 * include/Makefile.am: Add string_view and string_view.tcc
2301 to the exported headers.
2302 * include/Makefile.in: Likewise.
2303 * include/bits/basic_string.h: Include <string_view> in C++17 mode.
2305 (basic_string(__sv_type, const _Alloc&)): Likewise.
2306 (operator=(__sv_type)): Likewise.
2307 (operator __sv_type()): Likewise.
2308 (operator+=(__sv_type)): Likewise.
2309 (append(__sv_type __sv)): Likewise.
2310 (append(__sv_type, size_type, size_type)): Likewise.
2311 (assign(__sv_type)): Likewise.
2312 (assign(__sv_type, size_type, size_type)): Likewise.
2313 (insert(size_type, __sv_type)): Likewise.
2314 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
2315 (replace(size_type, size_type, __sv_type)): Likewise.
2316 (replace(size_type, size_type, __sv_type, size_type, size_type)):
2318 (replace(const_iterator, const_iterator, __sv_type)): Likewise.
2319 (find(__sv_type, size_type)): Likewise.
2320 (rfind(__sv_type, size_type)): Likewise.
2321 (find_first_of(__sv_type, size_type)): Likewise.
2322 (find_last_of(__sv_type, size_type)): Likewise.
2323 (find_first_not_of(__sv_type, size_type)): Likewise.
2324 (find_last_not_of(__sv_type, size_type)): Likewise.
2325 (compare(__sv_type)): Likewise.
2326 (compare(size_type, size_type, __sv_type)): Likewise.
2327 (compare(size_type, size_type, __sv_type, size_type, size_type)):
2329 * include/bits/string_view.tcc: New.
2330 * include/std/string_view: Likewise.
2331 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
2332 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
2333 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
2335 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
2337 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
2339 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
2341 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
2343 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
2345 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
2347 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
2349 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
2351 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
2353 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
2355 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
2357 * testsuite/21_strings/basic_string/operators/char/5.cc: Likewise.
2358 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc: Likewise.
2359 * testsuite/21_strings/basic_string_view/capacity/1.cc: Likewise.
2360 * testsuite/21_strings/basic_string_view/cons/char/1.cc: Likewise.
2361 * testsuite/21_strings/basic_string_view/cons/char/2.cc: Likewise.
2362 * testsuite/21_strings/basic_string_view/cons/char/3.cc: Likewise.
2363 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc: Likewise.
2364 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc: Likewise.
2365 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc: Likewise.
2366 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
2368 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
2370 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
2372 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
2374 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
2376 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
2378 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
2380 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
2382 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
2383 * testsuite/21_strings/basic_string_view/inserters/char/1.cc: Likewise.
2384 * testsuite/21_strings/basic_string_view/inserters/char/2.cc: Likewise.
2385 * testsuite/21_strings/basic_string_view/inserters/char/3.cc: Likewise.
2386 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
2388 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
2390 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
2392 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
2394 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
2396 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
2398 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
2400 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
2402 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
2404 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
2406 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
2408 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
2410 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
2412 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
2414 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
2416 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
2418 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
2420 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
2422 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
2424 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
2426 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
2428 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
2430 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
2432 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
2434 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
2436 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
2438 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
2440 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
2442 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
2444 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
2446 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
2448 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
2450 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
2452 * testsuite/21_strings/basic_string_view/operators/char/2.cc: Likewise.
2453 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
2455 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
2457 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
2459 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
2461 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
2463 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
2465 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
2467 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
2469 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
2471 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
2472 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
2474 2016-07-27 Jonathan Wakely <jwakely@redhat.com>
2476 * testsuite/20_util/forward/1_neg.cc: Move dg-error to right line.
2478 2016-07-25 Georeth Chow <georeth2010@gmail.com>
2480 * include/ext/ropeimpl.h (rope<>::_S_dump(_RopeRep*, int)): Qualify
2481 _S_concat enumerator.
2482 * testsuite/ext/rope/6.cc: New test.
2484 2016-07-25 Jonathan Wakely <jwakely@redhat.com>
2486 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Use
2487 std::mt19937, std::thread and std::atomic to simplify test.
2488 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
2490 2016-07-22 Jonathan Wakely <jwakely@redhat.com>
2493 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2494 (basic_string::_Alloc_hider(pointer, _Alloc&&)): Add constructor.
2495 * include/bits/stl_tree.h (_Rb_tree(_Rb_tree&&)): Move allocator.
2496 * testsuite/21_strings/basic_string/allocator/71964.cc: New test.
2497 * testsuite/23_containers/set/allocator/71964.cc: New test.
2499 * testsuite/lib/libstdc++.exp (check_v3_target_namedlocale): Use
2500 delete[] instead of delete.
2502 2016-07-21 Jonathan Wakely <jwakely@redhat.com>
2504 * include/experimental/propagate_const (propagate_const::__t): Rename
2505 to _M_t and remove comment. Qualify std::move and std::forward.
2506 * testsuite/experimental/propagate_const/cons/default.cc: Fix test.
2508 * testsuite/23_containers/vector/zero_sized_allocations.cc:
2509 Define sized deallocation function.
2510 * testsuite/util/testsuite_new_operators.h:
2511 (operator delete(void*, const std::nothrow_t&)): Define nothrow
2512 deallocation function.
2514 * testsuite/21_strings/basic_string/modifiers/append/char/1.cc: Fix
2515 reads past the end of strings.
2516 * testsuite/21_strings/basic_string/operations/compare/char/1.cc:
2518 * testsuite/21_strings/char_traits/requirements/short/1.cc: Fix
2519 invalid array accesses.
2520 * testsuite/experimental/string_view/operations/compare/char/1.cc:
2521 Fix read past the end of string.
2522 * testsuite/util/testsuite_character.cc: Fix out-of-bounds write.
2524 * testsuite/24_iterators/container_access.cc: Fix missing returns.
2525 * testsuite/24_iterators/range_access_cpp14.cc: Likewise.
2527 * testsuite/18_support/new_delete_placement.cc: Don't allocate (and
2528 leak) memory for arguments to placement delete.
2529 * testsuite/20_util/addressof/1.cc: Don't leak memory.
2530 * testsuite/22_locale/locale/global_locale_objects/3.cc: Likewise.
2531 * testsuite/23_containers/unordered_multimap/insert/55028-debug.cc:
2534 2016-07-20 Jonathan Wakely <jwakely@redhat.com>
2536 * doc/xml/manual/intro.xml: Document DR 2684 status.
2537 * doc/html/*: Regenerate.
2539 * include/std/atomic (atomic_int8_t, atomic_uint8_t, atomic_int16_t)
2540 (atomic_uint16_t, atomic_int32_t, atomic_uint32_t, atomic_int64_t)
2541 (atomic_uint64_t): Define (LWG 2441).
2542 * testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc: Remove empty
2544 * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Test for
2546 * doc/xml/manual/intro.xml: Document DR 2441 status.
2548 * include/std/istream (operator>>(basic_istream&&, _Tp&)): Adjust
2549 to use perfect forwarding (LWG 2328).
2550 * testsuite/27_io/rvalue_streams.cc: Test perfect forwarding.
2551 * doc/xml/manual/intro.xml: Document DR 2328 status.
2553 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Use
2554 static objects for catching nullptr as pointer to member types.
2556 2016-07-18 Ville Voutilainen <ville.voutilainen@gmail.com>
2558 Clean up optional's comments.
2559 * include/std/optional: Remove incorrect section headers
2560 from comments when redundant, replace bare section
2561 headers with more descriptive comments.
2563 2016-07-15 Jonathan Wakely <jwakely@redhat.com>
2565 * include/bits/algorithmfwd.h: Change C++0x to C++11 in comments.
2566 * include/bits/move.h: Likewise.
2567 * include/bits/postypes.h: Likewise.
2568 * include/debug/bitset: Likewise.
2569 * include/ext/pb_ds/detail/type_utils.hpp: Likewise.
2570 * include/ext/string_conversions.h: Change C++0x to __cxx11 in
2572 * testsuite/27_io/fpos/14320-1.cc: Change C++0x to C++11 in comment.
2573 * testsuite/util/thread/all.h: Likewise.
2575 * include/bits/stl_algo.h (for_each): Remove redundant _GLIBCXX_MOVE
2579 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Make
2580 nullptr match handlers of pointer type.
2582 2016-07-15 Edward Smith-Rowland <3dw4rd@verizon.net>
2584 Implement C++17 P0025 clamp.
2585 * include/bits/algorithmfwd.h: Declare clamp overloads.
2586 * include/bits/stl_algo.h: Implement clamp. Feature __cpp_lib_clamp.
2587 * testsuite/25_algorithms/clamp/1.cc: New test.
2588 * testsuite/25_algorithms/clamp/2.cc: New test.
2589 * testsuite/25_algorithms/clamp/constexpr.cc: New test.
2590 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
2592 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
2595 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
2597 Fix the constraints for any's assignment operator template to properly
2598 reject assignment from a non-copyable lvalue.
2599 * include/std/any (operator=(_ValueType&&)): Constrain the decayed
2600 type for is_copy_constructible,
2601 * testsuite/20_util/any/requirements.cc: Add a test for
2602 non-copyable lvalues.
2604 2016-07-14 Jonathan Wakely <jwakely@redhat.com>
2606 * include/experimental/functional: Include <parallel/algorithm> in
2609 * testsuite/experimental/functional/searchers.cc: Include <algorithm>
2613 * include/bits/forward_list.h (forward_list): Update doxygen comments
2614 to reflect allocator propagation semantics. Remove ambiguous
2615 statements about data being lost.
2616 * include/bits/stl_deque.h (deque): Likewise.
2617 * include/bits/stl_list.h (list): Likewise.
2618 * include/bits/stl_map.h (map): Likewise.
2619 * include/bits/stl_multimap.h (multimap): Likewise.
2620 * include/bits/stl_multiset.h (multiset): Likewise.
2621 * include/bits/stl_set.h (set): Likewise.
2622 * include/bits/stl_vector.h (vector): Likewise.
2623 * include/bits/unordered_map.h (unordered_map, unordered_multimap):
2625 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
2628 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
2630 Implement P0032R3, Homogeneous interface for variant, any and optional,
2631 for the parts concerning any and optional.
2632 * include/std/any (_Storage()): Make constexpr and have it
2634 (any()): Make constexpr.
2635 (any(const any&)): Adjust.
2636 (any(any&&)): Likewise.
2637 (__any_constructible_t): New.
2638 (any(_ValueType&&)): Constrain.
2639 (any(in_place_type_t<_Tp>, _Args&&...)): New.
2640 (any(in_place_type_t<_Tp>, initializer_list<_Up>, _Args&&...)):
2643 (operator=(const any&)): Likewise.
2644 (operator=(any&&)): Likewise.
2645 (operator=(_ValueType&&)): Constrain.
2646 (emplace(_Args&&...)): New.
2647 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
2650 (swap(any&)): Adjust.
2654 (_Manager_internal::_S_create(_Storage&, _Args&&...)): New.
2655 (_Manager_external::_S_create(_Storage&, _Args&&...)): Likewise.
2656 (make_any(_Args&&...)): Likewise.
2657 (make_any(initializer_list<_Up>, _Args&&...)): Likewise.
2658 * include/std/optional (in_place_t, in_place): Remove.
2659 (bad_optional_access): Add a comment referring to LEWG 72.
2660 (emplace(_Args&&...)): Constrain.
2662 (reset()): Likewise.
2663 (make_optional(_Args&&...)): Likewise.
2664 (make_optional(initializer_list<_Up>, _Args&&...)): Likewise.
2665 * include/std/utility (in_place_tag): New.
2666 (__in_place, __in_place_type, __in_place_index): Likewise.
2667 (in_place_t, in_place_type_t, in_place_index_t): Likewise.
2668 (in_place(__in_place*)): Likewise.
2669 (in_place(__in_place_type<_Tp>*)): Likewise.
2670 (in_place(__in_place_index<_Idx>*)): Likewise.
2671 * testsuite/20_util/any/assign/1.cc: Adjust.
2672 * testsuite/20_util/any/assign/emplace.cc: New.
2673 * testsuite/20_util/any/assign/self.cc: Adjust.
2674 * testsuite/20_util/any/cons/1.cc: Likewise.
2675 * testsuite/20_util/any/cons/in_place.cc: New.
2676 * testsuite/20_util/any/make_any.cc: Likewise.
2677 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
2678 * testsuite/20_util/any/misc/swap.cc: Likewise.
2679 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2680 * testsuite/20_util/any/requirements.cc: New.
2681 * testsuite/20_util/in_place/requirements.cc: Likewise.
2682 * testsuite/20_util/optional/constexpr/in_place.cc: Adjust.
2683 * testsuite/20_util/optional/in_place.cc: Likewise.
2684 * testsuite/20_util/optional/make_optional.cc: Add tests for
2685 the new overloads of make_optional.
2687 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2689 Implement P0307R2, Making Optional Greater Equal Again.
2690 * include/experimental/optional (_Has_addressof): Fix the comment.
2691 * include/std/optional (_Has_addressof): Likewise.
2692 (operator=(_Up&&)): Constrain.
2693 (operator=(const optional<_Up>&)): Likewise.
2694 (operator=(optional<_Up>&&)): Likewise.
2695 (__optional_relop_t): New.
2696 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2697 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2698 Constrain and make transparent.
2699 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2700 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2701 Constrain and make transparent.
2702 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2703 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2704 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2705 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2706 (operator!=(const optional<_Tp>&, _Tp const&)):
2707 Constrain and make transparent.
2708 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2709 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2710 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2711 (operator>(const optional<_Tp>&, const _Tp&)):
2712 Constrain and make transparent.
2713 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2714 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2715 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2716 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2717 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2718 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2719 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2720 * testsuite/20_util/optional/relops/1.cc: Likewise.
2721 * testsuite/20_util/optional/relops/2.cc: Likewise.
2722 * testsuite/20_util/optional/relops/3.cc: Likewise.
2723 * testsuite/20_util/optional/relops/4.cc: Likewise.
2724 * testsuite/20_util/optional/requirements.cc: Add tests to verify
2725 that optional's relops are transparent and don't synthesize
2726 operators. Also test that assignment sfinaes.
2728 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2731 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Define to 1 not empty.
2732 * include/parallel/compiletime_settings.h (_GLIBCXX_ASSERTIONS):
2733 Rename to _GLIBCXX_PARALLEL_ASSERTIONS and make default value depend
2734 on _GLIBCXX_ASSERTIONS.
2735 * include/parallel/balanced_quicksort.h: Rename _GLIBCXX_ASSERTIONS.
2736 Include <unistd.h> for sleep.
2737 * include/parallel/losertree.h: Rename _GLIBCXX_ASSERTIONS.
2738 * include/parallel/merge.h: Likewise.
2739 * include/parallel/multiway_merge.h: Likewise.
2740 * include/parallel/partition.h: Likewise.
2741 * include/parallel/queue.h: Likewise.
2742 * include/parallel/sort.h: Likewise.
2743 * testsuite/25_algorithms/headers/algorithm/
2744 parallel_algorithm_assert.cc: New.
2746 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2747 (replace(__const_iterator, __const_iterator, initializer_list<C>)):
2748 Forward to different overload.
2750 * include/bits/allocated_ptr.h (__allocated_ptr::_S_raw_ptr): Make
2753 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2755 Revert "Add non-const overload of std::string::data()".
2757 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2759 Implement P0307R2, Making Optional Greater Equal Again.
2760 * include/experimental/optional (_Has_addressof): Fix the comment.
2761 * include/std/optional (_Has_addressof): Likewise.
2762 (operator=(_Up&&)): Constrain.
2763 (operator=(const optional<_Up>&)): Likewise.
2764 (operator=(optional<_Up>&&)): Likewise.
2765 (__optional_relop_t): New.
2766 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2767 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2768 Constrain and make transparent.
2769 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2770 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2771 Constrain and make transparent.
2772 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2773 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2774 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2775 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2776 (operator!=(const optional<_Tp>&, _Tp const&)):
2777 Constrain and make transparent.
2778 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2779 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2780 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2781 (operator>(const optional<_Tp>&, const _Tp&)):
2782 Constrain and make transparent.
2783 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2784 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2785 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2786 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2787 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2788 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2789 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2790 * testsuite/20_util/optional/relops/1.cc: Likewise.
2791 * testsuite/20_util/optional/relops/2.cc: Likewise.
2792 * testsuite/20_util/optional/relops/3.cc: Likewise.
2793 * testsuite/20_util/optional/relops/4.cc: Likewise.
2794 * testsuite/20_util/optional/requirements.cc: Add tests to verify
2795 that optional's relops are transparent and don't synthesize
2796 operators. Also test that assignment sfinaes.
2798 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2800 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (_M_c_str):
2802 (_M_disjunct, basic_string(const basic_string&, size_t)): Use data()
2803 instead of _M_data().
2804 (basic_string(const basic_string&, size_t, size_t, const _Alloc&)):
2806 (append(const basic_string&)): Likewise.
2807 (append(const basic_string&, size_type, size_type)): Likewise.
2808 (assign(const basic_string&, size_type, size_type)): Likewise.
2809 (insert(size_type, const basic_string&)): Likewise.
2810 (insert(size_type, const basic_string&, size_type, size_type)):
2812 (replace(size_type, size_type, const basic_string&, size_type,
2813 size_type)): Likewise.
2814 (replace(__const_iterator, __const_iterator, const basic_string&)):
2816 (c_str(), data()): Use c_str() instead of _M_data().
2817 (data()): Add non-const overload as per LWG 2391 and P0272R1.
2818 (compare(const basic_string&)): Use data() instead of _M_data().
2819 [!_GLIBCXX_USE_CXX11_ABI] (data()): Add non-const overload.
2820 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI] (_M_mutate):
2821 Pass raw pointers to _S_copy.
2822 (_M_erase, _M_replace_aux): Pass raw pointers to _S_move and
2824 (find(const _CharT*, size_type, size_type)): Use data instead of
2826 * testsuite/21_strings/basic_string/allocator/char/ext_ptr.cc: New.
2827 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
2828 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
2830 2016-07-12 Jonathan Wakely <jwakely@redhat.com>
2832 * libsupc++/new: Remove nothrow sized deletes (LWG 2458).
2833 * doc/xml/manual/intro.xml: Document DR 2458 status.
2834 * doc/html*: Regenerate.
2836 * testsuite/20_util/pair/astuple/astuple.cc: Only include <utility>.
2837 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
2838 Only include <array>.
2839 * testsuite/23_containers/array/tuple_interface/tuple_size.cc:
2841 * doc/xml/manual/intro.xml: Document LWG 2212 support.
2842 * doc/html*: Regenerate.
2844 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2845 Add testcase from LWG 2164.
2847 2016-07-11 François Dumont <fdumont@gcc.gnu.org>
2849 * include/bits/stl_vector.h (push_back(const value_type&)): Forward
2850 to _M_realloc_insert.
2851 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2852 (_M_realloc_insert): Declare new function.
2853 (_M_emplace_back_aux): Remove definition.
2854 * include/bits/vector.tcc (emplace_back(_Args...)):
2855 Use _M_realloc_insert.
2856 (insert(const_iterator, const value_type&)): Likewise.
2857 (_M_insert_rval, _M_emplace_aux): Likewise.
2858 (_M_emplace_back_aux): Remove declaration.
2859 (_M_realloc_insert): Define.
2860 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2861 Adjust expected results for emplacing an lvalue with reallocation.
2863 2016-07-10 Ville Voutilainen <ville.voutilainen@gmail.com>
2865 Implement std::optional.
2866 * include/Makefile.am: Add optional to exported headers.
2867 * include/Makefile.in: Likewise.
2868 * include/std/optional: New.
2869 * testsuite/20_util/optional/typedefs.cc: Likewise.
2870 * testsuite/20_util/optional/relops/2.cc: Likewise.
2871 * testsuite/20_util/optional/relops/3.cc: Likewise.
2872 * testsuite/20_util/optional/relops/4.cc: Likewise.
2873 * testsuite/20_util/optional/relops/5.cc: Likewise.
2874 * testsuite/20_util/optional/relops/1.cc: Likewise.
2875 * testsuite/20_util/optional/relops/6.cc: Likewise.
2876 * testsuite/20_util/optional/nullopt.cc: Likewise.
2877 * testsuite/20_util/optional/in_place.cc: Likewise.
2878 * testsuite/20_util/optional/make_optional.cc: Likewise.
2879 * testsuite/20_util/optional/assignment/2.cc: Likewise.
2880 * testsuite/20_util/optional/assignment/3.cc: Likewise.
2881 * testsuite/20_util/optional/assignment/4.cc: Likewise.
2882 * testsuite/20_util/optional/assignment/5.cc: Likewise.
2883 * testsuite/20_util/optional/assignment/1.cc: Likewise.
2884 * testsuite/20_util/optional/assignment/6.cc: Likewise.
2885 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
2886 * testsuite/20_util/optional/cons/default.cc: Likewise.
2887 * testsuite/20_util/optional/cons/move.cc: Likewise.
2888 * testsuite/20_util/optional/cons/value.cc: Likewise.
2889 * testsuite/20_util/optional/cons/copy.cc: Likewise.
2890 * testsuite/20_util/optional/requirements.cc: Likewise.
2891 * testsuite/20_util/optional/observers/2.cc: Likewise.
2892 * testsuite/20_util/optional/observers/3.cc: Likewise.
2893 * testsuite/20_util/optional/observers/4.cc: Likewise.
2894 * testsuite/20_util/optional/observers/5.cc: Likewise.
2895 * testsuite/20_util/optional/observers/1.cc: Likewise.
2896 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
2897 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
2898 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2899 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
2900 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
2901 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
2902 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
2903 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
2904 * testsuite/20_util/optional/constexpr/make_optional.cc: Likewise.
2905 * testsuite/20_util/optional/constexpr/cons/default.cc: Likewise.
2906 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
2907 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
2908 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
2909 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
2910 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
2911 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
2912 * testsuite/20_util/optional/swap/1.cc: Likewise.
2914 2016-07-08 Jonathan Wakely <jwakely@redhat.com>
2916 * testsuite/23_containers/vector/modifiers/insert/aliasing.cc: New.
2918 2016-07-07 Jonathan Wakely <jwakely@redhat.com>
2920 * doc/xml/manual/status_cxx2014.xml: Update LFTS status table.
2921 * doc/html/*: Regenerate.
2923 2016-07-07 Ville Voutilainen <ville.voutilainen@gmail.com>
2926 * include/Makefile.am: Add any and c++17_warning.h to exported headers.
2927 * include/Makefile.in: Likewise.
2928 * include/std/any: New.
2929 * testsuite/20_util/any/assign/1.cc: Likewise.
2930 * testsuite/20_util/any/assign/2.cc: Likewise.
2931 * testsuite/20_util/any/assign/self.cc: Likewise.
2932 * testsuite/20_util/any/cons/1.cc: Likewise.
2933 * testsuite/20_util/any/cons/2.cc: Likewise.
2934 * testsuite/20_util/any/cons/aligned.cc: Likewise.
2935 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
2936 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
2937 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
2938 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
2939 * testsuite/20_util/any/misc/swap.cc: Likewise.
2940 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2941 * testsuite/20_util/any/observers/type.cc: Likewise.
2942 * testsuite/20_util/any/typedefs.cc: Likewise.
2944 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2946 Add a new header for diagnosing the use of C++17 facilities
2948 * include/bits/c++17_warning.h: New.
2950 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2952 Implement LWG 2451, optional<T> should 'forward' T's
2953 implicit conversions.
2954 * include/experimental/optional (__is_optional_impl, __is_optional):
2956 (optional()): Make constexpr and default.
2957 (optional(_Up&&), optional(const optional<_Up>&),
2958 optional(optional<_Up>&& __t): New.
2959 (operator=(_Up&&)): Constrain.
2960 (operator=(const optional<_Up>&), operator=(optional<_Up>&&)): New.
2961 * testsuite/experimental/optional/cons/value.cc:
2962 Add tests for the functionality added by LWG 2451.
2963 * testsuite/experimental/optional/cons/value_neg.cc: New.
2965 2016-07-05 Ville Voutilainen <ville.voutilainen@gmail.com>
2968 any_cast doesn't work with rvalue reference targets and cannot
2969 move with a value target.
2970 * include/experimental/any (any(_ValueType&&)): Constrain and
2971 add an overload that doesn't forward.
2972 (any_cast(any&&)): Constrain and add an overload that moves.
2973 * testsuite/experimental/any/misc/any_cast.cc: Add tests for
2974 the functionality added by LWG 2509.
2976 2016-07-04 François Dumont <fdumont@gcc.gnu.org>
2978 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2980 * testsuite/23_containers/vector/modifiers/insert/self_insert.cc: New
2983 2016-07-04 Jonathan Wakely <jwakely@redhat.com>
2985 * include/bits/stl_vector.h (emplace(const_iterator, _Args&&...)):
2986 Define inline. Forward to _M_emplace_aux.
2987 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2988 (_M_insert_rval, _M_emplace_aux): Declare new functions.
2989 (_Temporary_value): New RAII type using allocator to construct/destroy.
2990 (_S_insert_aux_assign): Remove.
2991 (_M_insert_aux): Make non-variadic.
2992 * include/bits/vector.tcc (insert(const_iterator, const value_type&)):
2993 Use _Temporary_value.
2994 (emplace(const_iterator, _Args&&...)): Remove definition.
2995 (_M_insert_rval, _M_emplace_aux): Define.
2996 (_M_insert_aux): Make non-variadic, stop using _S_insert_aux_assign.
2997 (_M_fill_insert): Use _Temporary_value.
2998 * testsuite/23_containers/vector/allocator/construction.cc: New test.
2999 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
3000 Adjust expected results for emplacing an lvalue with reallocation.
3001 * testsuite/23_containers/vector/check_construct_destroy.cc: Adjust
3002 expected results to account for construction/destruction of temporary
3004 * testsuite/backward/hash_set/check_construct_destroy.cc: Likewise.
3006 2016-07-04 Ville Voutilainen <ville.voutilainen@gmail.com>
3009 * src/filesystem/ops.cc (remove_all(const path&, error_code&)):
3010 Call remove_all for children of a directory.
3011 * testsuite/experimental/filesystem/operations/create_directories.cc:
3014 2016-07-02 François Dumont <fdumont@gcc.gnu.org>
3016 * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Adjust
3017 dg-error line numbers.
3018 * testsuite/23_containers/array/tuple_interface/
3019 tuple_element_debug_neg.cc: Likewise.
3020 * testsuite/25_algorithms/lexicographical_compare/debug/
3021 irreflexive_neg.cc: Remove.
3023 2016-06-30 Thomas Preud'homme <thomas.preudhomme@arm.com>
3025 * testsuite/29_atomics/atomic/65913.cc: Require atomic-builtins rather
3026 than specific target.
3028 2016-06-27 François Dumont <fdumont@gcc.gnu.org>
3031 * include/bits/hashtable.h: Remove _Unique_keya parameter in _Insert
3034 2016-06-23 François Dumont <fdumont@gcc.gnu.org>
3036 * include/debug/array (array<>::swap): Fix noexcept qualificaton for
3039 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3041 * configure.host: Remove mep-* support.
3043 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3045 * configure: Regenerate.
3046 * configure.host: Remove support for knetbsd.
3047 * crossconfig.m4: Likewise.
3049 2016-06-20 François Dumont <fdumont@gcc.gnu.org>
3052 * include/tr1/hashtable_policy.h
3053 (_Prime_rehash_policy::_M_next_bkt): Make past-the-end iterator
3054 dereferenceable to avoid check on lower_bound result.
3055 (_Prime_rehash_policy::_M_bkt_for_elements): Call latter.
3056 (_Prime_rehash_policy::_M_need_rehash): Likewise.
3057 * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
3058 Always return a value greater than input value. Set _M_next_resize to
3059 max value when reaching highest prime number.
3060 * src/shared/hashtable-aux.cc (__prime_list): Add comment about sentinel
3062 * testsuite/23_containers/unordered_set/hash_policy/71181.cc: New.
3063 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc
3065 * testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc: New.
3066 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
3069 2016-06-17 Jonathan Wakely <jwakely@redhat.com>
3072 * include/bits/stl_algobase.h (lower_bound, lexicographical_compare):
3073 Remove irreflexive checks.
3074 * include/bits/stl_algo.h (lower_bound, upper_bound, equal_range,
3075 binary_search): Likewise.
3076 * testsuite/25_algorithms/equal_range/partitioned.cc: New test.
3077 * testsuite/25_algorithms/lexicographical_compare/71545.cc: New test.
3078 * testsuite/25_algorithms/lower_bound/partitioned.cc: New test.
3079 * testsuite/25_algorithms/upper_bound/partitioned.cc: New test.
3080 * testsuite/util/testsuite_iterators.h (__gnu_test::test_container):
3081 Add constructor from array.
3083 2016-06-16 François Dumont <fdumont@gcc.gnu.org>
3085 * include/debug/debug.h
3086 (__glibcxx_requires_non_empty_range, __glibcxx_requires_nonempty)
3087 (__glibcxx_requires_subscript): Move...
3088 * include/debug/assertions.h: ...here and add __builtin_expect.
3089 (_GLIBCXX_DEBUG_ONLY): Remove ; value.
3090 * include/bits/stl_deque.h
3091 (std::deque<>::operator[]): Add __glibcxx_requires_subscript check.
3092 (std::deque<>::front()): Add __glibcxx_requires_nonempty check.
3093 (std::deque<>::back()): Likewise.
3094 (std::deque<>::pop_front()): Likewise.
3095 (std::deque<>::pop_back()): Likewise.
3096 (std::deque<>::swap(deque&)): Add allocator check.
3097 * include/bits/stl_vector.h
3098 (std::vector<>::operator[]): Add __glibcxx_requires_subscript check.
3099 (std::vector<>::front()): Add __glibcxx_requires_nonempty check.
3100 (std::vector<>::back()): Likewise.
3101 (std::vector<>::pop_back()): Likewise.
3102 (std::vector<>::swap(vector&)): Add allocator check.
3104 2016-06-16 Daniel Kruegler <daniel.kruegler@gmail.com>
3106 Provide swappable traits (p0185r1)
3107 * include/std/type_traits (is_swappable, is_nothrow_swappable,
3108 is_swappable_with, is_nothrow_swappable_with, is_swappable_v,
3109 is_nothrow_swappable_v, is_swappable_with_v,
3110 is_nothrow_swappable_with_v): New.
3111 * include/bits/stl_pair.h: Use it as per p0185r1.
3112 * include/bits/stl_queue.h: Likewise.
3113 * include/bits/stl_stack.h: Likewise.
3114 * include/bits/unique_ptr.h: Likewise.
3115 * include/std/tuple: Likewise.
3116 * include/std/array: Likewise. Fix zero-size member swap.
3117 * include/bits/hashtable.h: Use __and_.
3118 * testsuite/20_util/is_nothrow_swappable/requirements/
3119 explicit_instantiation.cc: Change test options to std=gnu++17.
3120 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
3122 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
3123 * testsuite/20_util/is_swappable/requirements/
3124 explicit_instantiation.cc: Likewise.
3125 * testsuite/20_util/is_swappable/requirements/typedefs.cc: Likewise.
3126 * testsuite/20_util/is_swappable/value.cc: Likewise.
3127 * testsuite/20_util/is_nothrow_swappable/requirements/
3128 explicit_instantiation_ext.cc: New.
3129 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs_ext.cc:
3131 * testsuite/20_util/is_nothrow_swappable/value.h: New.
3132 * testsuite/20_util/is_nothrow_swappable/value_ext.cc: New.
3133 * testsuite/20_util/is_nothrow_swappable_with/requirements/
3134 explicit_instantiation.cc: New.
3135 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
3137 * testsuite/20_util/is_nothrow_swappable_with/value.cc: New.
3138 * testsuite/20_util/is_swappable/requirements/
3139 explicit_instantiation_ext.cc: New.
3140 * testsuite/20_util/is_swappable/requirements/typedefs_ext.cc: New.
3141 * testsuite/20_util/is_swappable/value.h: New.
3142 * testsuite/20_util/is_swappable/value_ext.cc: New.
3143 * testsuite/20_util/is_swappable_with/requirements/
3144 explicit_instantiation.cc: New.
3145 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc: New.
3146 * testsuite/20_util/is_swappable_with/value.cc: New.
3147 * testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
3148 dg-error line numbers.
3149 * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
3152 2016-06-16 Jonathan Wakely <jwakely@redhat.com>
3154 * include/std/array: Remove trailing whitespace.
3155 * include/std/atomic: Likewise.
3156 * include/std/bitset: Likewise.
3157 * include/std/chrono: Likewise.
3158 * include/std/complex: Likewise.
3159 * include/std/condition_variable: Likewise.
3160 * include/std/fstream: Likewise.
3161 * include/std/functional: Likewise.
3162 * include/std/future: Likewise.
3163 * include/std/iomanip: Likewise.
3164 * include/std/iosfwd: Likewise.
3165 * include/std/istream: Likewise.
3166 * include/std/limits: Likewise.
3167 * include/std/ratio: Likewise.
3168 * include/std/scoped_allocator: Likewise.
3169 * include/std/sstream: Likewise.
3170 * include/std/stdexcept: Likewise.
3171 * include/std/string: Likewise.
3172 * include/std/system_error: Likewise.
3173 * include/std/thread: Likewise.
3174 * include/std/tuple: Likewise.
3175 * include/std/type_traits: Likewise.
3176 * include/std/utility: Likewise.
3177 * include/std/valarray: Likewise.
3178 * include/std/vector: Likewise.
3180 * include/bits/stl_vector.h (vector::_S_insert_aux_assign): Define
3181 new overloaded functions.
3182 * include/bits/vector.tcc (vector::_M_insert_aux): Use new functions
3183 to avoid creating a redundant temporary.
3184 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc: New
3187 2016-06-15 François Dumont <fdumont@gcc.gnu.org>
3189 * include/bits/stl_deque.h
3190 (std::deque<>::operator=): Call _M_assign_aux.
3191 (std::deque<>::assign(initializer_list<>)): Likewise.
3192 (std::deque<>::resize(size_t, const value_type&)): Call _M_fill_insert.
3193 (std::deque<>::insert(const_iterator, initializer_list<>)):
3194 Call _M_range_insert_aux.
3195 (std::deque<>::_M_assign_aux<It>(It, It, std::forward_iterator_tag):
3197 (std::deque<>::_M_fill_assign): Call _M_fill_insert.
3198 (std::deque<>::_M_move_assign2): Call _M_assign_aux.
3199 * include/bits/deque.tcc
3200 (std::deque<>::operator=): Call _M_range_insert_aux.
3201 (std::deque<>::_M_assign_aux<It>(It, It, std::input_iterator_tag)):
3203 * include/bits/stl_vector.h
3204 (std::vector<>::operator=): Call _M_assign_aux.
3205 (std::vector<>::assign(initializer_list<>)): Likewise.
3206 (std::vector<>::resize(size_t, const value_type&)): Call _M_fill_insert.
3207 (std::vector<>::insert(const_iterator, initializer_list<>)):
3208 Call _M_range_insert.
3209 * include/bits/vector.tcc (std::vector<>::_M_assign_aux): Likewise.
3211 2016-06-07 François Dumont <fdumont@gcc.gnu.org>
3213 * include/std/tuple (_Head_base<>): Default specialization condition at
3216 2016-06-06 Ville Voutilainen <ville.voutilainen@gmail.com>
3218 Support allocators in tuples of zero size.
3219 * include/std/tuple (tuple<>::tuple(),
3220 tuple<>::tuple(allocator_arg_t, const _Alloc&),
3221 tuple<>::tuple(allocator_arg_t, const _Alloc&, const tuple&)): New.
3222 * testsuite/20_util/tuple/cons/allocators.cc: Adjust.
3224 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
3227 * src/filesystem/ops.cc (permissions(const path&, perms, error_code&)):
3228 Add or remove permissions according to perms argument.
3229 * testsuite/experimental/filesystem/operations/permissions.cc: New
3232 2016-06-05 Ville Voutilainen <ville.voutilainen@gmail.com>
3234 Protect allocator-overloads of tuple-from-tuple constructors
3235 from cases that would create dangling references.
3236 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
3237 const tuple<_UElements...>&), tuple(allocator_arg_t, const _Alloc&,
3238 tuple<_UElements...>&&)): Add a check for _NonNestedTuple.
3239 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Adjust.
3241 2016-05-29 Gerald Pfeifer <gerald@pfeifer.com>
3243 * doc/xml/manual/backwards_compatibility.xml: Adjust
3244 lists.debian.org link to https.
3245 * doc/html/manual/backwards.html: Regenerate.
3247 2016-05-27 Jonathan Wakely <jwakely@redhat.com>
3249 * doc/xml/manual/abi.xml: Adjust URL to use https.
3250 * doc/html/manual/*: Regenerate.
3252 2016-05-27 Ville Voutilainen <ville.voutilainen@gmail.com>
3255 * include/std/tuple (_TMC): Add a check for _NotSameTuple.
3256 * include/std/tuple (tuple(_UElements&&...)): Remove the separate
3257 check for _NotSameTuple.
3258 * include/std/tuple (_TMCT): New.
3259 * include/std/tuple (tuple(const tuple<_UElements...>&)): Use it.
3260 * include/std/tuple (tuple(tuple<_UElements...>&&)): Likewise.
3261 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
3262 const tuple<_UElements...>&)): Likewise.
3263 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
3264 tuple<_UElements...>&&)): Likewise.
3265 * testsuite/20_util/tuple/cons/66338.cc: New.
3267 2016-05-25 Jonathan Wakely <jwakely@redhat.com>
3269 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Fix test for sendfile.
3270 * configure: Regenerate.
3271 * config.h.in: Regenerate.
3273 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): Remove it.
3274 * include/bits/hashtable_policy.h (_Power2_rehash_policy::_M_next_bkt):
3275 Remove const qualification on function. Replace
3276 _GLIBCXX14_USE_CONSTEXPR on automatic variables with const.
3277 (_Power2_rehash_policy::_M_need_rehash): Remove const qualification.
3278 (_Power2_rehash_policy::_M_next_bkt): Remove mutable specifier.
3280 2016-05-24 François Dumont <fdumont@gcc.gnu.org>
3282 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): New.
3283 * include/bits/hashtable_policy.h
3284 (_Prime_rehash_policy::__has_load_factor): New. Mark rehash policy
3285 having load factor management.
3286 (_Mask_range_hashing): New.
3288 (_Power2_rehash_policy): New.
3289 (_Inserts<>): Remove last template parameter, _Unique_keys, so that
3290 partial specializations only depend on whether iterators are constant
3292 * testsuite/23_containers/unordered_set/hash_policy/26132.cc: Adapt to
3293 test new hash policy.
3294 * testsuite/23_containers/unordered_set/hash_policy/load_factor.cc:
3296 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
3298 * testsuite/23_containers/unordered_set/insert/hash_policy.cc:
3300 * testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
3302 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc:
3304 * testsuite/performance/23_containers/insert/54075.cc: Add benchmark
3305 using the new hash policy.
3306 * testsuite/performance/23_containers/insert_erase/41975.cc: Likewise.
3308 2016-05-24 Jonathan Wakely <jwakely@redhat.com>
3310 * include/bits/stl_queue.h (priority_queue::value_compare): Define.
3312 2016-05-23 François Dumont <fdumont@gcc.gnu.org>
3314 * include/debug/safe_iterator.h
3315 (_Safe_iterator<>::operator->()): Implement using underlying iterator
3317 * include/debug/safe_local_iterator.h
3318 (_Safe_local_iterator<>::operator->()): Likewise.
3320 2016-05-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
3322 * testsuite/experimental/memory_resource/1.cc: Add required argument
3323 to dg-require-atomic-builtins.
3325 2016-05-13 Jonathan Wakely <jwakely@redhat.com>
3328 * include/debug/bitset: Add #pragma GCC system_header.
3329 * include/debug/deque: Likewise.
3330 * include/debug/list: Likewise.
3331 * include/debug/map: Likewise.
3332 * include/debug/set: Likewise.
3333 * include/debug/string: Likewise.
3334 * include/debug/unordered_map: Likewise.
3335 * include/debug/unordered_set: Likewise.
3336 * include/debug/vector: Likewise.
3337 * include/debug/functions.h: Adjust whitespace.
3339 2016-05-12 Jonathan Wakely <jwakely@redhat.com>
3342 * testsuite/experimental/memory_resource/1.cc: Require atomics.
3344 2016-05-11 Jonathan Wakely <jwakely@redhat.com>
3347 * src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_DUAL_ABI]: Don't define
3348 exception constructors with __sso_string parameters.
3350 2016-05-10 Jonathan Wakely <jwakely@redhat.com>
3352 * include/experimental/bits/fs_dir.h (begin, end): Add noexcept.
3353 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
3354 Test begin and end functions.
3355 * testsuite/experimental/filesystem/iterators/
3356 recursive_directory_iterator.cc: Likewise.
3359 * src/filesystem/ops.cc (do_copy_file): Fix backwards conditions.
3360 * testsuite/experimental/filesystem/operations/copy_file.cc: New test.
3362 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
3363 Overload operator* to move from rvalues.
3366 * src/filesystem/ops.cc (create_dir): Handle EEXIST from mkdir.
3367 * testsuite/experimental/filesystem/operations/create_directory.cc:
3371 * src/filesystem/ops.cc (canonical(const path&, const path&)): Add
3372 base path to exception.
3373 * testsuite/experimental/filesystem/operations/canonical.cc: Test
3374 paths contained in exception.
3376 * testsuite/experimental/type_erased_allocator/2.cc: Remove unused
3380 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
3382 (directory_iterator::operator++(int)): Return proxy.
3383 (recursive_directory_iterator::operator++(int)): Likewise.
3384 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
3385 Test post-increment.
3386 * testsuite/experimental/filesystem/iterators/
3387 recursive_directory_iterator.cc: Likewise.
3389 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
3392 * testsuite/experimental/filesystem/iterators/
3393 recursive_directory_iterator.cc: Fix test02 to not call member
3394 functions on invalid iterator, and use VERIFY not assert.
3396 2016-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
3398 Avoid endless run-time recursion for copying single-element
3399 tuples where the element type is by-value constructible
3401 * include/std/tuple (_NotSameTuple): New.
3402 * include/std/tuple (tuple(_UElements&&...): Use it.
3403 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc: New.
3405 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
3408 * include/experimental/bits/fs_dir.h (recursive_directory_iterator):
3409 Initialize scalar member variables in default constructor.
3410 * testsuite/experimental/filesystem/iterators/
3411 recursive_directory_iterator.cc: Test default construction.
3413 2016-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3415 * testsuite/lib/libstdc++.exp (libstdc++_init): Enable on *-*-solaris*.
3417 2016-05-05 Jonathan Wakely <jwakely@redhat.com>
3419 * testsuite/experimental/filesystem/path/native/string.cc: Add
3420 dg-require-filesystem-ts directive.
3422 2016-05-04 Jonathan Wakely <jwakely@redhat.com>
3425 * include/experimental/memory_resource
3426 (__resource_adaptor_imp::do_allocate): Do not default-construct
3428 (__resource_adaptor_imp::do_deallocate): Likewise. Use
3429 allocator_traits to get pointer type.
3430 (__null_memory_resource::do_allocate): Remove unused parameters.
3431 (__null_memory_resource::do_deallocate): Likewise.
3432 (__null_memory_resource::do_is_equal): Likewise. Add return statement.
3433 * testsuite/experimental/type_erased_allocator/1.cc: Combine with ...
3434 * testsuite/experimental/type_erased_allocator/1_neg.cc: This, and
3436 * testsuite/experimental/memory_resource/1.cc: Here.
3437 * testsuite/experimental/memory_resource/null_memory_resource.cc: New.
3438 * testsuite/experimental/memory_resource/resource_adaptor.cc: New.
3440 2016-04-29 Chris Gregory <czipperz@gmail.com>
3442 * config/*: Remove trailing whitespace.
3444 * testsuite/tr1/*: Likewise.
3445 * testsuite/util/*: Likewise.
3447 2016-04-28 Jonathan Wakely <jwakely@redhat.com>
3450 * include/bits/basic_ios.tcc (basic_ios::_M_cache_locale): Use
3452 * include/bits/stream_iterator.h (istream_iterator, ostream_iterator):
3454 * include/std/atomic (atomic<_Tp>): Likewise.
3455 * include/std/shared_mutex (shared_lock): Likewise.
3456 * testsuite/24_iterators/istream_iterator/70766.cc: New test.
3457 * testsuite/24_iterators/ostream_iterator/70766.cc : New test.
3458 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
3459 * testsuite/29_atomics/atomic/70766.cc: New test.
3460 * testsuite/30_threads/shared_lock/70766.cc: New test.
3462 * include/bits/hashtable_policy.h (__detail::_Insert_base,
3463 __detail::_Insert): Improve comments.
3465 2016-04-27 Jonathan Wakely <jwakely@redhat.com>
3468 * include/std/limits: Update comments about DRs.
3469 (numeric_limits<const _Tp>, numeric_limits<volatile _Tp>,
3470 numeric_limits<const volatile _Tp>): Define unconditionally.
3472 2016-04-24 Jonathan Wakely <jwakely@redhat.com>
3475 * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path): Use
3476 static counter to return a different path on every call.
3478 2016-04-22 Tim Shen <timshen@google.com>
3481 * include/bits/regex_executor.tcc (_Executor<>::_M_word_boundary):
3482 Fix the match_not_bow and match_not_eow behavior.
3483 * testsuite/28_regex/regression.cc: Add testcase.
3485 2016-04-20 Jonathan Wakely <jwakely@redhat.com>
3488 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in,
3489 __codecvt_utf8_utf16_base<char16_t>::do_in): Fix mask operations.
3491 2016-04-19 Jonathan Wakely <jwakely@redhat.com>
3494 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in):
3495 Override endianness bit in mode.
3496 * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: New test.
3497 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc: Test
3498 that little_endian mode is ignored.
3499 * testsuite/experimental/filesystem/path/native/string.cc: New test.
3502 * src/filesystem/ops.cc (close_fd): New function.
3503 (do_copy_file): Set permissions before copying file contents. Check
3504 result of closing file descriptors. Don't copy streambuf when file
3506 (copy(const path&, const path&, copy_options, error_code&)): Use
3507 lstat for source file when copy_symlinks is set.
3508 * testsuite/experimental/filesystem/operations/copy.cc: Test copy().
3510 * include/experimental/bits/fs_fwd.h (operator&, operator|, operator^,
3511 operator~ operator&=, operator|=, operator^=): Add noexcept to
3512 overloaded operators for copy_options, perms and directory_options.
3513 * src/filesystem/ops.cc (make_file_type, make_file_status,
3514 is_not_found_errno, file_time): Add noexcept.
3516 2016-04-19 Edward Smith-Rowland <3dw4rd@verizon.net>
3518 * include/bits/c++14_warning.h: Do not refer C++14 as experimental.
3520 2016-04-18 Jonathan Wakely <jwakely@redhat.com>
3523 * include/bits/random.h: Reword static assertion messages to state
3524 positive conditions.
3525 * include/bits/random.tcc: Likewise.
3526 * include/bits/uniform_int_dist.h: Likewise.
3527 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3530 * include/std/function (_Bind, _Bind_result): Remove unused typedefs.
3532 * config/cpu/sh/atomicity.h: Fix typo in comment.
3535 * include/std/thread (operator<, operator==): Move definitions to
3537 * testsuite/30_threads/thread/id/70294.cc: New test.
3539 * testsuite/18_support/bad_exception/23591_thread-1.c: Add
3540 -Wno-pedantic to dg-options.
3541 * testsuite/20_util/align/2.cc: Use type as operand of alignof.
3542 * testsuite/20_util/is_floating_point/value.cc: Add -Wno-pedantic
3544 * testsuite/20_util/specialized_algorithms/uninitialized_fill/32158.cc:
3545 Remove extra semi-colon.
3546 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
3547 Always supply second argument to static_assert.
3548 * testsuite/25_algorithms/lower_bound/no_operator_ne.cc: Remove extra
3550 * testsuite/26_numerics/complex/c99.cc: Add -Wno-pedantic to
3552 * testsuite/26_numerics/complex/literals/values.cc: Likewise.
3553 * testsuite/29_atomics/atomic/60695.cc: Likewise.
3554 * testsuite/29_atomics/atomic/62259.cc: use __alignof__ instead of
3555 alignof when operand is an object not a type.
3556 * testsuite/decimal/ctor.cc: Add -Wno-pedantic to dg-options.
3557 * testsuite/decimal/make-decimal.cc: Likewise.
3558 * testsuite/experimental/type_traits/value.cc: Always supply second
3559 argument to static_assert.
3560 * testsuite/util/testsuite_common_types.h: Use __extension__ for
3563 * testsuite/experimental/type_erased_allocator/1.cc: Don't include
3565 * testsuite/experimental/type_erased_allocator/1_neg.cc: Likewise.
3566 * testsuite/experimental/type_erased_allocator/2.cc: Likewise.
3567 * testsuite/experimental/type_erased_allocator/uses_allocator.cc:
3568 Likewise. Add licence and change to compile-only test.
3570 * include/bits/locale_facets.h (ctype::do_narrow): Add attribute to
3572 * include/bits/regex_automaton.h (_NFA::_M_insert_alt): Likewise.
3574 * include/ext/string_conversions.h (__stoa): Avoid -Wsign-compare
3577 2016-04-17 Edward Smith-Rowland <3dw4rd@verizon.net>
3579 * include/bits/specfun.h: Trivial comment misspelling.
3581 2016-04-14 Jason Merrill <jason@redhat.com>
3583 Revert Jonathan's empty ABI change from yesterday.
3585 2016-04-13 Martin Sebor <msebor@redhat.com>
3588 * testsuite/25_algorithms/rotate/moveable2.cc: Make sure VLA
3589 upper bound is positive.
3591 2016-04-13 Jonathan Wakely <jwakely@redhat.com>
3593 * include/bits/c++config (_GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES,
3594 _GLIBCXX_END_NAMESPACE_EMPTY_TYPES, _GLIBCXX_ABI_TAG_EMPTY): Define.
3595 * include/bits/hashtable.h (_Hashtable::_M_emplace): Change signatures
3596 of functions taking empty structs by value. Add a template parameter
3597 to overloads without hints. Rename overloads with hints to
3599 (_Hashtable::_M_erase(true_type, const_iterator),
3600 _Hashtable::_M_erase(false_type, const_iterator)): Change signatures
3601 by reordering parameters.
3602 * include/bits/hashtable_policy.h (_Insert::insert): Adjust to call
3603 _M_emplace_hint instead of _M_emplace.
3604 * include/bits/shared_ptr.h (shared_ptr(_Tp1*, _Deleter, _Alloc),
3605 shared_ptr(nullptr_t, _Deleter, _Alloc)): Use _GLIBCXX_ABI_TAG_EMPTY.
3606 * include/bits/shared_ptr_base.h (_Sp_counted_deleter, __shared_count,
3607 __shared_ptr): Likewise.
3608 * include/bits/stl_algo.h (replace_if): Likewise.
3609 * include/bits/stl_pair.h (piecewise_construct_t,
3610 piecewise_construct): Use _GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES.
3611 * include/bits/uses_allocator.h (allocator_arg_t, allocator_arg,
3612 __uses_alloc0): Likewise.
3613 * include/ext/pb_ds/assoc_container.hpp (basic_hash_table): Likewise.
3614 * testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error.
3615 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
3616 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
3617 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
3618 * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
3619 * testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.
3621 2016-04-12 Edward Smith-Rowland <3dw4rd@verizon.net>
3623 Document C++17/TR29124 C++ Special Math Functions.
3624 * include/bits/specfun.h: Add Doxygen markup.
3626 2016-04-07 Jonathan Wakely <jwakely@redhat.com>
3628 * testsuite/30_threads/thread/70503.cc: Adjust from xfail to pass.
3630 2016-04-06 Eric Botcazou <ebotcazou@adacore.com>
3632 * src/Makefile.am (libstdc++-symbols.ver): Remove useless /dev/null.
3633 * src/Makefile.in: Regenerate.
3635 2016-04-05 Jonathan Wakely <jwakely@redhat.com>
3638 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Don't test
3639 __atomic_fetch_add for bool.
3640 * configure: Regenerate.
3642 * testsuite/30_threads/thread/70503.cc: Require -static to work.
3645 * src/c++11/thread.cc (execute_native_thread_routine,
3646 execute_native_thread_routine_compat): Give internal linkage.
3647 * testsuite/30_threads/thread/70503.cc: New test.
3649 2016-04-05 Ville Voutilainen <ville.voutilainen@gmail.com>
3652 * include/bits/stl_pair.h (_ConstructiblePair,
3653 _ImplicitlyConvertiblePair, _MoveConstructiblePair,
3654 _ImplicitlyMoveConvertiblePair): Add shortcut conditions
3655 for same-type cases.
3656 * testsuite/20_util/pair/70437.cc: New.
3658 2016-03-24 Jonathan Wakely <jwakely@redhat.com>
3661 * config/abi/pre/gnu.ver: Add new symbol.
3662 * libsupc++/eh_alloc.cc (__gnu_cxx::__freeres): Define.
3663 * testsuite/18_support/free_eh_pool.cc: New test.
3665 2016-03-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
3667 * include/Makefile.am (install-freestanding-headers): Add
3668 concept_check.h and move.h to the installed headers.
3669 * include/Makefile.in: Regenerated.
3670 * include/bits/concept_check.h: Ignore _GLIBCXX_CONCEPT_CHECKS for
3671 freestanding implementations.
3672 * doc/xml/manual/using.xml (_GLIBCXX_CONCEPT_CHECKS): Mention
3673 that this macro has no effect for freestanding implementations.
3674 * doc/html/manual/using_macros.html: Likewise.
3676 2016-02-24 Jonathan Wakely <jwakely@redhat.com>
3679 * include/experimental/tuple (__apply_impl): Qualify get and forward.
3681 2016-02-23 Jonathan Wakely <jwakely@redhat.com>
3683 * doc/xml/manual/using.xml: Document __STDCPP_WANT_MATH_SPEC_FUNCS__.
3684 * doc/html/*: Regenerate.
3687 * include/tr1/cmath (acosh, asinh, atanh, cbrt, copysign, erf, erfc,
3688 exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma, llrint,
3689 llround, log1p, log2, logb, lrint, lround, nan, nearbyint, nextafter,
3690 nexttoward, remainder, remquo, rint, round, scalbln, scalbn, tgamma,
3691 trunc) [__cplusplus >= 201103L]: Import from namespace std.
3692 (fabs) [__cplusplus < 201103L]: Import from namespace std.
3693 * include/tr1/complex (acosh, asinh, atanh) [__cplusplus >= 201103L]:
3695 * testsuite/tr1/headers/c++200x/complex.cc: Add std::fabs to global
3696 namespace before including TR1 headers.
3697 * testsuite/tr1/headers/c++200x/math.cc: New test.
3699 2016-02-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
3702 * include/c_global/cstdarg: Undefine __need___va_list.
3703 * include/c_global/cstddef: Undefine all kinds of __need_*.
3705 2016-02-16 Tim Shen <timshen@google.com>
3708 * include/bits/regex_scanner.h: Add different special character
3709 sets for grep and egrep regex.
3710 * include/bits/regex_scanner.tcc: Use _M_spec_char more uniformly.
3711 * testsuite/28_regex/regression.cc: Add new testcase.
3713 2016-02-08 Jonathan Wakely <jwakely@redhat.com>
3715 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Remove accidentally
3716 added 'constexpr' in previous commit.
3717 * configure: Regenerate.
3720 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Enable isinf and isnan
3721 checks for all targets except *-*-solaris2.* and ensure we find the
3722 libc math.h header not our own.
3723 * configure: Regenerate.
3725 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
3727 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt (FUNC):
3728 New file. Copied over from s390-linux-gnu.
3730 2016-02-04 Jonathan Wakely <jwakely@redhat.com>
3733 * acinclude.m4 (GLIBCXX_ENABLE_C99): Check C99 stdlib.h functions
3734 with -std=c++98 and define _GLIBCXX98_USE_C99_STDLIB.
3735 * config.h.in: Regenerate.
3736 * configure: Regenerate.
3737 * testsuite/21_strings/c_strings/char/69626.cc: New.
3739 * doc/html/index.html: Regenerate.
3741 * doc/xml/manual/containers.xml: Add cross-reference to Dual ABI.
3742 * doc/xml/manual/spine.xml: Update copyright years and author blurb.
3743 * doc/html/*: Regenerate.
3745 2016-02-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
3748 * include/c_compatibility/math.h: Move header guards.
3749 * include/c_compatibility/stdlib.h: Likewise.
3751 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
3754 * config/os/newlib/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3756 2016-01-28 John David Anglin <danglin@gcc.gnu.org>
3759 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Split check for obsolete
3760 isinf and isnan functions into two independent checks. Check on hpux.
3761 * config.h.in: Regenerate.
3762 * configure: Regenerate.
3763 * include/c_global/cmath (isinf(double), isnan(double)): Use
3764 _GLIBCXX_HAVE_OBSOLETE_ISINF and _GLIBCXX_HAVE_OBSOLETE_ISNAN,
3767 2016-01-27 Jakub Jelinek <jakub@redhat.com>
3769 * testsuite/libstdc++-prettyprinters/whatis.cc: Include <random>.
3771 2016-01-27 Jonathan Wakely <jwakely@redhat.com>
3774 * testsuite/ext/special_functions/hyperg/check_value.cc: Use
3775 -ffp-contract=off, and -ffloat-store to disable excess precision.
3776 * testsuite/special_functions/02_assoc_legendre/check_value.cc: Use
3779 2016-01-26 Jonathan Wakely <jwakely@redhat.com>
3782 * include/bits/stl_algobase.h (__copy_move<_IsMove, true,
3783 random_access_iterator_tag>): Check is_move_assignable when moving.
3784 (__copy_move_backwards<_IsMove, true, random_access_iterator_tag>):
3786 * testsuite/25_algorithms/copy/move_iterators/69478.cc: New.
3787 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc: New.
3788 * testsuite/25_algorithms/move/69478.cc: New.
3789 * testsuite/25_algorithms/move_backward/69478.cc: new.
3791 2016-01-26 Andris Pavenis <andris.pavenis@iki.fi>
3793 * include/c_compatibility/stdlib.h: Include wide character related
3794 definitions only when they are available in cstdlib.
3796 2016-01-25 Jonathan Wakely <jwakely@redhat.com>
3799 * include/Makefile.am: Add new header.
3800 * include/Makefile.in: Regenerate.
3801 * include/bits/random.h (uniform_int_distribution): Move to
3802 bits/uniform_int_dist.h.
3803 * include/bits/random.tcc (uniform_int_distribution::operator(),
3804 uniform_int_distribution::__generate_impl): Likewise.
3805 * include/bits/uniform_int_dist.h: New header.
3806 * include/bits/stl_algo.h [__cplusplus >= 201103L]: Include
3807 <bits/uniform_int_dist.h> instead of <random>.
3808 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
3809 move_iterators/1.cc: Include correct header for uninitialized_copy.
3810 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
3811 move_iterators/1.cc: Likewise.
3812 * testsuite/25_algorithms/nth_element/58800.cc: Include correct
3814 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lines.
3816 2016-01-23 John David Anglin <danglin@gcc.gnu.org>
3819 * config/os/hpux/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3821 2016-01-22 Edward Smith-Rowland <3dw4rd@verizon.net>
3823 TR29124 C++ Special Math - <math.h> pulls funcs into global namespace.
3824 * include/c_compatibility/math.h: Import the TR29124 functions
3825 into the global namespace.
3826 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: Remove
3827 xfail and make compile-only.
3828 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: Ditto.
3829 * testsuite/special_functions/03_beta/compile_2.cc: Ditto.
3830 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Ditto.
3831 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Ditto.
3832 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Ditto.
3833 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Ditto.
3834 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Ditto.
3835 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Ditto.
3836 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Ditto.
3837 * testsuite/special_functions/11_ellint_1/compile_2.cc: Ditto.
3838 * testsuite/special_functions/12_ellint_2/compile_2.cc: Ditto.
3839 * testsuite/special_functions/13_ellint_3/compile_2.cc: Ditto.
3840 * testsuite/special_functions/14_expint/compile_2.cc: Ditto.
3841 * testsuite/special_functions/15_hermite/compile_2.cc: Ditto.
3842 * testsuite/special_functions/16_laguerre/compile_2.cc: Ditto.
3843 * testsuite/special_functions/17_legendre/compile_2.cc: Ditto.
3844 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Ditto.
3845 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Ditto.
3846 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Ditto.
3847 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Ditto.
3849 2016-01-22 Jonathan Wakely <jwakely@redhat.com>
3852 * include/bits/valarray_before.h (__fun, __fun_with_valarray): Only
3853 define result_type for types which can be safely used with valarrays.
3854 * testsuite/26_numerics/valarray/69116.cc: New.
3857 * config/os/gnu-linux/os_defines.h: Define
3858 _GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC.
3859 * include/c_global/cmath (isinf, isnan): Check it.
3860 * doc/xml/manual/internals.xml: Document it.
3861 * doc/html/*: Regenerate.
3863 2016-01-21 Jonathan Wakely <jwakely@redhat.com>
3866 * include/bits/cpp_type_traits.h: Ensure C++ language linkage.
3867 * include/ext/type_traits.h: Likewise.
3868 * testsuite/17_intro/headers/c++2011/linkage.cc: Check autoconf macros
3869 for presence of C headers.
3870 * testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Adjust
3871 dg-error line number.
3872 * testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise.
3873 * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise.
3874 * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Likewise.
3876 2016-01-20 Torvald Riegel <triegel@redhat.com>
3879 * config/os/bsd/darwin/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3881 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
3884 * include/c_compatibility/math.h (acosh, asinh, atanh, acbrt,
3885 copysign, erf, erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb,
3886 lgamma, llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
3887 nextafter, nexttoward, remainder, remquo, rint, round, scalbln, scalbn,
3888 tgamma, trunc) [__cplusplus >= 201103L && _GLIBCXX_USE_C99_MATH_TR1]:
3889 Add using declarations.
3890 * testsuite/26_numerics/headers/cmath/60401.cc: New.
3893 * include/c_global/ccomplex: Ensure C++ language linkage.
3894 * include/c_global/cmath: Likewise.
3895 * include/c_global/cstdlib: Likewise.
3896 * include/c_global/ctgmath: Likewise.
3897 * testsuite/17_intro/headers/c++2011/linkage.cc: New.
3899 2016-01-19 Jonathan Wakely <jwakely@redhat.com>
3903 * include/Makefile.am: Use c_compatibility math.h and stdlib.h for
3904 --enable-cheaders=c_global configs.
3905 * include/Makefile.in: Regenerate.
3906 * include/c_compatibility/math.h: Remove obsolete _GLIBCXX_NAMESPACE_C
3907 test and allow inclusion from C files.
3908 * include/c_compatibility/stdlib.h: Likewise. Support freestanding.
3909 (at_quick_exit, quick_exit): Add using directives.
3910 * include/c_global/cmath: Use #include_next for math.h.
3911 * include/c_global/cstdlib: Use #include_next for stdlib.h.
3912 * testsuite/26_numerics/headers/cmath/14608.cc: New.
3913 * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
3914 Remove xfail for most targets.
3915 * testsuite/26_numerics/headers/cstdlib/60401.cc: New.
3917 2016-01-18 Torvald Riegel <triegel@redhat.com>
3919 * include/bits/c++config (_GLIBCXX_USE_WEAK_REF): New.
3920 (_GLIBCXX_TXN_SAFE, _GLIBCXX_TXN_SAFE_DYN): Use _GLIBCXX_USE_WEAK_REF
3921 and move after its definition.
3922 * config/os/aix/os_defines.h (_GLIBCXX_USE_WEAK_REF): Override.
3923 * src/c++11/cow-stdexcept.cc: Use _GLIBCXX_USE_WEAK_REF instead of
3924 __GXX_WEAK__, and only provide transactional clones if
3925 _GLIBCXX_USE_WEAK_REF is true. Don't provide stubs of libitm
3928 2016-01-18 Jonathan Wakely <jwakely@redhat.com>
3931 * testsuite/26_numerics/headers/cmath/60637.cc: Add test.
3934 * include/std/functional (_Function_base::_M_not_empty_function):
3935 Change overloads for pointers to take arguments by value.
3936 * testsuite/20_util/function/cons/57465.cc: Add tests for
3937 pointer-to-member cases.
3940 * src/c++11/cow-stdexcept.cc (_txnal_cow_string_C1_for_exceptions):
3941 Use macros for exception handling and fix unused parameter warning.
3943 2016-01-17 John David Anglin <danglin@gcc.gnu.org>
3946 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
3948 2016-01-17 Torvald Riegel <triegel@redhat.com>
3950 * src/c++11/cow-stdexcept.cc (txnal_read_ptr): Fix static_assert.
3952 2016-01-16 H.J. Lu <hongjiu.lu@intel.com>
3954 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Add
3957 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
3960 * include/bits/uses_allocator.h (__uses_alloc<true, ...>): Add
3961 static assertion that type is constructible from the arguments.
3962 * testsuite/20_util/scoped_allocator/69293_neg.cc: New.
3963 * testsuite/20_util/uses_allocator/69293_neg.cc: New.
3964 * testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error.
3967 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
3968 and isnan on AIX. Quote variables.
3969 * configure: Regenerate.
3971 2016-01-15 Torvald Riegel <triegel@redhat.com>
3973 * include/bits/basic_string.h (basic_string): Declare friends.
3974 * include/bits/c++config (_GLIBCXX_TXN_SAFE,
3975 _GLIBCXX_TXN_SAFE_DYN, _GLIBCXX_USE_ALLOCATOR_NEW): New.
3976 * include/std/stdexcept (logic_error, domain_error, invalid_argument,
3977 length_error, out_of_range, runtime_error, range_error,
3978 underflow_error, overflow_error): Declare members as transaction-safe.
3979 (logic_error, runtime_error): Declare friend functions.
3980 * libsupc++/exception (exception, bad_exception): Declare members as
3982 * src/c++11/cow-stdexcept.cc: Define transactional clones for the
3983 transaction-safe members of exceptions and helper functions.
3984 * libsupc++/eh_exception.cc: Adjust and define transactional clones.
3985 * config/abi/pre/gnu.ver (GLIBCXX_3.4.22) Add transactional clones.
3986 (CXXABI_1.3.10): New.
3987 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): New.
3988 (GLIBCXX_ENABLE_ALLOCATOR): Set ENABLE_ALLOCATOR_NEW.
3989 * configure.ac: Call GLIBCXX_CHECK_SIZE_T_MANGLING.
3990 * include/Makefile.am: Write ENABLE_ALLOCATOR_NEW to c++config.h.
3991 * include/Makefile.in: Regenerate.
3992 * config.h.in: Regenerate.
3993 * configure: Regenerate.
3994 * testsuite/util/testsuite_abi.cc (check_version): Add CXXABI_1.3.10.
3996 2016-01-15 Steve Ellcey <sellcey@imgtec.com>
3998 * include/ext/random.tcc: Use __builtin_isfinite instead of
4001 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
4003 * include/bits/std_mutex.h: Fix Doxygen @file name.
4005 2016-01-14 Edward Smith-Rowland <3dw4rd@verizon.net>
4006 Jonathan Wakely <jwakely@redhat.com>
4007 Florian Goth <CaptainSifff@gmx.de>
4009 Implement TR29124 C++ special Math Functions.
4010 * include/Makefile.am: Add new headers.
4011 * include/Makefile.in: Regenerate.
4012 * include/bits/specfun.h: New.
4013 * include/c_global/cmath: Adjust for both tr1 and tr29124 maths.
4014 * include/tr1/bessel_function.tcc: Ditto.
4015 * include/tr1/beta_function.tcc: Ditto.
4016 * include/tr1/cmath: Ditto.
4017 * include/tr1/ell_integral.tcc: Ditto.
4018 * include/tr1/exp_integral.tcc: Ditto.
4019 * include/tr1/gamma.tcc: Ditto.
4020 * include/tr1/hypergeometric.tcc: Ditto.
4021 * include/tr1/legendre_function.tcc: Ditto.
4022 * include/tr1/modified_bessel_func.tcc: Ditto.
4023 * include/tr1/poly_hermite.tcc: Ditto.
4024 * include/tr1/poly_laguerre.tcc: Ditto.
4025 * include/tr1/riemann_zeta.tcc: Ditto.
4026 * include/tr1/special_function_util.h: Ditto.
4027 * testsuite/ext/special_functions/conf_hyperg: New.
4028 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: New.
4029 * testsuite/ext/special_functions/conf_hyperg/check_value.cc: New.
4030 * testsuite/ext/special_functions/conf_hyperg/compile.cc: New.
4031 * testsuite/ext/special_functions/hyperg: New.
4032 * testsuite/ext/special_functions/hyperg/check_nan.cc: New.
4033 * testsuite/ext/special_functions/hyperg/check_value.cc: New.
4034 * testsuite/ext/special_functions/hyperg/compile.cc: New.
4035 * testsuite/libstdc++-dg/conformance.exp: Add special_functions directory.
4036 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc: New.
4037 * testsuite/special_functions/01_assoc_laguerre/check_value.cc: New.
4038 * testsuite/special_functions/01_assoc_laguerre/compile.cc: New.
4039 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: New.
4040 * testsuite/special_functions/02_assoc_legendre/check_nan.cc: New.
4041 * testsuite/special_functions/02_assoc_legendre/check_value.cc: New.
4042 * testsuite/special_functions/02_assoc_legendre/compile.cc: New.
4043 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: New.
4044 * testsuite/special_functions/03_beta/check_nan.cc: New.
4045 * testsuite/special_functions/03_beta/check_value.cc: New.
4046 * testsuite/special_functions/03_beta/compile.cc: New.
4047 * testsuite/special_functions/03_beta/compile_2.cc: New.
4048 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: New.
4049 * testsuite/special_functions/04_comp_ellint_1/check_value.cc: New.
4050 * testsuite/special_functions/04_comp_ellint_1/compile.cc: New.
4051 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: New.
4052 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: New.
4053 * testsuite/special_functions/05_comp_ellint_2/check_value.cc: New.
4054 * testsuite/special_functions/05_comp_ellint_2/compile.cc: New.
4055 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: New.
4056 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: New.
4057 * testsuite/special_functions/06_comp_ellint_3/check_value.cc: New.
4058 * testsuite/special_functions/06_comp_ellint_3/compile.cc: New.
4059 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: New.
4060 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: New.
4061 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc: New.
4062 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: New.
4063 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: New.
4064 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: New.
4065 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: New.
4066 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: New.
4067 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: New.
4068 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: New.
4069 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: New.
4070 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc: New.
4071 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: New.
4072 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: New.
4073 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: New.
4074 * testsuite/special_functions/10_cyl_neumann/check_value.cc: New.
4075 * testsuite/special_functions/10_cyl_neumann/compile.cc: New.
4076 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: New.
4077 * testsuite/special_functions/11_ellint_1/check_nan.cc: New.
4078 * testsuite/special_functions/11_ellint_1/check_value.cc: New.
4079 * testsuite/special_functions/11_ellint_1/compile.cc: New.
4080 * testsuite/special_functions/11_ellint_1/compile_2.cc: New.
4081 * testsuite/special_functions/12_ellint_2/check_nan.cc: New.
4082 * testsuite/special_functions/12_ellint_2/check_value.cc: New.
4083 * testsuite/special_functions/12_ellint_2/compile.cc: New.
4084 * testsuite/special_functions/12_ellint_2/compile_2.cc: New.
4085 * testsuite/special_functions/13_ellint_3/check_nan.cc: New.
4086 * testsuite/special_functions/13_ellint_3/check_value.cc: New.
4087 * testsuite/special_functions/13_ellint_3/compile.cc: New.
4088 * testsuite/special_functions/13_ellint_3/compile_2.cc: New.
4089 * testsuite/special_functions/14_expint/check_nan.cc: New.
4090 * testsuite/special_functions/14_expint/check_value.cc: New.
4091 * testsuite/special_functions/14_expint/compile.cc: New.
4092 * testsuite/special_functions/14_expint/compile_2.cc: New.
4093 * testsuite/special_functions/15_hermite/check_nan.cc: New.
4094 * testsuite/special_functions/15_hermite/check_value.cc: New.
4095 * testsuite/special_functions/15_hermite/compile.cc: New.
4096 * testsuite/special_functions/15_hermite/compile_2.cc: New.
4097 * testsuite/special_functions/16_laguerre/check_nan.cc: New.
4098 * testsuite/special_functions/16_laguerre/check_value.cc: New.
4099 * testsuite/special_functions/16_laguerre/compile.cc: New.
4100 * testsuite/special_functions/16_laguerre/compile_2.cc: New.
4101 * testsuite/special_functions/17_legendre/check_nan.cc: New.
4102 * testsuite/special_functions/17_legendre/check_value.cc: New.
4103 * testsuite/special_functions/17_legendre/compile.cc: New.
4104 * testsuite/special_functions/17_legendre/compile_2.cc: New.
4105 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: New.
4106 * testsuite/special_functions/18_riemann_zeta/check_value.cc: New.
4107 * testsuite/special_functions/18_riemann_zeta/compile.cc: New.
4108 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: New.
4109 * testsuite/special_functions/19_sph_bessel/check_nan.cc: New.
4110 * testsuite/special_functions/19_sph_bessel/check_value.cc: New.
4111 * testsuite/special_functions/19_sph_bessel/compile.cc: New.
4112 * testsuite/special_functions/19_sph_bessel/compile_2.cc: New.
4113 * testsuite/special_functions/20_sph_legendre/check_nan.cc: New.
4114 * testsuite/special_functions/20_sph_legendre/check_value.cc: New.
4115 * testsuite/special_functions/20_sph_legendre/compile.cc: New.
4116 * testsuite/special_functions/20_sph_legendre/compile_2.cc: New.
4117 * testsuite/special_functions/21_sph_neumann/check_nan.cc: New.
4118 * testsuite/special_functions/21_sph_neumann/check_value.cc: New.
4119 * testsuite/special_functions/21_sph_neumann/compile.cc: New.
4120 * testsuite/special_functions/21_sph_neumann/compile_2.cc: New.
4121 * testsuite/util/specfun_testcase.h: New.
4122 * testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc: More testcases.
4123 * testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc: Ditto.
4124 * testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc: Ditto.
4125 * testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc: Ditto.
4126 * testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc: Ditto.
4127 * testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc: Ditto.
4128 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc: New.
4130 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
4133 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
4134 and isnan functions.
4135 * config.h.in: Regenerate.
4136 * configure: Regenerate.
4137 * include/c_global/cmath (isinf(double), isnan(double))
4138 [_GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN]: Import via using-directive.
4139 * testsuite/26_numerics/headers/cmath/48891.cc: New.
4141 2016-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4144 * configure.host (abi_baseline_pair): Use separate baseline for
4145 Solaris 11+ and Solaris 10 with gld.
4146 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: New file.
4147 * config/abi/post/solaris2.11/baseline_symbols.txt: New file.
4148 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: New file.
4150 2016-01-12 Daniel Kruegler <daniel.kruegler@gmail.com>
4153 * include/std/type_traits: Following N4511, reimplement __is_swappable
4154 and __is_nothrow_swappable. Move __is_swappable to namespace std,
4155 adjust callers. Use __is_nothrow_swappable in swap.
4156 * include/bits/move.h: Use __is_nothrow_swappable in swap.
4157 * testsuite/20_util/is_nothrow_swappable/value.cc: Extend; remove
4158 __is_swappable related tests.
4159 * testsuite/20_util/is_swappable/value.cc: New.
4160 * testsuite/20_util/is_swappable/requirements/
4161 explicit_instantiation.cc: New.
4162 * testsuite/20_util/is_swappable/requirements/typedefs.cc: New.
4163 * testsuite/25_algorithms/swap/68877.cc: New.
4165 2016-01-12 Jonathan Wakely <jwakely@redhat.com>
4167 * testsuite/20_util/function/68995.cc: Test reference_wrapper cases.
4171 * include/std/functional (function::_Invoke): Remove, use result_of.
4172 (function::_Callable): Replace alias template with class template
4173 and use partial specialization instead of _NotSelf alias template.
4174 (function(_Functor)): Add "not self" constraint so that _Callable is
4175 not used while type is incomplete.
4176 * testsuite/20_util/function/69222.cc: New.
4178 2016-01-11 Jonathan Wakely <jwakely@redhat.com>
4181 * include/bits/alloc_traits.h (allocator_traits<allocator<_Tp>>):
4182 Define partial specialization.
4183 * testsuite/20_util/shared_ptr/cons/58659.cc: Add construct and
4184 destroy members to std::allocator explicit specialization.
4186 2016-01-08 Jonathan Wakely <jwakely@redhat.com>
4188 * testsuite/26_numerics/headers/cmath/
4189 c99_classification_macros_c++.cc: Rename to ...
4190 * testsuite/26_numerics/headers/cmath/
4191 c99_classification_macros_c++98.cc: Here and add -std=gnu++98.
4192 * testsuite/26_numerics/headers/cmath/
4193 c99_classification_macros_c++0x.cc: Rename to ...
4194 * testsuite/26_numerics/headers/cmath/
4195 c99_classification_macros_c++11.cc: Here.
4198 * include/bits/uses_allocator.h: Add missing include.
4200 2016-01-07 Jonathan Wakely <jwakely@redhat.com>
4205 * include/bits/stl_iterator.h (back_insert_iterator,
4206 front_insert_iterator, insert_iterator): Use __addressof (LWG 2324).
4207 * include/bits/uses_allocator.h (__use_alloc): Use __addressof.
4208 * include/std/future (__future::base::_State_baseV2::__setter):
4210 * include/std/scoped_allocator (__outermost): Likewise.
4211 * testsuite/20_util/scoped_allocator/69114.cc: New.
4212 * testsuite/20_util/uses_allocator/69114.cc: New.
4213 * testsuite/30_threads/promise/69106.cc: New.
4215 2016-01-06 Jonathan Wakely <jwakely@redhat.com>
4218 * include/bits/basic_string.h (basic_string::_S_copy_chars<_Iterator>):
4219 Remove _GLIBCXX_NOEXCEPT.
4220 testsuite/21_strings/basic_string/cons/char/69092.cc: New.
4222 * include/Makefile.am: Adjust.
4223 * include/Makefile.in: Regenerate.
4224 * include/bits/mutex.h: Rename to bits/std_mutex.h.
4225 * include/std/condition_variable: Adjust include.
4226 * include/std/mutex: Likewise.
4228 2016-01-04 Jakub Jelinek <jakub@redhat.com>
4230 Update copyright years.
4232 Copyright (C) 2016 Free Software Foundation, Inc.
4234 Copying and distribution of this file, with or without modification,
4235 are permitted in any medium without royalty provided the copyright
4236 notice and this notice are preserved.