1 2016-10-10 Ville Voutilainen <ville.voutilainen@gmail.com>
3 Make any's copy assignment operator exception-safe,
4 don't copy the underlying value when any is moved,
5 make in_place constructors explicit.
6 * include/std/any (any(in_place_type_t<_ValueType>, _Args&&...)):
8 (any(in_place_type_t<_ValueType>, initializer_list<_Up>, _Args&&...)):
10 (operator=(const any&)): Make strongly exception-safe.
11 (operator=(any&&)): reset() unconditionally in the case where
13 (operator=(_ValueType&&)): Indent the return type.
14 (_Manager_internal<_Tp>::_S_manage): Move in _Op_xfer, don't copy.
15 * testsuite/20_util/any/assign/2.cc: Adjust.
16 * testsuite/20_util/any/assign/exception.cc: New.
17 * testsuite/20_util/any/cons/2.cc: Adjust.
18 * testsuite/20_util/any/cons/explicit.cc: New.
19 * testsuite/20_util/any/misc/any_cast_neg.cc: Ajust.
21 2016-10-10 Jonathan Wakely <jwakely@redhat.com>
23 * doc/xml/manual/appendix_contributing.xml (contrib.organization):
24 Describe other subdirectories and add markup. Remove outdated
25 reference to check-script target.
26 * doc/html/*: Regenerate.
28 * doc/xml/manual/status_cxx2011.xml: Correct C++11 status.
30 * libsupc++/eh_ptr.cc (exception_ptr): Replace _GLIBCXX_USE_NOEXCEPT
33 * include/std/functional (_Bind_result::__enable_if_void): Use alias
34 template instead of class template.
35 (_Bind_result::__disable_if_void): Likewise.
36 (_Bind_result::__call): Adjust uses of __enable_if_void and
39 * doc/xml/manual/intro.xml: Document DR 2296 status.
40 * doc/xml/manual/status_cxx2017.xml: Update status.
41 * include/bits/move.h (__addressof): Add _GLIBCXX_CONSTEXPR and
42 call __builtin_addressof.
43 (addressof): Add _GLIBCXX17_CONSTEXPR.
44 * testsuite/20_util/addressof/requirements/constexpr.cc: New test.
45 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error lineno.
46 * testsuite/20_util/forward/f_neg.cc: Likewise.
48 * include/bits/allocator.h (allocator<T>::is_always_equal): Define.
49 * testsuite/20_util/allocator/requirements/typedefs.cc: Test for
51 * testsuite/util/testsuite_allocator.h
52 (uneq_allocator::is_always_equal): Define as false_type.
54 * include/experimental/numeric (gcd, lcm): Make bool arguments
56 * include/std/numeric (gcd, lcm): Likewise.
57 * testsuite/26_numerics/gcd/gcd_neg.cc: New test.
58 * testsuite/26_numerics/lcm/lcm_neg.cc: New test.
60 * include/bits/shared_ptr.h (enable_shared_from_this::weak_from_this):
62 * include/bits/shared_ptr_base.h
63 (__enable_shared_from_this::weak_from_this): Likewise.
64 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
65 Test exception-specification of weak_from_this.
67 2016-10-07 Jonathan Wakely <jwakely@redhat.com>
69 * doc/xml/manual/status_cxx1998.xml: Improve documentation of
70 implementation-defined properties.
71 * doc/xml/manual/status_cxx2011.xml: Likewise.
72 * doc/xml/manual/status_cxx2017.xml: Likewise.
74 * doc/xml/manual/status_cxx2017.xml: Update status.
75 * include/std/type_traits (has_unique_object_representations): Define.
76 * testsuite/20_util/has_unique_object_representations/value.cc: New.
77 * testsuite/20_util/has_unique_object_representations/requirements/
78 explicit_instantiation.cc: New.
79 * testsuite/20_util/has_unique_object_representations/requirements/
82 2016-10-06 Jonathan Wakely <jwakely@redhat.com>
84 * doc/xml/manual/status_cxx2011.xml: Update status.
85 * include/std/scoped_allocator (__outer_allocator_t, __outermost_type):
86 New helpers for recursive OUTERMOST.
87 (__outermost): Use __outermost_type::_S_outermost.
88 (__do_outermost, scoped_allocator_adaptor::__outermost_type): Remove.
89 (scoped_allocator_adaptor::__outermost_alloc_traits): Use new
90 __outermost_type helper.
91 (scoped_allocator_adaptor::_Constructible): New alias template.
92 (scoped_allocator_adaptor::scoped_allocator_adaptor<_Outer2>):
93 Constrain template constructors.
94 * testsuite/20_util/scoped_allocator/3.cc: New test.
95 * testsuite/20_util/scoped_allocator/outermost.cc: New test.
97 2016-10-05 Jonathan Wakely <jwakely@redhat.com>
100 * testsuite/20_util/not_fn/1.cc: Fix test.
101 * testsuite/experimental/functional/not_fn.cc: Likewise.
104 * include/bits/stl_queue.h (priority_queue): Fix allocator-extended
106 * testsuite/23_containers/priority_queue/allocator.cc: New test.
109 * include/bits/stl_map.h (map::map()): Use nothrow constructibility
110 of comparison function in conditional noexcept.
111 * include/bits/stl_multimap.h (multimap::multimap()): Likewise.
112 * include/bits/stl_multiset.h (multiset::multiset()): Likewise.
113 * include/bits/stl_set.h (set::set()): Likewise.
114 * testsuite/23_containers/map/cons/noexcept_default_construct.cc:
116 * testsuite/23_containers/multimap/cons/noexcept_default_construct.cc:
118 * testsuite/23_containers/multiset/cons/noexcept_default_construct.cc:
120 * testsuite/23_containers/set/cons/noexcept_default_construct.cc:
123 * include/bits/node_handle.h (_Node_handle): Remove invalid and unused
127 * include/experimental/functional (_Not_fn): Remove.
128 (not_fn): Use std::_Not_fn.
129 * include/std/functional (_Not_fn): Add second parameter to
130 disambiguate copying from initialization by not_fn. Define for C++14.
131 (not_fn): Add second argument to initialization.
132 * testsuite/20_util/not_fn/1.cc: Copy call wrapper using
133 direct-initialization.
135 2016-10-03 François Dumont <fdumont@gcc.gnu.org>
137 * src/c++11/shared_ptr.cc (mask, invalid, get_mutex): Move
139 * src/c++11/mutex_pool.h: ... here. New.
140 * src/c++11/debug.cc: Use latter.
142 2016-10-03 Jonathan Wakely <jwakely@redhat.com>
144 * doc/xml/manual/status_cxx2017.xml: Update gcd/lcm status.
145 * doc/html/*: Regenerate.
146 * include/experimental/numeric (__abs): Move to <numeric>.
147 (gcd, lcm): Use __detail::gcd and __detail::lcm.
148 * include/std/numeric (__detail::__abs_integral)
149 (__detail::__gcd, __detail::__lcm): Define.
150 (gcd, lcm): Define for C++17.
151 * testsuite/26_numerics/gcd/1.cc: New test.
152 * testsuite/26_numerics/lcm/1.cc: New test.
153 * testsuite/experimental/numeric/gcd.cc: Swap contents with ...
154 * testsuite/experimental/numeric/lcd.cc: ... this.
158 * config/abi/pre/gnu-versioned-namespace.ver: Add exports for
159 __cxa_thread_atexit and __gnu_cxx::__freeres.
160 * include/Makefile.am: Add <experimental/bits/lfts_config.h>
161 * include/Makefile.in: Regenerate.
162 * include.bits/basic_string.h: Fix nesting of versioned namespaces.
163 * include/bits/c++config: Declare versioned namespaces for literals.
164 * include/bits/regex.h (basic_regex, match_results): Add workarounds
166 * include/bits/uniform_int_dist.h: Fix nesting of versioned namespace.
167 * include/std/chrono: Likewise.
168 * include/std/complex: Likewise.
169 * include/std/string_view: Likewise.
170 * include/std/variant: Likewise. Add workaround for PR c++/59256.
171 * include/experimental/bits/fs_fwd.h: Declare versioned namespace.
172 * include/experimental/bits/lfts_config.h: Declare versioned
174 * include/experimental/algorithm: Include
175 <experimental/bits/lfts_config.h>.
176 * include/experimental/any: Likewise.
177 * include/experimental/bits/erase_if.h: Likewise.
178 * include/experimental/chrono: Likewise.
179 * include/experimental/functional: Likewise.
180 * include/experimental/memory_resource: Likewise.
181 * include/experimental/optional: Likewise.
182 * include/experimental/propagate_const: Likewise.
183 * include/experimental/random: Likewise.
184 * include/experimental/ratio: Likewise.
185 * include/experimental/system_error: Likewise.
186 * include/experimental/tuple: Likewise.
187 * include/experimental/type_traits: Likewise.
188 * include/experimental/utility: Likewise.
189 * include/experimental/string_view: Likewise. Fix nesting of
190 versioned namespaces.
191 * include/experimental/bits/string_view.tcc: Reopen inline namespace
192 for non-inline function definitions.
193 * testsuite/17_intro/using_namespace_std_exp_neg.cc: New test.
194 * testsuite/20_util/duration/literals/range.cc: Adjust dg-error line.
195 * testsuite/experimental/any/misc/any_cast_neg.cc: Likewise.
196 * testsuite/experimental/propagate_const/assignment/move_neg.cc:
198 * testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
199 * testsuite/experimental/propagate_const/requirements2.cc: Likewise.
200 * testsuite/experimental/propagate_const/requirements3.cc: Likewise.
201 * testsuite/experimental/propagate_const/requirements4.cc: Likewise.
202 * testsuite/experimental/propagate_const/requirements5.cc: Likewise.
203 * testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.
206 * include/bits/std_abs.h: Use "C++" language linkage.
207 * testsuite/17_intro/headers/c++2011/linkage.cc: Move <complex.h> to
208 the end. Add <stdalign.h>.
210 2016-10-03 Ville Voutilainen <ville.voutilainen@gmail.com>
213 * testsuite/20_util/tuple/77802.cc: New.
216 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
217 Implement LWG 2729 for tuple.
218 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)):
219 Suppress conditionally.
220 (_Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&&)): Likewise.
221 (__is_tuple_impl_trait_impl, __is_tuple_impl_trait): New.
222 (_Tuple_impl(const _Head&)): Constrain.
223 (_Tuple_impl(_UHead&&)): Likewise.
224 (_Tuple_impl(_Tuple_impl&&)): Suppress conditionally.
225 (_Tuple_impl(const _Tuple_impl<_Idx, _UHead>&)): Constrain.
226 (_Tuple_impl(_Tuple_impl<_Idx, _UHead>&&)): Likewise.
227 (operator=(const tuple&)): Enable conditionally.
228 (operator=(tuple&&)): Suppress conditionally.
229 (operator=(const tuple<_UElements...>&)): Constrain.
230 (operator=(tuple<_UElements...>&&)): Likewise.
231 (operator=(const tuple&)): Enable conditionally (2-param tuple).
232 (operator=(tuple&&)): Suppress conditionally (2-param tuple).
233 (operator=(const tuple<_U1, _U2>&)): Constrain.
234 (operator=(tuple<_U1, _U2>&&)): Likewise.
235 (operator=(const pair<_U1, _U2>&)): Likewise.
236 (operator=(pair<_U1, _U2>&&)): Likewise.
237 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust.
238 * testsuite/20_util/tuple/tuple_traits.cc: New.
240 2016-09-30 Jonathan Wakely <jwakely@redhat.com>
243 * acinclude.m4 (GLIBCXX_CHECK_STDIO_PROTO): Use -std=gnu++11 to check
245 * config.h.in: Regenerate.
246 * configure: Regenerate.
247 * include/c_global/cstdio [!_GLIBCXX_HAVE_GETS] (gets): Only declare
249 * include/c_std/cstdio [!_GLIBCXX_HAVE_GETS] (gets): Likewise.
250 * testsuite/27_io/headers/cstdio/functions_neg.cc: New test.
252 * doc/xml/manual/intro.xml: Document LWG 2192 changes.
253 * doc/html/*: Regenerate.
254 * include/Makefile.am: Add bits/std_abs.h.
255 * include/Makefile.in: Regenerate.
256 * include/bits/std_abs.h: New header defining all required overloads
257 of std::abs in one place (LWG 2294).
258 * include/c_global/cmath (abs(double), abs(float), abs(long double)):
259 Move to bits/std_abs.h.
260 (abs<_Tp>(_Tp)): Remove.
261 * include/c_global/cstdlib (abs(long), abs(long long), abs(__int<N>)):
262 Move to bits/std_abs.h.
263 * testsuite/26_numerics/headers/cmath/dr2192.cc: New test.
264 * testsuite/26_numerics/headers/cmath/dr2192_neg.cc: New test.
265 * testsuite/26_numerics/headers/cstdlib/dr2192.cc: New test.
266 * testsuite/26_numerics/headers/cstdlib/dr2192_neg.cc: New test.
269 * include/experimental/numeric: Include <numeric>.
271 (gcd, lcm): Use __abs instead of std::abs.
272 * testsuite/experimental/numeric/77801.cc: New test.
273 * testsuite/experimental/numeric/gcd.cc: Test unsigned inputs.
274 * testsuite/experimental/numeric/lcm.cc: Likewise.
276 2016-09-29 Ville Voutilainen <ville.voutilainen@gmail.com>
278 Make optional::reset noexcept, make optional::value
279 work in constant expressions.
280 * include/std/optional (_M_get): Make constexpr.
281 (reset): Make noexcept.
282 * testsuite/20_util/optional/assignment/7.cc: New.
283 * testsuite/20_util/optional/observers/6.cc: New.
285 2016-09-29 Jonathan Wakely <jwakely@redhat.com>
287 * include/c_global/cmath (hypot, __hypot3): Move C++17 overloads
288 outside _GLIBCXX_USE_C99_MATH_TR1 condition.
290 2016-09-29 Alan Modra <amodra@gmail.com>
292 * configure.ac (LONG_DOUBLE_COMPAT_FLAGS): New ACSUBST.
293 * src/Makefile.am (compatibility-ldbl.o, compatibility-ldbl.lo):
294 Use LONG_DOUBLE_COMPAT_FLAGS.
295 * Makefile.in: Regenerate.
296 * configure: Regenerate.
297 * doc/Makefile.in: Regenerate.
298 * include/Makefile.in: Regenerate.
299 * libsupc++/Makefile.in: Regenerate.
300 * po/Makefile.in: Regenerate.
301 * python/Makefile.in: Regenerate.
302 * src/Makefile.in: Regenerate.
303 * src/c++11/Makefile.in: Regenerate.
304 * src/c++98/Makefile.in: Regenerate.
305 * src/filesystem/Makefile.in: Regenerate.
306 * testsuite/Makefile.in: Regenerate.
308 2016-09-28 Jonathan Wakely <jwakely@redhat.com>
310 * include/std/chrono (system_clock): Fix typo in comment.
312 * include/experimental/bits/fs_fwd.h (file_time_type): Simplify
314 * src/filesystem/ops.cc (file_time): Take error_code parameter and
316 (do_copy_file, last_write_time): Pass error_code in file_time calls.
317 * testsuite/experimental/filesystem/operations/last_write_time.cc:
319 * testsuite/util/testsuite_fs.h (scoped_file): Define RAII helper.
322 * include/std/functional (_Any_data): Add may_alias attribute.
324 2016-09-27 Jonathan Wakely <jwakely@redhat.com>
326 * doc/xml/manual/status_cxx2017.xml: Update status.
327 * doc/html/*: Regenerate.
328 * include/std/functional (__cpp_lib_boyer_moore_searcher): Define.
329 * testsuite/20_util/function_objects/searchers.cc: Test feature macro.
331 * doc/xml/manual/status_cxx2017.xml: Update status.
332 * include/c_global/cmath (hypot): Add three-dimensional overloads.
333 * testsuite/26_numerics/headers/cmath/hypot.cc: New.
335 2016-09-26 Ville Voutilainen <ville.voutilainen@gmail.com>
338 * include/std/optional (optional(const optional<_Up>&)):
339 Default-initialize the base and use emplace.
340 (optional(optional<_Up>&&)): Likewise.
341 * testsuite/20_util/optional/cons/77727.cc: New.
343 2016-09-26 François Dumont <fdumont@gcc.gnu.org>
345 * include/debug/safe_base.h
346 (_Safe_iterator_base::_M_detach_single): Make public.
348 2016-09-26 Jonathan Wakely <jwakely@redhat.com>
350 * include/bits/range_access.h (__cpp_lib_array_constexpr): Do not
351 redefine macro defined in <bits/stl_iterator.h>.
353 * include/bits/stl_map.h (map::extract(const_iterator)): Assert that
354 iterator is not past-the-end.
355 * include/bits/stl_multimap.h (multimap::extract(const_iterator)):
357 * include/bits/stl_multiset.h (multiset::extract(const_iterator)):
359 * include/bits/stl_set.h (set::extract(const_iterator)): Likewise.
360 * include/bits/unordered_map.h (unordered_map::extract(const_iterator))
361 (unordered_multimap::extract(const_iterator)): Likewise.
362 * include/bits/unordered_set.h (unordered_set::extract(const_iterator))
363 (unordered_multiset::extract(const_iterator)): Likewise.
365 2016-09-26 Ville Voutilainen <ville.voutilainen@gmail.com>
368 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
369 Fix an out-of-bounds access.
371 2016-09-26 Marek Polacek <polacek@redhat.com>
374 * libsupc++/hash_bytes.cc: Add [[gnu::fallthrough]].
376 2016-09-25 François Dumont <fdumont@gcc.gnu.org>
378 * src/c++11/debug.cc: Include debug/vector. Include cctype. Remove
380 (get_safe_base_mutex): Get mutex based on address lowest non nil bits.
381 * testsuite/23_containers/vector/debug/mutex_association.cc: New.
383 * include/debug/bitset (bitset::reference::reference(const _Base_ref&,
384 bitset*)): Remove __unused__ attribute.
385 * include/debug/safe_base.h (_Safe_iterator_base): Make
386 _Safe_sequence_base a friend.
387 (_Safe_iterator_base::_M_attach): Make protected.
388 (_Safe_iterator_base::_M_attach_single): Likewise.
389 (_Safe_iterator_base::_M_detach): Likewise.
390 (_Safe_iterator_base::_M_detach_single): Likewise.
391 (_Safe_sequence_base): Make _Safe_iterator_base a friend.
392 (_Safe_sequence_base::_Safe_sequence_base(_Safe_sequence_base&&)): New.
393 (_Safe_sequence_base::_M_swap): Make protected.
394 (_Safe_sequence_base::_M_attach): Make private.
395 (_Safe_sequence_base::_M_attach_single): Likewise.
396 (_Safe_sequence_base::_M_detach): Likewise.
397 (_Safe_sequence_base::_M_detach_single): Likewise.
398 * include/debug/safe_container.h
399 (_Safe_container::_Safe_container(_Safe_container&&)): Make default.
400 * include/debug/safe_iterator.h
401 (_Safe_iterator::operator++()): Name __scoped_lock instance.
402 * include/debug/safe_iterator.tcc: Remove trailing line.
403 * include/debug/safe_unordered_base.h
404 (_Safe_local_iterator_base::_M_attach): Make protected.
405 (_Safe_local_iterator_base::_M_attach_single): Likewise.
406 (_Safe_local_iterator_base::_M_detach): Likewise.
407 (_Safe_local_iterator_base::_M_detach_single): Likewise.
408 (_Safe_unordered_container_base): Make _Safe_local_iterator_base friend.
409 (_Safe_unordered_container_base::_M_attach_local): Make private.
410 (_Safe_unordered_container_base::_M_attach_local_single): Likewise.
411 (_Safe_unordered_container_base::_M_detach_local): Likewise.
412 (_Safe_unordered_container_base::_M_detach_local_single): Likewise.
414 * include/parallel/algo.h: Generalize usage of std::__iterator_category.
417 2016-09-23 Jonathan Wakely <jwakely@redhat.com>
421 * include/bits/basic_string.h (basic_string::clear()): Drop reference
423 * include/ext/rc_string_base.h (__rc_string_base::_M_clear()):
425 * testsuite/21_strings/basic_string/56166.cc: New.
426 * testsuite/ext/vstring/modifiers/clear/56166.cc: New.
428 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
429 (basic_string::erase(size_type, size_type)): Add fast path for
430 truncating the string, by calling _M_set_length directly.
431 (basic_string::erase(__const_iterator, __const_iterator)): Likewise.
432 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
433 (basic_string::resize(size_type, _CharT)): Likewise.
435 2016-09-22 Jason Merrill <jason@redhat.com>
437 * configure.ac: Define HAVE_MEMALIGN for newlib.
439 2015-09-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
441 * config/cpu/m68k/atomicity.h: Adjust comment.
442 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Honor
443 explicit atomicity_dir setup via configure.host.
444 * configure.host (rtems-*): Set atomicity_dir.
445 * configure: Regenerate.
447 2016-09-22 Jonathan Wakely <jwakely@redhat.com>
449 Implement C++17 node extraction and insertion (P0083R5)
450 * doc/xml/manual/status_cxx2017.xml: Document status.
451 * doc/html/*: Regenerate.
452 * include/Makefile.am: Add bits/node_handle.h and reorder.
453 * include/Makefile.in: Regenerate.
454 * include/bits/hashtable.h (_Hashtable::node_type)
455 (_Hashtable::insert_return_type, _Hashtable::_M_reinsert_node)
456 (_Hashtable::_M_reinsert_node_multi, _Hashtable::extract)
457 (_Hashtable::_M_merge_unique, _Hashtable::_M_merge_multi): Define.
458 (_Hash_merge_helper): Define primary template.
459 * include/bits/node_handle.h: New header.
460 * include/bits/stl_map.h (map): Declare _Rb_tree_merge_helper as
462 (map::node_type, map::insert_return_type, map::extract, map::merge)
463 (map::insert(node_type&&), map::insert(const_iterator, node_type&&)):
465 (_Rb_tree_merge_helper): Specialize for map.
466 * include/bits/stl_multimap.h (multimap): Declare _Rb_tree_merge_helper
468 (multimap::node_type, multimap::extract, multimap::merge)
469 (multimap::insert(node_type&&))
470 (multimap::insert(const_iterator, node_type&&)): Define.
471 (_Rb_tree_merge_helper): Specialize for multimap.
472 * include/bits/stl_multiset.h (multiset): Declare _Rb_tree_merge_helper
474 (multiset::node_type, multiset::extract, multiset::merge)
475 (multiset::insert(node_type&&))
476 (multiset::insert(const_iterator, node_type&&)): Define.
477 * include/bits/stl_set.h (set): Declare _Rb_tree_merge_helper as
479 (set::node_type, set::insert_return_type, set::extract, set::merge)
480 (set::insert(node_type&&), set::insert(const_iterator, node_type&&)):
482 (_Rb_tree_merge_helper): Specialize for set.
483 * include/bits/stl_tree.h (_Rb_tree): Declare _Rb_tree<> as friend.
484 (_Rb_tree::node_type, _Rb_tree::insert_return_type)
485 (_Rb_tree::_M_reinsert_node_unique, _Rb_tree::_M_reinsert_node_equal)
486 (_Rb_tree::_M_reinsert_node_hint_unique)
487 (_Rb_tree::_M_reinsert_node_hint_equal, _Rb_tree::extract)
488 (_Rb_tree::_M_merge_unique, _Rb_tree::_M_merge_equal): Define.
489 (_Rb_tree_merge_helper): Specialize for multiset.
490 * include/bits/unordered_map.h (unordered_map): Declare
491 unordered_map<> and unordered_multimap<> as friends.
492 (unordered_map::node_type, unordered_map::insert_return_type)
493 (unordered_map::extract, unordered_map::merge)
494 (unordered_map::insert(node_type&&))
495 (unordered_map::insert(const_iterator, node_type&&))
496 (unordered_multimap): Declare _Hash_merge_helper as friend.
497 (unordered_multimap::node_type, unordered_multimap::extract)
498 (unordered_multimap::merge, unordered_multimap::insert(node_type&&))
499 (unordered_multimap::insert(const_iterator, node_type&&)): Define.
500 (_Hash_merge_helper): Specialize for unordered maps and multimaps.
501 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
502 Declare _Hash_merge_helper as friend.
503 (unordered_set::node_type, unordered_set::insert_return_type)
504 (unordered_set::extract, unordered_set::merge)
505 (unordered_set::insert(node_type&&))
506 (unordered_set::insert(const_iterator, node_type&&)): Define.
507 (unordered_multiset::node_type, unordered_multiset::extract)
508 (unordered_multiset::merge, unordered_multiset::insert(node_type&&))
509 (unordered_multiset::insert(const_iterator, node_type&&)): Define.
510 (_Hash_merge_helper): Specialize for unordered sets and multisets.
511 * include/debug/map.h (map): Add using declarations or forwarding
512 functions for new members.
513 * include/debug/map.h (multimap): Likewise.
514 * include/debug/map.h (multiset): Likewise.
515 * include/debug/map.h (set): Likewise.
516 * include/debug/unordered_map (unordered_map, unordered_multimap):
518 * include/debug/unordered_set( unordered_set, unordered_multiset):
520 * python/libstdcxx/v6/printers.py (get_value_from_aligned_membuf): New
522 (get_value_from_list_node, get_value_from_Rb_tree_node): Use helper.
523 (StdNodeHandlePrinter): Define printer for node handles.
524 (build_libstdcxx_dictionary): Register StdNodeHandlePrinter.
525 * testsuite/23_containers/map/modifiers/extract.cc: New.
526 * testsuite/23_containers/map/modifiers/merge.cc: New.
527 * testsuite/23_containers/multimap/modifiers/extract.cc: New.
528 * testsuite/23_containers/multimap/modifiers/merge.cc: New.
529 * testsuite/23_containers/multiset/modifiers/extract.cc: New.
530 * testsuite/23_containers/multiset/modifiers/merge.cc: New.
531 * testsuite/23_containers/set/modifiers/extract.cc: New.
532 * testsuite/23_containers/set/modifiers/merge.cc: New.
533 * testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
534 * testsuite/23_containers/unordered_map/modifiers/merge.cc: New.
535 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
537 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc: New.
538 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
540 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc: New.
541 * testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
542 * testsuite/23_containers/unordered_set/modifiers/merge.cc: New.
543 * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
545 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test node handles.
547 2016-09-22 Ville Voutilainen <ville.voutilainen@gmail.com>
549 Fix tests on old arm platforms for optional.
550 * testsuite/20_util/optional/77288.cc: Don't use exception_ptr.
552 2016-09-22 Jonathan Wakely <jwakely@redhat.com>
554 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Adjust for
555 recent change to _Variant_storage.
556 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test variant with
559 * include/bits/uses_allocator.h (__uses_allocator_construct): Qualify
560 std::forward and ::new. Cast pointer to void*.
561 * include/std/variant (_Variant_storage, _Union, _Variant_base)
562 (__access, __visit_invoke, variant, visit): Qualify std::forward.
563 * testsuite/20_util/variant/compile.cc: Test for ADL problems.
565 2016-09-22 Tim Shen <timshen@google.com>
567 * include/std/variant (variant::operator=): Fix assignment
569 * testsuite/20_util/variant/compile.cc: Add test.
571 2016-09-22 Tim Shen <timshen@google.com>
574 * include/std/variant (_Variant_storage::_Variant_storage):
575 Change _Variant_storage's union to be default constructible.
576 * testsuite/20_util/variant/compile.cc: New test.
578 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
581 * include/std/optional (__is_optional_impl, __is_optional): Remove.
582 (__converts_from_optional, __assigns_from_optional): New.
583 (optional(_Up&&)): Use is_same instead of __is_optional.
584 (optional(const optional<_Up>&)): Constrain with
585 __converts_from_optional.
586 (optional(optional<_Up>&&)): Likewise.
587 (operator=(_Up&&)): Use is_same instead of __is_optional, check
588 is_same and is_scalar.
589 (operator=(const optional<_Up>&)): Constrain with
590 __converts_from_optional and __assigns_from_optional.
591 (operator=(optional<_Up>&&)): Likewise.
592 * testsuite/20_util/optional/77288.cc: New.
593 * testsuite/20_util/optional/cons/value.cc: Adjust.
595 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
597 Implement LWG 2729 for tuple.
598 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)):
599 Suppress conditionally.
600 (_Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&&)): Likewise.
601 (__is_tuple_impl_trait_impl, __is_tuple_impl_trait): New.
602 (_Tuple_impl(const _Head&)): Constrain.
603 (_Tuple_impl(_UHead&&)): Likewise.
604 (_Tuple_impl(_Tuple_impl&&)): Suppress conditionally.
605 (_Tuple_impl(const _Tuple_impl<_Idx, _UHead>&)): Constrain.
606 (_Tuple_impl(_Tuple_impl<_Idx, _UHead>&&)): Likewise.
607 (operator=(const tuple&)): Enable conditionally.
608 (operator=(tuple&&)): Suppress conditionally.
609 (operator=(const tuple<_UElements...>&)): Constrain.
610 (operator=(tuple<_UElements...>&&)): Likewise.
611 (operator=(const tuple&)): Enable conditionally (2-param tuple).
612 (operator=(tuple&&)): Suppress conditionally (2-param tuple).
613 (operator=(const tuple<_U1, _U2>&)): Constrain.
614 (operator=(tuple<_U1, _U2>&&)): Likewise.
615 (operator=(const pair<_U1, _U2>&)): Likewise.
616 (operator=(pair<_U1, _U2>&&)): Likewise.
617 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust.
618 * testsuite/20_util/tuple/tuple_traits.cc: New.
620 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
623 Implement LWG 2729 for pair.
624 * include/bits/stl_pair.h (_PCC): New.
625 (_ConstructiblePair, _ImplicitlyConvertiblePair):
626 Turn into static member functions of _PCC.
627 (_MoveConstructiblePair, _ImplicitlyMoveConvertiblePair): Likewise.
629 (pair(const _T1&, const _T2&)): Adjust.
631 (pair(const pair<_U1, _U2>&)): Adjust.
632 (pair(_U1&&, const _T2&)): Likewise.
633 (pair(const _T1&, _U2&&)): Likewise.
634 (pair(_U1&&, _U2&&)): Likewise.
635 (pair(pair<_U1, _U2>&&)): Likewise.
636 (operator=(const pair&)): Make conditionally deleted.
637 (operator=(pair&&)): Make conditionally suppressed.
638 (operator=(const pair<_U1, _U2>&)): Constrain.
639 (operator=(pair<_U1, _U2>&&): Likewise.
640 * include/std/type_traits (__nonesuch): New.
641 * testsuite/20_util/pair/traits.cc: New.
643 2016-09-20 Ville Voutilainen <ville.voutilainen@gmail.com>
646 * include/bits/stl_construct.h: (_Construct_novalue): New.
647 (_Destroy_n_aux, _Destroy_n): New.
648 * include/bits/stl_uninitialized.h: (type_traits):
649 New include in C++11 mode.
650 (__uninitialized_default_novalue_1): New.
651 (__uninitialized_default_novalue_n_1): Likewise.
652 (__uninitialized_default_novalue): Likewise.
653 (__uninitialized_default_novalue_n): Likewise.
654 (__uninitialized_copy_n_pair): Likewise.
655 (uninitialized_default_construct):
656 Use __uninitialized_default_novalue.
657 (uninitialized_default_construct_n):
658 Use __uninitialized_default_novalue_n.
659 (uninitialized_value_construct): Use __uninitialized_default.
660 (uninitialized_value_construct_n): Use __uninitialized_default_n.
661 (uninitialized_move): Use uninitialized_copy.
662 (uninitialized_move_n): Use __uninitialized_copy_n_pair.
663 (destroy_at): Use _Destroy.
665 (destroy_n): Likewise.
666 * testsuite/20_util/specialized_algorithms/
667 memory_management_tools/1.cc: Add tests for exceptions,
668 add tests for trivial cases for construct and move.
670 2016-09-20 Jonathan Wakely <jwakely@redhat.com>
672 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
673 (DequeWorkerBase.index, VectorWorkerBase.get): Use // for division.
675 2016-09-19 Jonathan Wakely <jwakely@redhat.com>
678 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
679 (DequeWorkerBase.index, VectorWorkerBase.get): Cast results of
680 division to int to work with Python 3.
682 * testsuite/lib/gdb-test.exp (gdb-test): Fail if Python error occurs.
684 * python/libstdcxx/v6/printers.py (SingleObjContainerPrinter): Allow
685 display_hint to be set by subclasses.
686 (StdVariantPrinter): Use array for display_hint. Adjust output to be
687 more similar to std::any and std::optional output.
688 (register_type_printers): Add type printers for basic_string_view
689 typedefs and experimental::any. Adjust type printers for
690 fundamentals_v1 templates to match fundamentals_v2 and later.
691 * testsuite/libstdc++-prettyprinters/cxx17.cc: New.
694 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.index): Rename
696 (ListWorkerBase.get_value_from_node): Define new method.
697 (ListFrontWorker.__call__, ListBackWorker.__call__): Use it.
699 2016-09-17 Jonathan Wakely <jwakely@redhat.com>
701 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Define.
702 (StdExpAnyPrinter, StdExpOptionalPrinter, StdExpStringViewPrinter):
703 Register for C++17 components in namespace std. Strip inline namespace
706 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
708 * doc/xml/manual/profile_mode.xml: Fix typo.
709 * doc/html/manual/profile_mode_devel.html: Regenerate.
711 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
712 Marc Glisse <marc.glisse@inria.fr>
714 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_ALIGNED_ALLOC]
715 (operator new(size_t, align_val_t)): Replace modulus operator with
718 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
720 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_POSIX_MEMALIGN] (aligned_alloc):
721 Increase alignment if less than sizeof(void*).
722 [_GLIBCXX_HAVE_ALIGNED_ALLOC] (operator new(size_t, align_val_t)):
723 Increase size if not a multiple of alignment.
725 2016-09-15 Jonathan Wakely <jwakely@redhat.com>
727 * doc/xml/manual/debug_mode.xml: Minor editorial fixes.
728 * doc/html/*: Regenerate.
730 * testsuite/23_containers/vector/debug/insert6_neg.cc: Remove
732 * testsuite/util/debug/checks.h (generate_unique<bool>): Specialize.
734 2016-09-14 Marek Polacek <polacek@redhat.com>
736 * testsuite/23_containers/vector/debug/insert6_neg.cc: Use
739 2016-09-14 Christophe Lyon <christophe.lyon@linaro.org>
741 * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
742 Move dg-do directive before dg-skip.
743 * testsuite/21_strings/debug/iterator_self_move_assign_neg.cc:
744 Move dg-do directive before dg-require.
745 * testsuite/21_strings/debug/self_move_assign_neg.cc: Likewise.
746 * testsuite/23_containers/vector/debug/57779_neg.cc: Likewise.
747 * testsuite/23_containers/vector/debug/60587_neg.cc: Likewise.
748 * testsuite/23_containers/vector/debug/assign1_neg.cc: Likewise.
749 * testsuite/23_containers/vector/debug/assign2_neg.cc: Likewise.
750 * testsuite/23_containers/vector/debug/assign3_neg.cc: Likewise.
751 * testsuite/23_containers/vector/debug/construct1_neg.cc: Likewise.
752 * testsuite/23_containers/vector/debug/construct2_neg.cc: Likewise.
753 * testsuite/23_containers/vector/debug/construct3_neg.cc: Likewise.
754 * testsuite/23_containers/vector/debug/insert1_neg.cc: Likewise.
755 * testsuite/23_containers/vector/debug/insert2_neg.cc: Likewise.
756 * testsuite/23_containers/vector/debug/insert3_neg.cc: Likewise.
757 * testsuite/23_containers/vector/debug/insert5_neg.cc: Likewise.
758 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Likewise.
759 * testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
761 * testsuite/25_algorithms/pop_heap/empty2_neg.cc: Likewise.
762 * testsuite/25_algorithms/pop_heap/empty_neg.cc: Likewise.
763 * testsuite/27_io/objects/char/12048-5.cc: Likewise.
764 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Likewise.
765 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
767 2016-09-13 Ville Voutilainen <ville.voutilainen@gmail.com>
769 Implement P0040R3, Extending memory management tools.
770 * include/bits/stl_uninitialized.h (utility): New include
772 (uninitialized_default_construct): New.
773 (uninitialized_default_construct_n): Likewise.
774 (uninitialized_value_construct): Likewise.
775 (uninitialized_value_construct_n): Likewise.
776 (uninitialized_move): Likewise.
777 (uninitialized_move_n): Likewise.
778 (destroy_at, destroy, destroy_n): Likewise.
779 * testsuite/20_util/specialized_algorithms/memory_management_tools/
782 2016-09-12 Jason Merrill <jason@redhat.com>
784 * config/abi/pre/gnu.ver: Use [jmy] for size_t.
786 2016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
788 Implement P0253R1, Fixing a design mistake in the searchers
789 interface in Library Fundamentals.
790 * include/std/functional: (utility): New include in C++17 mode.
791 (default_searcher): Use a pair as return type, adjust the definition.
792 (boyer_moore_searcher): Likewise.
793 (boyer_moore_horspool_searcher): Likewise.
794 * testsuite/20_util/function_objects/searchers.cc: Adjust.
796 2016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
798 Implement C++17 string searchers.
799 * include/std/functional: (unordered_map, vector): New includes
801 (array, bits/stl_algo.h): Likewise.
802 (default_searcher, __boyer_moore_map_base): New.
803 (__boyer_moore_array_base, __is_std_equal_to): Likewise.
804 (__boyer_moore_base_t, boyer_moore_searcher): Likewise.
805 (boyer_moore_horspool_searcher, make_default_searcher): Likewise.
806 (make_boyer_moore_searcher): Likewise.
807 (make_boyer_moore_horspool_searcher): Likewise.
808 * testsuite/20_util/function_objects/searchers.cc: New.
810 2016-09-12 Matthew Wahab <matthew.wahab@arm.com>
812 * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
813 Move dg-do directive before dg-require.
814 * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc: Likewise.
815 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
817 * testsuite/22_locale/codecvt/utf8.cc: Likewise.
818 * testsuite/22_locale/locale/cons/unicode.cc: Likewise.
819 * testsuite/23_containers/deque/debug/assign1_neg.cc: Likewise.
820 * testsuite/23_containers/deque/debug/assign2_neg.cc: Likewise.
821 * testsuite/23_containers/deque/debug/assign3_neg.cc: Likewise.
822 * testsuite/23_containers/deque/debug/construct1_neg.cc: Likewise.
823 * testsuite/23_containers/deque/debug/construct2_neg.cc: Likewise.
824 * testsuite/23_containers/deque/debug/construct3_neg.cc: Likewise.
825 * testsuite/23_containers/deque/debug/insert1_neg.cc: Likewise.
826 * testsuite/23_containers/deque/debug/insert2_neg.cc: Likewise.
827 * testsuite/23_containers/deque/debug/insert3_neg.cc: Likewise.
828 * testsuite/23_containers/deque/debug/insert5_neg.cc: Likewise.
829 * testsuite/23_containers/deque/debug/iterator_self_move_assign_neg.cc:
831 * testsuite/23_containers/deque/debug/self_move_assign_neg.cc:
833 * testsuite/23_containers/deque/debug/shrink_to_fit.cc: Likewise.
834 * testsuite/23_containers/forward_list/debug/60499.cc: Likewise.
835 * testsuite/23_containers/forward_list/debug/construct1_neg.cc:
837 * testsuite/23_containers/forward_list/debug/construct2_neg.cc:
839 * testsuite/23_containers/forward_list/debug/construct3_neg.cc:
841 * testsuite/23_containers/forward_list/debug/erase_after1_neg.cc:
843 * testsuite/23_containers/forward_list/debug/erase_after2_neg.cc:
845 * testsuite/23_containers/forward_list/debug/erase_after3_neg.cc:
847 * testsuite/23_containers/forward_list/debug/erase_after4_neg.cc:
849 * testsuite/23_containers/forward_list/debug/erase_after5_neg.cc:
851 * testsuite/23_containers/forward_list/debug/erase_after6_neg.cc:
853 * testsuite/23_containers/forward_list/debug/erase_after7_neg.cc:
855 * testsuite/23_containers/forward_list/debug/erase_after8_neg.cc:
857 * testsuite/23_containers/forward_list/debug/erase_after9_neg.cc:
859 * testsuite/23_containers/forward_list/debug/insert_after1_neg.cc:
861 * testsuite/23_containers/forward_list/debug/insert_after2_neg.cc:
863 * testsuite/23_containers/forward_list/debug/insert_after3_neg.cc:
865 * testsuite/23_containers/forward_list/debug/insert_after4_neg.cc:
867 * testsuite/23_containers/forward_list/debug/
868 iterator_self_move_assign_neg.cc: Likewise.
869 * testsuite/23_containers/forward_list/debug/self_move_assign_neg.cc:
871 * testsuite/23_containers/forward_list/debug/splice_after1_neg.cc:
873 * testsuite/23_containers/forward_list/debug/splice_after2_neg.cc:
875 * testsuite/23_containers/forward_list/debug/splice_after3_neg.cc:
877 * testsuite/23_containers/forward_list/debug/splice_after4_neg.cc:
879 * testsuite/23_containers/forward_list/debug/splice_after5_neg.cc:
881 * testsuite/23_containers/forward_list/debug/splice_after6_neg.cc:
883 * testsuite/23_containers/forward_list/debug/splice_after7_neg.cc:
885 * testsuite/23_containers/list/debug/assign1_neg.cc: Likewise.
886 * testsuite/23_containers/list/debug/assign2_neg.cc: Likewise.
887 * testsuite/23_containers/list/debug/assign3_neg.cc: Likewise.
888 * testsuite/23_containers/list/debug/construct1_neg.cc: Likewise.
889 * testsuite/23_containers/list/debug/construct2_neg.cc: Likewise.
890 * testsuite/23_containers/list/debug/construct3_neg.cc: Likewise.
891 * testsuite/23_containers/list/debug/insert1_neg.cc: Likewise.
892 * testsuite/23_containers/list/debug/insert2_neg.cc: Likewise.
893 * testsuite/23_containers/list/debug/insert3_neg.cc: Likewise.
894 * testsuite/23_containers/list/debug/insert5_neg.cc: Likewise.
895 * testsuite/23_containers/list/debug/iterator_self_move_assign_neg.cc:
897 * testsuite/23_containers/list/debug/self_move_assign_neg.cc: Likewise.
898 * testsuite/23_containers/map/debug/60499.cc: Likewise.
899 * testsuite/23_containers/map/debug/construct1_neg.cc: Likewise.
900 * testsuite/23_containers/map/debug/construct2_neg.cc: Likewise.
901 * testsuite/23_containers/map/debug/construct3_neg.cc: Likewise.
902 * testsuite/23_containers/map/debug/insert1_neg.cc: Likewise.
903 * testsuite/23_containers/map/debug/insert2_neg.cc: Likewise.
904 * testsuite/23_containers/map/debug/insert3_neg.cc: Likewise.
905 * testsuite/23_containers/map/debug/iterator_self_move_assign_neg.cc:
907 * testsuite/23_containers/map/debug/self_move_assign_neg.cc: Likewise.
908 * testsuite/23_containers/multimap/debug/60499.cc: Likewise.
909 * testsuite/23_containers/multimap/debug/construct1_neg.cc: Likewise.
910 * testsuite/23_containers/multimap/debug/construct2_neg.cc: Likewise.
911 * testsuite/23_containers/multimap/debug/construct3_neg.cc: Likewise.
912 * testsuite/23_containers/multimap/debug/insert1_neg.cc: Likewise.
913 * testsuite/23_containers/multimap/debug/insert2_neg.cc: Likewise.
914 * testsuite/23_containers/multimap/debug/insert3_neg.cc: Likewise.
915 * testsuite/23_containers/multimap/debug/
916 iterator_self_move_assign_neg.cc: Likewise.
917 * testsuite/23_containers/multimap/debug/self_move_assign_neg.cc:
919 * testsuite/23_containers/multiset/debug/60499.cc: Likewise.
920 * testsuite/23_containers/multiset/debug/construct1_neg.cc: Likewise.
921 * testsuite/23_containers/multiset/debug/construct2_neg.cc: Likewise.
922 * testsuite/23_containers/multiset/debug/construct3_neg.cc: Likewise.
923 * testsuite/23_containers/multiset/debug/insert1_neg.cc: Likewise.
924 * testsuite/23_containers/multiset/debug/insert2_neg.cc: Likewise.
925 * testsuite/23_containers/multiset/debug/insert3_neg.cc: Likewise.
926 * testsuite/23_containers/multiset/debug/
927 iterator_self_move_assign_neg.cc: Likewise.
928 * testsuite/23_containers/multiset/debug/self_move_assign_neg.cc:
930 * testsuite/23_containers/set/debug/60499.cc: Likewise.
931 * testsuite/23_containers/set/debug/construct1_neg.cc: Likewise.
932 * testsuite/23_containers/set/debug/construct2_neg.cc: Likewise.
933 * testsuite/23_containers/set/debug/construct3_neg.cc: Likewise.
934 * testsuite/23_containers/set/debug/insert1_neg.cc: Likewise.
935 * testsuite/23_containers/set/debug/insert2_neg.cc: Likewise.
936 * testsuite/23_containers/set/debug/insert3_neg.cc: Likewise.
937 * testsuite/23_containers/set/debug/iterator_self_move_assign_neg.cc:
939 * testsuite/23_containers/set/debug/self_move_assign_neg.cc: Likewise.
940 * testsuite/23_containers/unordered_map/debug/60499.cc: Likewise.
941 * testsuite/23_containers/unordered_map/debug/begin1_neg.cc: Likewise.
942 * testsuite/23_containers/unordered_map/debug/begin2_neg.cc: Likewise.
943 * testsuite/23_containers/unordered_map/debug/bucket_size_neg.cc:
945 * testsuite/23_containers/unordered_map/debug/cbegin_neg.cc: Likewise.
946 * testsuite/23_containers/unordered_map/debug/cend_neg.cc: Likewise.
947 * testsuite/23_containers/unordered_map/debug/construct1_neg.cc:
949 * testsuite/23_containers/unordered_map/debug/construct2_neg.cc:
951 * testsuite/23_containers/unordered_map/debug/construct3_neg.cc:
953 * testsuite/23_containers/unordered_map/debug/end1_neg.cc: Likewise.
954 * testsuite/23_containers/unordered_map/debug/end2_neg.cc: Likewise.
955 * testsuite/23_containers/unordered_map/debug/insert1_neg.cc: Likewise.
956 * testsuite/23_containers/unordered_map/debug/insert2_neg.cc: Likewise.
957 * testsuite/23_containers/unordered_map/debug/insert3_neg.cc: Likewise.
958 * testsuite/23_containers/unordered_map/debug/
959 invalid_local_iterator_compare_neg.cc: Likewise.
960 * testsuite/23_containers/unordered_map/debug/
961 invalid_local_iterator_range_neg.cc: Likewise.
962 * testsuite/23_containers/unordered_map/debug/
963 iterator_self_move_assign_neg.cc: Likewise.
964 * testsuite/23_containers/unordered_map/debug/max_load_factor_neg.cc:
966 * testsuite/23_containers/unordered_map/debug/self_move_assign_neg.cc:
968 * testsuite/23_containers/unordered_map/debug/
969 use_erased_local_iterator_neg.cc: Likewise.
970 * testsuite/23_containers/unordered_map/debug/
971 use_invalid_iterator_neg.cc: Likewise.
972 * testsuite/23_containers/unordered_map/debug/
973 use_invalid_local_iterator_neg.cc: Likewise.
974 * testsuite/23_containers/unordered_multimap/debug/60499.cc: Likewise.
975 * testsuite/23_containers/unordered_multimap/debug/begin1_neg.cc:
977 * testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc:
979 * testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc:
981 * testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc:
983 * testsuite/23_containers/unordered_multimap/debug/cend_neg.cc:
985 * testsuite/23_containers/unordered_multimap/debug/construct1_neg.cc:
987 * testsuite/23_containers/unordered_multimap/debug/construct2_neg.cc:
989 * testsuite/23_containers/unordered_multimap/debug/construct3_neg.cc:
991 * testsuite/23_containers/unordered_multimap/debug/end1_neg.cc:
993 * testsuite/23_containers/unordered_multimap/debug/end2_neg.cc:
995 * testsuite/23_containers/unordered_multimap/debug/insert1_neg.cc:
997 * testsuite/23_containers/unordered_multimap/debug/insert2_neg.cc:
999 * testsuite/23_containers/unordered_multimap/debug/insert3_neg.cc:
1001 * testsuite/23_containers/unordered_multimap/debug/
1002 invalid_local_iterator_compare_neg.cc: Likewise.
1003 * testsuite/23_containers/unordered_multimap/debug/
1004 invalid_local_iterator_range_neg.cc: Likewise.
1005 * testsuite/23_containers/unordered_multimap/debug/
1006 iterator_self_move_assign_neg.cc: Likewise.
1007 * testsuite/23_containers/unordered_multimap/debug/
1008 max_load_factor_neg.cc: Likewise.
1009 * testsuite/23_containers/unordered_multimap/debug/
1010 self_move_assign_neg.cc: Likewise.
1011 * testsuite/23_containers/unordered_multimap/debug/
1012 use_erased_local_iterator_neg.cc: Likewise.
1013 * testsuite/23_containers/unordered_multimap/debug/
1014 use_invalid_iterator_neg.cc: Likewise.
1015 * testsuite/23_containers/unordered_multimap/debug/
1016 use_invalid_local_iterator_neg.cc: Likewise.
1017 * testsuite/23_containers/unordered_multiset/debug/60499.cc:
1019 * testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc:
1021 * testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc:
1023 * testsuite/23_containers/unordered_multiset/debug/bucket_size_neg.cc:
1025 * testsuite/23_containers/unordered_multiset/debug/cbegin_neg.cc:
1027 * testsuite/23_containers/unordered_multiset/debug/cend_neg.cc:
1029 * testsuite/23_containers/unordered_multiset/debug/construct1_neg.cc:
1031 * testsuite/23_containers/unordered_multiset/debug/construct2_neg.cc:
1033 * testsuite/23_containers/unordered_multiset/debug/construct3_neg.cc:
1035 * testsuite/23_containers/unordered_multiset/debug/end1_neg.cc:
1037 * testsuite/23_containers/unordered_multiset/debug/end2_neg.cc:
1039 * testsuite/23_containers/unordered_multiset/debug/insert1_neg.cc:
1041 * testsuite/23_containers/unordered_multiset/debug/insert2_neg.cc:
1043 * testsuite/23_containers/unordered_multiset/debug/insert3_neg.cc:
1045 * testsuite/23_containers/unordered_multiset/debug/
1046 invalid_local_iterator_compare_neg.cc: Likewise.
1047 * testsuite/23_containers/unordered_multiset/debug/
1048 invalid_local_iterator_range_neg.cc: Likewise.
1049 * testsuite/23_containers/unordered_multiset/debug/
1050 iterator_self_move_assign_neg.cc: Likewise.
1051 * testsuite/23_containers/unordered_multiset/debug/
1052 max_load_factor_neg.cc: Likewise.
1053 * testsuite/23_containers/unordered_multiset/debug/
1054 self_move_assign_neg.cc: Likewise.
1055 * testsuite/23_containers/unordered_multiset/debug/
1056 use_erased_local_iterator_neg.cc: Likewise.
1057 * testsuite/23_containers/unordered_multiset/debug/
1058 use_invalid_iterator_neg.cc: Likewise.
1059 * testsuite/23_containers/unordered_multiset/debug/
1060 use_invalid_local_iterator_neg.cc: Likewise.
1061 * testsuite/23_containers/unordered_set/debug/60499.cc: Likewise.
1062 * testsuite/23_containers/unordered_set/debug/begin1_neg.cc: Likewise.
1063 * testsuite/23_containers/unordered_set/debug/begin2_neg.cc: Likewise.
1064 * testsuite/23_containers/unordered_set/debug/bucket_size_neg.cc:
1066 * testsuite/23_containers/unordered_set/debug/cbegin_neg.cc: Likewise.
1067 * testsuite/23_containers/unordered_set/debug/cend_neg.cc: Likewise.
1068 * testsuite/23_containers/unordered_set/debug/construct1_neg.cc:
1070 * testsuite/23_containers/unordered_set/debug/construct2_neg.cc:
1072 * testsuite/23_containers/unordered_set/debug/construct3_neg.cc:
1074 * testsuite/23_containers/unordered_set/debug/end1_neg.cc: Likewise.
1075 * testsuite/23_containers/unordered_set/debug/end2_neg.cc: Likewise.
1076 * testsuite/23_containers/unordered_set/debug/insert1_neg.cc: Likewise.
1077 * testsuite/23_containers/unordered_set/debug/insert2_neg.cc: Likewise.
1078 * testsuite/23_containers/unordered_set/debug/insert3_neg.cc: Likewise.
1079 * testsuite/23_containers/unordered_set/debug/
1080 invalid_local_iterator_compare_neg.cc: Likewise.
1081 * testsuite/23_containers/unordered_set/debug/
1082 invalid_local_iterator_range_neg.cc: Likewise.
1083 * testsuite/23_containers/unordered_set/debug/
1084 iterator_self_move_assign_neg.cc: Likewise.
1085 * testsuite/23_containers/unordered_set/debug/
1086 max_load_factor_neg.cc: Likewise.
1087 * testsuite/23_containers/unordered_set/debug/
1088 self_move_assign_neg.cc: Likewise.
1089 * testsuite/23_containers/unordered_set/debug/
1090 use_erased_local_iterator_neg.cc: Likewise.
1091 * testsuite/23_containers/unordered_set/debug/
1092 use_invalid_iterator_neg.cc: Likewise.
1093 * testsuite/23_containers/unordered_set/debug/
1094 use_invalid_local_iterator_neg.cc: Likewise.
1095 * testsuite/23_containers/vector/debug/52433.cc: Likewise.
1096 * testsuite/23_containers/vector/debug/60499.cc: Likewise.
1097 * testsuite/23_containers/vector/debug/bool/shrink_to_fit.cc: Likewise.
1098 * testsuite/23_containers/vector/debug/
1099 iterator_self_move_assign_neg.cc: Likewise.
1100 * testsuite/23_containers/vector/debug/self_move_assign_neg.cc:
1102 * testsuite/23_containers/vector/debug/shrink_to_fit.cc: Likewise.
1103 * testsuite/25_algorithms/pop_heap/complexity.cc: Likewise.
1104 * testsuite/25_algorithms/push_heap/complexity.cc: Likewise.
1105 * testsuite/25_algorithms/sort_heap/complexity.cc: Likewise.
1106 * testsuite/29_atomics/atomic/60658.cc: Likewise.
1107 * testsuite/29_atomics/atomic/60695.cc: Likewise.
1108 * testsuite/29_atomics/atomic/62259.cc: Likewise.
1109 * testsuite/29_atomics/atomic/64658.cc: Likewise.
1110 * testsuite/29_atomics/atomic/cons/49445.cc: Likewise.
1111 * testsuite/29_atomics/atomic/operators/51811.cc: Likewise.
1112 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
1115 2016-09-11 Jonathan Wakely <jwakely@redhat.com>
1117 * libsupc++/new_opant.cc: Include exception_defines.h.
1118 * libsupc++/new_opvant.cc: Likewise.
1120 2016-09-09 Jason Merrill <jason@redhat.com>
1122 Implement P0035R4, C++17 new of over-aligned types.
1123 * libsupc++/new: Declare aligned new/delete operators.
1124 * config/abi/pre/gnu.ver: Export them.
1125 * configure.ac: Check for aligned_alloc, posix_memalign, memalign,
1127 * libsupc++/new_opa.cc: New.
1128 * libsupc++/new_opant.cc: New.
1129 * libsupc++/new_opva.cc: New.
1130 * libsupc++/new_opva.cc: New.
1131 * libsupc++/del_opa.cc: New.
1132 * libsupc++/del_opant.cc: New.
1133 * libsupc++/del_opsa.cc: New.
1134 * libsupc++/del_opva.cc: New.
1135 * libsupc++/del_opvant.cc: New.
1136 * libsupc++/del_opvsa.cc: New.
1137 * libsupc++/Makefile.am: Build them.
1139 2016-09-05 Tim Shen <timshen@google.com>
1141 * include/std/variant: include bits/move.h for std::addressof.
1143 2016-09-05 Mikhail Strelnikov <mikhail.strelnikov@gmail.com>
1145 * include/std/variant (_Variant_storage::_M_storage()): Use
1146 std::addressof instead of operator& to take address.
1148 2016-09-02 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
1150 * acinclude.m4 (GLIBCXX_CONFIGURE_TESTSUITE): Check for presence of
1151 setrlimit on both native and cross targets.
1152 * configure: Regenerate.
1154 2016-08-31 Jonathan Wakely <jwakely@redhat.com>
1156 * include/bits/shared_ptr.h (_Assignable): New alias template.
1157 (shared_ptr::operator=(const shared_ptr<_Tp1>&))
1158 (shared_ptr::operator=(shared_ptr<_Tp1>&&))
1159 (shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
1161 * include/bits/shared_ptr_base.h (_Assignable): New alias template.
1162 (__shared_ptr::operator=(const __shared_ptr<_Tp1>&))
1163 (__shared_ptr::operator=(__shared_ptr<_Tp1>&&))
1164 (__shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
1166 (__shared_ptr::reset(_Tp1*), __shared_ptr::reset(_Tp1*, _Deleter))
1167 (__shared_ptr::reset(_Tp1*, _Deleter, _Alloc)): Constrain with
1169 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Change dg-error to
1171 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
1172 * testsuite/20_util/shared_ptr/assign/sfinae.cc: New test.
1173 * testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc: Update
1174 expected errors. Remove unnecessary code.
1175 * testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc: New test.
1177 * include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Move
1179 * testsuite/23_containers/set/move_comparison.cc: New test.
1181 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
1184 2016-08-30 Ville Voutilainen <ville.voutilainen@gmail.com>
1187 * include/std/type_traits (is_constructible): Forward-declare...
1188 (__is_base_to_derived_ref): ...and use here.
1189 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
1190 * testsuite/20_util/is_constructible/77395.cc: New.
1191 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust.
1192 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1194 * testsuite/20_util/tuple/77395.cc: New.
1196 2016-08-30 Uros Bizjak <ubizjak@gmail.com>
1198 * testsuite/22_locale/time_get/get/char/2.cc: Move dg-do run
1199 directive above dg-require-namedlocale directive.
1200 * testsuite/22_locale/time_get/get/wchar_t/2.cc: Ditto.
1201 * testsuite/27_io/manipulators/extended/get_time/char/2.cc: Ditto.
1202 * testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc: Ditto.
1203 * testsuite/27_io/manipulators/extended/put_time/char/2.cc: Ditto.
1204 * testsuite/27_io/manipulators/extended/put_time/wchar_t/2.cc: Ditto.
1206 2016-08-27 Tim Shen <timshen@google.com>
1209 * include/bits/regex_compiler.tcc(_M_insert_bracket_matcher,
1210 _M_expression_term): Modify to support dash literal.
1211 * include/bits/regex_scanner.h: Add dash as a token type to make
1212 a different from the mandated dash literal by escaping.
1213 * include/bits/regex_scanner.tcc(_M_scan_in_bracket): Emit dash
1214 token in bracket expression parsing.
1215 * testsuite/28_regex/regression.cc: Add new testcases.
1217 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
1220 * doc/xml/manual/intro.xml: Document DR 2127 change.
1221 * doc/html/*: Regenerate.
1222 * include/bits/stl_raw_storage_iter.h (operator=(_Tp&&)): Add.
1223 (operator++(), operator++(int)): Use injected class name.
1224 * testsuite/20_util/raw_storage_iterator/dr2127.cc: New test.
1226 * testsuite/*: Use { target c++11 } or { target c++14 } instead of
1227 using -std in dg-options.
1229 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
1230 Pedro Alves <palves@redhat.com>
1232 * testsuite/lib/gdb-test.exp (gdb-dg-runtest): Define wrapper to save
1233 and restore dg-interpreter-batch-mode.
1234 * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Use
1235 gdb-dg-runtest instead of dg-runtest.
1236 * testsuite/libstdc++-xmethods/xmethods.exp: Likewise.
1238 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
1240 * config/abi/pre/gnu.ver (GLIBCXX_3.4, GLIBCXX_3.4.21): Use more
1241 precise patterns for basic_string constructors.
1242 (GLIBCXX_3.4.23): Export new constructors.
1243 * doc/xml/manual/intro.xml: Document LWG 2583 status.
1244 * doc/html/*: Regenerate.
1245 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1246 (basic_string(const basic_string&, size_type, const Alloc&)): Add
1247 new constructor for LWG 2583.
1248 (basic_string(const basic_string&, size_type, size_type)): Remove
1250 [!_GLIBCXX_USE_CXX11_ABI]: Likewise.
1251 * include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]: Define it.
1252 * testsuite/21_strings/basic_string/cons/char/8.cc: New test.
1253 * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: New test.
1255 2016-08-24 Aditya Kumar <hiraditya@msn.com>
1257 * include/bits/algorithmfwd.h: Remove trailing whitespace.
1258 * include/bits/shared_ptr_base.h: Likewise.
1260 2016-08-23 Jonathan Wakely <jwakely@redhat.com>
1262 * include/debug/array (array): Add _GLIBCXX17_CONSTEXPR.
1263 * include/profile/array (array): Likewise.
1264 (array::swap): Fix exception specification for zero-sized arrays.
1267 * include/bits/stl_tree.h (_Rb_tree::_M_move_assign): New functions.
1268 (_Rb_tree::operator=(_Rb_tree&&)): Dispatch to _M_move_assign.
1269 * testsuite/23_containers/map/77334.cc: New test.
1271 * doc/xml/manual/using.xml: Remove reference to -pthreads option.
1272 * doc/html/*: Regenerate.
1274 * testsuite/experimental/feat-cxx14.cc: Only preprocess, not compile.
1275 * testsuite/experimental/feat-lib-fund.cc: Likewise.
1278 * include/bits/stl_iterator.h
1279 (operator-(reverse_iterator<Iter>, reverse_iterator<Iter>): Only
1280 define for C++98 mode.
1281 (operator-(move_iterator<Iter>, move_iterator<Iter>): Don't define.
1282 * testsuite/24_iterators/headers/iterator/synopsis.cc: Use
1284 * testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: New test.
1285 * testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: New test.
1286 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: New test.
1287 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Don't test
1288 difference operator.
1289 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc: Only test
1290 difference operator for C++98.
1291 * testsuite/24_iterators/reverse_iterator/71771.cc: New test.
1293 * include/bits/c++config (_GLIBCXX17_CONSTEXPR): Define.
1294 * include/bits/range_access.h (begin, end, rbegin, rend, crbegin)
1295 (crend): Add _GLIBCXX17_CONSTEXPR as per P0031R0.
1296 * include/bits/stl_iterator.h (reverse_iterator, move_iterator)
1297 (__make_reverse_iterator, make_reverse_iterator, make_move_iterator):
1299 * include/bits/stl_iterator_base_funcs.h (__distance, __advance): Add
1300 _GLIBCXX14_CONSTEXPR.
1301 (distance, advance, next, prev): Add _GLIBCXX17_CONSTEXPR.
1302 * include/std/array (array::begin, array::end, array::rbegin)
1303 (array::rend, array::cbegin, array:cend, array::crbegin)
1304 (array::crend, array::operator[], array::at, array::front)
1305 (array::back, array::data): Likewise.
1306 * testsuite/24_iterators/headers/iterator/range_access.cc: Replace
1307 with separate tests for C++11, C++14, and C++17.
1308 * testsuite/24_iterators/headers/iterator/range_access_c++11.cc: New.
1309 * testsuite/24_iterators/headers/iterator/range_access_c++14.cc: New.
1310 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc: New.
1312 2016-08-22 Tim Shen <timshen@google.com>
1314 Split _M_dfs() into smaller functions.
1315 * regex_executor.h(_M_handle_repeat, _M_handle_subexpr_begin)
1316 (_M_handle_subexpr_end, _M_handle_line_begin_assertion)
1317 (_M_handle_line_end_assertion, _M_handle_word_boundary)
1318 (_M_handle_subexpr_lookahead, _M_handle_match)
1319 (_M_handle_backref, _M_handle_accept, _M_handle_alternative):
1320 Add separate function declarations.
1321 * regex_executor.tcc: Split _M_dfs() into multiple handler functions.
1323 2016-08-22 Gleb Natapov <gleb@scylladb.com>
1326 * config/abi/pre/gnu-versioned-namespace.ver: Export
1327 __cxa_init_primary_exception and std::exception_ptr(void*).
1328 * config/abi/pre/gnu.ver (CXXABI_1.3.11) : Add new symbol version and
1329 export __cxa_init_primary_exception and std::exception_ptr(void*).
1330 * include/Makefile.am: Add new headers.
1331 * include/Makefile.in: Regenerate.
1332 * libsupc++/Makefile.am: Add new headers.
1333 * libsupc++/Makefile.in: Regenerate.
1334 * libsupc++/cxxabi.h (__cxa_allocate_exception): Move to ...
1335 * libsupc++/cxxabi_init_exception.h: New header.
1336 (__cxa_init_primary_exception): Declare.
1337 * libsupc++/eh_throw.cc (__cxa_init_primary_exception): Define.
1338 (__cxa_throw): Use __cxa_init_primary_exception.
1339 * libsupc++/exception (std::exception): Move to ...
1340 * libsupc++/exception.h: New header.
1341 * libsupc++/exception_ptr.h (__exception_ptr::exception_ptr): Add
1343 (__exception_ptr::__dest_thunk): New function template.
1344 (std::make_exception_ptr) [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]:
1345 Use __cxa_allocate_exception and __cxa_init_primary_exception to
1346 create exception_ptr.
1347 * libsupc++/typeinfo: Include bits/exception.h instead of exception.
1348 * testsuite/util/testsuite_abi.cc: Add CXXABI_1.3.11 version.
1350 2016-08-22 Jonathan Wakely <jwakely@redhat.com>
1352 * doc/xml/api.xml: Replace hardcoded links for specific versions with
1353 link to docs for all releases.
1354 * doc/html/*: Regenerate.
1357 * doc/xml/manual/intro.xml: Document DR 2062 change.
1358 * include/std/functional (function::swap): Add noexcept.
1359 (swap(function<Res(Args...)&, function<Res(Args...)&)): Likewise.
1360 * testsuite/20_util/function/77322.cc: New test.
1362 2016-08-19 Jonathan Wakely <jwakely@redhat.com>
1364 * testsuite/21_strings/basic_string/pthread18185.cc: Use -pthread for
1365 *-*-solaris* instead of -pthreads.
1366 * testsuite/21_strings/basic_string/pthread4.cc : Likewise.
1367 * testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
1368 * testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
1369 * testsuite/23_containers/list/pthread1.cc: Likewise.
1370 * testsuite/23_containers/list/pthread5.cc: Likewise.
1371 * testsuite/23_containers/map/pthread6.cc: Likewise.
1372 * testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
1373 * testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
1374 * testsuite/30_threads/shared_mutex/*: Likewise.
1375 * testsuite/ext/rope/pthread7-rope.cc: Likewise.
1376 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
1377 default_weaktoshared.cc: Likewise.
1378 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
1379 mutex_weaktoshared.cc: Likewise.
1380 * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise. Use
1381 dg-require-effective-target instead of using -std option.
1382 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
1384 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
1385 * testsuite/23_containers/vector/debug/multithreaded_swap.cc:
1387 * testsuite/30_threads/async/*: Likewise.
1388 * testsuite/30_threads/call_once/*: Likewise.
1389 * testsuite/30_threads/condition_variable/*: Likewise.
1390 * testsuite/30_threads/condition_variable_any/*: Likewise.
1391 * testsuite/30_threads/future/*: Likewise.
1392 * testsuite/30_threads/lock/*: Likewise.
1393 * testsuite/30_threads/mutex/*: Likewise.
1394 * testsuite/30_threads/packaged_task/*: Likewise.
1395 * testsuite/30_threads/promise/*: Likewise.
1396 * testsuite/30_threads/recursive_mutex/*: Likewise.
1397 * testsuite/30_threads/recursive_timed_mutex/*: Likewise.
1398 * testsuite/30_threads/shared_future/*: Likewise.
1399 * testsuite/30_threads/shared_lock/*: Likewise.
1400 * testsuite/30_threads/shared_timed_mutex/*: Likewise.
1401 * testsuite/30_threads/this_thread/*: Likewise.
1402 * testsuite/30_threads/thread/*: Likewise.
1403 * testsuite/30_threads/timed_mutex/*: Likewise.
1404 * testsuite/30_threads/try_lock/*: Likewise.
1405 * testsuite/30_threads/unique_lock/*: Likewise.
1407 * doc/xml/manual/status_cxx2017.xml: Update status of not_fn.
1408 * doc/html/*: Regenerate.
1409 * include/experimental/functional (_Not_fn, not_fn): Match C++17
1411 * include/std/functional (_Not_fn, not_fn): Define for C++17.
1412 * testsuite/20_util/not_fn/1.cc: New.
1413 * testsuite/experimental/functional/not_fn.cc: Test abstract class.
1414 Remove test for volatile-qualified wrapper.
1416 * include/std/atomic (atomic::is_always_lock_free): Define.
1417 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
1418 * testsuite/29_atomics/atomic/is_always_lock_free.cc: New.
1419 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc: New.
1420 * doc/xml/manual/status_cxx2017.xml: Update status.
1421 * doc/html/*: Regenerate.
1423 * include/experimental/tuple (apply): Qualify call to __apply_impl.
1424 * include/std/tuple (apply): Likewise.
1425 * testsuite/experimental/system_error/value.cc: Fix ambiguities in
1427 * testsuite/experimental/tuple/tuple_size.cc: Likewise.
1428 * testsuite/experimental/type_traits/value.cc: Likewise.
1430 * doc/xml/manual/status_cxx2017.xml: Update status of make_from_tuple
1432 * doc/html/*: Regenerate.
1434 2016-08-18 Ville Voutilainen <ville.voutilainen@gmail.com>
1436 Implement the latest proposed resolution of LWG 2756.
1437 * include/std/optional (Optional_base(const _Tp&))
1438 (Optional_base(_Tp&&), using _Base::_Base): Remove.
1439 (optional(nullopt_t)): New.
1440 (optional(_Up&&)): Invoke base directly with in_place
1441 rather than creating a temporary, add default template
1442 argument, change constraints.
1443 (optional(const optional<_Up>&)): Invoke base directly
1444 with in_place, remove unnecessary constraints.
1445 (optional(optional<_Up>&& __t)): Likewise.
1446 (optional(in_place_t, _Args&&...)): New.
1447 (optional(in_place_t, initializer_list<_Up>, _Args&&...)): Likewise.
1448 (operator=(_Up&&)): Add default template argument, change constraints.
1449 (operator=(const optional<_Up>&)): Put is_same first in the
1451 (operator=(optional<_Up>&&)): Likewise.
1452 * testsuite/20_util/optional/assignment/5.cc: Add a test to
1453 verify assignment from something that can't be perfect-forwarded.
1454 * testsuite/20_util/optional/cons/value.cc: Add tests to verify
1455 that a nested optional is disengaged when constructed
1456 from a disengaged element type, and to verify that assignments
1457 from an engaged element type engage the optional.
1459 2016-08-18 Tim Shen <timshen@google.com>
1463 * include/Makefile.am: Add new file std/variant.
1464 * include/Makefile.in: Generated from Makefile.am.
1465 * include/bits/enable_special_members.h: Add a tag type to allow
1466 the construction in non-default constructor.
1467 * include/bits/uses_allocator.h: Add convenience traits to
1468 detect constructibility.
1469 * include/std/variant: Implement <variant>.
1470 * testsuite/20_util/variant/compile.cc: Compile-time tests.
1471 * testsuite/20_util/variant/run.cc: Runtime tests.
1473 2016-08-18 Jonathan Wakely <jwakely@redhat.com>
1475 * doc/xml/manual/test.xml (test.run.permutations): Expand section.
1476 (test.new_tests): Rewrite section.
1477 (tests.dg.directives): New section.
1478 * doc/html/*: Regenerate.
1480 * doc/xml/manual/test.xml: Improve documentation of test targets.
1481 Document new-abi-baseline, check-debug, and check-parallel targets.
1483 * doc/xml/manual/build_hacking.xml: New section on shared library
1486 * doc/xml/manual/build_hacking.xml: Improve markup.
1487 * doc/xml/manual/test.xml: Likewise. Change section title from "Test"
1489 * doc/xml/faq.xml: Change link text to "Testing".
1491 * testsuite/tr1/3_function_objects/function/10.cc: Remove unintended
1492 dg-options directive.
1494 2016-08-17 Jonathan Wakely <jwakely@redhat.com>
1496 * testsuite/20_util/reference_wrapper/invoke-2.cc: Fix invalid dg-do
1497 directive and use effective target instead of dg-options.
1499 * testsuite/20_util/hash/chi2_q_bit_flip_set.cc: Use effective target
1500 instead of -std in dg-options.
1501 * testsuite/20_util/hash/chi2_q_bit_string_set.cc: Likewise.
1502 * testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc: Likewise.
1503 * testsuite/20_util/hash/chi2_q_uniform_random.cc: Likewise.
1504 * testsuite/20_util/hash/quality.cc: Likewise.
1505 * testsuite/25_algorithms/heap/moveable.cc: Likewise.
1506 * testsuite/25_algorithms/heap/moveable2.cc: Likewise.
1507 * testsuite/25_algorithms/nth_element/random_test.cc: Likewise.
1508 * testsuite/25_algorithms/partial_sort/random_test.cc: Likewise.
1509 * testsuite/25_algorithms/partial_sort_copy/random_test.cc: Likewise.
1510 * testsuite/25_algorithms/sort/random_test.cc: Likewise.
1512 * testsuite/20_util/tuple/67844.cc: Require c++11 effective target.
1513 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Likewise.
1514 * testsuite/27_io/rvalue_streams.cc: Likewise.
1516 * testsuite/26_numerics/complex/literals/types.cc: Add comment.
1518 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
1519 Remove duplicate dg-options directive.
1521 * testsuite/ext/profile/all.cc: Use effective target instead of
1522 -std=gnu++11. Use dg-additional-options instead of repeating options.
1524 * testsuite/20_util/bind/ref_neg.cc: Use effective target instead of
1525 -std=gnu++11. Add -fno-show-columns to dg-options. Use dg-prune-output
1526 instead of dg-excess-errors.
1528 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Disable
1530 * testsuite/experimental/chrono/value.cc: Avoid ambiguities in C++17.
1531 * testsuite/experimental/ratio/value.cc: Likewise.
1532 * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Disable test for
1534 * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
1535 * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
1536 * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
1537 * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
1538 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
1539 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
1540 * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
1541 * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
1542 * testsuite/tr1/5_numerical_facilities/special_functions/
1543 10_cyl_bessel_k/airy.cc: Adjust namespace of __detail::__airy for
1544 C++17 compatibility.
1546 * testsuite/24_iterators/headers/iterator/range_access.cc: Adjust
1547 expected signatures for C++14 compatibility.
1550 * include/bits/basic_string.h (operator=(__sv_type)
1551 (append(__sv_type), assign(__sv_type), insert(size_type, __sv_type))
1552 (replace(size_type, size_type, __sv_type))
1553 (replace(const_iterator, const_iterator, __sv_type))
1554 (find(__sv_type, size_type), rfind(__sv_type, size_type))
1555 (compare(size_type, size_type, __sv_type)): Reformat.
1556 (_If_sv): Define helper for SFINAE constaints.
1557 (append(const _Tp&, size_type, size_type))
1558 (assign(const _Tp&, size_type, size_type))
1559 (insert(size_type, const _Tp&, size_type, size_type))
1560 (replace(size_type, size_type, const _Tp&, size_type, size_type)):
1562 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc: Test
1564 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
1566 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1568 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
1570 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
1572 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
1574 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
1576 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
1578 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1580 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
1582 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
1585 2016-08-16 Jonathan Wakely <jwakely@redhat.com>
1588 * include/bits/stl_bvector.h (_Bvector_base::_M_deallocate): Zero
1589 pointers to start and end of storage.
1590 * testsuite/23_containers/vector/bool/72847.cc: New test.
1591 * include/bits/vector.tcc (vector<bool>::_M_reallocate): Only update
1592 _M_finish after deallocating.
1593 (vector<bool>::_M_fill_insert): Likewise.
1594 (vector<bool>::_M_insert_range): Likewise.
1595 (vector<bool>::_M_insert_aux): Likewise.
1597 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1599 Implement LWG 2744 and LWG 2754.
1600 * include/std/any (any(ValueType&&)): Constrain with __is_in_place_type.
1601 (any(in_place_type_t<_ValueType>, _Args&&...)): Use _Decay.
1602 (any(in_place_type_t<_ValueType>, initializer_list<_Up>, _Args&&...)):
1604 (emplace(_Args&&...)): Likewise.
1605 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
1606 * include/std/utility: (__is_in_place_type_impl): New.
1607 (__is_in_place_type): Likewise.
1608 * testsuite/20_util/any/assign/emplace.cc: Add tests for decaying
1610 * testsuite/20_util/any/cons/in_place.cc: Add tests for decaying
1611 in_place constructor.
1612 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
1613 * testsuite/20_util/any/requirements.cc: Add a test for
1614 in_place-constructing a non-default-constructible type.
1616 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1618 Add a feature macro for C++17 make_from_tuple.
1619 * include/std/tuple (__cpp_lib_make_from_tuple): New.
1620 (__make_from_tuple_impl(_Tuple&&, index_sequence<_Idx...>)):
1621 Qualify the call to get<>().
1622 * testsuite/20_util/tuple/make_from_tuple/1.cc: Adjust.
1624 2016-08-15 Uros Bizjak <ubizjak@gmail.com>
1626 * src/filesystem/ops.cc: Always include ostream and
1627 ext/stdio_filebuf.h.
1628 (do_copy_file): Check if _GLIBCXX_USE_FCHMODAT is defined.
1629 [_GLIBCXX_USE_SENDFILE]: Fallback to read/write operations in case
1630 sendfile fails with ENOSYS or EINVAL.
1632 2016-08-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
1635 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Fix dg-error
1638 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1640 Implement C++17 make_from_tuple.
1641 * include/std/tuple (__make_from_tuple_impl, make_from_tuple): New.
1642 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
1644 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1647 * include/bits/basic_string.h
1648 (append(__sv_type, size_type, size_type)): Turn into a template,
1649 change parameter type, constrain, add a conversion to __sv_type
1650 from the dependent parameter type.
1651 (assign(__sv_type, size_type, size_type)): Likewise.
1652 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
1653 (replace(size_type, size_type, __sv_type, size_type, size_type)):
1655 (compare(size_type, size_type,__sv_type, size_type, size_type)):
1657 * testsuite/21_strings/basic_string/lwg2758.cc: New.
1659 2016-08-06 Jonathan Wakely <jwakely@redhat.com>
1661 * doc/xml/manual/status_cxx2017.xml: Update status table.
1662 * doc/html/manual/status.html: Regenerate.
1664 * testsuite/lib/libstdc++.exp: Fix typo in comment.
1667 * include/std/functional (_Function_base::_Base_manager::_M_clone):
1668 Qualify new operator.
1669 * testsuite/20_util/function/cons/72820.cc: New test.
1671 * doc/xml/manual/status_cxx2017.xml: Add missing LFTSv2 features.
1672 * doc/html/manual/status.html: Regenerate.
1673 * include/Makefile.am: Add new header.
1674 * include/Makefile.in: Regenerate.
1675 * include/bits/invoke.h: New header.
1676 (__invoke): Make constexpr. Add && to types in exception specification.
1677 * include/experimental/tuple (apply, __apply_impl): Fix non-reserved
1678 names. Include <bits/invoke.h> and use std::__invoke.
1679 * include/std/functional (__invfwd, __invoke_impl, __invoke): Move to
1681 (invoke): Add && to types in exception specification.
1682 * include/std/tuple (apply, __apply_impl): Define for C++17.
1683 * testsuite/20_util/tuple/apply/1.cc: New test.
1684 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error
1687 2016-08-05 Jonathan Wakely <jwakely@redhat.com>
1689 * doc/xml/manual/status_cxx2017.xml: Correct shared_from_this status.
1690 * doc/html/manual/status.html: Regenerate.
1692 * include/std/chrono (floor, ceil, round, abs): New for C++17.
1693 * testsuite/20_util/duration_cast/rounding.cc: New test.
1694 * testsuite/20_util/time_point_cast/rounding.cc: New test.
1695 * doc/xml/manual/status_cxx2017.xml: Update status table.
1696 * doc/html/manual/status.html: Regenerate.
1697 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust
1699 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1700 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1701 * testsuite/20_util/duration/literals/range.cc: Likewise.
1703 * include/std/functional (__callable_functor): Remove.
1704 (_Function_handler::_M_invoke): Use __invoke instead of
1705 __callable_functor or mem_fn.
1706 (function::_Callable): Use lvalue in result_of expression.
1707 (function): Remove TODO comments about allocators.
1708 * testsuite/20_util/function/cons/refqual.cc: New test.
1710 2016-08-04 Jonathan Wakely <jwakely@redhat.com>
1712 * doc/xml/manual/status_cxx2017.xml: Update status table.
1713 * include/std/functional (__inv_unwrap): Move to <type_traits>.
1714 (__invoke_impl): Remove exception specifications.
1715 (__invoke, invoke): Add exception specifications using
1716 __is_nothrow_callable.
1717 * include/std/type_traits (__inv_unwrap): Move from <functional>.
1718 (__is_callable_impl, __call_is_nt, __call_is_nothrow): New helpers.
1719 (__is_callable, __is_nothrow_callable): New traits.
1720 (is_callable, is_callable_v): New C++17 traits.
1721 (is_nothrow_callable, is_nothrow_callable_v): Likewise.
1722 * testsuite/20_util/is_callable/requirements/
1723 explicit_instantiation.cc: New test.
1724 * testsuite/20_util/is_callable/requirements/
1725 explicit_instantiation_ext.cc: New test.
1726 * testsuite/20_util/is_callable/requirements/typedefs.cc: New test.
1727 * testsuite/20_util/is_callable/requirements/typedefs_ext.cc: New
1729 * testsuite/20_util/is_callable/value.cc: New test.
1730 * testsuite/20_util/is_callable/value_ext.cc: New test.
1731 * testsuite/20_util/is_nothrow_callable/requirements/
1732 explicit_instantiation.cc: New test.
1733 * testsuite/20_util/is_nothrow_callable/requirements/
1734 explicit_instantiation_ext.cc: New test.
1735 * testsuite/20_util/is_nothrow_callable/requirements/typedefs.cc:
1737 * testsuite/20_util/is_nothrow_callable/requirements/typedefs_ext.cc:
1739 * testsuite/20_util/is_nothrow_callable/value.cc: New test.
1740 * testsuite/20_util/is_nothrow_callable/value_ext.cc: New test.
1742 * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
1743 * doc/html/manual/status.html: Regenerate.
1745 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Use
1746 effective target not dg-options. Move check for feature-test macro to:
1747 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
1750 * include/std/functional (_Unwrap): Rename to __inv_unwrap.
1752 (__invoke_impl): Remove unused template parameters.
1753 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
1755 * testsuite/20_util/function_objects/invoke/ref_ext.cc: Copy 59768.cc
1756 and test __invoke extension for C++11.
1758 2016-08-03 Jonathan Wakely <jwakely@redhat.com>
1760 * include/bits/shared_ptr_base.h (__cpp_lib_enable_shared_from_this):
1761 Define feature-test macro.
1762 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Test
1765 * include/bits/shared_ptr.h (shared_ptr::weak_type): Define.
1766 * include/bits/shared_ptr_base.h (__shared_ptr::weak_type): Define.
1767 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
1768 * testsuite/20_util/shared_ptr/requirements/weak_type.cc: New test.
1769 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
1771 * include/std/utility (as_const): Define.
1772 * testsuite/20_util/as_const/1.cc: New test.
1773 * testsuite/20_util/as_const/rvalue_neg.cc: New test.
1775 * include/bits/shared_ptr.h (owner_less): Add default template
1777 * include/bits/shared_ptr_base.h (_Sp_owner_less<void, void>): Define
1779 (owner_less<void>): Define specialization.
1780 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
1782 * testsuite/20_util/owner_less/void.cc: New test.
1783 * testsuite/experimental/feat-cxx14.cc: Update macro value tested.
1785 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
1786 Define feature-test macro.
1787 * include/bits/range_access.h (__cpp_lib_array_constexpr): Likewise.
1788 * include/std/shared_mutex (__cpp_lib_shared_mutex): Uncomment.
1789 * include/std/type_traits (__cpp_lib_logical_traits): Fix value.
1790 (__cpp_lib_type_trait_variable_templates): Define.
1792 * include/bits/stl_function.h: Remove commented-out macro.
1793 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
1794 Define feature-test macro.
1795 * testsuite/experimental/feat-cxx14.cc: Add tests for more macros.
1797 * include/bits/c++config (_GLIBCXX_USE_STD_SPEC_FUNCS): Define for
1798 C++17, or for C++11/C++14 when __STDCPP_WANT_MATH_SPEC_FUNCS__ is
1800 * include/bits/specfun.h [!__STDCPP_WANT_MATH_SPEC_FUNCS__]: Don't
1801 do #error for C++17.
1802 * include/c_global/cmath: Check _GLIBCXX_USE_STD_SPEC_FUNCS instead
1803 of __STDCPP_WANT_MATH_SPEC_FUNCS__.
1804 * include/tr1/bessel_function.tcc: Likewise.
1805 * include/tr1/beta_function.tcc: Likewise.
1806 * include/tr1/cmath: Likewise.
1807 * include/tr1/ell_integral.tcc: Likewise.
1808 * include/tr1/exp_integral.tcc: Likewise.
1809 * include/tr1/gamma.tcc: Likewise.
1810 * include/tr1/hypergeometric.tcc: Likewise.
1811 * include/tr1/legendre_function.tcc: Likewise.
1812 * include/tr1/modified_bessel_func.tcc: Likewise.
1813 * include/tr1/poly_hermite.tcc: Likewise.
1814 * include/tr1/poly_laguerre.tcc: Likewise.
1815 * include/tr1/riemann_zeta.tcc: Likewise.
1816 * include/tr1/special_function_util.h: Likewise.
1817 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc: New.
1819 * include/std/type_traits (has_trivial_default_constructor): Remove.
1820 (has_trivial_copy_constructor, has_trivial_copy_assign): Likewise.
1821 * testsuite/20_util/has_trivial_copy_assign/requirements/
1822 explicit_instantiation.cc: Remove test.
1823 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
1825 * testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc:
1827 * testsuite/20_util/has_trivial_copy_assign/value.cc: Likewise.
1828 * testsuite/20_util/has_trivial_copy_constructor/requirements/
1829 explicit_instantiation.cc: Likewise.
1830 * testsuite/20_util/has_trivial_copy_constructor/requirements/
1831 typedefs.cc: Likewise.
1832 * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise.
1833 * testsuite/20_util/has_trivial_default_constructor/requirements/
1834 explicit_instantiation.cc: Likewise.
1835 * testsuite/20_util/has_trivial_default_constructor/requirements/
1836 typedefs.cc: Likewise.
1837 * testsuite/20_util/has_trivial_default_constructor/value.cc:
1839 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
1840 Check has_trivial_default_constructor, has_trivial_copy_constructor,
1841 and has_trivial_copy_assign are not defined.
1842 * testsuite/20_util/pair/requirements/dr801.cc: Remove commented out
1844 * testsuite/20_util/tuple/requirements/dr801.cc: Likewise.
1845 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
1846 dg-error line number.
1847 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1850 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
1852 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
1853 Remove reundant check for _GLIBCXX_USE_WCHAR_T and fix char type.
1854 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
1856 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
1858 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
1860 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
1862 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
1864 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
1867 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Improve
1870 * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Move
1871 dg-error to relevant line.
1872 * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc:
1874 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
1876 * scripts/testsuite_flags.in: Add -fno-show-column to cxxflags.
1878 * testsuite/18_support/bad_exception/23591_thread-1.c: Skip test if
1879 options are present that aren't valid for C.
1880 * testsuite/abi/header_cxxabi.c: Likewise.
1882 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/
1883 check_value.cc: Do not add special functions to namespace std in TR1
1886 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Only
1887 run for C++11 and later.
1888 * testsuite/ext/special_functions/conf_hyperg/check_value.cc:
1890 * testsuite/ext/special_functions/conf_hyperg/compile.cc: Likewise.
1891 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
1892 * testsuite/ext/special_functions/hyperg/check_value.cc: Likewise.
1893 * testsuite/ext/special_functions/hyperg/compile.cc: Likewise.
1894 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
1896 * testsuite/special_functions/01_assoc_laguerre/check_value.cc:
1898 * testsuite/special_functions/01_assoc_laguerre/compile.cc: Likewise.
1899 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc:
1901 * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
1903 * testsuite/special_functions/02_assoc_legendre/check_value.cc:
1905 * testsuite/special_functions/02_assoc_legendre/compile.cc: Likewise.
1906 * testsuite/special_functions/02_assoc_legendre/compile_2.cc:
1907 * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
1908 * testsuite/special_functions/03_beta/check_value.cc: Likewise.
1909 * testsuite/special_functions/03_beta/compile.cc: Likewise.
1910 * testsuite/special_functions/03_beta/compile_2.cc: Likewise.
1911 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: Likewise.
1912 * testsuite/special_functions/04_comp_ellint_1/check_value.cc:
1914 * testsuite/special_functions/04_comp_ellint_1/compile.cc: Likewise.
1915 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Likewise.
1916 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: Likewise.
1917 * testsuite/special_functions/05_comp_ellint_2/check_value.cc:
1919 * testsuite/special_functions/05_comp_ellint_2/compile.cc: Likewise.
1920 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Likewise.
1921 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: Likewise.
1922 * testsuite/special_functions/06_comp_ellint_3/check_value.cc:
1924 * testsuite/special_functions/06_comp_ellint_3/compile.cc: Likewise.
1925 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Likewise.
1926 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: Likewise.
1927 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc:
1929 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: Likewise.
1930 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Likewise.
1931 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: Likewise.
1932 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: Likewise.
1933 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc:
1935 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: Likewise.
1936 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Likewise.
1937 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: Likewise.
1938 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc:
1940 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: Likewise.
1941 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Likewise.
1942 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: Likewise.
1943 * testsuite/special_functions/10_cyl_neumann/check_value.cc: Likewise.
1944 * testsuite/special_functions/10_cyl_neumann/compile.cc: Likewise.
1945 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Likewise.
1946 * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
1947 * testsuite/special_functions/11_ellint_1/check_value.cc: Likewise.
1948 * testsuite/special_functions/11_ellint_1/compile.cc: Likewise.
1949 * testsuite/special_functions/11_ellint_1/compile_2.cc: Likewise.
1950 * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
1951 * testsuite/special_functions/12_ellint_2/check_value.cc: Likewise.
1952 * testsuite/special_functions/12_ellint_2/compile.cc: Likewise.
1953 * testsuite/special_functions/12_ellint_2/compile_2.cc: Likewise.
1954 * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
1955 * testsuite/special_functions/13_ellint_3/check_value.cc: Likewise.
1956 * testsuite/special_functions/13_ellint_3/compile.cc: Likewise.
1957 * testsuite/special_functions/13_ellint_3/compile_2.cc: Likewise.
1958 * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
1959 * testsuite/special_functions/14_expint/check_value.cc: Likewise.
1960 * testsuite/special_functions/14_expint/compile.cc: Likewise.
1961 * testsuite/special_functions/14_expint/compile_2.cc: Likewise.
1962 * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
1963 * testsuite/special_functions/15_hermite/check_value.cc: Likewise.
1964 * testsuite/special_functions/15_hermite/compile.cc: Likewise.
1965 * testsuite/special_functions/15_hermite/compile_2.cc: Likewise.
1966 * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
1967 * testsuite/special_functions/16_laguerre/check_value.cc: Likewise.
1968 * testsuite/special_functions/16_laguerre/compile.cc: Likewise.
1969 * testsuite/special_functions/16_laguerre/compile_2.cc: Likewise.
1970 * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
1971 * testsuite/special_functions/17_legendre/check_value.cc: Likewise.
1972 * testsuite/special_functions/17_legendre/compile.cc: Likewise.
1973 * testsuite/special_functions/17_legendre/compile_2.cc: Likewise.
1974 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: Likewise.
1975 * testsuite/special_functions/18_riemann_zeta/check_value.cc:
1977 * testsuite/special_functions/18_riemann_zeta/compile.cc: Likewise.
1978 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Likewise.
1979 * testsuite/special_functions/19_sph_bessel/check_nan.cc: Likewise.
1980 * testsuite/special_functions/19_sph_bessel/check_value.cc: Likewise.
1981 * testsuite/special_functions/19_sph_bessel/compile.cc: Likewise.
1982 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Likewise.
1983 * testsuite/special_functions/20_sph_legendre/check_nan.cc: Likewise.
1984 * testsuite/special_functions/20_sph_legendre/check_value.cc:
1986 * testsuite/special_functions/20_sph_legendre/compile.cc: Likewise.
1987 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Likewise.
1988 * testsuite/special_functions/21_sph_neumann/check_nan.cc: Likewise.
1989 * testsuite/special_functions/21_sph_neumann/check_value.cc: Likewise.
1990 * testsuite/special_functions/21_sph_neumann/compile.cc: Likewise.
1991 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Likewise.
1993 * testsuite/tr1/5_numerical_facilities/special_functions/
1994 08_cyl_bessel_i/check_value.cc: Use __attribute__((unused)) instead
1996 * testsuite/tr1/5_numerical_facilities/special_functions/
1997 09_cyl_bessel_j/check_value.cc: Likewise.
1998 * testsuite/tr1/5_numerical_facilities/special_functions/
1999 10_cyl_bessel_k/check_value.cc: Likewise.
2000 * testsuite/tr1/5_numerical_facilities/special_functions/
2001 11_cyl_neumann/check_value.cc: Likewise.
2002 * testsuite/tr1/5_numerical_facilities/special_functions/
2003 21_sph_bessel/check_value.cc: Likewise.
2004 * testsuite/tr1/5_numerical_facilities/special_functions/
2005 23_sph_neumann/check_value.cc: Likewise.
2007 2016-08-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2009 * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
2010 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
2011 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
2012 * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
2013 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
2014 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
2016 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
2018 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: Skip
2021 * testsuite/lib/libstdc++.exp (v3-build_support): Add -fno-lto to
2022 additional flags for compiling libtestc++.a objects.
2024 2016-08-01 Jonathan Wakely <jwakely@redhat.com>
2026 * include/bits/basic_string.h (data() const): Update comment.
2027 (data()): Add non-const overload for C++17.
2028 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
2029 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
2031 * include/bits/basic_string.tcc: Disable explicit instantiation
2032 declarations for C++17.
2034 * testsuite/23_containers/unordered_map/requirements/53339.cc: Remove
2035 ignored "xfail" from { dg-do compile { xfail selector } } directive.
2036 * testsuite/23_containers/unordered_multimap/requirements/53339.cc:
2038 * testsuite/26_numerics/headers/cmath/
2039 c99_classification_macros_c++11.cc: Likewise.
2040 * testsuite/26_numerics/headers/cmath/
2041 c99_classification_macros_c++98.cc: Likewise.
2042 * testsuite/26_numerics/headers/cmath/
2043 c99_classification_macros_c.cc: Likewise.
2045 * testsuite/backward/hash_set/check_construct_destroy.cc: Account
2046 for different construct/destroy counts in C++98 mode.
2048 * testsuite/17_intro/freestanding.cc: Remove "-x c" from dg-options.
2050 * testsuite/20_util/tuple/cons/66338.cc: Limit test to C++11 and
2052 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc:
2055 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Use
2056 C++98-compatible initialization for array.
2058 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc: Remove
2059 unused header and variable from compile-only test.
2060 * testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc: Likewise.
2061 * testsuite/28_regex/basic_regex/assign/char/cstring.cc: Likewise.
2062 * testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc: Likewise.
2063 * testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc:
2066 * testsuite/experimental/string_view/operations/rfind/char/2.cc:
2067 Remove duplicate dg-options directive.
2069 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
2070 808590.cc: Use -std=gnu++98 instead of -std=gnu++03.
2072 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Remove
2073 linker options from compile-only tests.
2074 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
2077 * testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Make test
2078 supported for C++11 and later.
2079 * testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
2080 * testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.
2082 2016-08-01 Uros Bizjak <ubizjak@gmail.com>
2084 * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
2086 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
2088 * testsuite/20_util/conditional/requirements/typedefs.cc: Change to
2091 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
2092 Ensure test is compiled with optimization.
2094 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
2095 Adjust dg-prune-output pattern for error in C++98 mode.
2097 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Only
2098 run for C++11 or later.
2100 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Fix
2101 test to not rely on GNU extension (escaped normal characters in POSIX
2102 BRE). Enable tests for other strings which are now supported.
2104 * testsuite/20_util/pair/astuple/get_neg.cc: Use effective-target
2105 c++11 instead of setting -std=gnu++14.
2108 * include/std/array (get): Use positive message for static assertions.
2109 * include/std/functional (_Safe_tuple_element_t): Fix indentation.
2110 * include/std/tuple (tuple_element<I, tuple<>>): Add partial
2111 specialization for invalid indices, with static assertion.
2112 * testsuite/20_util/tuple/element_access/get_neg.cc: New test.
2114 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Move
2115 dg-error to relevant line.
2116 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
2118 * testsuite/23_containers/forward_list/requirements/dr438/
2119 assign_neg.cc: Likewise.
2120 * testsuite/23_containers/forward_list/requirements/dr438/
2121 constructor_1_neg.cc: Likewise.
2122 * testsuite/23_containers/forward_list/requirements/dr438/
2123 constructor_2_neg.cc: Likewise.
2124 * testsuite/23_containers/forward_list/requirements/dr438/
2125 insert_neg.cc: Likewise.
2126 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc:
2128 * testsuite/26_numerics/random/linear_congruential_engine/
2129 requirements/non_uint_neg.cc: Likewise.
2130 * testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc:
2131 Likewise. Also test for std::atomic_address.
2133 2016-07-31 Ville Voutilainen <ville.voutilainen@gmail.com>
2135 Add missing variable traits, fix testsuite failures.
2136 * include/bits/uses_allocator.h (uses_allocator_v): New.
2137 * include/std/functional (is_bind_expression_v, is_placeholder_v):
2139 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
2140 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
2141 * testsuite/20_util/duration/literals/range.cc: Likewise.
2142 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
2143 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
2144 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
2145 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise.
2146 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
2148 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
2149 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
2152 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
2154 * testsuite/18_support/numeric_limits/40856.cc [__STRICT_ANSI__]: Do
2155 not test 128-bit types.
2156 * testsuite/20_util/is_floating_point/value.cc: Likewise.
2157 * testsuite/20_util/is_integral/value.cc: Likewise.
2158 * testsuite/20_util/is_signed/value.cc: Likewise.
2159 * testsuite/20_util/is_unsigned/value.cc: Likewise.
2160 * testsuite/20_util/make_signed/requirements/typedefs-1.cc: Likewise.
2161 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
2162 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
2164 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
2167 * testsuite/26_numerics/headers/cstdlib/54686.c: Rename to 54686.cc.
2169 2016-07-29 Ville Voutilainen <ville.voutilainen@gmail.com>
2171 Implement C++17 variable templates for type traits.
2172 * include/std/chrono (treat_as_floating_point_v): New.
2173 * include/std/ratio (ratio_equal_v, ratio_not_equal_v)
2174 (ratio_less_v, ratio_less_equal_v, ratio_greater_v)
2175 (ratio_greater_equal_v): Likewise.
2176 * include/std/system_error (is_error_code_enum_v)
2177 (is_error_condition_enum_v): Likewise.
2178 * include/std/tuple (tuple_size_v): Likewise.
2179 * type_traits (conjunction_v, disjunction_v, negation_v)
2180 (is_void_v, is_null_pointer_v, is_integral_v, is_floating_point_v)
2181 (is_array_v, is_pointer_v, is_lvalue_reference_v)
2182 (is_rvalue_reference_v, is_member_object_pointer_v)
2183 (is_member_function_pointer_v, is_enum_v, is_union_v)
2184 (is_class_v, is_function_v, is_reference_v, is_arithmetic_v)
2185 (is_fundamental_v, is_object_v, is_scalar_v, is_compound_v)
2186 (is_member_pointer_v, is_const_v, is_volatile_v, is_trivial_v)
2187 (is_trivially_copyable_v, is_standard_layout_v)
2188 (is_pod_v, is_literal_type_v, is_empty_v, is_polymorphic_v)
2189 (is_abstract_v, is_final_v, is_signed_v, is_unsigned_v)
2190 (is_constructible_v, is_default_constructible_v)
2191 (is_copy_constructible_v, is_move_constructible_v)
2192 (is_assignable_v, is_copy_assignable_v, is_move_assignable_v)
2193 (is_destructible_v, is_trivially_constructible_v)
2194 (is_trivially_default_constructible_v)
2195 (is_trivially_copy_constructible_v, is_trivially_move_constructible_v)
2196 (is_trivially_assignable_v, is_trivially_copy_assignable_v)
2197 (is_trivially_move_assignable_v, is_trivially_destructible_v)
2198 (is_nothrow_constructible_v, is_nothrow_default_constructible_v)
2199 (is_nothrow_copy_constructible_v, is_nothrow_move_constructible_v)
2200 (is_nothrow_assignable_v, is_nothrow_copy_assignable_v)
2201 (is_nothrow_move_assignable_v, is_nothrow_destructible_v)
2202 (has_virtual_destructor_v, alignment_of_v, rank_v, extent_v)
2203 (is_same_v, is_base_of_v, is_convertible_v): Likewise.
2204 * testsuite/19_diagnostics/error_code/is_error_code_v.cc: Likewise.
2205 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
2207 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc: Likewise.
2208 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
2209 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
2211 2016-07-29 Andreas Schwab <schwab@linux-m68k.org>
2213 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
2214 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
2215 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
2217 2016-07-29 Jonathan Wakely <jwakely@redhat.com>
2219 * doc/xml/manual/abi.xml: Document 6.0.22 library version.
2220 * doc/html/manual/abi.html: Regenerate.
2222 * acinclude.m4 (libtool_VERSION): Bump to 6:23:0.
2223 * config/abi/pre/gnu.ver: Add 3.4.23 version for new basic_string
2225 * configure: Regenerate.
2226 * testsuite/util/testsuite_abi.cc: Add new symbol version.
2228 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
2229 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
2230 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Likewise.
2231 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
2233 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
2234 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
2235 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Likewise.
2237 2016-07-28 Jonathan Wakely <jwakely@redhat.com>
2239 * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
2240 Adjust dg-prune-output pattern for error in C++98 mode.
2241 * testsuite/23_containers/deque/requirements/dr438/
2242 constructor_1_neg.cc: Likewise.
2243 * testsuite/23_containers/deque/requirements/dr438/
2244 constructor_2_neg.cc: Likewise.
2245 * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
2247 * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
2249 * testsuite/23_containers/list/requirements/dr438/
2250 constructor_1_neg.cc: Likewise.
2251 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
2253 * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
2255 * testsuite/23_containers/vector/requirements/dr438/
2256 constructor_1_neg.cc: Likewise.
2257 * testsuite/23_containers/vector/requirements/dr438/
2258 constructor_2_neg.cc: Likewise.
2259 * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
2262 * testsuite/23_containers/vector/check_construct_destroy.cc: Account
2263 for different construct/destroy counts in C++98 mode.
2265 * testsuite/17_intro/headers/c++2011/stdc++.cc: Change target-specific
2266 dg-options to dg-additional-options so that default options are used.
2267 * testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc:
2269 * testsuite/17_intro/headers/c++2014/stdc++.cc: Likewise.
2270 * testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc:
2272 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
2273 Use dg-additional-options instead of repeating the common options.
2275 * testsuite/22_locale/conversions/string/1.cc: Remove unintended
2276 dg-do compile directive.
2277 * testsuite/26_numerics/headers/cmath/fabs_inline.cc: Fix syntax of
2279 * testsuite/26_numerics/valarray/const_bracket.cc: Likewise.
2281 2016-07-28 Ville Voutilainen <ville.voutilainen@gmail.com>
2283 Implement std::string_view and P0254r2,
2284 Integrating std::string_view and std::string.
2285 * include/Makefile.am: Add string_view and string_view.tcc
2286 to the exported headers.
2287 * include/Makefile.in: Likewise.
2288 * include/bits/basic_string.h: Include <string_view> in C++17 mode.
2290 (basic_string(__sv_type, const _Alloc&)): Likewise.
2291 (operator=(__sv_type)): Likewise.
2292 (operator __sv_type()): Likewise.
2293 (operator+=(__sv_type)): Likewise.
2294 (append(__sv_type __sv)): Likewise.
2295 (append(__sv_type, size_type, size_type)): Likewise.
2296 (assign(__sv_type)): Likewise.
2297 (assign(__sv_type, size_type, size_type)): Likewise.
2298 (insert(size_type, __sv_type)): Likewise.
2299 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
2300 (replace(size_type, size_type, __sv_type)): Likewise.
2301 (replace(size_type, size_type, __sv_type, size_type, size_type)):
2303 (replace(const_iterator, const_iterator, __sv_type)): Likewise.
2304 (find(__sv_type, size_type)): Likewise.
2305 (rfind(__sv_type, size_type)): Likewise.
2306 (find_first_of(__sv_type, size_type)): Likewise.
2307 (find_last_of(__sv_type, size_type)): Likewise.
2308 (find_first_not_of(__sv_type, size_type)): Likewise.
2309 (find_last_not_of(__sv_type, size_type)): Likewise.
2310 (compare(__sv_type)): Likewise.
2311 (compare(size_type, size_type, __sv_type)): Likewise.
2312 (compare(size_type, size_type, __sv_type, size_type, size_type)):
2314 * include/bits/string_view.tcc: New.
2315 * include/std/string_view: Likewise.
2316 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
2317 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
2318 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
2320 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
2322 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
2324 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
2326 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
2328 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
2330 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
2332 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
2334 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
2336 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
2338 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
2340 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
2342 * testsuite/21_strings/basic_string/operators/char/5.cc: Likewise.
2343 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc: Likewise.
2344 * testsuite/21_strings/basic_string_view/capacity/1.cc: Likewise.
2345 * testsuite/21_strings/basic_string_view/cons/char/1.cc: Likewise.
2346 * testsuite/21_strings/basic_string_view/cons/char/2.cc: Likewise.
2347 * testsuite/21_strings/basic_string_view/cons/char/3.cc: Likewise.
2348 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc: Likewise.
2349 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc: Likewise.
2350 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc: Likewise.
2351 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
2353 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
2355 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
2357 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
2359 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
2361 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
2363 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
2365 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
2367 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
2368 * testsuite/21_strings/basic_string_view/inserters/char/1.cc: Likewise.
2369 * testsuite/21_strings/basic_string_view/inserters/char/2.cc: Likewise.
2370 * testsuite/21_strings/basic_string_view/inserters/char/3.cc: Likewise.
2371 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
2373 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
2375 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
2377 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
2379 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
2381 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
2383 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
2385 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
2387 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
2389 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
2391 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
2393 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
2395 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
2397 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
2399 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
2401 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
2403 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
2405 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
2407 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
2409 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
2411 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
2413 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
2415 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
2417 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
2419 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
2421 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
2423 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
2425 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
2427 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
2429 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
2431 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
2433 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
2435 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
2437 * testsuite/21_strings/basic_string_view/operators/char/2.cc: Likewise.
2438 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
2440 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
2442 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
2444 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
2446 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
2448 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
2450 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
2452 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
2454 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
2456 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
2457 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
2459 2016-07-27 Jonathan Wakely <jwakely@redhat.com>
2461 * testsuite/20_util/forward/1_neg.cc: Move dg-error to right line.
2463 2016-07-25 Georeth Chow <georeth2010@gmail.com>
2465 * include/ext/ropeimpl.h (rope<>::_S_dump(_RopeRep*, int)): Qualify
2466 _S_concat enumerator.
2467 * testsuite/ext/rope/6.cc: New test.
2469 2016-07-25 Jonathan Wakely <jwakely@redhat.com>
2471 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Use
2472 std::mt19937, std::thread and std::atomic to simplify test.
2473 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
2475 2016-07-22 Jonathan Wakely <jwakely@redhat.com>
2478 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2479 (basic_string::_Alloc_hider(pointer, _Alloc&&)): Add constructor.
2480 * include/bits/stl_tree.h (_Rb_tree(_Rb_tree&&)): Move allocator.
2481 * testsuite/21_strings/basic_string/allocator/71964.cc: New test.
2482 * testsuite/23_containers/set/allocator/71964.cc: New test.
2484 * testsuite/lib/libstdc++.exp (check_v3_target_namedlocale): Use
2485 delete[] instead of delete.
2487 2016-07-21 Jonathan Wakely <jwakely@redhat.com>
2489 * include/experimental/propagate_const (propagate_const::__t): Rename
2490 to _M_t and remove comment. Qualify std::move and std::forward.
2491 * testsuite/experimental/propagate_const/cons/default.cc: Fix test.
2493 * testsuite/23_containers/vector/zero_sized_allocations.cc:
2494 Define sized deallocation function.
2495 * testsuite/util/testsuite_new_operators.h:
2496 (operator delete(void*, const std::nothrow_t&)): Define nothrow
2497 deallocation function.
2499 * testsuite/21_strings/basic_string/modifiers/append/char/1.cc: Fix
2500 reads past the end of strings.
2501 * testsuite/21_strings/basic_string/operations/compare/char/1.cc:
2503 * testsuite/21_strings/char_traits/requirements/short/1.cc: Fix
2504 invalid array accesses.
2505 * testsuite/experimental/string_view/operations/compare/char/1.cc:
2506 Fix read past the end of string.
2507 * testsuite/util/testsuite_character.cc: Fix out-of-bounds write.
2509 * testsuite/24_iterators/container_access.cc: Fix missing returns.
2510 * testsuite/24_iterators/range_access_cpp14.cc: Likewise.
2512 * testsuite/18_support/new_delete_placement.cc: Don't allocate (and
2513 leak) memory for arguments to placement delete.
2514 * testsuite/20_util/addressof/1.cc: Don't leak memory.
2515 * testsuite/22_locale/locale/global_locale_objects/3.cc: Likewise.
2516 * testsuite/23_containers/unordered_multimap/insert/55028-debug.cc:
2519 2016-07-20 Jonathan Wakely <jwakely@redhat.com>
2521 * doc/xml/manual/intro.xml: Document DR 2684 status.
2522 * doc/html/*: Regenerate.
2524 * include/std/atomic (atomic_int8_t, atomic_uint8_t, atomic_int16_t)
2525 (atomic_uint16_t, atomic_int32_t, atomic_uint32_t, atomic_int64_t)
2526 (atomic_uint64_t): Define (LWG 2441).
2527 * testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc: Remove empty
2529 * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Test for
2531 * doc/xml/manual/intro.xml: Document DR 2441 status.
2533 * include/std/istream (operator>>(basic_istream&&, _Tp&)): Adjust
2534 to use perfect forwarding (LWG 2328).
2535 * testsuite/27_io/rvalue_streams.cc: Test perfect forwarding.
2536 * doc/xml/manual/intro.xml: Document DR 2328 status.
2538 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Use
2539 static objects for catching nullptr as pointer to member types.
2541 2016-07-18 Ville Voutilainen <ville.voutilainen@gmail.com>
2543 Clean up optional's comments.
2544 * include/std/optional: Remove incorrect section headers
2545 from comments when redundant, replace bare section
2546 headers with more descriptive comments.
2548 2016-07-15 Jonathan Wakely <jwakely@redhat.com>
2550 * include/bits/algorithmfwd.h: Change C++0x to C++11 in comments.
2551 * include/bits/move.h: Likewise.
2552 * include/bits/postypes.h: Likewise.
2553 * include/debug/bitset: Likewise.
2554 * include/ext/pb_ds/detail/type_utils.hpp: Likewise.
2555 * include/ext/string_conversions.h: Change C++0x to __cxx11 in
2557 * testsuite/27_io/fpos/14320-1.cc: Change C++0x to C++11 in comment.
2558 * testsuite/util/thread/all.h: Likewise.
2560 * include/bits/stl_algo.h (for_each): Remove redundant _GLIBCXX_MOVE
2564 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Make
2565 nullptr match handlers of pointer type.
2567 2016-07-15 Edward Smith-Rowland <3dw4rd@verizon.net>
2569 Implement C++17 P0025 clamp.
2570 * include/bits/algorithmfwd.h: Declare clamp overloads.
2571 * include/bits/stl_algo.h: Implement clamp. Feature __cpp_lib_clamp.
2572 * testsuite/25_algorithms/clamp/1.cc: New test.
2573 * testsuite/25_algorithms/clamp/2.cc: New test.
2574 * testsuite/25_algorithms/clamp/constexpr.cc: New test.
2575 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
2577 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
2580 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
2582 Fix the constraints for any's assignment operator template to properly
2583 reject assignment from a non-copyable lvalue.
2584 * include/std/any (operator=(_ValueType&&)): Constrain the decayed
2585 type for is_copy_constructible,
2586 * testsuite/20_util/any/requirements.cc: Add a test for
2587 non-copyable lvalues.
2589 2016-07-14 Jonathan Wakely <jwakely@redhat.com>
2591 * include/experimental/functional: Include <parallel/algorithm> in
2594 * testsuite/experimental/functional/searchers.cc: Include <algorithm>
2598 * include/bits/forward_list.h (forward_list): Update doxygen comments
2599 to reflect allocator propagation semantics. Remove ambiguous
2600 statements about data being lost.
2601 * include/bits/stl_deque.h (deque): Likewise.
2602 * include/bits/stl_list.h (list): Likewise.
2603 * include/bits/stl_map.h (map): Likewise.
2604 * include/bits/stl_multimap.h (multimap): Likewise.
2605 * include/bits/stl_multiset.h (multiset): Likewise.
2606 * include/bits/stl_set.h (set): Likewise.
2607 * include/bits/stl_vector.h (vector): Likewise.
2608 * include/bits/unordered_map.h (unordered_map, unordered_multimap):
2610 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
2613 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
2615 Implement P0032R3, Homogeneous interface for variant, any and optional,
2616 for the parts concerning any and optional.
2617 * include/std/any (_Storage()): Make constexpr and have it
2619 (any()): Make constexpr.
2620 (any(const any&)): Adjust.
2621 (any(any&&)): Likewise.
2622 (__any_constructible_t): New.
2623 (any(_ValueType&&)): Constrain.
2624 (any(in_place_type_t<_Tp>, _Args&&...)): New.
2625 (any(in_place_type_t<_Tp>, initializer_list<_Up>, _Args&&...)):
2628 (operator=(const any&)): Likewise.
2629 (operator=(any&&)): Likewise.
2630 (operator=(_ValueType&&)): Constrain.
2631 (emplace(_Args&&...)): New.
2632 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
2635 (swap(any&)): Adjust.
2639 (_Manager_internal::_S_create(_Storage&, _Args&&...)): New.
2640 (_Manager_external::_S_create(_Storage&, _Args&&...)): Likewise.
2641 (make_any(_Args&&...)): Likewise.
2642 (make_any(initializer_list<_Up>, _Args&&...)): Likewise.
2643 * include/std/optional (in_place_t, in_place): Remove.
2644 (bad_optional_access): Add a comment referring to LEWG 72.
2645 (emplace(_Args&&...)): Constrain.
2647 (reset()): Likewise.
2648 (make_optional(_Args&&...)): Likewise.
2649 (make_optional(initializer_list<_Up>, _Args&&...)): Likewise.
2650 * include/std/utility (in_place_tag): New.
2651 (__in_place, __in_place_type, __in_place_index): Likewise.
2652 (in_place_t, in_place_type_t, in_place_index_t): Likewise.
2653 (in_place(__in_place*)): Likewise.
2654 (in_place(__in_place_type<_Tp>*)): Likewise.
2655 (in_place(__in_place_index<_Idx>*)): Likewise.
2656 * testsuite/20_util/any/assign/1.cc: Adjust.
2657 * testsuite/20_util/any/assign/emplace.cc: New.
2658 * testsuite/20_util/any/assign/self.cc: Adjust.
2659 * testsuite/20_util/any/cons/1.cc: Likewise.
2660 * testsuite/20_util/any/cons/in_place.cc: New.
2661 * testsuite/20_util/any/make_any.cc: Likewise.
2662 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
2663 * testsuite/20_util/any/misc/swap.cc: Likewise.
2664 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2665 * testsuite/20_util/any/requirements.cc: New.
2666 * testsuite/20_util/in_place/requirements.cc: Likewise.
2667 * testsuite/20_util/optional/constexpr/in_place.cc: Adjust.
2668 * testsuite/20_util/optional/in_place.cc: Likewise.
2669 * testsuite/20_util/optional/make_optional.cc: Add tests for
2670 the new overloads of make_optional.
2672 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2674 Implement P0307R2, Making Optional Greater Equal Again.
2675 * include/experimental/optional (_Has_addressof): Fix the comment.
2676 * include/std/optional (_Has_addressof): Likewise.
2677 (operator=(_Up&&)): Constrain.
2678 (operator=(const optional<_Up>&)): Likewise.
2679 (operator=(optional<_Up>&&)): Likewise.
2680 (__optional_relop_t): New.
2681 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2682 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2683 Constrain and make transparent.
2684 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2685 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2686 Constrain and make transparent.
2687 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2688 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2689 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2690 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2691 (operator!=(const optional<_Tp>&, _Tp const&)):
2692 Constrain and make transparent.
2693 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2694 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2695 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2696 (operator>(const optional<_Tp>&, const _Tp&)):
2697 Constrain and make transparent.
2698 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2699 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2700 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2701 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2702 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2703 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2704 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2705 * testsuite/20_util/optional/relops/1.cc: Likewise.
2706 * testsuite/20_util/optional/relops/2.cc: Likewise.
2707 * testsuite/20_util/optional/relops/3.cc: Likewise.
2708 * testsuite/20_util/optional/relops/4.cc: Likewise.
2709 * testsuite/20_util/optional/requirements.cc: Add tests to verify
2710 that optional's relops are transparent and don't synthesize
2711 operators. Also test that assignment sfinaes.
2713 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2716 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Define to 1 not empty.
2717 * include/parallel/compiletime_settings.h (_GLIBCXX_ASSERTIONS):
2718 Rename to _GLIBCXX_PARALLEL_ASSERTIONS and make default value depend
2719 on _GLIBCXX_ASSERTIONS.
2720 * include/parallel/balanced_quicksort.h: Rename _GLIBCXX_ASSERTIONS.
2721 Include <unistd.h> for sleep.
2722 * include/parallel/losertree.h: Rename _GLIBCXX_ASSERTIONS.
2723 * include/parallel/merge.h: Likewise.
2724 * include/parallel/multiway_merge.h: Likewise.
2725 * include/parallel/partition.h: Likewise.
2726 * include/parallel/queue.h: Likewise.
2727 * include/parallel/sort.h: Likewise.
2728 * testsuite/25_algorithms/headers/algorithm/
2729 parallel_algorithm_assert.cc: New.
2731 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2732 (replace(__const_iterator, __const_iterator, initializer_list<C>)):
2733 Forward to different overload.
2735 * include/bits/allocated_ptr.h (__allocated_ptr::_S_raw_ptr): Make
2738 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2740 Revert "Add non-const overload of std::string::data()".
2742 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2744 Implement P0307R2, Making Optional Greater Equal Again.
2745 * include/experimental/optional (_Has_addressof): Fix the comment.
2746 * include/std/optional (_Has_addressof): Likewise.
2747 (operator=(_Up&&)): Constrain.
2748 (operator=(const optional<_Up>&)): Likewise.
2749 (operator=(optional<_Up>&&)): Likewise.
2750 (__optional_relop_t): New.
2751 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2752 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2753 Constrain and make transparent.
2754 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2755 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2756 Constrain and make transparent.
2757 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2758 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2759 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2760 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2761 (operator!=(const optional<_Tp>&, _Tp const&)):
2762 Constrain and make transparent.
2763 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2764 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2765 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2766 (operator>(const optional<_Tp>&, const _Tp&)):
2767 Constrain and make transparent.
2768 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2769 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2770 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2771 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2772 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2773 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2774 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2775 * testsuite/20_util/optional/relops/1.cc: Likewise.
2776 * testsuite/20_util/optional/relops/2.cc: Likewise.
2777 * testsuite/20_util/optional/relops/3.cc: Likewise.
2778 * testsuite/20_util/optional/relops/4.cc: Likewise.
2779 * testsuite/20_util/optional/requirements.cc: Add tests to verify
2780 that optional's relops are transparent and don't synthesize
2781 operators. Also test that assignment sfinaes.
2783 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2785 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (_M_c_str):
2787 (_M_disjunct, basic_string(const basic_string&, size_t)): Use data()
2788 instead of _M_data().
2789 (basic_string(const basic_string&, size_t, size_t, const _Alloc&)):
2791 (append(const basic_string&)): Likewise.
2792 (append(const basic_string&, size_type, size_type)): Likewise.
2793 (assign(const basic_string&, size_type, size_type)): Likewise.
2794 (insert(size_type, const basic_string&)): Likewise.
2795 (insert(size_type, const basic_string&, size_type, size_type)):
2797 (replace(size_type, size_type, const basic_string&, size_type,
2798 size_type)): Likewise.
2799 (replace(__const_iterator, __const_iterator, const basic_string&)):
2801 (c_str(), data()): Use c_str() instead of _M_data().
2802 (data()): Add non-const overload as per LWG 2391 and P0272R1.
2803 (compare(const basic_string&)): Use data() instead of _M_data().
2804 [!_GLIBCXX_USE_CXX11_ABI] (data()): Add non-const overload.
2805 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI] (_M_mutate):
2806 Pass raw pointers to _S_copy.
2807 (_M_erase, _M_replace_aux): Pass raw pointers to _S_move and
2809 (find(const _CharT*, size_type, size_type)): Use data instead of
2811 * testsuite/21_strings/basic_string/allocator/char/ext_ptr.cc: New.
2812 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
2813 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
2815 2016-07-12 Jonathan Wakely <jwakely@redhat.com>
2817 * libsupc++/new: Remove nothrow sized deletes (LWG 2458).
2818 * doc/xml/manual/intro.xml: Document DR 2458 status.
2819 * doc/html*: Regenerate.
2821 * testsuite/20_util/pair/astuple/astuple.cc: Only include <utility>.
2822 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
2823 Only include <array>.
2824 * testsuite/23_containers/array/tuple_interface/tuple_size.cc:
2826 * doc/xml/manual/intro.xml: Document LWG 2212 support.
2827 * doc/html*: Regenerate.
2829 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2830 Add testcase from LWG 2164.
2832 2016-07-11 François Dumont <fdumont@gcc.gnu.org>
2834 * include/bits/stl_vector.h (push_back(const value_type&)): Forward
2835 to _M_realloc_insert.
2836 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2837 (_M_realloc_insert): Declare new function.
2838 (_M_emplace_back_aux): Remove definition.
2839 * include/bits/vector.tcc (emplace_back(_Args...)):
2840 Use _M_realloc_insert.
2841 (insert(const_iterator, const value_type&)): Likewise.
2842 (_M_insert_rval, _M_emplace_aux): Likewise.
2843 (_M_emplace_back_aux): Remove declaration.
2844 (_M_realloc_insert): Define.
2845 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2846 Adjust expected results for emplacing an lvalue with reallocation.
2848 2016-07-10 Ville Voutilainen <ville.voutilainen@gmail.com>
2850 Implement std::optional.
2851 * include/Makefile.am: Add optional to exported headers.
2852 * include/Makefile.in: Likewise.
2853 * include/std/optional: New.
2854 * testsuite/20_util/optional/typedefs.cc: Likewise.
2855 * testsuite/20_util/optional/relops/2.cc: Likewise.
2856 * testsuite/20_util/optional/relops/3.cc: Likewise.
2857 * testsuite/20_util/optional/relops/4.cc: Likewise.
2858 * testsuite/20_util/optional/relops/5.cc: Likewise.
2859 * testsuite/20_util/optional/relops/1.cc: Likewise.
2860 * testsuite/20_util/optional/relops/6.cc: Likewise.
2861 * testsuite/20_util/optional/nullopt.cc: Likewise.
2862 * testsuite/20_util/optional/in_place.cc: Likewise.
2863 * testsuite/20_util/optional/make_optional.cc: Likewise.
2864 * testsuite/20_util/optional/assignment/2.cc: Likewise.
2865 * testsuite/20_util/optional/assignment/3.cc: Likewise.
2866 * testsuite/20_util/optional/assignment/4.cc: Likewise.
2867 * testsuite/20_util/optional/assignment/5.cc: Likewise.
2868 * testsuite/20_util/optional/assignment/1.cc: Likewise.
2869 * testsuite/20_util/optional/assignment/6.cc: Likewise.
2870 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
2871 * testsuite/20_util/optional/cons/default.cc: Likewise.
2872 * testsuite/20_util/optional/cons/move.cc: Likewise.
2873 * testsuite/20_util/optional/cons/value.cc: Likewise.
2874 * testsuite/20_util/optional/cons/copy.cc: Likewise.
2875 * testsuite/20_util/optional/requirements.cc: Likewise.
2876 * testsuite/20_util/optional/observers/2.cc: Likewise.
2877 * testsuite/20_util/optional/observers/3.cc: Likewise.
2878 * testsuite/20_util/optional/observers/4.cc: Likewise.
2879 * testsuite/20_util/optional/observers/5.cc: Likewise.
2880 * testsuite/20_util/optional/observers/1.cc: Likewise.
2881 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
2882 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
2883 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2884 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
2885 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
2886 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
2887 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
2888 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
2889 * testsuite/20_util/optional/constexpr/make_optional.cc: Likewise.
2890 * testsuite/20_util/optional/constexpr/cons/default.cc: Likewise.
2891 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
2892 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
2893 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
2894 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
2895 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
2896 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
2897 * testsuite/20_util/optional/swap/1.cc: Likewise.
2899 2016-07-08 Jonathan Wakely <jwakely@redhat.com>
2901 * testsuite/23_containers/vector/modifiers/insert/aliasing.cc: New.
2903 2016-07-07 Jonathan Wakely <jwakely@redhat.com>
2905 * doc/xml/manual/status_cxx2014.xml: Update LFTS status table.
2906 * doc/html/*: Regenerate.
2908 2016-07-07 Ville Voutilainen <ville.voutilainen@gmail.com>
2911 * include/Makefile.am: Add any and c++17_warning.h to exported headers.
2912 * include/Makefile.in: Likewise.
2913 * include/std/any: New.
2914 * testsuite/20_util/any/assign/1.cc: Likewise.
2915 * testsuite/20_util/any/assign/2.cc: Likewise.
2916 * testsuite/20_util/any/assign/self.cc: Likewise.
2917 * testsuite/20_util/any/cons/1.cc: Likewise.
2918 * testsuite/20_util/any/cons/2.cc: Likewise.
2919 * testsuite/20_util/any/cons/aligned.cc: Likewise.
2920 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
2921 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
2922 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
2923 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
2924 * testsuite/20_util/any/misc/swap.cc: Likewise.
2925 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2926 * testsuite/20_util/any/observers/type.cc: Likewise.
2927 * testsuite/20_util/any/typedefs.cc: Likewise.
2929 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2931 Add a new header for diagnosing the use of C++17 facilities
2933 * include/bits/c++17_warning.h: New.
2935 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2937 Implement LWG 2451, optional<T> should 'forward' T's
2938 implicit conversions.
2939 * include/experimental/optional (__is_optional_impl, __is_optional):
2941 (optional()): Make constexpr and default.
2942 (optional(_Up&&), optional(const optional<_Up>&),
2943 optional(optional<_Up>&& __t): New.
2944 (operator=(_Up&&)): Constrain.
2945 (operator=(const optional<_Up>&), operator=(optional<_Up>&&)): New.
2946 * testsuite/experimental/optional/cons/value.cc:
2947 Add tests for the functionality added by LWG 2451.
2948 * testsuite/experimental/optional/cons/value_neg.cc: New.
2950 2016-07-05 Ville Voutilainen <ville.voutilainen@gmail.com>
2953 any_cast doesn't work with rvalue reference targets and cannot
2954 move with a value target.
2955 * include/experimental/any (any(_ValueType&&)): Constrain and
2956 add an overload that doesn't forward.
2957 (any_cast(any&&)): Constrain and add an overload that moves.
2958 * testsuite/experimental/any/misc/any_cast.cc: Add tests for
2959 the functionality added by LWG 2509.
2961 2016-07-04 François Dumont <fdumont@gcc.gnu.org>
2963 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2965 * testsuite/23_containers/vector/modifiers/insert/self_insert.cc: New
2968 2016-07-04 Jonathan Wakely <jwakely@redhat.com>
2970 * include/bits/stl_vector.h (emplace(const_iterator, _Args&&...)):
2971 Define inline. Forward to _M_emplace_aux.
2972 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2973 (_M_insert_rval, _M_emplace_aux): Declare new functions.
2974 (_Temporary_value): New RAII type using allocator to construct/destroy.
2975 (_S_insert_aux_assign): Remove.
2976 (_M_insert_aux): Make non-variadic.
2977 * include/bits/vector.tcc (insert(const_iterator, const value_type&)):
2978 Use _Temporary_value.
2979 (emplace(const_iterator, _Args&&...)): Remove definition.
2980 (_M_insert_rval, _M_emplace_aux): Define.
2981 (_M_insert_aux): Make non-variadic, stop using _S_insert_aux_assign.
2982 (_M_fill_insert): Use _Temporary_value.
2983 * testsuite/23_containers/vector/allocator/construction.cc: New test.
2984 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2985 Adjust expected results for emplacing an lvalue with reallocation.
2986 * testsuite/23_containers/vector/check_construct_destroy.cc: Adjust
2987 expected results to account for construction/destruction of temporary
2989 * testsuite/backward/hash_set/check_construct_destroy.cc: Likewise.
2991 2016-07-04 Ville Voutilainen <ville.voutilainen@gmail.com>
2994 * src/filesystem/ops.cc (remove_all(const path&, error_code&)):
2995 Call remove_all for children of a directory.
2996 * testsuite/experimental/filesystem/operations/create_directories.cc:
2999 2016-07-02 François Dumont <fdumont@gcc.gnu.org>
3001 * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Adjust
3002 dg-error line numbers.
3003 * testsuite/23_containers/array/tuple_interface/
3004 tuple_element_debug_neg.cc: Likewise.
3005 * testsuite/25_algorithms/lexicographical_compare/debug/
3006 irreflexive_neg.cc: Remove.
3008 2016-06-30 Thomas Preud'homme <thomas.preudhomme@arm.com>
3010 * testsuite/29_atomics/atomic/65913.cc: Require atomic-builtins rather
3011 than specific target.
3013 2016-06-27 François Dumont <fdumont@gcc.gnu.org>
3016 * include/bits/hashtable.h: Remove _Unique_keya parameter in _Insert
3019 2016-06-23 François Dumont <fdumont@gcc.gnu.org>
3021 * include/debug/array (array<>::swap): Fix noexcept qualificaton for
3024 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3026 * configure.host: Remove mep-* support.
3028 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3030 * configure: Regenerate.
3031 * configure.host: Remove support for knetbsd.
3032 * crossconfig.m4: Likewise.
3034 2016-06-20 François Dumont <fdumont@gcc.gnu.org>
3037 * include/tr1/hashtable_policy.h
3038 (_Prime_rehash_policy::_M_next_bkt): Make past-the-end iterator
3039 dereferenceable to avoid check on lower_bound result.
3040 (_Prime_rehash_policy::_M_bkt_for_elements): Call latter.
3041 (_Prime_rehash_policy::_M_need_rehash): Likewise.
3042 * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
3043 Always return a value greater than input value. Set _M_next_resize to
3044 max value when reaching highest prime number.
3045 * src/shared/hashtable-aux.cc (__prime_list): Add comment about sentinel
3047 * testsuite/23_containers/unordered_set/hash_policy/71181.cc: New.
3048 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc
3050 * testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc: New.
3051 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
3054 2016-06-17 Jonathan Wakely <jwakely@redhat.com>
3057 * include/bits/stl_algobase.h (lower_bound, lexicographical_compare):
3058 Remove irreflexive checks.
3059 * include/bits/stl_algo.h (lower_bound, upper_bound, equal_range,
3060 binary_search): Likewise.
3061 * testsuite/25_algorithms/equal_range/partitioned.cc: New test.
3062 * testsuite/25_algorithms/lexicographical_compare/71545.cc: New test.
3063 * testsuite/25_algorithms/lower_bound/partitioned.cc: New test.
3064 * testsuite/25_algorithms/upper_bound/partitioned.cc: New test.
3065 * testsuite/util/testsuite_iterators.h (__gnu_test::test_container):
3066 Add constructor from array.
3068 2016-06-16 François Dumont <fdumont@gcc.gnu.org>
3070 * include/debug/debug.h
3071 (__glibcxx_requires_non_empty_range, __glibcxx_requires_nonempty)
3072 (__glibcxx_requires_subscript): Move...
3073 * include/debug/assertions.h: ...here and add __builtin_expect.
3074 (_GLIBCXX_DEBUG_ONLY): Remove ; value.
3075 * include/bits/stl_deque.h
3076 (std::deque<>::operator[]): Add __glibcxx_requires_subscript check.
3077 (std::deque<>::front()): Add __glibcxx_requires_nonempty check.
3078 (std::deque<>::back()): Likewise.
3079 (std::deque<>::pop_front()): Likewise.
3080 (std::deque<>::pop_back()): Likewise.
3081 (std::deque<>::swap(deque&)): Add allocator check.
3082 * include/bits/stl_vector.h
3083 (std::vector<>::operator[]): Add __glibcxx_requires_subscript check.
3084 (std::vector<>::front()): Add __glibcxx_requires_nonempty check.
3085 (std::vector<>::back()): Likewise.
3086 (std::vector<>::pop_back()): Likewise.
3087 (std::vector<>::swap(vector&)): Add allocator check.
3089 2016-06-16 Daniel Kruegler <daniel.kruegler@gmail.com>
3091 Provide swappable traits (p0185r1)
3092 * include/std/type_traits (is_swappable, is_nothrow_swappable,
3093 is_swappable_with, is_nothrow_swappable_with, is_swappable_v,
3094 is_nothrow_swappable_v, is_swappable_with_v,
3095 is_nothrow_swappable_with_v): New.
3096 * include/bits/stl_pair.h: Use it as per p0185r1.
3097 * include/bits/stl_queue.h: Likewise.
3098 * include/bits/stl_stack.h: Likewise.
3099 * include/bits/unique_ptr.h: Likewise.
3100 * include/std/tuple: Likewise.
3101 * include/std/array: Likewise. Fix zero-size member swap.
3102 * include/bits/hashtable.h: Use __and_.
3103 * testsuite/20_util/is_nothrow_swappable/requirements/
3104 explicit_instantiation.cc: Change test options to std=gnu++17.
3105 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
3107 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
3108 * testsuite/20_util/is_swappable/requirements/
3109 explicit_instantiation.cc: Likewise.
3110 * testsuite/20_util/is_swappable/requirements/typedefs.cc: Likewise.
3111 * testsuite/20_util/is_swappable/value.cc: Likewise.
3112 * testsuite/20_util/is_nothrow_swappable/requirements/
3113 explicit_instantiation_ext.cc: New.
3114 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs_ext.cc:
3116 * testsuite/20_util/is_nothrow_swappable/value.h: New.
3117 * testsuite/20_util/is_nothrow_swappable/value_ext.cc: New.
3118 * testsuite/20_util/is_nothrow_swappable_with/requirements/
3119 explicit_instantiation.cc: New.
3120 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
3122 * testsuite/20_util/is_nothrow_swappable_with/value.cc: New.
3123 * testsuite/20_util/is_swappable/requirements/
3124 explicit_instantiation_ext.cc: New.
3125 * testsuite/20_util/is_swappable/requirements/typedefs_ext.cc: New.
3126 * testsuite/20_util/is_swappable/value.h: New.
3127 * testsuite/20_util/is_swappable/value_ext.cc: New.
3128 * testsuite/20_util/is_swappable_with/requirements/
3129 explicit_instantiation.cc: New.
3130 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc: New.
3131 * testsuite/20_util/is_swappable_with/value.cc: New.
3132 * testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
3133 dg-error line numbers.
3134 * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
3137 2016-06-16 Jonathan Wakely <jwakely@redhat.com>
3139 * include/std/array: Remove trailing whitespace.
3140 * include/std/atomic: Likewise.
3141 * include/std/bitset: Likewise.
3142 * include/std/chrono: Likewise.
3143 * include/std/complex: Likewise.
3144 * include/std/condition_variable: Likewise.
3145 * include/std/fstream: Likewise.
3146 * include/std/functional: Likewise.
3147 * include/std/future: Likewise.
3148 * include/std/iomanip: Likewise.
3149 * include/std/iosfwd: Likewise.
3150 * include/std/istream: Likewise.
3151 * include/std/limits: Likewise.
3152 * include/std/ratio: Likewise.
3153 * include/std/scoped_allocator: Likewise.
3154 * include/std/sstream: Likewise.
3155 * include/std/stdexcept: Likewise.
3156 * include/std/string: Likewise.
3157 * include/std/system_error: Likewise.
3158 * include/std/thread: Likewise.
3159 * include/std/tuple: Likewise.
3160 * include/std/type_traits: Likewise.
3161 * include/std/utility: Likewise.
3162 * include/std/valarray: Likewise.
3163 * include/std/vector: Likewise.
3165 * include/bits/stl_vector.h (vector::_S_insert_aux_assign): Define
3166 new overloaded functions.
3167 * include/bits/vector.tcc (vector::_M_insert_aux): Use new functions
3168 to avoid creating a redundant temporary.
3169 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc: New
3172 2016-06-15 François Dumont <fdumont@gcc.gnu.org>
3174 * include/bits/stl_deque.h
3175 (std::deque<>::operator=): Call _M_assign_aux.
3176 (std::deque<>::assign(initializer_list<>)): Likewise.
3177 (std::deque<>::resize(size_t, const value_type&)): Call _M_fill_insert.
3178 (std::deque<>::insert(const_iterator, initializer_list<>)):
3179 Call _M_range_insert_aux.
3180 (std::deque<>::_M_assign_aux<It>(It, It, std::forward_iterator_tag):
3182 (std::deque<>::_M_fill_assign): Call _M_fill_insert.
3183 (std::deque<>::_M_move_assign2): Call _M_assign_aux.
3184 * include/bits/deque.tcc
3185 (std::deque<>::operator=): Call _M_range_insert_aux.
3186 (std::deque<>::_M_assign_aux<It>(It, It, std::input_iterator_tag)):
3188 * include/bits/stl_vector.h
3189 (std::vector<>::operator=): Call _M_assign_aux.
3190 (std::vector<>::assign(initializer_list<>)): Likewise.
3191 (std::vector<>::resize(size_t, const value_type&)): Call _M_fill_insert.
3192 (std::vector<>::insert(const_iterator, initializer_list<>)):
3193 Call _M_range_insert.
3194 * include/bits/vector.tcc (std::vector<>::_M_assign_aux): Likewise.
3196 2016-06-07 François Dumont <fdumont@gcc.gnu.org>
3198 * include/std/tuple (_Head_base<>): Default specialization condition at
3201 2016-06-06 Ville Voutilainen <ville.voutilainen@gmail.com>
3203 Support allocators in tuples of zero size.
3204 * include/std/tuple (tuple<>::tuple(),
3205 tuple<>::tuple(allocator_arg_t, const _Alloc&),
3206 tuple<>::tuple(allocator_arg_t, const _Alloc&, const tuple&)): New.
3207 * testsuite/20_util/tuple/cons/allocators.cc: Adjust.
3209 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
3212 * src/filesystem/ops.cc (permissions(const path&, perms, error_code&)):
3213 Add or remove permissions according to perms argument.
3214 * testsuite/experimental/filesystem/operations/permissions.cc: New
3217 2016-06-05 Ville Voutilainen <ville.voutilainen@gmail.com>
3219 Protect allocator-overloads of tuple-from-tuple constructors
3220 from cases that would create dangling references.
3221 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
3222 const tuple<_UElements...>&), tuple(allocator_arg_t, const _Alloc&,
3223 tuple<_UElements...>&&)): Add a check for _NonNestedTuple.
3224 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Adjust.
3226 2016-05-29 Gerald Pfeifer <gerald@pfeifer.com>
3228 * doc/xml/manual/backwards_compatibility.xml: Adjust
3229 lists.debian.org link to https.
3230 * doc/html/manual/backwards.html: Regenerate.
3232 2016-05-27 Jonathan Wakely <jwakely@redhat.com>
3234 * doc/xml/manual/abi.xml: Adjust URL to use https.
3235 * doc/html/manual/*: Regenerate.
3237 2016-05-27 Ville Voutilainen <ville.voutilainen@gmail.com>
3240 * include/std/tuple (_TMC): Add a check for _NotSameTuple.
3241 * include/std/tuple (tuple(_UElements&&...)): Remove the separate
3242 check for _NotSameTuple.
3243 * include/std/tuple (_TMCT): New.
3244 * include/std/tuple (tuple(const tuple<_UElements...>&)): Use it.
3245 * include/std/tuple (tuple(tuple<_UElements...>&&)): Likewise.
3246 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
3247 const tuple<_UElements...>&)): Likewise.
3248 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
3249 tuple<_UElements...>&&)): Likewise.
3250 * testsuite/20_util/tuple/cons/66338.cc: New.
3252 2016-05-25 Jonathan Wakely <jwakely@redhat.com>
3254 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Fix test for sendfile.
3255 * configure: Regenerate.
3256 * config.h.in: Regenerate.
3258 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): Remove it.
3259 * include/bits/hashtable_policy.h (_Power2_rehash_policy::_M_next_bkt):
3260 Remove const qualification on function. Replace
3261 _GLIBCXX14_USE_CONSTEXPR on automatic variables with const.
3262 (_Power2_rehash_policy::_M_need_rehash): Remove const qualification.
3263 (_Power2_rehash_policy::_M_next_bkt): Remove mutable specifier.
3265 2016-05-24 François Dumont <fdumont@gcc.gnu.org>
3267 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): New.
3268 * include/bits/hashtable_policy.h
3269 (_Prime_rehash_policy::__has_load_factor): New. Mark rehash policy
3270 having load factor management.
3271 (_Mask_range_hashing): New.
3273 (_Power2_rehash_policy): New.
3274 (_Inserts<>): Remove last template parameter, _Unique_keys, so that
3275 partial specializations only depend on whether iterators are constant
3277 * testsuite/23_containers/unordered_set/hash_policy/26132.cc: Adapt to
3278 test new hash policy.
3279 * testsuite/23_containers/unordered_set/hash_policy/load_factor.cc:
3281 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
3283 * testsuite/23_containers/unordered_set/insert/hash_policy.cc:
3285 * testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
3287 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc:
3289 * testsuite/performance/23_containers/insert/54075.cc: Add benchmark
3290 using the new hash policy.
3291 * testsuite/performance/23_containers/insert_erase/41975.cc: Likewise.
3293 2016-05-24 Jonathan Wakely <jwakely@redhat.com>
3295 * include/bits/stl_queue.h (priority_queue::value_compare): Define.
3297 2016-05-23 François Dumont <fdumont@gcc.gnu.org>
3299 * include/debug/safe_iterator.h
3300 (_Safe_iterator<>::operator->()): Implement using underlying iterator
3302 * include/debug/safe_local_iterator.h
3303 (_Safe_local_iterator<>::operator->()): Likewise.
3305 2016-05-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
3307 * testsuite/experimental/memory_resource/1.cc: Add required argument
3308 to dg-require-atomic-builtins.
3310 2016-05-13 Jonathan Wakely <jwakely@redhat.com>
3313 * include/debug/bitset: Add #pragma GCC system_header.
3314 * include/debug/deque: Likewise.
3315 * include/debug/list: Likewise.
3316 * include/debug/map: Likewise.
3317 * include/debug/set: Likewise.
3318 * include/debug/string: Likewise.
3319 * include/debug/unordered_map: Likewise.
3320 * include/debug/unordered_set: Likewise.
3321 * include/debug/vector: Likewise.
3322 * include/debug/functions.h: Adjust whitespace.
3324 2016-05-12 Jonathan Wakely <jwakely@redhat.com>
3327 * testsuite/experimental/memory_resource/1.cc: Require atomics.
3329 2016-05-11 Jonathan Wakely <jwakely@redhat.com>
3332 * src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_DUAL_ABI]: Don't define
3333 exception constructors with __sso_string parameters.
3335 2016-05-10 Jonathan Wakely <jwakely@redhat.com>
3337 * include/experimental/bits/fs_dir.h (begin, end): Add noexcept.
3338 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
3339 Test begin and end functions.
3340 * testsuite/experimental/filesystem/iterators/
3341 recursive_directory_iterator.cc: Likewise.
3344 * src/filesystem/ops.cc (do_copy_file): Fix backwards conditions.
3345 * testsuite/experimental/filesystem/operations/copy_file.cc: New test.
3347 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
3348 Overload operator* to move from rvalues.
3351 * src/filesystem/ops.cc (create_dir): Handle EEXIST from mkdir.
3352 * testsuite/experimental/filesystem/operations/create_directory.cc:
3356 * src/filesystem/ops.cc (canonical(const path&, const path&)): Add
3357 base path to exception.
3358 * testsuite/experimental/filesystem/operations/canonical.cc: Test
3359 paths contained in exception.
3361 * testsuite/experimental/type_erased_allocator/2.cc: Remove unused
3365 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
3367 (directory_iterator::operator++(int)): Return proxy.
3368 (recursive_directory_iterator::operator++(int)): Likewise.
3369 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
3370 Test post-increment.
3371 * testsuite/experimental/filesystem/iterators/
3372 recursive_directory_iterator.cc: Likewise.
3374 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
3377 * testsuite/experimental/filesystem/iterators/
3378 recursive_directory_iterator.cc: Fix test02 to not call member
3379 functions on invalid iterator, and use VERIFY not assert.
3381 2016-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
3383 Avoid endless run-time recursion for copying single-element
3384 tuples where the element type is by-value constructible
3386 * include/std/tuple (_NotSameTuple): New.
3387 * include/std/tuple (tuple(_UElements&&...): Use it.
3388 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc: New.
3390 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
3393 * include/experimental/bits/fs_dir.h (recursive_directory_iterator):
3394 Initialize scalar member variables in default constructor.
3395 * testsuite/experimental/filesystem/iterators/
3396 recursive_directory_iterator.cc: Test default construction.
3398 2016-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3400 * testsuite/lib/libstdc++.exp (libstdc++_init): Enable on *-*-solaris*.
3402 2016-05-05 Jonathan Wakely <jwakely@redhat.com>
3404 * testsuite/experimental/filesystem/path/native/string.cc: Add
3405 dg-require-filesystem-ts directive.
3407 2016-05-04 Jonathan Wakely <jwakely@redhat.com>
3410 * include/experimental/memory_resource
3411 (__resource_adaptor_imp::do_allocate): Do not default-construct
3413 (__resource_adaptor_imp::do_deallocate): Likewise. Use
3414 allocator_traits to get pointer type.
3415 (__null_memory_resource::do_allocate): Remove unused parameters.
3416 (__null_memory_resource::do_deallocate): Likewise.
3417 (__null_memory_resource::do_is_equal): Likewise. Add return statement.
3418 * testsuite/experimental/type_erased_allocator/1.cc: Combine with ...
3419 * testsuite/experimental/type_erased_allocator/1_neg.cc: This, and
3421 * testsuite/experimental/memory_resource/1.cc: Here.
3422 * testsuite/experimental/memory_resource/null_memory_resource.cc: New.
3423 * testsuite/experimental/memory_resource/resource_adaptor.cc: New.
3425 2016-04-29 Chris Gregory <czipperz@gmail.com>
3427 * config/*: Remove trailing whitespace.
3429 * testsuite/tr1/*: Likewise.
3430 * testsuite/util/*: Likewise.
3432 2016-04-28 Jonathan Wakely <jwakely@redhat.com>
3435 * include/bits/basic_ios.tcc (basic_ios::_M_cache_locale): Use
3437 * include/bits/stream_iterator.h (istream_iterator, ostream_iterator):
3439 * include/std/atomic (atomic<_Tp>): Likewise.
3440 * include/std/shared_mutex (shared_lock): Likewise.
3441 * testsuite/24_iterators/istream_iterator/70766.cc: New test.
3442 * testsuite/24_iterators/ostream_iterator/70766.cc : New test.
3443 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
3444 * testsuite/29_atomics/atomic/70766.cc: New test.
3445 * testsuite/30_threads/shared_lock/70766.cc: New test.
3447 * include/bits/hashtable_policy.h (__detail::_Insert_base,
3448 __detail::_Insert): Improve comments.
3450 2016-04-27 Jonathan Wakely <jwakely@redhat.com>
3453 * include/std/limits: Update comments about DRs.
3454 (numeric_limits<const _Tp>, numeric_limits<volatile _Tp>,
3455 numeric_limits<const volatile _Tp>): Define unconditionally.
3457 2016-04-24 Jonathan Wakely <jwakely@redhat.com>
3460 * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path): Use
3461 static counter to return a different path on every call.
3463 2016-04-22 Tim Shen <timshen@google.com>
3466 * include/bits/regex_executor.tcc (_Executor<>::_M_word_boundary):
3467 Fix the match_not_bow and match_not_eow behavior.
3468 * testsuite/28_regex/regression.cc: Add testcase.
3470 2016-04-20 Jonathan Wakely <jwakely@redhat.com>
3473 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in,
3474 __codecvt_utf8_utf16_base<char16_t>::do_in): Fix mask operations.
3476 2016-04-19 Jonathan Wakely <jwakely@redhat.com>
3479 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in):
3480 Override endianness bit in mode.
3481 * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: New test.
3482 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc: Test
3483 that little_endian mode is ignored.
3484 * testsuite/experimental/filesystem/path/native/string.cc: New test.
3487 * src/filesystem/ops.cc (close_fd): New function.
3488 (do_copy_file): Set permissions before copying file contents. Check
3489 result of closing file descriptors. Don't copy streambuf when file
3491 (copy(const path&, const path&, copy_options, error_code&)): Use
3492 lstat for source file when copy_symlinks is set.
3493 * testsuite/experimental/filesystem/operations/copy.cc: Test copy().
3495 * include/experimental/bits/fs_fwd.h (operator&, operator|, operator^,
3496 operator~ operator&=, operator|=, operator^=): Add noexcept to
3497 overloaded operators for copy_options, perms and directory_options.
3498 * src/filesystem/ops.cc (make_file_type, make_file_status,
3499 is_not_found_errno, file_time): Add noexcept.
3501 2016-04-19 Edward Smith-Rowland <3dw4rd@verizon.net>
3503 * include/bits/c++14_warning.h: Do not refer C++14 as experimental.
3505 2016-04-18 Jonathan Wakely <jwakely@redhat.com>
3508 * include/bits/random.h: Reword static assertion messages to state
3509 positive conditions.
3510 * include/bits/random.tcc: Likewise.
3511 * include/bits/uniform_int_dist.h: Likewise.
3512 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3515 * include/std/function (_Bind, _Bind_result): Remove unused typedefs.
3517 * config/cpu/sh/atomicity.h: Fix typo in comment.
3520 * include/std/thread (operator<, operator==): Move definitions to
3522 * testsuite/30_threads/thread/id/70294.cc: New test.
3524 * testsuite/18_support/bad_exception/23591_thread-1.c: Add
3525 -Wno-pedantic to dg-options.
3526 * testsuite/20_util/align/2.cc: Use type as operand of alignof.
3527 * testsuite/20_util/is_floating_point/value.cc: Add -Wno-pedantic
3529 * testsuite/20_util/specialized_algorithms/uninitialized_fill/32158.cc:
3530 Remove extra semi-colon.
3531 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
3532 Always supply second argument to static_assert.
3533 * testsuite/25_algorithms/lower_bound/no_operator_ne.cc: Remove extra
3535 * testsuite/26_numerics/complex/c99.cc: Add -Wno-pedantic to
3537 * testsuite/26_numerics/complex/literals/values.cc: Likewise.
3538 * testsuite/29_atomics/atomic/60695.cc: Likewise.
3539 * testsuite/29_atomics/atomic/62259.cc: use __alignof__ instead of
3540 alignof when operand is an object not a type.
3541 * testsuite/decimal/ctor.cc: Add -Wno-pedantic to dg-options.
3542 * testsuite/decimal/make-decimal.cc: Likewise.
3543 * testsuite/experimental/type_traits/value.cc: Always supply second
3544 argument to static_assert.
3545 * testsuite/util/testsuite_common_types.h: Use __extension__ for
3548 * testsuite/experimental/type_erased_allocator/1.cc: Don't include
3550 * testsuite/experimental/type_erased_allocator/1_neg.cc: Likewise.
3551 * testsuite/experimental/type_erased_allocator/2.cc: Likewise.
3552 * testsuite/experimental/type_erased_allocator/uses_allocator.cc:
3553 Likewise. Add licence and change to compile-only test.
3555 * include/bits/locale_facets.h (ctype::do_narrow): Add attribute to
3557 * include/bits/regex_automaton.h (_NFA::_M_insert_alt): Likewise.
3559 * include/ext/string_conversions.h (__stoa): Avoid -Wsign-compare
3562 2016-04-17 Edward Smith-Rowland <3dw4rd@verizon.net>
3564 * include/bits/specfun.h: Trivial comment misspelling.
3566 2016-04-14 Jason Merrill <jason@redhat.com>
3568 Revert Jonathan's empty ABI change from yesterday.
3570 2016-04-13 Martin Sebor <msebor@redhat.com>
3573 * testsuite/25_algorithms/rotate/moveable2.cc: Make sure VLA
3574 upper bound is positive.
3576 2016-04-13 Jonathan Wakely <jwakely@redhat.com>
3578 * include/bits/c++config (_GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES,
3579 _GLIBCXX_END_NAMESPACE_EMPTY_TYPES, _GLIBCXX_ABI_TAG_EMPTY): Define.
3580 * include/bits/hashtable.h (_Hashtable::_M_emplace): Change signatures
3581 of functions taking empty structs by value. Add a template parameter
3582 to overloads without hints. Rename overloads with hints to
3584 (_Hashtable::_M_erase(true_type, const_iterator),
3585 _Hashtable::_M_erase(false_type, const_iterator)): Change signatures
3586 by reordering parameters.
3587 * include/bits/hashtable_policy.h (_Insert::insert): Adjust to call
3588 _M_emplace_hint instead of _M_emplace.
3589 * include/bits/shared_ptr.h (shared_ptr(_Tp1*, _Deleter, _Alloc),
3590 shared_ptr(nullptr_t, _Deleter, _Alloc)): Use _GLIBCXX_ABI_TAG_EMPTY.
3591 * include/bits/shared_ptr_base.h (_Sp_counted_deleter, __shared_count,
3592 __shared_ptr): Likewise.
3593 * include/bits/stl_algo.h (replace_if): Likewise.
3594 * include/bits/stl_pair.h (piecewise_construct_t,
3595 piecewise_construct): Use _GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES.
3596 * include/bits/uses_allocator.h (allocator_arg_t, allocator_arg,
3597 __uses_alloc0): Likewise.
3598 * include/ext/pb_ds/assoc_container.hpp (basic_hash_table): Likewise.
3599 * testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error.
3600 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
3601 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
3602 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
3603 * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
3604 * testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.
3606 2016-04-12 Edward Smith-Rowland <3dw4rd@verizon.net>
3608 Document C++17/TR29124 C++ Special Math Functions.
3609 * include/bits/specfun.h: Add Doxygen markup.
3611 2016-04-07 Jonathan Wakely <jwakely@redhat.com>
3613 * testsuite/30_threads/thread/70503.cc: Adjust from xfail to pass.
3615 2016-04-06 Eric Botcazou <ebotcazou@adacore.com>
3617 * src/Makefile.am (libstdc++-symbols.ver): Remove useless /dev/null.
3618 * src/Makefile.in: Regenerate.
3620 2016-04-05 Jonathan Wakely <jwakely@redhat.com>
3623 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Don't test
3624 __atomic_fetch_add for bool.
3625 * configure: Regenerate.
3627 * testsuite/30_threads/thread/70503.cc: Require -static to work.
3630 * src/c++11/thread.cc (execute_native_thread_routine,
3631 execute_native_thread_routine_compat): Give internal linkage.
3632 * testsuite/30_threads/thread/70503.cc: New test.
3634 2016-04-05 Ville Voutilainen <ville.voutilainen@gmail.com>
3637 * include/bits/stl_pair.h (_ConstructiblePair,
3638 _ImplicitlyConvertiblePair, _MoveConstructiblePair,
3639 _ImplicitlyMoveConvertiblePair): Add shortcut conditions
3640 for same-type cases.
3641 * testsuite/20_util/pair/70437.cc: New.
3643 2016-03-24 Jonathan Wakely <jwakely@redhat.com>
3646 * config/abi/pre/gnu.ver: Add new symbol.
3647 * libsupc++/eh_alloc.cc (__gnu_cxx::__freeres): Define.
3648 * testsuite/18_support/free_eh_pool.cc: New test.
3650 2016-03-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
3652 * include/Makefile.am (install-freestanding-headers): Add
3653 concept_check.h and move.h to the installed headers.
3654 * include/Makefile.in: Regenerated.
3655 * include/bits/concept_check.h: Ignore _GLIBCXX_CONCEPT_CHECKS for
3656 freestanding implementations.
3657 * doc/xml/manual/using.xml (_GLIBCXX_CONCEPT_CHECKS): Mention
3658 that this macro has no effect for freestanding implementations.
3659 * doc/html/manual/using_macros.html: Likewise.
3661 2016-02-24 Jonathan Wakely <jwakely@redhat.com>
3664 * include/experimental/tuple (__apply_impl): Qualify get and forward.
3666 2016-02-23 Jonathan Wakely <jwakely@redhat.com>
3668 * doc/xml/manual/using.xml: Document __STDCPP_WANT_MATH_SPEC_FUNCS__.
3669 * doc/html/*: Regenerate.
3672 * include/tr1/cmath (acosh, asinh, atanh, cbrt, copysign, erf, erfc,
3673 exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma, llrint,
3674 llround, log1p, log2, logb, lrint, lround, nan, nearbyint, nextafter,
3675 nexttoward, remainder, remquo, rint, round, scalbln, scalbn, tgamma,
3676 trunc) [__cplusplus >= 201103L]: Import from namespace std.
3677 (fabs) [__cplusplus < 201103L]: Import from namespace std.
3678 * include/tr1/complex (acosh, asinh, atanh) [__cplusplus >= 201103L]:
3680 * testsuite/tr1/headers/c++200x/complex.cc: Add std::fabs to global
3681 namespace before including TR1 headers.
3682 * testsuite/tr1/headers/c++200x/math.cc: New test.
3684 2016-02-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
3687 * include/c_global/cstdarg: Undefine __need___va_list.
3688 * include/c_global/cstddef: Undefine all kinds of __need_*.
3690 2016-02-16 Tim Shen <timshen@google.com>
3693 * include/bits/regex_scanner.h: Add different special character
3694 sets for grep and egrep regex.
3695 * include/bits/regex_scanner.tcc: Use _M_spec_char more uniformly.
3696 * testsuite/28_regex/regression.cc: Add new testcase.
3698 2016-02-08 Jonathan Wakely <jwakely@redhat.com>
3700 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Remove accidentally
3701 added 'constexpr' in previous commit.
3702 * configure: Regenerate.
3705 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Enable isinf and isnan
3706 checks for all targets except *-*-solaris2.* and ensure we find the
3707 libc math.h header not our own.
3708 * configure: Regenerate.
3710 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
3712 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt (FUNC):
3713 New file. Copied over from s390-linux-gnu.
3715 2016-02-04 Jonathan Wakely <jwakely@redhat.com>
3718 * acinclude.m4 (GLIBCXX_ENABLE_C99): Check C99 stdlib.h functions
3719 with -std=c++98 and define _GLIBCXX98_USE_C99_STDLIB.
3720 * config.h.in: Regenerate.
3721 * configure: Regenerate.
3722 * testsuite/21_strings/c_strings/char/69626.cc: New.
3724 * doc/html/index.html: Regenerate.
3726 * doc/xml/manual/containers.xml: Add cross-reference to Dual ABI.
3727 * doc/xml/manual/spine.xml: Update copyright years and author blurb.
3728 * doc/html/*: Regenerate.
3730 2016-02-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
3733 * include/c_compatibility/math.h: Move header guards.
3734 * include/c_compatibility/stdlib.h: Likewise.
3736 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
3739 * config/os/newlib/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3741 2016-01-28 John David Anglin <danglin@gcc.gnu.org>
3744 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Split check for obsolete
3745 isinf and isnan functions into two independent checks. Check on hpux.
3746 * config.h.in: Regenerate.
3747 * configure: Regenerate.
3748 * include/c_global/cmath (isinf(double), isnan(double)): Use
3749 _GLIBCXX_HAVE_OBSOLETE_ISINF and _GLIBCXX_HAVE_OBSOLETE_ISNAN,
3752 2016-01-27 Jakub Jelinek <jakub@redhat.com>
3754 * testsuite/libstdc++-prettyprinters/whatis.cc: Include <random>.
3756 2016-01-27 Jonathan Wakely <jwakely@redhat.com>
3759 * testsuite/ext/special_functions/hyperg/check_value.cc: Use
3760 -ffp-contract=off, and -ffloat-store to disable excess precision.
3761 * testsuite/special_functions/02_assoc_legendre/check_value.cc: Use
3764 2016-01-26 Jonathan Wakely <jwakely@redhat.com>
3767 * include/bits/stl_algobase.h (__copy_move<_IsMove, true,
3768 random_access_iterator_tag>): Check is_move_assignable when moving.
3769 (__copy_move_backwards<_IsMove, true, random_access_iterator_tag>):
3771 * testsuite/25_algorithms/copy/move_iterators/69478.cc: New.
3772 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc: New.
3773 * testsuite/25_algorithms/move/69478.cc: New.
3774 * testsuite/25_algorithms/move_backward/69478.cc: new.
3776 2016-01-26 Andris Pavenis <andris.pavenis@iki.fi>
3778 * include/c_compatibility/stdlib.h: Include wide character related
3779 definitions only when they are available in cstdlib.
3781 2016-01-25 Jonathan Wakely <jwakely@redhat.com>
3784 * include/Makefile.am: Add new header.
3785 * include/Makefile.in: Regenerate.
3786 * include/bits/random.h (uniform_int_distribution): Move to
3787 bits/uniform_int_dist.h.
3788 * include/bits/random.tcc (uniform_int_distribution::operator(),
3789 uniform_int_distribution::__generate_impl): Likewise.
3790 * include/bits/uniform_int_dist.h: New header.
3791 * include/bits/stl_algo.h [__cplusplus >= 201103L]: Include
3792 <bits/uniform_int_dist.h> instead of <random>.
3793 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
3794 move_iterators/1.cc: Include correct header for uninitialized_copy.
3795 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
3796 move_iterators/1.cc: Likewise.
3797 * testsuite/25_algorithms/nth_element/58800.cc: Include correct
3799 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lines.
3801 2016-01-23 John David Anglin <danglin@gcc.gnu.org>
3804 * config/os/hpux/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3806 2016-01-22 Edward Smith-Rowland <3dw4rd@verizon.net>
3808 TR29124 C++ Special Math - <math.h> pulls funcs into global namespace.
3809 * include/c_compatibility/math.h: Import the TR29124 functions
3810 into the global namespace.
3811 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: Remove
3812 xfail and make compile-only.
3813 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: Ditto.
3814 * testsuite/special_functions/03_beta/compile_2.cc: Ditto.
3815 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Ditto.
3816 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Ditto.
3817 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Ditto.
3818 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Ditto.
3819 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Ditto.
3820 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Ditto.
3821 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Ditto.
3822 * testsuite/special_functions/11_ellint_1/compile_2.cc: Ditto.
3823 * testsuite/special_functions/12_ellint_2/compile_2.cc: Ditto.
3824 * testsuite/special_functions/13_ellint_3/compile_2.cc: Ditto.
3825 * testsuite/special_functions/14_expint/compile_2.cc: Ditto.
3826 * testsuite/special_functions/15_hermite/compile_2.cc: Ditto.
3827 * testsuite/special_functions/16_laguerre/compile_2.cc: Ditto.
3828 * testsuite/special_functions/17_legendre/compile_2.cc: Ditto.
3829 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Ditto.
3830 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Ditto.
3831 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Ditto.
3832 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Ditto.
3834 2016-01-22 Jonathan Wakely <jwakely@redhat.com>
3837 * include/bits/valarray_before.h (__fun, __fun_with_valarray): Only
3838 define result_type for types which can be safely used with valarrays.
3839 * testsuite/26_numerics/valarray/69116.cc: New.
3842 * config/os/gnu-linux/os_defines.h: Define
3843 _GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC.
3844 * include/c_global/cmath (isinf, isnan): Check it.
3845 * doc/xml/manual/internals.xml: Document it.
3846 * doc/html/*: Regenerate.
3848 2016-01-21 Jonathan Wakely <jwakely@redhat.com>
3851 * include/bits/cpp_type_traits.h: Ensure C++ language linkage.
3852 * include/ext/type_traits.h: Likewise.
3853 * testsuite/17_intro/headers/c++2011/linkage.cc: Check autoconf macros
3854 for presence of C headers.
3855 * testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Adjust
3856 dg-error line number.
3857 * testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise.
3858 * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise.
3859 * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Likewise.
3861 2016-01-20 Torvald Riegel <triegel@redhat.com>
3864 * config/os/bsd/darwin/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3866 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
3869 * include/c_compatibility/math.h (acosh, asinh, atanh, acbrt,
3870 copysign, erf, erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb,
3871 lgamma, llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
3872 nextafter, nexttoward, remainder, remquo, rint, round, scalbln, scalbn,
3873 tgamma, trunc) [__cplusplus >= 201103L && _GLIBCXX_USE_C99_MATH_TR1]:
3874 Add using declarations.
3875 * testsuite/26_numerics/headers/cmath/60401.cc: New.
3878 * include/c_global/ccomplex: Ensure C++ language linkage.
3879 * include/c_global/cmath: Likewise.
3880 * include/c_global/cstdlib: Likewise.
3881 * include/c_global/ctgmath: Likewise.
3882 * testsuite/17_intro/headers/c++2011/linkage.cc: New.
3884 2016-01-19 Jonathan Wakely <jwakely@redhat.com>
3888 * include/Makefile.am: Use c_compatibility math.h and stdlib.h for
3889 --enable-cheaders=c_global configs.
3890 * include/Makefile.in: Regenerate.
3891 * include/c_compatibility/math.h: Remove obsolete _GLIBCXX_NAMESPACE_C
3892 test and allow inclusion from C files.
3893 * include/c_compatibility/stdlib.h: Likewise. Support freestanding.
3894 (at_quick_exit, quick_exit): Add using directives.
3895 * include/c_global/cmath: Use #include_next for math.h.
3896 * include/c_global/cstdlib: Use #include_next for stdlib.h.
3897 * testsuite/26_numerics/headers/cmath/14608.cc: New.
3898 * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
3899 Remove xfail for most targets.
3900 * testsuite/26_numerics/headers/cstdlib/60401.cc: New.
3902 2016-01-18 Torvald Riegel <triegel@redhat.com>
3904 * include/bits/c++config (_GLIBCXX_USE_WEAK_REF): New.
3905 (_GLIBCXX_TXN_SAFE, _GLIBCXX_TXN_SAFE_DYN): Use _GLIBCXX_USE_WEAK_REF
3906 and move after its definition.
3907 * config/os/aix/os_defines.h (_GLIBCXX_USE_WEAK_REF): Override.
3908 * src/c++11/cow-stdexcept.cc: Use _GLIBCXX_USE_WEAK_REF instead of
3909 __GXX_WEAK__, and only provide transactional clones if
3910 _GLIBCXX_USE_WEAK_REF is true. Don't provide stubs of libitm
3913 2016-01-18 Jonathan Wakely <jwakely@redhat.com>
3916 * testsuite/26_numerics/headers/cmath/60637.cc: Add test.
3919 * include/std/functional (_Function_base::_M_not_empty_function):
3920 Change overloads for pointers to take arguments by value.
3921 * testsuite/20_util/function/cons/57465.cc: Add tests for
3922 pointer-to-member cases.
3925 * src/c++11/cow-stdexcept.cc (_txnal_cow_string_C1_for_exceptions):
3926 Use macros for exception handling and fix unused parameter warning.
3928 2016-01-17 John David Anglin <danglin@gcc.gnu.org>
3931 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
3933 2016-01-17 Torvald Riegel <triegel@redhat.com>
3935 * src/c++11/cow-stdexcept.cc (txnal_read_ptr): Fix static_assert.
3937 2016-01-16 H.J. Lu <hongjiu.lu@intel.com>
3939 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Add
3942 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
3945 * include/bits/uses_allocator.h (__uses_alloc<true, ...>): Add
3946 static assertion that type is constructible from the arguments.
3947 * testsuite/20_util/scoped_allocator/69293_neg.cc: New.
3948 * testsuite/20_util/uses_allocator/69293_neg.cc: New.
3949 * testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error.
3952 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
3953 and isnan on AIX. Quote variables.
3954 * configure: Regenerate.
3956 2016-01-15 Torvald Riegel <triegel@redhat.com>
3958 * include/bits/basic_string.h (basic_string): Declare friends.
3959 * include/bits/c++config (_GLIBCXX_TXN_SAFE,
3960 _GLIBCXX_TXN_SAFE_DYN, _GLIBCXX_USE_ALLOCATOR_NEW): New.
3961 * include/std/stdexcept (logic_error, domain_error, invalid_argument,
3962 length_error, out_of_range, runtime_error, range_error,
3963 underflow_error, overflow_error): Declare members as transaction-safe.
3964 (logic_error, runtime_error): Declare friend functions.
3965 * libsupc++/exception (exception, bad_exception): Declare members as
3967 * src/c++11/cow-stdexcept.cc: Define transactional clones for the
3968 transaction-safe members of exceptions and helper functions.
3969 * libsupc++/eh_exception.cc: Adjust and define transactional clones.
3970 * config/abi/pre/gnu.ver (GLIBCXX_3.4.22) Add transactional clones.
3971 (CXXABI_1.3.10): New.
3972 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): New.
3973 (GLIBCXX_ENABLE_ALLOCATOR): Set ENABLE_ALLOCATOR_NEW.
3974 * configure.ac: Call GLIBCXX_CHECK_SIZE_T_MANGLING.
3975 * include/Makefile.am: Write ENABLE_ALLOCATOR_NEW to c++config.h.
3976 * include/Makefile.in: Regenerate.
3977 * config.h.in: Regenerate.
3978 * configure: Regenerate.
3979 * testsuite/util/testsuite_abi.cc (check_version): Add CXXABI_1.3.10.
3981 2016-01-15 Steve Ellcey <sellcey@imgtec.com>
3983 * include/ext/random.tcc: Use __builtin_isfinite instead of
3986 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
3988 * include/bits/std_mutex.h: Fix Doxygen @file name.
3990 2016-01-14 Edward Smith-Rowland <3dw4rd@verizon.net>
3991 Jonathan Wakely <jwakely@redhat.com>
3992 Florian Goth <CaptainSifff@gmx.de>
3994 Implement TR29124 C++ special Math Functions.
3995 * include/Makefile.am: Add new headers.
3996 * include/Makefile.in: Regenerate.
3997 * include/bits/specfun.h: New.
3998 * include/c_global/cmath: Adjust for both tr1 and tr29124 maths.
3999 * include/tr1/bessel_function.tcc: Ditto.
4000 * include/tr1/beta_function.tcc: Ditto.
4001 * include/tr1/cmath: Ditto.
4002 * include/tr1/ell_integral.tcc: Ditto.
4003 * include/tr1/exp_integral.tcc: Ditto.
4004 * include/tr1/gamma.tcc: Ditto.
4005 * include/tr1/hypergeometric.tcc: Ditto.
4006 * include/tr1/legendre_function.tcc: Ditto.
4007 * include/tr1/modified_bessel_func.tcc: Ditto.
4008 * include/tr1/poly_hermite.tcc: Ditto.
4009 * include/tr1/poly_laguerre.tcc: Ditto.
4010 * include/tr1/riemann_zeta.tcc: Ditto.
4011 * include/tr1/special_function_util.h: Ditto.
4012 * testsuite/ext/special_functions/conf_hyperg: New.
4013 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: New.
4014 * testsuite/ext/special_functions/conf_hyperg/check_value.cc: New.
4015 * testsuite/ext/special_functions/conf_hyperg/compile.cc: New.
4016 * testsuite/ext/special_functions/hyperg: New.
4017 * testsuite/ext/special_functions/hyperg/check_nan.cc: New.
4018 * testsuite/ext/special_functions/hyperg/check_value.cc: New.
4019 * testsuite/ext/special_functions/hyperg/compile.cc: New.
4020 * testsuite/libstdc++-dg/conformance.exp: Add special_functions directory.
4021 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc: New.
4022 * testsuite/special_functions/01_assoc_laguerre/check_value.cc: New.
4023 * testsuite/special_functions/01_assoc_laguerre/compile.cc: New.
4024 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: New.
4025 * testsuite/special_functions/02_assoc_legendre/check_nan.cc: New.
4026 * testsuite/special_functions/02_assoc_legendre/check_value.cc: New.
4027 * testsuite/special_functions/02_assoc_legendre/compile.cc: New.
4028 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: New.
4029 * testsuite/special_functions/03_beta/check_nan.cc: New.
4030 * testsuite/special_functions/03_beta/check_value.cc: New.
4031 * testsuite/special_functions/03_beta/compile.cc: New.
4032 * testsuite/special_functions/03_beta/compile_2.cc: New.
4033 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: New.
4034 * testsuite/special_functions/04_comp_ellint_1/check_value.cc: New.
4035 * testsuite/special_functions/04_comp_ellint_1/compile.cc: New.
4036 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: New.
4037 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: New.
4038 * testsuite/special_functions/05_comp_ellint_2/check_value.cc: New.
4039 * testsuite/special_functions/05_comp_ellint_2/compile.cc: New.
4040 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: New.
4041 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: New.
4042 * testsuite/special_functions/06_comp_ellint_3/check_value.cc: New.
4043 * testsuite/special_functions/06_comp_ellint_3/compile.cc: New.
4044 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: New.
4045 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: New.
4046 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc: New.
4047 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: New.
4048 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: New.
4049 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: New.
4050 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: New.
4051 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: New.
4052 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: New.
4053 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: New.
4054 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: New.
4055 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc: New.
4056 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: New.
4057 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: New.
4058 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: New.
4059 * testsuite/special_functions/10_cyl_neumann/check_value.cc: New.
4060 * testsuite/special_functions/10_cyl_neumann/compile.cc: New.
4061 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: New.
4062 * testsuite/special_functions/11_ellint_1/check_nan.cc: New.
4063 * testsuite/special_functions/11_ellint_1/check_value.cc: New.
4064 * testsuite/special_functions/11_ellint_1/compile.cc: New.
4065 * testsuite/special_functions/11_ellint_1/compile_2.cc: New.
4066 * testsuite/special_functions/12_ellint_2/check_nan.cc: New.
4067 * testsuite/special_functions/12_ellint_2/check_value.cc: New.
4068 * testsuite/special_functions/12_ellint_2/compile.cc: New.
4069 * testsuite/special_functions/12_ellint_2/compile_2.cc: New.
4070 * testsuite/special_functions/13_ellint_3/check_nan.cc: New.
4071 * testsuite/special_functions/13_ellint_3/check_value.cc: New.
4072 * testsuite/special_functions/13_ellint_3/compile.cc: New.
4073 * testsuite/special_functions/13_ellint_3/compile_2.cc: New.
4074 * testsuite/special_functions/14_expint/check_nan.cc: New.
4075 * testsuite/special_functions/14_expint/check_value.cc: New.
4076 * testsuite/special_functions/14_expint/compile.cc: New.
4077 * testsuite/special_functions/14_expint/compile_2.cc: New.
4078 * testsuite/special_functions/15_hermite/check_nan.cc: New.
4079 * testsuite/special_functions/15_hermite/check_value.cc: New.
4080 * testsuite/special_functions/15_hermite/compile.cc: New.
4081 * testsuite/special_functions/15_hermite/compile_2.cc: New.
4082 * testsuite/special_functions/16_laguerre/check_nan.cc: New.
4083 * testsuite/special_functions/16_laguerre/check_value.cc: New.
4084 * testsuite/special_functions/16_laguerre/compile.cc: New.
4085 * testsuite/special_functions/16_laguerre/compile_2.cc: New.
4086 * testsuite/special_functions/17_legendre/check_nan.cc: New.
4087 * testsuite/special_functions/17_legendre/check_value.cc: New.
4088 * testsuite/special_functions/17_legendre/compile.cc: New.
4089 * testsuite/special_functions/17_legendre/compile_2.cc: New.
4090 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: New.
4091 * testsuite/special_functions/18_riemann_zeta/check_value.cc: New.
4092 * testsuite/special_functions/18_riemann_zeta/compile.cc: New.
4093 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: New.
4094 * testsuite/special_functions/19_sph_bessel/check_nan.cc: New.
4095 * testsuite/special_functions/19_sph_bessel/check_value.cc: New.
4096 * testsuite/special_functions/19_sph_bessel/compile.cc: New.
4097 * testsuite/special_functions/19_sph_bessel/compile_2.cc: New.
4098 * testsuite/special_functions/20_sph_legendre/check_nan.cc: New.
4099 * testsuite/special_functions/20_sph_legendre/check_value.cc: New.
4100 * testsuite/special_functions/20_sph_legendre/compile.cc: New.
4101 * testsuite/special_functions/20_sph_legendre/compile_2.cc: New.
4102 * testsuite/special_functions/21_sph_neumann/check_nan.cc: New.
4103 * testsuite/special_functions/21_sph_neumann/check_value.cc: New.
4104 * testsuite/special_functions/21_sph_neumann/compile.cc: New.
4105 * testsuite/special_functions/21_sph_neumann/compile_2.cc: New.
4106 * testsuite/util/specfun_testcase.h: New.
4107 * testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc: More testcases.
4108 * testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc: Ditto.
4109 * testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc: Ditto.
4110 * testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc: Ditto.
4111 * testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc: Ditto.
4112 * testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc: Ditto.
4113 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc: New.
4115 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
4118 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
4119 and isnan functions.
4120 * config.h.in: Regenerate.
4121 * configure: Regenerate.
4122 * include/c_global/cmath (isinf(double), isnan(double))
4123 [_GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN]: Import via using-directive.
4124 * testsuite/26_numerics/headers/cmath/48891.cc: New.
4126 2016-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4129 * configure.host (abi_baseline_pair): Use separate baseline for
4130 Solaris 11+ and Solaris 10 with gld.
4131 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: New file.
4132 * config/abi/post/solaris2.11/baseline_symbols.txt: New file.
4133 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: New file.
4135 2016-01-12 Daniel Kruegler <daniel.kruegler@gmail.com>
4138 * include/std/type_traits: Following N4511, reimplement __is_swappable
4139 and __is_nothrow_swappable. Move __is_swappable to namespace std,
4140 adjust callers. Use __is_nothrow_swappable in swap.
4141 * include/bits/move.h: Use __is_nothrow_swappable in swap.
4142 * testsuite/20_util/is_nothrow_swappable/value.cc: Extend; remove
4143 __is_swappable related tests.
4144 * testsuite/20_util/is_swappable/value.cc: New.
4145 * testsuite/20_util/is_swappable/requirements/
4146 explicit_instantiation.cc: New.
4147 * testsuite/20_util/is_swappable/requirements/typedefs.cc: New.
4148 * testsuite/25_algorithms/swap/68877.cc: New.
4150 2016-01-12 Jonathan Wakely <jwakely@redhat.com>
4152 * testsuite/20_util/function/68995.cc: Test reference_wrapper cases.
4156 * include/std/functional (function::_Invoke): Remove, use result_of.
4157 (function::_Callable): Replace alias template with class template
4158 and use partial specialization instead of _NotSelf alias template.
4159 (function(_Functor)): Add "not self" constraint so that _Callable is
4160 not used while type is incomplete.
4161 * testsuite/20_util/function/69222.cc: New.
4163 2016-01-11 Jonathan Wakely <jwakely@redhat.com>
4166 * include/bits/alloc_traits.h (allocator_traits<allocator<_Tp>>):
4167 Define partial specialization.
4168 * testsuite/20_util/shared_ptr/cons/58659.cc: Add construct and
4169 destroy members to std::allocator explicit specialization.
4171 2016-01-08 Jonathan Wakely <jwakely@redhat.com>
4173 * testsuite/26_numerics/headers/cmath/
4174 c99_classification_macros_c++.cc: Rename to ...
4175 * testsuite/26_numerics/headers/cmath/
4176 c99_classification_macros_c++98.cc: Here and add -std=gnu++98.
4177 * testsuite/26_numerics/headers/cmath/
4178 c99_classification_macros_c++0x.cc: Rename to ...
4179 * testsuite/26_numerics/headers/cmath/
4180 c99_classification_macros_c++11.cc: Here.
4183 * include/bits/uses_allocator.h: Add missing include.
4185 2016-01-07 Jonathan Wakely <jwakely@redhat.com>
4190 * include/bits/stl_iterator.h (back_insert_iterator,
4191 front_insert_iterator, insert_iterator): Use __addressof (LWG 2324).
4192 * include/bits/uses_allocator.h (__use_alloc): Use __addressof.
4193 * include/std/future (__future::base::_State_baseV2::__setter):
4195 * include/std/scoped_allocator (__outermost): Likewise.
4196 * testsuite/20_util/scoped_allocator/69114.cc: New.
4197 * testsuite/20_util/uses_allocator/69114.cc: New.
4198 * testsuite/30_threads/promise/69106.cc: New.
4200 2016-01-06 Jonathan Wakely <jwakely@redhat.com>
4203 * include/bits/basic_string.h (basic_string::_S_copy_chars<_Iterator>):
4204 Remove _GLIBCXX_NOEXCEPT.
4205 testsuite/21_strings/basic_string/cons/char/69092.cc: New.
4207 * include/Makefile.am: Adjust.
4208 * include/Makefile.in: Regenerate.
4209 * include/bits/mutex.h: Rename to bits/std_mutex.h.
4210 * include/std/condition_variable: Adjust include.
4211 * include/std/mutex: Likewise.
4213 2016-01-04 Jakub Jelinek <jakub@redhat.com>
4215 Update copyright years.
4217 Copyright (C) 2016 Free Software Foundation, Inc.
4219 Copying and distribution of this file, with or without modification,
4220 are permitted in any medium without royalty provided the copyright
4221 notice and this notice are preserved.