1 2016-10-12 Jonathan Wakely <jwakely@redhat.com>
3 * doc/xml/manual/intro.xml: Document LWG 2442 status.
4 * include/std/mutex [_GLIBCXX_HAVE_TLS] (__once_call_impl): Remove.
5 [_GLIBCXX_HAVE_TLS] (_Once_call): Declare primary template and define
6 partial specialization to unpack args and forward to std::invoke.
7 (call_once) [_GLIBCXX_HAVE_TLS]: Use forward_as_tuple and _Once_call
8 instead of __bind_simple and __once_call_impl.
9 (call_once) [!_GLIBCXX_HAVE_TLS]: Use __invoke instead of
11 * testsuite/30_threads/call_once/dr2442.cc: New test.
13 2016-10-11 Jonathan Wakely <jwakely@redhat.com>
15 * include/bits/stl_list.h (assign(initializer_list<value_type>)): Call
16 _M_assign_dispatch directly with correct tag.
18 * doc/xml/manual/intro.xml: Document LWG 2484 status.
19 * libsupc++/nested_exception.h (_Throw_with_nested_impl)
20 (_Throw_with_nested_helper): Remove.
21 (__throw_with_nested_impl): New overloaded functions to implement
22 throw_with_nested logic.
23 (throw_with_nested): Call __throw_with_nested_impl.
24 (_Rethrow_if_nested_impl): Remove
25 (__rethrow_if_nested_impl): New overloaded functions to implement
26 rethrow_if_nested logic.
27 (rethrow_if_nested): Call __rethrow_if_nested_impl.
28 * testsuite/18_support/nested_exception/rethrow_if_nested.cc: Test
29 problem cases from LWG 2484.
31 * python/libstdcxx/v6/printers.py (build_libstdcxx_dictionary):
32 Register printer for std::__cxx11::list.
33 * python/libstdcxx/v6/xmethods.py (ListMethodsMatcher.match): Match
34 std::__cxx11::list as well as std::list.
36 * include/experimental/string_view (basic_string_view::_S_compare):
37 Remove redundant const from return type.
38 * include/std/string_view (basic_string_view:_S_compare): Likewise.
40 * include/bits/std_mutex.h (mutex::native_handle)
41 (lock_guard(mutex_type&, adopt_lock_t)
42 (unique_lock(mutex_type&, adopt_lock_t): Add noexcept.
43 * include/std/mutex (recursive_mutex, timed_mutex)
44 (recursive_timed_mutex): Likewise.
46 2016-10-10 Jonathan Wakely <jwakely@redhat.com>
48 * doc/xml/manual/appendix_contributing.xml (contrib.organization):
49 Replace <literallayout> with nested <variablelist> elements. Update
50 some more outdated text.
51 * doc/html/*: Regenerate.
53 2016-10-10 Ville Voutilainen <ville.voutilainen@gmail.com>
55 Make any's copy assignment operator exception-safe,
56 don't copy the underlying value when any is moved,
57 make in_place constructors explicit.
58 * include/std/any (any(in_place_type_t<_ValueType>, _Args&&...)):
60 (any(in_place_type_t<_ValueType>, initializer_list<_Up>, _Args&&...)):
62 (operator=(const any&)): Make strongly exception-safe.
63 (operator=(any&&)): reset() unconditionally in the case where
65 (operator=(_ValueType&&)): Indent the return type.
66 (_Manager_internal<_Tp>::_S_manage): Move in _Op_xfer, don't copy.
67 * testsuite/20_util/any/assign/2.cc: Adjust.
68 * testsuite/20_util/any/assign/exception.cc: New.
69 * testsuite/20_util/any/cons/2.cc: Adjust.
70 * testsuite/20_util/any/cons/explicit.cc: New.
71 * testsuite/20_util/any/misc/any_cast_neg.cc: Ajust.
73 2016-10-10 Jonathan Wakely <jwakely@redhat.com>
75 * doc/xml/manual/appendix_contributing.xml (contrib.organization):
76 Describe other subdirectories and add markup. Remove outdated
77 reference to check-script target.
78 * doc/html/*: Regenerate.
80 * doc/xml/manual/status_cxx2011.xml: Correct C++11 status.
82 * libsupc++/eh_ptr.cc (exception_ptr): Replace _GLIBCXX_USE_NOEXCEPT
85 * include/std/functional (_Bind_result::__enable_if_void): Use alias
86 template instead of class template.
87 (_Bind_result::__disable_if_void): Likewise.
88 (_Bind_result::__call): Adjust uses of __enable_if_void and
91 * doc/xml/manual/intro.xml: Document DR 2296 status.
92 * doc/xml/manual/status_cxx2017.xml: Update status.
93 * include/bits/move.h (__addressof): Add _GLIBCXX_CONSTEXPR and
94 call __builtin_addressof.
95 (addressof): Add _GLIBCXX17_CONSTEXPR.
96 * testsuite/20_util/addressof/requirements/constexpr.cc: New test.
97 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error lineno.
98 * testsuite/20_util/forward/f_neg.cc: Likewise.
100 * include/bits/allocator.h (allocator<T>::is_always_equal): Define.
101 * testsuite/20_util/allocator/requirements/typedefs.cc: Test for
103 * testsuite/util/testsuite_allocator.h
104 (uneq_allocator::is_always_equal): Define as false_type.
106 * include/experimental/numeric (gcd, lcm): Make bool arguments
108 * include/std/numeric (gcd, lcm): Likewise.
109 * testsuite/26_numerics/gcd/gcd_neg.cc: New test.
110 * testsuite/26_numerics/lcm/lcm_neg.cc: New test.
112 * include/bits/shared_ptr.h (enable_shared_from_this::weak_from_this):
114 * include/bits/shared_ptr_base.h
115 (__enable_shared_from_this::weak_from_this): Likewise.
116 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
117 Test exception-specification of weak_from_this.
119 2016-10-07 Jonathan Wakely <jwakely@redhat.com>
121 * doc/xml/manual/status_cxx1998.xml: Improve documentation of
122 implementation-defined properties.
123 * doc/xml/manual/status_cxx2011.xml: Likewise.
124 * doc/xml/manual/status_cxx2017.xml: Likewise.
126 * doc/xml/manual/status_cxx2017.xml: Update status.
127 * include/std/type_traits (has_unique_object_representations): Define.
128 * testsuite/20_util/has_unique_object_representations/value.cc: New.
129 * testsuite/20_util/has_unique_object_representations/requirements/
130 explicit_instantiation.cc: New.
131 * testsuite/20_util/has_unique_object_representations/requirements/
134 2016-10-06 Jonathan Wakely <jwakely@redhat.com>
136 * doc/xml/manual/status_cxx2011.xml: Update status.
137 * include/std/scoped_allocator (__outer_allocator_t, __outermost_type):
138 New helpers for recursive OUTERMOST.
139 (__outermost): Use __outermost_type::_S_outermost.
140 (__do_outermost, scoped_allocator_adaptor::__outermost_type): Remove.
141 (scoped_allocator_adaptor::__outermost_alloc_traits): Use new
142 __outermost_type helper.
143 (scoped_allocator_adaptor::_Constructible): New alias template.
144 (scoped_allocator_adaptor::scoped_allocator_adaptor<_Outer2>):
145 Constrain template constructors.
146 * testsuite/20_util/scoped_allocator/3.cc: New test.
147 * testsuite/20_util/scoped_allocator/outermost.cc: New test.
149 2016-10-05 Jonathan Wakely <jwakely@redhat.com>
152 * testsuite/20_util/not_fn/1.cc: Fix test.
153 * testsuite/experimental/functional/not_fn.cc: Likewise.
156 * include/bits/stl_queue.h (priority_queue): Fix allocator-extended
158 * testsuite/23_containers/priority_queue/allocator.cc: New test.
161 * include/bits/stl_map.h (map::map()): Use nothrow constructibility
162 of comparison function in conditional noexcept.
163 * include/bits/stl_multimap.h (multimap::multimap()): Likewise.
164 * include/bits/stl_multiset.h (multiset::multiset()): Likewise.
165 * include/bits/stl_set.h (set::set()): Likewise.
166 * testsuite/23_containers/map/cons/noexcept_default_construct.cc:
168 * testsuite/23_containers/multimap/cons/noexcept_default_construct.cc:
170 * testsuite/23_containers/multiset/cons/noexcept_default_construct.cc:
172 * testsuite/23_containers/set/cons/noexcept_default_construct.cc:
175 * include/bits/node_handle.h (_Node_handle): Remove invalid and unused
179 * include/experimental/functional (_Not_fn): Remove.
180 (not_fn): Use std::_Not_fn.
181 * include/std/functional (_Not_fn): Add second parameter to
182 disambiguate copying from initialization by not_fn. Define for C++14.
183 (not_fn): Add second argument to initialization.
184 * testsuite/20_util/not_fn/1.cc: Copy call wrapper using
185 direct-initialization.
187 2016-10-03 François Dumont <fdumont@gcc.gnu.org>
189 * src/c++11/shared_ptr.cc (mask, invalid, get_mutex): Move
191 * src/c++11/mutex_pool.h: ... here. New.
192 * src/c++11/debug.cc: Use latter.
194 2016-10-03 Jonathan Wakely <jwakely@redhat.com>
196 * doc/xml/manual/status_cxx2017.xml: Update gcd/lcm status.
197 * doc/html/*: Regenerate.
198 * include/experimental/numeric (__abs): Move to <numeric>.
199 (gcd, lcm): Use __detail::gcd and __detail::lcm.
200 * include/std/numeric (__detail::__abs_integral)
201 (__detail::__gcd, __detail::__lcm): Define.
202 (gcd, lcm): Define for C++17.
203 * testsuite/26_numerics/gcd/1.cc: New test.
204 * testsuite/26_numerics/lcm/1.cc: New test.
205 * testsuite/experimental/numeric/gcd.cc: Swap contents with ...
206 * testsuite/experimental/numeric/lcd.cc: ... this.
210 * config/abi/pre/gnu-versioned-namespace.ver: Add exports for
211 __cxa_thread_atexit and __gnu_cxx::__freeres.
212 * include/Makefile.am: Add <experimental/bits/lfts_config.h>
213 * include/Makefile.in: Regenerate.
214 * include.bits/basic_string.h: Fix nesting of versioned namespaces.
215 * include/bits/c++config: Declare versioned namespaces for literals.
216 * include/bits/regex.h (basic_regex, match_results): Add workarounds
218 * include/bits/uniform_int_dist.h: Fix nesting of versioned namespace.
219 * include/std/chrono: Likewise.
220 * include/std/complex: Likewise.
221 * include/std/string_view: Likewise.
222 * include/std/variant: Likewise. Add workaround for PR c++/59256.
223 * include/experimental/bits/fs_fwd.h: Declare versioned namespace.
224 * include/experimental/bits/lfts_config.h: Declare versioned
226 * include/experimental/algorithm: Include
227 <experimental/bits/lfts_config.h>.
228 * include/experimental/any: Likewise.
229 * include/experimental/bits/erase_if.h: Likewise.
230 * include/experimental/chrono: Likewise.
231 * include/experimental/functional: Likewise.
232 * include/experimental/memory_resource: Likewise.
233 * include/experimental/optional: Likewise.
234 * include/experimental/propagate_const: Likewise.
235 * include/experimental/random: Likewise.
236 * include/experimental/ratio: Likewise.
237 * include/experimental/system_error: Likewise.
238 * include/experimental/tuple: Likewise.
239 * include/experimental/type_traits: Likewise.
240 * include/experimental/utility: Likewise.
241 * include/experimental/string_view: Likewise. Fix nesting of
242 versioned namespaces.
243 * include/experimental/bits/string_view.tcc: Reopen inline namespace
244 for non-inline function definitions.
245 * testsuite/17_intro/using_namespace_std_exp_neg.cc: New test.
246 * testsuite/20_util/duration/literals/range.cc: Adjust dg-error line.
247 * testsuite/experimental/any/misc/any_cast_neg.cc: Likewise.
248 * testsuite/experimental/propagate_const/assignment/move_neg.cc:
250 * testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
251 * testsuite/experimental/propagate_const/requirements2.cc: Likewise.
252 * testsuite/experimental/propagate_const/requirements3.cc: Likewise.
253 * testsuite/experimental/propagate_const/requirements4.cc: Likewise.
254 * testsuite/experimental/propagate_const/requirements5.cc: Likewise.
255 * testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.
258 * include/bits/std_abs.h: Use "C++" language linkage.
259 * testsuite/17_intro/headers/c++2011/linkage.cc: Move <complex.h> to
260 the end. Add <stdalign.h>.
262 2016-10-03 Ville Voutilainen <ville.voutilainen@gmail.com>
265 * testsuite/20_util/tuple/77802.cc: New.
268 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
269 Implement LWG 2729 for tuple.
270 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)):
271 Suppress conditionally.
272 (_Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&&)): Likewise.
273 (__is_tuple_impl_trait_impl, __is_tuple_impl_trait): New.
274 (_Tuple_impl(const _Head&)): Constrain.
275 (_Tuple_impl(_UHead&&)): Likewise.
276 (_Tuple_impl(_Tuple_impl&&)): Suppress conditionally.
277 (_Tuple_impl(const _Tuple_impl<_Idx, _UHead>&)): Constrain.
278 (_Tuple_impl(_Tuple_impl<_Idx, _UHead>&&)): Likewise.
279 (operator=(const tuple&)): Enable conditionally.
280 (operator=(tuple&&)): Suppress conditionally.
281 (operator=(const tuple<_UElements...>&)): Constrain.
282 (operator=(tuple<_UElements...>&&)): Likewise.
283 (operator=(const tuple&)): Enable conditionally (2-param tuple).
284 (operator=(tuple&&)): Suppress conditionally (2-param tuple).
285 (operator=(const tuple<_U1, _U2>&)): Constrain.
286 (operator=(tuple<_U1, _U2>&&)): Likewise.
287 (operator=(const pair<_U1, _U2>&)): Likewise.
288 (operator=(pair<_U1, _U2>&&)): Likewise.
289 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust.
290 * testsuite/20_util/tuple/tuple_traits.cc: New.
292 2016-09-30 Jonathan Wakely <jwakely@redhat.com>
295 * acinclude.m4 (GLIBCXX_CHECK_STDIO_PROTO): Use -std=gnu++11 to check
297 * config.h.in: Regenerate.
298 * configure: Regenerate.
299 * include/c_global/cstdio [!_GLIBCXX_HAVE_GETS] (gets): Only declare
301 * include/c_std/cstdio [!_GLIBCXX_HAVE_GETS] (gets): Likewise.
302 * testsuite/27_io/headers/cstdio/functions_neg.cc: New test.
304 * doc/xml/manual/intro.xml: Document LWG 2192 changes.
305 * doc/html/*: Regenerate.
306 * include/Makefile.am: Add bits/std_abs.h.
307 * include/Makefile.in: Regenerate.
308 * include/bits/std_abs.h: New header defining all required overloads
309 of std::abs in one place (LWG 2294).
310 * include/c_global/cmath (abs(double), abs(float), abs(long double)):
311 Move to bits/std_abs.h.
312 (abs<_Tp>(_Tp)): Remove.
313 * include/c_global/cstdlib (abs(long), abs(long long), abs(__int<N>)):
314 Move to bits/std_abs.h.
315 * testsuite/26_numerics/headers/cmath/dr2192.cc: New test.
316 * testsuite/26_numerics/headers/cmath/dr2192_neg.cc: New test.
317 * testsuite/26_numerics/headers/cstdlib/dr2192.cc: New test.
318 * testsuite/26_numerics/headers/cstdlib/dr2192_neg.cc: New test.
321 * include/experimental/numeric: Include <numeric>.
323 (gcd, lcm): Use __abs instead of std::abs.
324 * testsuite/experimental/numeric/77801.cc: New test.
325 * testsuite/experimental/numeric/gcd.cc: Test unsigned inputs.
326 * testsuite/experimental/numeric/lcm.cc: Likewise.
328 2016-09-29 Ville Voutilainen <ville.voutilainen@gmail.com>
330 Make optional::reset noexcept, make optional::value
331 work in constant expressions.
332 * include/std/optional (_M_get): Make constexpr.
333 (reset): Make noexcept.
334 * testsuite/20_util/optional/assignment/7.cc: New.
335 * testsuite/20_util/optional/observers/6.cc: New.
337 2016-09-29 Jonathan Wakely <jwakely@redhat.com>
339 * include/c_global/cmath (hypot, __hypot3): Move C++17 overloads
340 outside _GLIBCXX_USE_C99_MATH_TR1 condition.
342 2016-09-29 Alan Modra <amodra@gmail.com>
344 * configure.ac (LONG_DOUBLE_COMPAT_FLAGS): New ACSUBST.
345 * src/Makefile.am (compatibility-ldbl.o, compatibility-ldbl.lo):
346 Use LONG_DOUBLE_COMPAT_FLAGS.
347 * Makefile.in: Regenerate.
348 * configure: Regenerate.
349 * doc/Makefile.in: Regenerate.
350 * include/Makefile.in: Regenerate.
351 * libsupc++/Makefile.in: Regenerate.
352 * po/Makefile.in: Regenerate.
353 * python/Makefile.in: Regenerate.
354 * src/Makefile.in: Regenerate.
355 * src/c++11/Makefile.in: Regenerate.
356 * src/c++98/Makefile.in: Regenerate.
357 * src/filesystem/Makefile.in: Regenerate.
358 * testsuite/Makefile.in: Regenerate.
360 2016-09-28 Jonathan Wakely <jwakely@redhat.com>
362 * include/std/chrono (system_clock): Fix typo in comment.
364 * include/experimental/bits/fs_fwd.h (file_time_type): Simplify
366 * src/filesystem/ops.cc (file_time): Take error_code parameter and
368 (do_copy_file, last_write_time): Pass error_code in file_time calls.
369 * testsuite/experimental/filesystem/operations/last_write_time.cc:
371 * testsuite/util/testsuite_fs.h (scoped_file): Define RAII helper.
374 * include/std/functional (_Any_data): Add may_alias attribute.
376 2016-09-27 Jonathan Wakely <jwakely@redhat.com>
378 * doc/xml/manual/status_cxx2017.xml: Update status.
379 * doc/html/*: Regenerate.
380 * include/std/functional (__cpp_lib_boyer_moore_searcher): Define.
381 * testsuite/20_util/function_objects/searchers.cc: Test feature macro.
383 * doc/xml/manual/status_cxx2017.xml: Update status.
384 * include/c_global/cmath (hypot): Add three-dimensional overloads.
385 * testsuite/26_numerics/headers/cmath/hypot.cc: New.
387 2016-09-26 Ville Voutilainen <ville.voutilainen@gmail.com>
390 * include/std/optional (optional(const optional<_Up>&)):
391 Default-initialize the base and use emplace.
392 (optional(optional<_Up>&&)): Likewise.
393 * testsuite/20_util/optional/cons/77727.cc: New.
395 2016-09-26 François Dumont <fdumont@gcc.gnu.org>
397 * include/debug/safe_base.h
398 (_Safe_iterator_base::_M_detach_single): Make public.
400 2016-09-26 Jonathan Wakely <jwakely@redhat.com>
402 * include/bits/range_access.h (__cpp_lib_array_constexpr): Do not
403 redefine macro defined in <bits/stl_iterator.h>.
405 * include/bits/stl_map.h (map::extract(const_iterator)): Assert that
406 iterator is not past-the-end.
407 * include/bits/stl_multimap.h (multimap::extract(const_iterator)):
409 * include/bits/stl_multiset.h (multiset::extract(const_iterator)):
411 * include/bits/stl_set.h (set::extract(const_iterator)): Likewise.
412 * include/bits/unordered_map.h (unordered_map::extract(const_iterator))
413 (unordered_multimap::extract(const_iterator)): Likewise.
414 * include/bits/unordered_set.h (unordered_set::extract(const_iterator))
415 (unordered_multiset::extract(const_iterator)): Likewise.
417 2016-09-26 Ville Voutilainen <ville.voutilainen@gmail.com>
420 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
421 Fix an out-of-bounds access.
423 2016-09-26 Marek Polacek <polacek@redhat.com>
426 * libsupc++/hash_bytes.cc: Add [[gnu::fallthrough]].
428 2016-09-25 François Dumont <fdumont@gcc.gnu.org>
430 * src/c++11/debug.cc: Include debug/vector. Include cctype. Remove
432 (get_safe_base_mutex): Get mutex based on address lowest non nil bits.
433 * testsuite/23_containers/vector/debug/mutex_association.cc: New.
435 * include/debug/bitset (bitset::reference::reference(const _Base_ref&,
436 bitset*)): Remove __unused__ attribute.
437 * include/debug/safe_base.h (_Safe_iterator_base): Make
438 _Safe_sequence_base a friend.
439 (_Safe_iterator_base::_M_attach): Make protected.
440 (_Safe_iterator_base::_M_attach_single): Likewise.
441 (_Safe_iterator_base::_M_detach): Likewise.
442 (_Safe_iterator_base::_M_detach_single): Likewise.
443 (_Safe_sequence_base): Make _Safe_iterator_base a friend.
444 (_Safe_sequence_base::_Safe_sequence_base(_Safe_sequence_base&&)): New.
445 (_Safe_sequence_base::_M_swap): Make protected.
446 (_Safe_sequence_base::_M_attach): Make private.
447 (_Safe_sequence_base::_M_attach_single): Likewise.
448 (_Safe_sequence_base::_M_detach): Likewise.
449 (_Safe_sequence_base::_M_detach_single): Likewise.
450 * include/debug/safe_container.h
451 (_Safe_container::_Safe_container(_Safe_container&&)): Make default.
452 * include/debug/safe_iterator.h
453 (_Safe_iterator::operator++()): Name __scoped_lock instance.
454 * include/debug/safe_iterator.tcc: Remove trailing line.
455 * include/debug/safe_unordered_base.h
456 (_Safe_local_iterator_base::_M_attach): Make protected.
457 (_Safe_local_iterator_base::_M_attach_single): Likewise.
458 (_Safe_local_iterator_base::_M_detach): Likewise.
459 (_Safe_local_iterator_base::_M_detach_single): Likewise.
460 (_Safe_unordered_container_base): Make _Safe_local_iterator_base friend.
461 (_Safe_unordered_container_base::_M_attach_local): Make private.
462 (_Safe_unordered_container_base::_M_attach_local_single): Likewise.
463 (_Safe_unordered_container_base::_M_detach_local): Likewise.
464 (_Safe_unordered_container_base::_M_detach_local_single): Likewise.
466 * include/parallel/algo.h: Generalize usage of std::__iterator_category.
469 2016-09-23 Jonathan Wakely <jwakely@redhat.com>
473 * include/bits/basic_string.h (basic_string::clear()): Drop reference
475 * include/ext/rc_string_base.h (__rc_string_base::_M_clear()):
477 * testsuite/21_strings/basic_string/56166.cc: New.
478 * testsuite/ext/vstring/modifiers/clear/56166.cc: New.
480 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
481 (basic_string::erase(size_type, size_type)): Add fast path for
482 truncating the string, by calling _M_set_length directly.
483 (basic_string::erase(__const_iterator, __const_iterator)): Likewise.
484 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
485 (basic_string::resize(size_type, _CharT)): Likewise.
487 2016-09-22 Jason Merrill <jason@redhat.com>
489 * configure.ac: Define HAVE_MEMALIGN for newlib.
491 2015-09-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
493 * config/cpu/m68k/atomicity.h: Adjust comment.
494 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Honor
495 explicit atomicity_dir setup via configure.host.
496 * configure.host (rtems-*): Set atomicity_dir.
497 * configure: Regenerate.
499 2016-09-22 Jonathan Wakely <jwakely@redhat.com>
501 Implement C++17 node extraction and insertion (P0083R5)
502 * doc/xml/manual/status_cxx2017.xml: Document status.
503 * doc/html/*: Regenerate.
504 * include/Makefile.am: Add bits/node_handle.h and reorder.
505 * include/Makefile.in: Regenerate.
506 * include/bits/hashtable.h (_Hashtable::node_type)
507 (_Hashtable::insert_return_type, _Hashtable::_M_reinsert_node)
508 (_Hashtable::_M_reinsert_node_multi, _Hashtable::extract)
509 (_Hashtable::_M_merge_unique, _Hashtable::_M_merge_multi): Define.
510 (_Hash_merge_helper): Define primary template.
511 * include/bits/node_handle.h: New header.
512 * include/bits/stl_map.h (map): Declare _Rb_tree_merge_helper as
514 (map::node_type, map::insert_return_type, map::extract, map::merge)
515 (map::insert(node_type&&), map::insert(const_iterator, node_type&&)):
517 (_Rb_tree_merge_helper): Specialize for map.
518 * include/bits/stl_multimap.h (multimap): Declare _Rb_tree_merge_helper
520 (multimap::node_type, multimap::extract, multimap::merge)
521 (multimap::insert(node_type&&))
522 (multimap::insert(const_iterator, node_type&&)): Define.
523 (_Rb_tree_merge_helper): Specialize for multimap.
524 * include/bits/stl_multiset.h (multiset): Declare _Rb_tree_merge_helper
526 (multiset::node_type, multiset::extract, multiset::merge)
527 (multiset::insert(node_type&&))
528 (multiset::insert(const_iterator, node_type&&)): Define.
529 * include/bits/stl_set.h (set): Declare _Rb_tree_merge_helper as
531 (set::node_type, set::insert_return_type, set::extract, set::merge)
532 (set::insert(node_type&&), set::insert(const_iterator, node_type&&)):
534 (_Rb_tree_merge_helper): Specialize for set.
535 * include/bits/stl_tree.h (_Rb_tree): Declare _Rb_tree<> as friend.
536 (_Rb_tree::node_type, _Rb_tree::insert_return_type)
537 (_Rb_tree::_M_reinsert_node_unique, _Rb_tree::_M_reinsert_node_equal)
538 (_Rb_tree::_M_reinsert_node_hint_unique)
539 (_Rb_tree::_M_reinsert_node_hint_equal, _Rb_tree::extract)
540 (_Rb_tree::_M_merge_unique, _Rb_tree::_M_merge_equal): Define.
541 (_Rb_tree_merge_helper): Specialize for multiset.
542 * include/bits/unordered_map.h (unordered_map): Declare
543 unordered_map<> and unordered_multimap<> as friends.
544 (unordered_map::node_type, unordered_map::insert_return_type)
545 (unordered_map::extract, unordered_map::merge)
546 (unordered_map::insert(node_type&&))
547 (unordered_map::insert(const_iterator, node_type&&))
548 (unordered_multimap): Declare _Hash_merge_helper as friend.
549 (unordered_multimap::node_type, unordered_multimap::extract)
550 (unordered_multimap::merge, unordered_multimap::insert(node_type&&))
551 (unordered_multimap::insert(const_iterator, node_type&&)): Define.
552 (_Hash_merge_helper): Specialize for unordered maps and multimaps.
553 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
554 Declare _Hash_merge_helper as friend.
555 (unordered_set::node_type, unordered_set::insert_return_type)
556 (unordered_set::extract, unordered_set::merge)
557 (unordered_set::insert(node_type&&))
558 (unordered_set::insert(const_iterator, node_type&&)): Define.
559 (unordered_multiset::node_type, unordered_multiset::extract)
560 (unordered_multiset::merge, unordered_multiset::insert(node_type&&))
561 (unordered_multiset::insert(const_iterator, node_type&&)): Define.
562 (_Hash_merge_helper): Specialize for unordered sets and multisets.
563 * include/debug/map.h (map): Add using declarations or forwarding
564 functions for new members.
565 * include/debug/map.h (multimap): Likewise.
566 * include/debug/map.h (multiset): Likewise.
567 * include/debug/map.h (set): Likewise.
568 * include/debug/unordered_map (unordered_map, unordered_multimap):
570 * include/debug/unordered_set( unordered_set, unordered_multiset):
572 * python/libstdcxx/v6/printers.py (get_value_from_aligned_membuf): New
574 (get_value_from_list_node, get_value_from_Rb_tree_node): Use helper.
575 (StdNodeHandlePrinter): Define printer for node handles.
576 (build_libstdcxx_dictionary): Register StdNodeHandlePrinter.
577 * testsuite/23_containers/map/modifiers/extract.cc: New.
578 * testsuite/23_containers/map/modifiers/merge.cc: New.
579 * testsuite/23_containers/multimap/modifiers/extract.cc: New.
580 * testsuite/23_containers/multimap/modifiers/merge.cc: New.
581 * testsuite/23_containers/multiset/modifiers/extract.cc: New.
582 * testsuite/23_containers/multiset/modifiers/merge.cc: New.
583 * testsuite/23_containers/set/modifiers/extract.cc: New.
584 * testsuite/23_containers/set/modifiers/merge.cc: New.
585 * testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
586 * testsuite/23_containers/unordered_map/modifiers/merge.cc: New.
587 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
589 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc: New.
590 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
592 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc: New.
593 * testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
594 * testsuite/23_containers/unordered_set/modifiers/merge.cc: New.
595 * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
597 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test node handles.
599 2016-09-22 Ville Voutilainen <ville.voutilainen@gmail.com>
601 Fix tests on old arm platforms for optional.
602 * testsuite/20_util/optional/77288.cc: Don't use exception_ptr.
604 2016-09-22 Jonathan Wakely <jwakely@redhat.com>
606 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Adjust for
607 recent change to _Variant_storage.
608 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test variant with
611 * include/bits/uses_allocator.h (__uses_allocator_construct): Qualify
612 std::forward and ::new. Cast pointer to void*.
613 * include/std/variant (_Variant_storage, _Union, _Variant_base)
614 (__access, __visit_invoke, variant, visit): Qualify std::forward.
615 * testsuite/20_util/variant/compile.cc: Test for ADL problems.
617 2016-09-22 Tim Shen <timshen@google.com>
619 * include/std/variant (variant::operator=): Fix assignment
621 * testsuite/20_util/variant/compile.cc: Add test.
623 2016-09-22 Tim Shen <timshen@google.com>
626 * include/std/variant (_Variant_storage::_Variant_storage):
627 Change _Variant_storage's union to be default constructible.
628 * testsuite/20_util/variant/compile.cc: New test.
630 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
633 * include/std/optional (__is_optional_impl, __is_optional): Remove.
634 (__converts_from_optional, __assigns_from_optional): New.
635 (optional(_Up&&)): Use is_same instead of __is_optional.
636 (optional(const optional<_Up>&)): Constrain with
637 __converts_from_optional.
638 (optional(optional<_Up>&&)): Likewise.
639 (operator=(_Up&&)): Use is_same instead of __is_optional, check
640 is_same and is_scalar.
641 (operator=(const optional<_Up>&)): Constrain with
642 __converts_from_optional and __assigns_from_optional.
643 (operator=(optional<_Up>&&)): Likewise.
644 * testsuite/20_util/optional/77288.cc: New.
645 * testsuite/20_util/optional/cons/value.cc: Adjust.
647 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
649 Implement LWG 2729 for tuple.
650 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)):
651 Suppress conditionally.
652 (_Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&&)): Likewise.
653 (__is_tuple_impl_trait_impl, __is_tuple_impl_trait): New.
654 (_Tuple_impl(const _Head&)): Constrain.
655 (_Tuple_impl(_UHead&&)): Likewise.
656 (_Tuple_impl(_Tuple_impl&&)): Suppress conditionally.
657 (_Tuple_impl(const _Tuple_impl<_Idx, _UHead>&)): Constrain.
658 (_Tuple_impl(_Tuple_impl<_Idx, _UHead>&&)): Likewise.
659 (operator=(const tuple&)): Enable conditionally.
660 (operator=(tuple&&)): Suppress conditionally.
661 (operator=(const tuple<_UElements...>&)): Constrain.
662 (operator=(tuple<_UElements...>&&)): Likewise.
663 (operator=(const tuple&)): Enable conditionally (2-param tuple).
664 (operator=(tuple&&)): Suppress conditionally (2-param tuple).
665 (operator=(const tuple<_U1, _U2>&)): Constrain.
666 (operator=(tuple<_U1, _U2>&&)): Likewise.
667 (operator=(const pair<_U1, _U2>&)): Likewise.
668 (operator=(pair<_U1, _U2>&&)): Likewise.
669 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust.
670 * testsuite/20_util/tuple/tuple_traits.cc: New.
672 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
675 Implement LWG 2729 for pair.
676 * include/bits/stl_pair.h (_PCC): New.
677 (_ConstructiblePair, _ImplicitlyConvertiblePair):
678 Turn into static member functions of _PCC.
679 (_MoveConstructiblePair, _ImplicitlyMoveConvertiblePair): Likewise.
681 (pair(const _T1&, const _T2&)): Adjust.
683 (pair(const pair<_U1, _U2>&)): Adjust.
684 (pair(_U1&&, const _T2&)): Likewise.
685 (pair(const _T1&, _U2&&)): Likewise.
686 (pair(_U1&&, _U2&&)): Likewise.
687 (pair(pair<_U1, _U2>&&)): Likewise.
688 (operator=(const pair&)): Make conditionally deleted.
689 (operator=(pair&&)): Make conditionally suppressed.
690 (operator=(const pair<_U1, _U2>&)): Constrain.
691 (operator=(pair<_U1, _U2>&&): Likewise.
692 * include/std/type_traits (__nonesuch): New.
693 * testsuite/20_util/pair/traits.cc: New.
695 2016-09-20 Ville Voutilainen <ville.voutilainen@gmail.com>
698 * include/bits/stl_construct.h: (_Construct_novalue): New.
699 (_Destroy_n_aux, _Destroy_n): New.
700 * include/bits/stl_uninitialized.h: (type_traits):
701 New include in C++11 mode.
702 (__uninitialized_default_novalue_1): New.
703 (__uninitialized_default_novalue_n_1): Likewise.
704 (__uninitialized_default_novalue): Likewise.
705 (__uninitialized_default_novalue_n): Likewise.
706 (__uninitialized_copy_n_pair): Likewise.
707 (uninitialized_default_construct):
708 Use __uninitialized_default_novalue.
709 (uninitialized_default_construct_n):
710 Use __uninitialized_default_novalue_n.
711 (uninitialized_value_construct): Use __uninitialized_default.
712 (uninitialized_value_construct_n): Use __uninitialized_default_n.
713 (uninitialized_move): Use uninitialized_copy.
714 (uninitialized_move_n): Use __uninitialized_copy_n_pair.
715 (destroy_at): Use _Destroy.
717 (destroy_n): Likewise.
718 * testsuite/20_util/specialized_algorithms/
719 memory_management_tools/1.cc: Add tests for exceptions,
720 add tests for trivial cases for construct and move.
722 2016-09-20 Jonathan Wakely <jwakely@redhat.com>
724 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
725 (DequeWorkerBase.index, VectorWorkerBase.get): Use // for division.
727 2016-09-19 Jonathan Wakely <jwakely@redhat.com>
730 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
731 (DequeWorkerBase.index, VectorWorkerBase.get): Cast results of
732 division to int to work with Python 3.
734 * testsuite/lib/gdb-test.exp (gdb-test): Fail if Python error occurs.
736 * python/libstdcxx/v6/printers.py (SingleObjContainerPrinter): Allow
737 display_hint to be set by subclasses.
738 (StdVariantPrinter): Use array for display_hint. Adjust output to be
739 more similar to std::any and std::optional output.
740 (register_type_printers): Add type printers for basic_string_view
741 typedefs and experimental::any. Adjust type printers for
742 fundamentals_v1 templates to match fundamentals_v2 and later.
743 * testsuite/libstdc++-prettyprinters/cxx17.cc: New.
746 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.index): Rename
748 (ListWorkerBase.get_value_from_node): Define new method.
749 (ListFrontWorker.__call__, ListBackWorker.__call__): Use it.
751 2016-09-17 Jonathan Wakely <jwakely@redhat.com>
753 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Define.
754 (StdExpAnyPrinter, StdExpOptionalPrinter, StdExpStringViewPrinter):
755 Register for C++17 components in namespace std. Strip inline namespace
758 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
760 * doc/xml/manual/profile_mode.xml: Fix typo.
761 * doc/html/manual/profile_mode_devel.html: Regenerate.
763 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
764 Marc Glisse <marc.glisse@inria.fr>
766 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_ALIGNED_ALLOC]
767 (operator new(size_t, align_val_t)): Replace modulus operator with
770 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
772 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_POSIX_MEMALIGN] (aligned_alloc):
773 Increase alignment if less than sizeof(void*).
774 [_GLIBCXX_HAVE_ALIGNED_ALLOC] (operator new(size_t, align_val_t)):
775 Increase size if not a multiple of alignment.
777 2016-09-15 Jonathan Wakely <jwakely@redhat.com>
779 * doc/xml/manual/debug_mode.xml: Minor editorial fixes.
780 * doc/html/*: Regenerate.
782 * testsuite/23_containers/vector/debug/insert6_neg.cc: Remove
784 * testsuite/util/debug/checks.h (generate_unique<bool>): Specialize.
786 2016-09-14 Marek Polacek <polacek@redhat.com>
788 * testsuite/23_containers/vector/debug/insert6_neg.cc: Use
791 2016-09-14 Christophe Lyon <christophe.lyon@linaro.org>
793 * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
794 Move dg-do directive before dg-skip.
795 * testsuite/21_strings/debug/iterator_self_move_assign_neg.cc:
796 Move dg-do directive before dg-require.
797 * testsuite/21_strings/debug/self_move_assign_neg.cc: Likewise.
798 * testsuite/23_containers/vector/debug/57779_neg.cc: Likewise.
799 * testsuite/23_containers/vector/debug/60587_neg.cc: Likewise.
800 * testsuite/23_containers/vector/debug/assign1_neg.cc: Likewise.
801 * testsuite/23_containers/vector/debug/assign2_neg.cc: Likewise.
802 * testsuite/23_containers/vector/debug/assign3_neg.cc: Likewise.
803 * testsuite/23_containers/vector/debug/construct1_neg.cc: Likewise.
804 * testsuite/23_containers/vector/debug/construct2_neg.cc: Likewise.
805 * testsuite/23_containers/vector/debug/construct3_neg.cc: Likewise.
806 * testsuite/23_containers/vector/debug/insert1_neg.cc: Likewise.
807 * testsuite/23_containers/vector/debug/insert2_neg.cc: Likewise.
808 * testsuite/23_containers/vector/debug/insert3_neg.cc: Likewise.
809 * testsuite/23_containers/vector/debug/insert5_neg.cc: Likewise.
810 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Likewise.
811 * testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
813 * testsuite/25_algorithms/pop_heap/empty2_neg.cc: Likewise.
814 * testsuite/25_algorithms/pop_heap/empty_neg.cc: Likewise.
815 * testsuite/27_io/objects/char/12048-5.cc: Likewise.
816 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Likewise.
817 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
819 2016-09-13 Ville Voutilainen <ville.voutilainen@gmail.com>
821 Implement P0040R3, Extending memory management tools.
822 * include/bits/stl_uninitialized.h (utility): New include
824 (uninitialized_default_construct): New.
825 (uninitialized_default_construct_n): Likewise.
826 (uninitialized_value_construct): Likewise.
827 (uninitialized_value_construct_n): Likewise.
828 (uninitialized_move): Likewise.
829 (uninitialized_move_n): Likewise.
830 (destroy_at, destroy, destroy_n): Likewise.
831 * testsuite/20_util/specialized_algorithms/memory_management_tools/
834 2016-09-12 Jason Merrill <jason@redhat.com>
836 * config/abi/pre/gnu.ver: Use [jmy] for size_t.
838 2016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
840 Implement P0253R1, Fixing a design mistake in the searchers
841 interface in Library Fundamentals.
842 * include/std/functional: (utility): New include in C++17 mode.
843 (default_searcher): Use a pair as return type, adjust the definition.
844 (boyer_moore_searcher): Likewise.
845 (boyer_moore_horspool_searcher): Likewise.
846 * testsuite/20_util/function_objects/searchers.cc: Adjust.
848 2016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
850 Implement C++17 string searchers.
851 * include/std/functional: (unordered_map, vector): New includes
853 (array, bits/stl_algo.h): Likewise.
854 (default_searcher, __boyer_moore_map_base): New.
855 (__boyer_moore_array_base, __is_std_equal_to): Likewise.
856 (__boyer_moore_base_t, boyer_moore_searcher): Likewise.
857 (boyer_moore_horspool_searcher, make_default_searcher): Likewise.
858 (make_boyer_moore_searcher): Likewise.
859 (make_boyer_moore_horspool_searcher): Likewise.
860 * testsuite/20_util/function_objects/searchers.cc: New.
862 2016-09-12 Matthew Wahab <matthew.wahab@arm.com>
864 * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
865 Move dg-do directive before dg-require.
866 * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc: Likewise.
867 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
869 * testsuite/22_locale/codecvt/utf8.cc: Likewise.
870 * testsuite/22_locale/locale/cons/unicode.cc: Likewise.
871 * testsuite/23_containers/deque/debug/assign1_neg.cc: Likewise.
872 * testsuite/23_containers/deque/debug/assign2_neg.cc: Likewise.
873 * testsuite/23_containers/deque/debug/assign3_neg.cc: Likewise.
874 * testsuite/23_containers/deque/debug/construct1_neg.cc: Likewise.
875 * testsuite/23_containers/deque/debug/construct2_neg.cc: Likewise.
876 * testsuite/23_containers/deque/debug/construct3_neg.cc: Likewise.
877 * testsuite/23_containers/deque/debug/insert1_neg.cc: Likewise.
878 * testsuite/23_containers/deque/debug/insert2_neg.cc: Likewise.
879 * testsuite/23_containers/deque/debug/insert3_neg.cc: Likewise.
880 * testsuite/23_containers/deque/debug/insert5_neg.cc: Likewise.
881 * testsuite/23_containers/deque/debug/iterator_self_move_assign_neg.cc:
883 * testsuite/23_containers/deque/debug/self_move_assign_neg.cc:
885 * testsuite/23_containers/deque/debug/shrink_to_fit.cc: Likewise.
886 * testsuite/23_containers/forward_list/debug/60499.cc: Likewise.
887 * testsuite/23_containers/forward_list/debug/construct1_neg.cc:
889 * testsuite/23_containers/forward_list/debug/construct2_neg.cc:
891 * testsuite/23_containers/forward_list/debug/construct3_neg.cc:
893 * testsuite/23_containers/forward_list/debug/erase_after1_neg.cc:
895 * testsuite/23_containers/forward_list/debug/erase_after2_neg.cc:
897 * testsuite/23_containers/forward_list/debug/erase_after3_neg.cc:
899 * testsuite/23_containers/forward_list/debug/erase_after4_neg.cc:
901 * testsuite/23_containers/forward_list/debug/erase_after5_neg.cc:
903 * testsuite/23_containers/forward_list/debug/erase_after6_neg.cc:
905 * testsuite/23_containers/forward_list/debug/erase_after7_neg.cc:
907 * testsuite/23_containers/forward_list/debug/erase_after8_neg.cc:
909 * testsuite/23_containers/forward_list/debug/erase_after9_neg.cc:
911 * testsuite/23_containers/forward_list/debug/insert_after1_neg.cc:
913 * testsuite/23_containers/forward_list/debug/insert_after2_neg.cc:
915 * testsuite/23_containers/forward_list/debug/insert_after3_neg.cc:
917 * testsuite/23_containers/forward_list/debug/insert_after4_neg.cc:
919 * testsuite/23_containers/forward_list/debug/
920 iterator_self_move_assign_neg.cc: Likewise.
921 * testsuite/23_containers/forward_list/debug/self_move_assign_neg.cc:
923 * testsuite/23_containers/forward_list/debug/splice_after1_neg.cc:
925 * testsuite/23_containers/forward_list/debug/splice_after2_neg.cc:
927 * testsuite/23_containers/forward_list/debug/splice_after3_neg.cc:
929 * testsuite/23_containers/forward_list/debug/splice_after4_neg.cc:
931 * testsuite/23_containers/forward_list/debug/splice_after5_neg.cc:
933 * testsuite/23_containers/forward_list/debug/splice_after6_neg.cc:
935 * testsuite/23_containers/forward_list/debug/splice_after7_neg.cc:
937 * testsuite/23_containers/list/debug/assign1_neg.cc: Likewise.
938 * testsuite/23_containers/list/debug/assign2_neg.cc: Likewise.
939 * testsuite/23_containers/list/debug/assign3_neg.cc: Likewise.
940 * testsuite/23_containers/list/debug/construct1_neg.cc: Likewise.
941 * testsuite/23_containers/list/debug/construct2_neg.cc: Likewise.
942 * testsuite/23_containers/list/debug/construct3_neg.cc: Likewise.
943 * testsuite/23_containers/list/debug/insert1_neg.cc: Likewise.
944 * testsuite/23_containers/list/debug/insert2_neg.cc: Likewise.
945 * testsuite/23_containers/list/debug/insert3_neg.cc: Likewise.
946 * testsuite/23_containers/list/debug/insert5_neg.cc: Likewise.
947 * testsuite/23_containers/list/debug/iterator_self_move_assign_neg.cc:
949 * testsuite/23_containers/list/debug/self_move_assign_neg.cc: Likewise.
950 * testsuite/23_containers/map/debug/60499.cc: Likewise.
951 * testsuite/23_containers/map/debug/construct1_neg.cc: Likewise.
952 * testsuite/23_containers/map/debug/construct2_neg.cc: Likewise.
953 * testsuite/23_containers/map/debug/construct3_neg.cc: Likewise.
954 * testsuite/23_containers/map/debug/insert1_neg.cc: Likewise.
955 * testsuite/23_containers/map/debug/insert2_neg.cc: Likewise.
956 * testsuite/23_containers/map/debug/insert3_neg.cc: Likewise.
957 * testsuite/23_containers/map/debug/iterator_self_move_assign_neg.cc:
959 * testsuite/23_containers/map/debug/self_move_assign_neg.cc: Likewise.
960 * testsuite/23_containers/multimap/debug/60499.cc: Likewise.
961 * testsuite/23_containers/multimap/debug/construct1_neg.cc: Likewise.
962 * testsuite/23_containers/multimap/debug/construct2_neg.cc: Likewise.
963 * testsuite/23_containers/multimap/debug/construct3_neg.cc: Likewise.
964 * testsuite/23_containers/multimap/debug/insert1_neg.cc: Likewise.
965 * testsuite/23_containers/multimap/debug/insert2_neg.cc: Likewise.
966 * testsuite/23_containers/multimap/debug/insert3_neg.cc: Likewise.
967 * testsuite/23_containers/multimap/debug/
968 iterator_self_move_assign_neg.cc: Likewise.
969 * testsuite/23_containers/multimap/debug/self_move_assign_neg.cc:
971 * testsuite/23_containers/multiset/debug/60499.cc: Likewise.
972 * testsuite/23_containers/multiset/debug/construct1_neg.cc: Likewise.
973 * testsuite/23_containers/multiset/debug/construct2_neg.cc: Likewise.
974 * testsuite/23_containers/multiset/debug/construct3_neg.cc: Likewise.
975 * testsuite/23_containers/multiset/debug/insert1_neg.cc: Likewise.
976 * testsuite/23_containers/multiset/debug/insert2_neg.cc: Likewise.
977 * testsuite/23_containers/multiset/debug/insert3_neg.cc: Likewise.
978 * testsuite/23_containers/multiset/debug/
979 iterator_self_move_assign_neg.cc: Likewise.
980 * testsuite/23_containers/multiset/debug/self_move_assign_neg.cc:
982 * testsuite/23_containers/set/debug/60499.cc: Likewise.
983 * testsuite/23_containers/set/debug/construct1_neg.cc: Likewise.
984 * testsuite/23_containers/set/debug/construct2_neg.cc: Likewise.
985 * testsuite/23_containers/set/debug/construct3_neg.cc: Likewise.
986 * testsuite/23_containers/set/debug/insert1_neg.cc: Likewise.
987 * testsuite/23_containers/set/debug/insert2_neg.cc: Likewise.
988 * testsuite/23_containers/set/debug/insert3_neg.cc: Likewise.
989 * testsuite/23_containers/set/debug/iterator_self_move_assign_neg.cc:
991 * testsuite/23_containers/set/debug/self_move_assign_neg.cc: Likewise.
992 * testsuite/23_containers/unordered_map/debug/60499.cc: Likewise.
993 * testsuite/23_containers/unordered_map/debug/begin1_neg.cc: Likewise.
994 * testsuite/23_containers/unordered_map/debug/begin2_neg.cc: Likewise.
995 * testsuite/23_containers/unordered_map/debug/bucket_size_neg.cc:
997 * testsuite/23_containers/unordered_map/debug/cbegin_neg.cc: Likewise.
998 * testsuite/23_containers/unordered_map/debug/cend_neg.cc: Likewise.
999 * testsuite/23_containers/unordered_map/debug/construct1_neg.cc:
1001 * testsuite/23_containers/unordered_map/debug/construct2_neg.cc:
1003 * testsuite/23_containers/unordered_map/debug/construct3_neg.cc:
1005 * testsuite/23_containers/unordered_map/debug/end1_neg.cc: Likewise.
1006 * testsuite/23_containers/unordered_map/debug/end2_neg.cc: Likewise.
1007 * testsuite/23_containers/unordered_map/debug/insert1_neg.cc: Likewise.
1008 * testsuite/23_containers/unordered_map/debug/insert2_neg.cc: Likewise.
1009 * testsuite/23_containers/unordered_map/debug/insert3_neg.cc: Likewise.
1010 * testsuite/23_containers/unordered_map/debug/
1011 invalid_local_iterator_compare_neg.cc: Likewise.
1012 * testsuite/23_containers/unordered_map/debug/
1013 invalid_local_iterator_range_neg.cc: Likewise.
1014 * testsuite/23_containers/unordered_map/debug/
1015 iterator_self_move_assign_neg.cc: Likewise.
1016 * testsuite/23_containers/unordered_map/debug/max_load_factor_neg.cc:
1018 * testsuite/23_containers/unordered_map/debug/self_move_assign_neg.cc:
1020 * testsuite/23_containers/unordered_map/debug/
1021 use_erased_local_iterator_neg.cc: Likewise.
1022 * testsuite/23_containers/unordered_map/debug/
1023 use_invalid_iterator_neg.cc: Likewise.
1024 * testsuite/23_containers/unordered_map/debug/
1025 use_invalid_local_iterator_neg.cc: Likewise.
1026 * testsuite/23_containers/unordered_multimap/debug/60499.cc: Likewise.
1027 * testsuite/23_containers/unordered_multimap/debug/begin1_neg.cc:
1029 * testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc:
1031 * testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc:
1033 * testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc:
1035 * testsuite/23_containers/unordered_multimap/debug/cend_neg.cc:
1037 * testsuite/23_containers/unordered_multimap/debug/construct1_neg.cc:
1039 * testsuite/23_containers/unordered_multimap/debug/construct2_neg.cc:
1041 * testsuite/23_containers/unordered_multimap/debug/construct3_neg.cc:
1043 * testsuite/23_containers/unordered_multimap/debug/end1_neg.cc:
1045 * testsuite/23_containers/unordered_multimap/debug/end2_neg.cc:
1047 * testsuite/23_containers/unordered_multimap/debug/insert1_neg.cc:
1049 * testsuite/23_containers/unordered_multimap/debug/insert2_neg.cc:
1051 * testsuite/23_containers/unordered_multimap/debug/insert3_neg.cc:
1053 * testsuite/23_containers/unordered_multimap/debug/
1054 invalid_local_iterator_compare_neg.cc: Likewise.
1055 * testsuite/23_containers/unordered_multimap/debug/
1056 invalid_local_iterator_range_neg.cc: Likewise.
1057 * testsuite/23_containers/unordered_multimap/debug/
1058 iterator_self_move_assign_neg.cc: Likewise.
1059 * testsuite/23_containers/unordered_multimap/debug/
1060 max_load_factor_neg.cc: Likewise.
1061 * testsuite/23_containers/unordered_multimap/debug/
1062 self_move_assign_neg.cc: Likewise.
1063 * testsuite/23_containers/unordered_multimap/debug/
1064 use_erased_local_iterator_neg.cc: Likewise.
1065 * testsuite/23_containers/unordered_multimap/debug/
1066 use_invalid_iterator_neg.cc: Likewise.
1067 * testsuite/23_containers/unordered_multimap/debug/
1068 use_invalid_local_iterator_neg.cc: Likewise.
1069 * testsuite/23_containers/unordered_multiset/debug/60499.cc:
1071 * testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc:
1073 * testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc:
1075 * testsuite/23_containers/unordered_multiset/debug/bucket_size_neg.cc:
1077 * testsuite/23_containers/unordered_multiset/debug/cbegin_neg.cc:
1079 * testsuite/23_containers/unordered_multiset/debug/cend_neg.cc:
1081 * testsuite/23_containers/unordered_multiset/debug/construct1_neg.cc:
1083 * testsuite/23_containers/unordered_multiset/debug/construct2_neg.cc:
1085 * testsuite/23_containers/unordered_multiset/debug/construct3_neg.cc:
1087 * testsuite/23_containers/unordered_multiset/debug/end1_neg.cc:
1089 * testsuite/23_containers/unordered_multiset/debug/end2_neg.cc:
1091 * testsuite/23_containers/unordered_multiset/debug/insert1_neg.cc:
1093 * testsuite/23_containers/unordered_multiset/debug/insert2_neg.cc:
1095 * testsuite/23_containers/unordered_multiset/debug/insert3_neg.cc:
1097 * testsuite/23_containers/unordered_multiset/debug/
1098 invalid_local_iterator_compare_neg.cc: Likewise.
1099 * testsuite/23_containers/unordered_multiset/debug/
1100 invalid_local_iterator_range_neg.cc: Likewise.
1101 * testsuite/23_containers/unordered_multiset/debug/
1102 iterator_self_move_assign_neg.cc: Likewise.
1103 * testsuite/23_containers/unordered_multiset/debug/
1104 max_load_factor_neg.cc: Likewise.
1105 * testsuite/23_containers/unordered_multiset/debug/
1106 self_move_assign_neg.cc: Likewise.
1107 * testsuite/23_containers/unordered_multiset/debug/
1108 use_erased_local_iterator_neg.cc: Likewise.
1109 * testsuite/23_containers/unordered_multiset/debug/
1110 use_invalid_iterator_neg.cc: Likewise.
1111 * testsuite/23_containers/unordered_multiset/debug/
1112 use_invalid_local_iterator_neg.cc: Likewise.
1113 * testsuite/23_containers/unordered_set/debug/60499.cc: Likewise.
1114 * testsuite/23_containers/unordered_set/debug/begin1_neg.cc: Likewise.
1115 * testsuite/23_containers/unordered_set/debug/begin2_neg.cc: Likewise.
1116 * testsuite/23_containers/unordered_set/debug/bucket_size_neg.cc:
1118 * testsuite/23_containers/unordered_set/debug/cbegin_neg.cc: Likewise.
1119 * testsuite/23_containers/unordered_set/debug/cend_neg.cc: Likewise.
1120 * testsuite/23_containers/unordered_set/debug/construct1_neg.cc:
1122 * testsuite/23_containers/unordered_set/debug/construct2_neg.cc:
1124 * testsuite/23_containers/unordered_set/debug/construct3_neg.cc:
1126 * testsuite/23_containers/unordered_set/debug/end1_neg.cc: Likewise.
1127 * testsuite/23_containers/unordered_set/debug/end2_neg.cc: Likewise.
1128 * testsuite/23_containers/unordered_set/debug/insert1_neg.cc: Likewise.
1129 * testsuite/23_containers/unordered_set/debug/insert2_neg.cc: Likewise.
1130 * testsuite/23_containers/unordered_set/debug/insert3_neg.cc: Likewise.
1131 * testsuite/23_containers/unordered_set/debug/
1132 invalid_local_iterator_compare_neg.cc: Likewise.
1133 * testsuite/23_containers/unordered_set/debug/
1134 invalid_local_iterator_range_neg.cc: Likewise.
1135 * testsuite/23_containers/unordered_set/debug/
1136 iterator_self_move_assign_neg.cc: Likewise.
1137 * testsuite/23_containers/unordered_set/debug/
1138 max_load_factor_neg.cc: Likewise.
1139 * testsuite/23_containers/unordered_set/debug/
1140 self_move_assign_neg.cc: Likewise.
1141 * testsuite/23_containers/unordered_set/debug/
1142 use_erased_local_iterator_neg.cc: Likewise.
1143 * testsuite/23_containers/unordered_set/debug/
1144 use_invalid_iterator_neg.cc: Likewise.
1145 * testsuite/23_containers/unordered_set/debug/
1146 use_invalid_local_iterator_neg.cc: Likewise.
1147 * testsuite/23_containers/vector/debug/52433.cc: Likewise.
1148 * testsuite/23_containers/vector/debug/60499.cc: Likewise.
1149 * testsuite/23_containers/vector/debug/bool/shrink_to_fit.cc: Likewise.
1150 * testsuite/23_containers/vector/debug/
1151 iterator_self_move_assign_neg.cc: Likewise.
1152 * testsuite/23_containers/vector/debug/self_move_assign_neg.cc:
1154 * testsuite/23_containers/vector/debug/shrink_to_fit.cc: Likewise.
1155 * testsuite/25_algorithms/pop_heap/complexity.cc: Likewise.
1156 * testsuite/25_algorithms/push_heap/complexity.cc: Likewise.
1157 * testsuite/25_algorithms/sort_heap/complexity.cc: Likewise.
1158 * testsuite/29_atomics/atomic/60658.cc: Likewise.
1159 * testsuite/29_atomics/atomic/60695.cc: Likewise.
1160 * testsuite/29_atomics/atomic/62259.cc: Likewise.
1161 * testsuite/29_atomics/atomic/64658.cc: Likewise.
1162 * testsuite/29_atomics/atomic/cons/49445.cc: Likewise.
1163 * testsuite/29_atomics/atomic/operators/51811.cc: Likewise.
1164 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
1167 2016-09-11 Jonathan Wakely <jwakely@redhat.com>
1169 * libsupc++/new_opant.cc: Include exception_defines.h.
1170 * libsupc++/new_opvant.cc: Likewise.
1172 2016-09-09 Jason Merrill <jason@redhat.com>
1174 Implement P0035R4, C++17 new of over-aligned types.
1175 * libsupc++/new: Declare aligned new/delete operators.
1176 * config/abi/pre/gnu.ver: Export them.
1177 * configure.ac: Check for aligned_alloc, posix_memalign, memalign,
1179 * libsupc++/new_opa.cc: New.
1180 * libsupc++/new_opant.cc: New.
1181 * libsupc++/new_opva.cc: New.
1182 * libsupc++/new_opva.cc: New.
1183 * libsupc++/del_opa.cc: New.
1184 * libsupc++/del_opant.cc: New.
1185 * libsupc++/del_opsa.cc: New.
1186 * libsupc++/del_opva.cc: New.
1187 * libsupc++/del_opvant.cc: New.
1188 * libsupc++/del_opvsa.cc: New.
1189 * libsupc++/Makefile.am: Build them.
1191 2016-09-05 Tim Shen <timshen@google.com>
1193 * include/std/variant: include bits/move.h for std::addressof.
1195 2016-09-05 Mikhail Strelnikov <mikhail.strelnikov@gmail.com>
1197 * include/std/variant (_Variant_storage::_M_storage()): Use
1198 std::addressof instead of operator& to take address.
1200 2016-09-02 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
1202 * acinclude.m4 (GLIBCXX_CONFIGURE_TESTSUITE): Check for presence of
1203 setrlimit on both native and cross targets.
1204 * configure: Regenerate.
1206 2016-08-31 Jonathan Wakely <jwakely@redhat.com>
1208 * include/bits/shared_ptr.h (_Assignable): New alias template.
1209 (shared_ptr::operator=(const shared_ptr<_Tp1>&))
1210 (shared_ptr::operator=(shared_ptr<_Tp1>&&))
1211 (shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
1213 * include/bits/shared_ptr_base.h (_Assignable): New alias template.
1214 (__shared_ptr::operator=(const __shared_ptr<_Tp1>&))
1215 (__shared_ptr::operator=(__shared_ptr<_Tp1>&&))
1216 (__shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
1218 (__shared_ptr::reset(_Tp1*), __shared_ptr::reset(_Tp1*, _Deleter))
1219 (__shared_ptr::reset(_Tp1*, _Deleter, _Alloc)): Constrain with
1221 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Change dg-error to
1223 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
1224 * testsuite/20_util/shared_ptr/assign/sfinae.cc: New test.
1225 * testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc: Update
1226 expected errors. Remove unnecessary code.
1227 * testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc: New test.
1229 * include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Move
1231 * testsuite/23_containers/set/move_comparison.cc: New test.
1233 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
1236 2016-08-30 Ville Voutilainen <ville.voutilainen@gmail.com>
1239 * include/std/type_traits (is_constructible): Forward-declare...
1240 (__is_base_to_derived_ref): ...and use here.
1241 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
1242 * testsuite/20_util/is_constructible/77395.cc: New.
1243 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust.
1244 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1246 * testsuite/20_util/tuple/77395.cc: New.
1248 2016-08-30 Uros Bizjak <ubizjak@gmail.com>
1250 * testsuite/22_locale/time_get/get/char/2.cc: Move dg-do run
1251 directive above dg-require-namedlocale directive.
1252 * testsuite/22_locale/time_get/get/wchar_t/2.cc: Ditto.
1253 * testsuite/27_io/manipulators/extended/get_time/char/2.cc: Ditto.
1254 * testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc: Ditto.
1255 * testsuite/27_io/manipulators/extended/put_time/char/2.cc: Ditto.
1256 * testsuite/27_io/manipulators/extended/put_time/wchar_t/2.cc: Ditto.
1258 2016-08-27 Tim Shen <timshen@google.com>
1261 * include/bits/regex_compiler.tcc(_M_insert_bracket_matcher,
1262 _M_expression_term): Modify to support dash literal.
1263 * include/bits/regex_scanner.h: Add dash as a token type to make
1264 a different from the mandated dash literal by escaping.
1265 * include/bits/regex_scanner.tcc(_M_scan_in_bracket): Emit dash
1266 token in bracket expression parsing.
1267 * testsuite/28_regex/regression.cc: Add new testcases.
1269 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
1272 * doc/xml/manual/intro.xml: Document DR 2127 change.
1273 * doc/html/*: Regenerate.
1274 * include/bits/stl_raw_storage_iter.h (operator=(_Tp&&)): Add.
1275 (operator++(), operator++(int)): Use injected class name.
1276 * testsuite/20_util/raw_storage_iterator/dr2127.cc: New test.
1278 * testsuite/*: Use { target c++11 } or { target c++14 } instead of
1279 using -std in dg-options.
1281 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
1282 Pedro Alves <palves@redhat.com>
1284 * testsuite/lib/gdb-test.exp (gdb-dg-runtest): Define wrapper to save
1285 and restore dg-interpreter-batch-mode.
1286 * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Use
1287 gdb-dg-runtest instead of dg-runtest.
1288 * testsuite/libstdc++-xmethods/xmethods.exp: Likewise.
1290 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
1292 * config/abi/pre/gnu.ver (GLIBCXX_3.4, GLIBCXX_3.4.21): Use more
1293 precise patterns for basic_string constructors.
1294 (GLIBCXX_3.4.23): Export new constructors.
1295 * doc/xml/manual/intro.xml: Document LWG 2583 status.
1296 * doc/html/*: Regenerate.
1297 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1298 (basic_string(const basic_string&, size_type, const Alloc&)): Add
1299 new constructor for LWG 2583.
1300 (basic_string(const basic_string&, size_type, size_type)): Remove
1302 [!_GLIBCXX_USE_CXX11_ABI]: Likewise.
1303 * include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]: Define it.
1304 * testsuite/21_strings/basic_string/cons/char/8.cc: New test.
1305 * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: New test.
1307 2016-08-24 Aditya Kumar <hiraditya@msn.com>
1309 * include/bits/algorithmfwd.h: Remove trailing whitespace.
1310 * include/bits/shared_ptr_base.h: Likewise.
1312 2016-08-23 Jonathan Wakely <jwakely@redhat.com>
1314 * include/debug/array (array): Add _GLIBCXX17_CONSTEXPR.
1315 * include/profile/array (array): Likewise.
1316 (array::swap): Fix exception specification for zero-sized arrays.
1319 * include/bits/stl_tree.h (_Rb_tree::_M_move_assign): New functions.
1320 (_Rb_tree::operator=(_Rb_tree&&)): Dispatch to _M_move_assign.
1321 * testsuite/23_containers/map/77334.cc: New test.
1323 * doc/xml/manual/using.xml: Remove reference to -pthreads option.
1324 * doc/html/*: Regenerate.
1326 * testsuite/experimental/feat-cxx14.cc: Only preprocess, not compile.
1327 * testsuite/experimental/feat-lib-fund.cc: Likewise.
1330 * include/bits/stl_iterator.h
1331 (operator-(reverse_iterator<Iter>, reverse_iterator<Iter>): Only
1332 define for C++98 mode.
1333 (operator-(move_iterator<Iter>, move_iterator<Iter>): Don't define.
1334 * testsuite/24_iterators/headers/iterator/synopsis.cc: Use
1336 * testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: New test.
1337 * testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: New test.
1338 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: New test.
1339 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Don't test
1340 difference operator.
1341 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc: Only test
1342 difference operator for C++98.
1343 * testsuite/24_iterators/reverse_iterator/71771.cc: New test.
1345 * include/bits/c++config (_GLIBCXX17_CONSTEXPR): Define.
1346 * include/bits/range_access.h (begin, end, rbegin, rend, crbegin)
1347 (crend): Add _GLIBCXX17_CONSTEXPR as per P0031R0.
1348 * include/bits/stl_iterator.h (reverse_iterator, move_iterator)
1349 (__make_reverse_iterator, make_reverse_iterator, make_move_iterator):
1351 * include/bits/stl_iterator_base_funcs.h (__distance, __advance): Add
1352 _GLIBCXX14_CONSTEXPR.
1353 (distance, advance, next, prev): Add _GLIBCXX17_CONSTEXPR.
1354 * include/std/array (array::begin, array::end, array::rbegin)
1355 (array::rend, array::cbegin, array:cend, array::crbegin)
1356 (array::crend, array::operator[], array::at, array::front)
1357 (array::back, array::data): Likewise.
1358 * testsuite/24_iterators/headers/iterator/range_access.cc: Replace
1359 with separate tests for C++11, C++14, and C++17.
1360 * testsuite/24_iterators/headers/iterator/range_access_c++11.cc: New.
1361 * testsuite/24_iterators/headers/iterator/range_access_c++14.cc: New.
1362 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc: New.
1364 2016-08-22 Tim Shen <timshen@google.com>
1366 Split _M_dfs() into smaller functions.
1367 * regex_executor.h(_M_handle_repeat, _M_handle_subexpr_begin)
1368 (_M_handle_subexpr_end, _M_handle_line_begin_assertion)
1369 (_M_handle_line_end_assertion, _M_handle_word_boundary)
1370 (_M_handle_subexpr_lookahead, _M_handle_match)
1371 (_M_handle_backref, _M_handle_accept, _M_handle_alternative):
1372 Add separate function declarations.
1373 * regex_executor.tcc: Split _M_dfs() into multiple handler functions.
1375 2016-08-22 Gleb Natapov <gleb@scylladb.com>
1378 * config/abi/pre/gnu-versioned-namespace.ver: Export
1379 __cxa_init_primary_exception and std::exception_ptr(void*).
1380 * config/abi/pre/gnu.ver (CXXABI_1.3.11) : Add new symbol version and
1381 export __cxa_init_primary_exception and std::exception_ptr(void*).
1382 * include/Makefile.am: Add new headers.
1383 * include/Makefile.in: Regenerate.
1384 * libsupc++/Makefile.am: Add new headers.
1385 * libsupc++/Makefile.in: Regenerate.
1386 * libsupc++/cxxabi.h (__cxa_allocate_exception): Move to ...
1387 * libsupc++/cxxabi_init_exception.h: New header.
1388 (__cxa_init_primary_exception): Declare.
1389 * libsupc++/eh_throw.cc (__cxa_init_primary_exception): Define.
1390 (__cxa_throw): Use __cxa_init_primary_exception.
1391 * libsupc++/exception (std::exception): Move to ...
1392 * libsupc++/exception.h: New header.
1393 * libsupc++/exception_ptr.h (__exception_ptr::exception_ptr): Add
1395 (__exception_ptr::__dest_thunk): New function template.
1396 (std::make_exception_ptr) [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]:
1397 Use __cxa_allocate_exception and __cxa_init_primary_exception to
1398 create exception_ptr.
1399 * libsupc++/typeinfo: Include bits/exception.h instead of exception.
1400 * testsuite/util/testsuite_abi.cc: Add CXXABI_1.3.11 version.
1402 2016-08-22 Jonathan Wakely <jwakely@redhat.com>
1404 * doc/xml/api.xml: Replace hardcoded links for specific versions with
1405 link to docs for all releases.
1406 * doc/html/*: Regenerate.
1409 * doc/xml/manual/intro.xml: Document DR 2062 change.
1410 * include/std/functional (function::swap): Add noexcept.
1411 (swap(function<Res(Args...)&, function<Res(Args...)&)): Likewise.
1412 * testsuite/20_util/function/77322.cc: New test.
1414 2016-08-19 Jonathan Wakely <jwakely@redhat.com>
1416 * testsuite/21_strings/basic_string/pthread18185.cc: Use -pthread for
1417 *-*-solaris* instead of -pthreads.
1418 * testsuite/21_strings/basic_string/pthread4.cc : Likewise.
1419 * testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
1420 * testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
1421 * testsuite/23_containers/list/pthread1.cc: Likewise.
1422 * testsuite/23_containers/list/pthread5.cc: Likewise.
1423 * testsuite/23_containers/map/pthread6.cc: Likewise.
1424 * testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
1425 * testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
1426 * testsuite/30_threads/shared_mutex/*: Likewise.
1427 * testsuite/ext/rope/pthread7-rope.cc: Likewise.
1428 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
1429 default_weaktoshared.cc: Likewise.
1430 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
1431 mutex_weaktoshared.cc: Likewise.
1432 * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise. Use
1433 dg-require-effective-target instead of using -std option.
1434 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
1436 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
1437 * testsuite/23_containers/vector/debug/multithreaded_swap.cc:
1439 * testsuite/30_threads/async/*: Likewise.
1440 * testsuite/30_threads/call_once/*: Likewise.
1441 * testsuite/30_threads/condition_variable/*: Likewise.
1442 * testsuite/30_threads/condition_variable_any/*: Likewise.
1443 * testsuite/30_threads/future/*: Likewise.
1444 * testsuite/30_threads/lock/*: Likewise.
1445 * testsuite/30_threads/mutex/*: Likewise.
1446 * testsuite/30_threads/packaged_task/*: Likewise.
1447 * testsuite/30_threads/promise/*: Likewise.
1448 * testsuite/30_threads/recursive_mutex/*: Likewise.
1449 * testsuite/30_threads/recursive_timed_mutex/*: Likewise.
1450 * testsuite/30_threads/shared_future/*: Likewise.
1451 * testsuite/30_threads/shared_lock/*: Likewise.
1452 * testsuite/30_threads/shared_timed_mutex/*: Likewise.
1453 * testsuite/30_threads/this_thread/*: Likewise.
1454 * testsuite/30_threads/thread/*: Likewise.
1455 * testsuite/30_threads/timed_mutex/*: Likewise.
1456 * testsuite/30_threads/try_lock/*: Likewise.
1457 * testsuite/30_threads/unique_lock/*: Likewise.
1459 * doc/xml/manual/status_cxx2017.xml: Update status of not_fn.
1460 * doc/html/*: Regenerate.
1461 * include/experimental/functional (_Not_fn, not_fn): Match C++17
1463 * include/std/functional (_Not_fn, not_fn): Define for C++17.
1464 * testsuite/20_util/not_fn/1.cc: New.
1465 * testsuite/experimental/functional/not_fn.cc: Test abstract class.
1466 Remove test for volatile-qualified wrapper.
1468 * include/std/atomic (atomic::is_always_lock_free): Define.
1469 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
1470 * testsuite/29_atomics/atomic/is_always_lock_free.cc: New.
1471 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc: New.
1472 * doc/xml/manual/status_cxx2017.xml: Update status.
1473 * doc/html/*: Regenerate.
1475 * include/experimental/tuple (apply): Qualify call to __apply_impl.
1476 * include/std/tuple (apply): Likewise.
1477 * testsuite/experimental/system_error/value.cc: Fix ambiguities in
1479 * testsuite/experimental/tuple/tuple_size.cc: Likewise.
1480 * testsuite/experimental/type_traits/value.cc: Likewise.
1482 * doc/xml/manual/status_cxx2017.xml: Update status of make_from_tuple
1484 * doc/html/*: Regenerate.
1486 2016-08-18 Ville Voutilainen <ville.voutilainen@gmail.com>
1488 Implement the latest proposed resolution of LWG 2756.
1489 * include/std/optional (Optional_base(const _Tp&))
1490 (Optional_base(_Tp&&), using _Base::_Base): Remove.
1491 (optional(nullopt_t)): New.
1492 (optional(_Up&&)): Invoke base directly with in_place
1493 rather than creating a temporary, add default template
1494 argument, change constraints.
1495 (optional(const optional<_Up>&)): Invoke base directly
1496 with in_place, remove unnecessary constraints.
1497 (optional(optional<_Up>&& __t)): Likewise.
1498 (optional(in_place_t, _Args&&...)): New.
1499 (optional(in_place_t, initializer_list<_Up>, _Args&&...)): Likewise.
1500 (operator=(_Up&&)): Add default template argument, change constraints.
1501 (operator=(const optional<_Up>&)): Put is_same first in the
1503 (operator=(optional<_Up>&&)): Likewise.
1504 * testsuite/20_util/optional/assignment/5.cc: Add a test to
1505 verify assignment from something that can't be perfect-forwarded.
1506 * testsuite/20_util/optional/cons/value.cc: Add tests to verify
1507 that a nested optional is disengaged when constructed
1508 from a disengaged element type, and to verify that assignments
1509 from an engaged element type engage the optional.
1511 2016-08-18 Tim Shen <timshen@google.com>
1515 * include/Makefile.am: Add new file std/variant.
1516 * include/Makefile.in: Generated from Makefile.am.
1517 * include/bits/enable_special_members.h: Add a tag type to allow
1518 the construction in non-default constructor.
1519 * include/bits/uses_allocator.h: Add convenience traits to
1520 detect constructibility.
1521 * include/std/variant: Implement <variant>.
1522 * testsuite/20_util/variant/compile.cc: Compile-time tests.
1523 * testsuite/20_util/variant/run.cc: Runtime tests.
1525 2016-08-18 Jonathan Wakely <jwakely@redhat.com>
1527 * doc/xml/manual/test.xml (test.run.permutations): Expand section.
1528 (test.new_tests): Rewrite section.
1529 (tests.dg.directives): New section.
1530 * doc/html/*: Regenerate.
1532 * doc/xml/manual/test.xml: Improve documentation of test targets.
1533 Document new-abi-baseline, check-debug, and check-parallel targets.
1535 * doc/xml/manual/build_hacking.xml: New section on shared library
1538 * doc/xml/manual/build_hacking.xml: Improve markup.
1539 * doc/xml/manual/test.xml: Likewise. Change section title from "Test"
1541 * doc/xml/faq.xml: Change link text to "Testing".
1543 * testsuite/tr1/3_function_objects/function/10.cc: Remove unintended
1544 dg-options directive.
1546 2016-08-17 Jonathan Wakely <jwakely@redhat.com>
1548 * testsuite/20_util/reference_wrapper/invoke-2.cc: Fix invalid dg-do
1549 directive and use effective target instead of dg-options.
1551 * testsuite/20_util/hash/chi2_q_bit_flip_set.cc: Use effective target
1552 instead of -std in dg-options.
1553 * testsuite/20_util/hash/chi2_q_bit_string_set.cc: Likewise.
1554 * testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc: Likewise.
1555 * testsuite/20_util/hash/chi2_q_uniform_random.cc: Likewise.
1556 * testsuite/20_util/hash/quality.cc: Likewise.
1557 * testsuite/25_algorithms/heap/moveable.cc: Likewise.
1558 * testsuite/25_algorithms/heap/moveable2.cc: Likewise.
1559 * testsuite/25_algorithms/nth_element/random_test.cc: Likewise.
1560 * testsuite/25_algorithms/partial_sort/random_test.cc: Likewise.
1561 * testsuite/25_algorithms/partial_sort_copy/random_test.cc: Likewise.
1562 * testsuite/25_algorithms/sort/random_test.cc: Likewise.
1564 * testsuite/20_util/tuple/67844.cc: Require c++11 effective target.
1565 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Likewise.
1566 * testsuite/27_io/rvalue_streams.cc: Likewise.
1568 * testsuite/26_numerics/complex/literals/types.cc: Add comment.
1570 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
1571 Remove duplicate dg-options directive.
1573 * testsuite/ext/profile/all.cc: Use effective target instead of
1574 -std=gnu++11. Use dg-additional-options instead of repeating options.
1576 * testsuite/20_util/bind/ref_neg.cc: Use effective target instead of
1577 -std=gnu++11. Add -fno-show-columns to dg-options. Use dg-prune-output
1578 instead of dg-excess-errors.
1580 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Disable
1582 * testsuite/experimental/chrono/value.cc: Avoid ambiguities in C++17.
1583 * testsuite/experimental/ratio/value.cc: Likewise.
1584 * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Disable test for
1586 * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
1587 * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
1588 * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
1589 * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
1590 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
1591 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
1592 * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
1593 * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
1594 * testsuite/tr1/5_numerical_facilities/special_functions/
1595 10_cyl_bessel_k/airy.cc: Adjust namespace of __detail::__airy for
1596 C++17 compatibility.
1598 * testsuite/24_iterators/headers/iterator/range_access.cc: Adjust
1599 expected signatures for C++14 compatibility.
1602 * include/bits/basic_string.h (operator=(__sv_type)
1603 (append(__sv_type), assign(__sv_type), insert(size_type, __sv_type))
1604 (replace(size_type, size_type, __sv_type))
1605 (replace(const_iterator, const_iterator, __sv_type))
1606 (find(__sv_type, size_type), rfind(__sv_type, size_type))
1607 (compare(size_type, size_type, __sv_type)): Reformat.
1608 (_If_sv): Define helper for SFINAE constaints.
1609 (append(const _Tp&, size_type, size_type))
1610 (assign(const _Tp&, size_type, size_type))
1611 (insert(size_type, const _Tp&, size_type, size_type))
1612 (replace(size_type, size_type, const _Tp&, size_type, size_type)):
1614 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc: Test
1616 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
1618 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1620 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
1622 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
1624 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
1626 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
1628 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
1630 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1632 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
1634 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
1637 2016-08-16 Jonathan Wakely <jwakely@redhat.com>
1640 * include/bits/stl_bvector.h (_Bvector_base::_M_deallocate): Zero
1641 pointers to start and end of storage.
1642 * testsuite/23_containers/vector/bool/72847.cc: New test.
1643 * include/bits/vector.tcc (vector<bool>::_M_reallocate): Only update
1644 _M_finish after deallocating.
1645 (vector<bool>::_M_fill_insert): Likewise.
1646 (vector<bool>::_M_insert_range): Likewise.
1647 (vector<bool>::_M_insert_aux): Likewise.
1649 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1651 Implement LWG 2744 and LWG 2754.
1652 * include/std/any (any(ValueType&&)): Constrain with __is_in_place_type.
1653 (any(in_place_type_t<_ValueType>, _Args&&...)): Use _Decay.
1654 (any(in_place_type_t<_ValueType>, initializer_list<_Up>, _Args&&...)):
1656 (emplace(_Args&&...)): Likewise.
1657 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
1658 * include/std/utility: (__is_in_place_type_impl): New.
1659 (__is_in_place_type): Likewise.
1660 * testsuite/20_util/any/assign/emplace.cc: Add tests for decaying
1662 * testsuite/20_util/any/cons/in_place.cc: Add tests for decaying
1663 in_place constructor.
1664 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
1665 * testsuite/20_util/any/requirements.cc: Add a test for
1666 in_place-constructing a non-default-constructible type.
1668 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1670 Add a feature macro for C++17 make_from_tuple.
1671 * include/std/tuple (__cpp_lib_make_from_tuple): New.
1672 (__make_from_tuple_impl(_Tuple&&, index_sequence<_Idx...>)):
1673 Qualify the call to get<>().
1674 * testsuite/20_util/tuple/make_from_tuple/1.cc: Adjust.
1676 2016-08-15 Uros Bizjak <ubizjak@gmail.com>
1678 * src/filesystem/ops.cc: Always include ostream and
1679 ext/stdio_filebuf.h.
1680 (do_copy_file): Check if _GLIBCXX_USE_FCHMODAT is defined.
1681 [_GLIBCXX_USE_SENDFILE]: Fallback to read/write operations in case
1682 sendfile fails with ENOSYS or EINVAL.
1684 2016-08-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
1687 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Fix dg-error
1690 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1692 Implement C++17 make_from_tuple.
1693 * include/std/tuple (__make_from_tuple_impl, make_from_tuple): New.
1694 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
1696 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1699 * include/bits/basic_string.h
1700 (append(__sv_type, size_type, size_type)): Turn into a template,
1701 change parameter type, constrain, add a conversion to __sv_type
1702 from the dependent parameter type.
1703 (assign(__sv_type, size_type, size_type)): Likewise.
1704 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
1705 (replace(size_type, size_type, __sv_type, size_type, size_type)):
1707 (compare(size_type, size_type,__sv_type, size_type, size_type)):
1709 * testsuite/21_strings/basic_string/lwg2758.cc: New.
1711 2016-08-06 Jonathan Wakely <jwakely@redhat.com>
1713 * doc/xml/manual/status_cxx2017.xml: Update status table.
1714 * doc/html/manual/status.html: Regenerate.
1716 * testsuite/lib/libstdc++.exp: Fix typo in comment.
1719 * include/std/functional (_Function_base::_Base_manager::_M_clone):
1720 Qualify new operator.
1721 * testsuite/20_util/function/cons/72820.cc: New test.
1723 * doc/xml/manual/status_cxx2017.xml: Add missing LFTSv2 features.
1724 * doc/html/manual/status.html: Regenerate.
1725 * include/Makefile.am: Add new header.
1726 * include/Makefile.in: Regenerate.
1727 * include/bits/invoke.h: New header.
1728 (__invoke): Make constexpr. Add && to types in exception specification.
1729 * include/experimental/tuple (apply, __apply_impl): Fix non-reserved
1730 names. Include <bits/invoke.h> and use std::__invoke.
1731 * include/std/functional (__invfwd, __invoke_impl, __invoke): Move to
1733 (invoke): Add && to types in exception specification.
1734 * include/std/tuple (apply, __apply_impl): Define for C++17.
1735 * testsuite/20_util/tuple/apply/1.cc: New test.
1736 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error
1739 2016-08-05 Jonathan Wakely <jwakely@redhat.com>
1741 * doc/xml/manual/status_cxx2017.xml: Correct shared_from_this status.
1742 * doc/html/manual/status.html: Regenerate.
1744 * include/std/chrono (floor, ceil, round, abs): New for C++17.
1745 * testsuite/20_util/duration_cast/rounding.cc: New test.
1746 * testsuite/20_util/time_point_cast/rounding.cc: New test.
1747 * doc/xml/manual/status_cxx2017.xml: Update status table.
1748 * doc/html/manual/status.html: Regenerate.
1749 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust
1751 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1752 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1753 * testsuite/20_util/duration/literals/range.cc: Likewise.
1755 * include/std/functional (__callable_functor): Remove.
1756 (_Function_handler::_M_invoke): Use __invoke instead of
1757 __callable_functor or mem_fn.
1758 (function::_Callable): Use lvalue in result_of expression.
1759 (function): Remove TODO comments about allocators.
1760 * testsuite/20_util/function/cons/refqual.cc: New test.
1762 2016-08-04 Jonathan Wakely <jwakely@redhat.com>
1764 * doc/xml/manual/status_cxx2017.xml: Update status table.
1765 * include/std/functional (__inv_unwrap): Move to <type_traits>.
1766 (__invoke_impl): Remove exception specifications.
1767 (__invoke, invoke): Add exception specifications using
1768 __is_nothrow_callable.
1769 * include/std/type_traits (__inv_unwrap): Move from <functional>.
1770 (__is_callable_impl, __call_is_nt, __call_is_nothrow): New helpers.
1771 (__is_callable, __is_nothrow_callable): New traits.
1772 (is_callable, is_callable_v): New C++17 traits.
1773 (is_nothrow_callable, is_nothrow_callable_v): Likewise.
1774 * testsuite/20_util/is_callable/requirements/
1775 explicit_instantiation.cc: New test.
1776 * testsuite/20_util/is_callable/requirements/
1777 explicit_instantiation_ext.cc: New test.
1778 * testsuite/20_util/is_callable/requirements/typedefs.cc: New test.
1779 * testsuite/20_util/is_callable/requirements/typedefs_ext.cc: New
1781 * testsuite/20_util/is_callable/value.cc: New test.
1782 * testsuite/20_util/is_callable/value_ext.cc: New test.
1783 * testsuite/20_util/is_nothrow_callable/requirements/
1784 explicit_instantiation.cc: New test.
1785 * testsuite/20_util/is_nothrow_callable/requirements/
1786 explicit_instantiation_ext.cc: New test.
1787 * testsuite/20_util/is_nothrow_callable/requirements/typedefs.cc:
1789 * testsuite/20_util/is_nothrow_callable/requirements/typedefs_ext.cc:
1791 * testsuite/20_util/is_nothrow_callable/value.cc: New test.
1792 * testsuite/20_util/is_nothrow_callable/value_ext.cc: New test.
1794 * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
1795 * doc/html/manual/status.html: Regenerate.
1797 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Use
1798 effective target not dg-options. Move check for feature-test macro to:
1799 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
1802 * include/std/functional (_Unwrap): Rename to __inv_unwrap.
1804 (__invoke_impl): Remove unused template parameters.
1805 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
1807 * testsuite/20_util/function_objects/invoke/ref_ext.cc: Copy 59768.cc
1808 and test __invoke extension for C++11.
1810 2016-08-03 Jonathan Wakely <jwakely@redhat.com>
1812 * include/bits/shared_ptr_base.h (__cpp_lib_enable_shared_from_this):
1813 Define feature-test macro.
1814 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Test
1817 * include/bits/shared_ptr.h (shared_ptr::weak_type): Define.
1818 * include/bits/shared_ptr_base.h (__shared_ptr::weak_type): Define.
1819 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
1820 * testsuite/20_util/shared_ptr/requirements/weak_type.cc: New test.
1821 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
1823 * include/std/utility (as_const): Define.
1824 * testsuite/20_util/as_const/1.cc: New test.
1825 * testsuite/20_util/as_const/rvalue_neg.cc: New test.
1827 * include/bits/shared_ptr.h (owner_less): Add default template
1829 * include/bits/shared_ptr_base.h (_Sp_owner_less<void, void>): Define
1831 (owner_less<void>): Define specialization.
1832 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
1834 * testsuite/20_util/owner_less/void.cc: New test.
1835 * testsuite/experimental/feat-cxx14.cc: Update macro value tested.
1837 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
1838 Define feature-test macro.
1839 * include/bits/range_access.h (__cpp_lib_array_constexpr): Likewise.
1840 * include/std/shared_mutex (__cpp_lib_shared_mutex): Uncomment.
1841 * include/std/type_traits (__cpp_lib_logical_traits): Fix value.
1842 (__cpp_lib_type_trait_variable_templates): Define.
1844 * include/bits/stl_function.h: Remove commented-out macro.
1845 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
1846 Define feature-test macro.
1847 * testsuite/experimental/feat-cxx14.cc: Add tests for more macros.
1849 * include/bits/c++config (_GLIBCXX_USE_STD_SPEC_FUNCS): Define for
1850 C++17, or for C++11/C++14 when __STDCPP_WANT_MATH_SPEC_FUNCS__ is
1852 * include/bits/specfun.h [!__STDCPP_WANT_MATH_SPEC_FUNCS__]: Don't
1853 do #error for C++17.
1854 * include/c_global/cmath: Check _GLIBCXX_USE_STD_SPEC_FUNCS instead
1855 of __STDCPP_WANT_MATH_SPEC_FUNCS__.
1856 * include/tr1/bessel_function.tcc: Likewise.
1857 * include/tr1/beta_function.tcc: Likewise.
1858 * include/tr1/cmath: Likewise.
1859 * include/tr1/ell_integral.tcc: Likewise.
1860 * include/tr1/exp_integral.tcc: Likewise.
1861 * include/tr1/gamma.tcc: Likewise.
1862 * include/tr1/hypergeometric.tcc: Likewise.
1863 * include/tr1/legendre_function.tcc: Likewise.
1864 * include/tr1/modified_bessel_func.tcc: Likewise.
1865 * include/tr1/poly_hermite.tcc: Likewise.
1866 * include/tr1/poly_laguerre.tcc: Likewise.
1867 * include/tr1/riemann_zeta.tcc: Likewise.
1868 * include/tr1/special_function_util.h: Likewise.
1869 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc: New.
1871 * include/std/type_traits (has_trivial_default_constructor): Remove.
1872 (has_trivial_copy_constructor, has_trivial_copy_assign): Likewise.
1873 * testsuite/20_util/has_trivial_copy_assign/requirements/
1874 explicit_instantiation.cc: Remove test.
1875 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
1877 * testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc:
1879 * testsuite/20_util/has_trivial_copy_assign/value.cc: Likewise.
1880 * testsuite/20_util/has_trivial_copy_constructor/requirements/
1881 explicit_instantiation.cc: Likewise.
1882 * testsuite/20_util/has_trivial_copy_constructor/requirements/
1883 typedefs.cc: Likewise.
1884 * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise.
1885 * testsuite/20_util/has_trivial_default_constructor/requirements/
1886 explicit_instantiation.cc: Likewise.
1887 * testsuite/20_util/has_trivial_default_constructor/requirements/
1888 typedefs.cc: Likewise.
1889 * testsuite/20_util/has_trivial_default_constructor/value.cc:
1891 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
1892 Check has_trivial_default_constructor, has_trivial_copy_constructor,
1893 and has_trivial_copy_assign are not defined.
1894 * testsuite/20_util/pair/requirements/dr801.cc: Remove commented out
1896 * testsuite/20_util/tuple/requirements/dr801.cc: Likewise.
1897 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
1898 dg-error line number.
1899 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1902 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
1904 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
1905 Remove reundant check for _GLIBCXX_USE_WCHAR_T and fix char type.
1906 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
1908 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
1910 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
1912 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
1914 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
1916 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
1919 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Improve
1922 * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Move
1923 dg-error to relevant line.
1924 * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc:
1926 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
1928 * scripts/testsuite_flags.in: Add -fno-show-column to cxxflags.
1930 * testsuite/18_support/bad_exception/23591_thread-1.c: Skip test if
1931 options are present that aren't valid for C.
1932 * testsuite/abi/header_cxxabi.c: Likewise.
1934 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/
1935 check_value.cc: Do not add special functions to namespace std in TR1
1938 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Only
1939 run for C++11 and later.
1940 * testsuite/ext/special_functions/conf_hyperg/check_value.cc:
1942 * testsuite/ext/special_functions/conf_hyperg/compile.cc: Likewise.
1943 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
1944 * testsuite/ext/special_functions/hyperg/check_value.cc: Likewise.
1945 * testsuite/ext/special_functions/hyperg/compile.cc: Likewise.
1946 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
1948 * testsuite/special_functions/01_assoc_laguerre/check_value.cc:
1950 * testsuite/special_functions/01_assoc_laguerre/compile.cc: Likewise.
1951 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc:
1953 * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
1955 * testsuite/special_functions/02_assoc_legendre/check_value.cc:
1957 * testsuite/special_functions/02_assoc_legendre/compile.cc: Likewise.
1958 * testsuite/special_functions/02_assoc_legendre/compile_2.cc:
1959 * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
1960 * testsuite/special_functions/03_beta/check_value.cc: Likewise.
1961 * testsuite/special_functions/03_beta/compile.cc: Likewise.
1962 * testsuite/special_functions/03_beta/compile_2.cc: Likewise.
1963 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: Likewise.
1964 * testsuite/special_functions/04_comp_ellint_1/check_value.cc:
1966 * testsuite/special_functions/04_comp_ellint_1/compile.cc: Likewise.
1967 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Likewise.
1968 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: Likewise.
1969 * testsuite/special_functions/05_comp_ellint_2/check_value.cc:
1971 * testsuite/special_functions/05_comp_ellint_2/compile.cc: Likewise.
1972 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Likewise.
1973 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: Likewise.
1974 * testsuite/special_functions/06_comp_ellint_3/check_value.cc:
1976 * testsuite/special_functions/06_comp_ellint_3/compile.cc: Likewise.
1977 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Likewise.
1978 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: Likewise.
1979 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc:
1981 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: Likewise.
1982 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Likewise.
1983 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: Likewise.
1984 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: Likewise.
1985 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc:
1987 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: Likewise.
1988 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Likewise.
1989 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: Likewise.
1990 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc:
1992 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: Likewise.
1993 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Likewise.
1994 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: Likewise.
1995 * testsuite/special_functions/10_cyl_neumann/check_value.cc: Likewise.
1996 * testsuite/special_functions/10_cyl_neumann/compile.cc: Likewise.
1997 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Likewise.
1998 * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
1999 * testsuite/special_functions/11_ellint_1/check_value.cc: Likewise.
2000 * testsuite/special_functions/11_ellint_1/compile.cc: Likewise.
2001 * testsuite/special_functions/11_ellint_1/compile_2.cc: Likewise.
2002 * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
2003 * testsuite/special_functions/12_ellint_2/check_value.cc: Likewise.
2004 * testsuite/special_functions/12_ellint_2/compile.cc: Likewise.
2005 * testsuite/special_functions/12_ellint_2/compile_2.cc: Likewise.
2006 * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
2007 * testsuite/special_functions/13_ellint_3/check_value.cc: Likewise.
2008 * testsuite/special_functions/13_ellint_3/compile.cc: Likewise.
2009 * testsuite/special_functions/13_ellint_3/compile_2.cc: Likewise.
2010 * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
2011 * testsuite/special_functions/14_expint/check_value.cc: Likewise.
2012 * testsuite/special_functions/14_expint/compile.cc: Likewise.
2013 * testsuite/special_functions/14_expint/compile_2.cc: Likewise.
2014 * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
2015 * testsuite/special_functions/15_hermite/check_value.cc: Likewise.
2016 * testsuite/special_functions/15_hermite/compile.cc: Likewise.
2017 * testsuite/special_functions/15_hermite/compile_2.cc: Likewise.
2018 * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
2019 * testsuite/special_functions/16_laguerre/check_value.cc: Likewise.
2020 * testsuite/special_functions/16_laguerre/compile.cc: Likewise.
2021 * testsuite/special_functions/16_laguerre/compile_2.cc: Likewise.
2022 * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
2023 * testsuite/special_functions/17_legendre/check_value.cc: Likewise.
2024 * testsuite/special_functions/17_legendre/compile.cc: Likewise.
2025 * testsuite/special_functions/17_legendre/compile_2.cc: Likewise.
2026 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: Likewise.
2027 * testsuite/special_functions/18_riemann_zeta/check_value.cc:
2029 * testsuite/special_functions/18_riemann_zeta/compile.cc: Likewise.
2030 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Likewise.
2031 * testsuite/special_functions/19_sph_bessel/check_nan.cc: Likewise.
2032 * testsuite/special_functions/19_sph_bessel/check_value.cc: Likewise.
2033 * testsuite/special_functions/19_sph_bessel/compile.cc: Likewise.
2034 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Likewise.
2035 * testsuite/special_functions/20_sph_legendre/check_nan.cc: Likewise.
2036 * testsuite/special_functions/20_sph_legendre/check_value.cc:
2038 * testsuite/special_functions/20_sph_legendre/compile.cc: Likewise.
2039 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Likewise.
2040 * testsuite/special_functions/21_sph_neumann/check_nan.cc: Likewise.
2041 * testsuite/special_functions/21_sph_neumann/check_value.cc: Likewise.
2042 * testsuite/special_functions/21_sph_neumann/compile.cc: Likewise.
2043 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Likewise.
2045 * testsuite/tr1/5_numerical_facilities/special_functions/
2046 08_cyl_bessel_i/check_value.cc: Use __attribute__((unused)) instead
2048 * testsuite/tr1/5_numerical_facilities/special_functions/
2049 09_cyl_bessel_j/check_value.cc: Likewise.
2050 * testsuite/tr1/5_numerical_facilities/special_functions/
2051 10_cyl_bessel_k/check_value.cc: Likewise.
2052 * testsuite/tr1/5_numerical_facilities/special_functions/
2053 11_cyl_neumann/check_value.cc: Likewise.
2054 * testsuite/tr1/5_numerical_facilities/special_functions/
2055 21_sph_bessel/check_value.cc: Likewise.
2056 * testsuite/tr1/5_numerical_facilities/special_functions/
2057 23_sph_neumann/check_value.cc: Likewise.
2059 2016-08-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2061 * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
2062 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
2063 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
2064 * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
2065 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
2066 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
2068 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
2070 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: Skip
2073 * testsuite/lib/libstdc++.exp (v3-build_support): Add -fno-lto to
2074 additional flags for compiling libtestc++.a objects.
2076 2016-08-01 Jonathan Wakely <jwakely@redhat.com>
2078 * include/bits/basic_string.h (data() const): Update comment.
2079 (data()): Add non-const overload for C++17.
2080 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
2081 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
2083 * include/bits/basic_string.tcc: Disable explicit instantiation
2084 declarations for C++17.
2086 * testsuite/23_containers/unordered_map/requirements/53339.cc: Remove
2087 ignored "xfail" from { dg-do compile { xfail selector } } directive.
2088 * testsuite/23_containers/unordered_multimap/requirements/53339.cc:
2090 * testsuite/26_numerics/headers/cmath/
2091 c99_classification_macros_c++11.cc: Likewise.
2092 * testsuite/26_numerics/headers/cmath/
2093 c99_classification_macros_c++98.cc: Likewise.
2094 * testsuite/26_numerics/headers/cmath/
2095 c99_classification_macros_c.cc: Likewise.
2097 * testsuite/backward/hash_set/check_construct_destroy.cc: Account
2098 for different construct/destroy counts in C++98 mode.
2100 * testsuite/17_intro/freestanding.cc: Remove "-x c" from dg-options.
2102 * testsuite/20_util/tuple/cons/66338.cc: Limit test to C++11 and
2104 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc:
2107 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Use
2108 C++98-compatible initialization for array.
2110 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc: Remove
2111 unused header and variable from compile-only test.
2112 * testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc: Likewise.
2113 * testsuite/28_regex/basic_regex/assign/char/cstring.cc: Likewise.
2114 * testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc: Likewise.
2115 * testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc:
2118 * testsuite/experimental/string_view/operations/rfind/char/2.cc:
2119 Remove duplicate dg-options directive.
2121 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
2122 808590.cc: Use -std=gnu++98 instead of -std=gnu++03.
2124 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Remove
2125 linker options from compile-only tests.
2126 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
2129 * testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Make test
2130 supported for C++11 and later.
2131 * testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
2132 * testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.
2134 2016-08-01 Uros Bizjak <ubizjak@gmail.com>
2136 * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
2138 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
2140 * testsuite/20_util/conditional/requirements/typedefs.cc: Change to
2143 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
2144 Ensure test is compiled with optimization.
2146 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
2147 Adjust dg-prune-output pattern for error in C++98 mode.
2149 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Only
2150 run for C++11 or later.
2152 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Fix
2153 test to not rely on GNU extension (escaped normal characters in POSIX
2154 BRE). Enable tests for other strings which are now supported.
2156 * testsuite/20_util/pair/astuple/get_neg.cc: Use effective-target
2157 c++11 instead of setting -std=gnu++14.
2160 * include/std/array (get): Use positive message for static assertions.
2161 * include/std/functional (_Safe_tuple_element_t): Fix indentation.
2162 * include/std/tuple (tuple_element<I, tuple<>>): Add partial
2163 specialization for invalid indices, with static assertion.
2164 * testsuite/20_util/tuple/element_access/get_neg.cc: New test.
2166 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Move
2167 dg-error to relevant line.
2168 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
2170 * testsuite/23_containers/forward_list/requirements/dr438/
2171 assign_neg.cc: Likewise.
2172 * testsuite/23_containers/forward_list/requirements/dr438/
2173 constructor_1_neg.cc: Likewise.
2174 * testsuite/23_containers/forward_list/requirements/dr438/
2175 constructor_2_neg.cc: Likewise.
2176 * testsuite/23_containers/forward_list/requirements/dr438/
2177 insert_neg.cc: Likewise.
2178 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc:
2180 * testsuite/26_numerics/random/linear_congruential_engine/
2181 requirements/non_uint_neg.cc: Likewise.
2182 * testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc:
2183 Likewise. Also test for std::atomic_address.
2185 2016-07-31 Ville Voutilainen <ville.voutilainen@gmail.com>
2187 Add missing variable traits, fix testsuite failures.
2188 * include/bits/uses_allocator.h (uses_allocator_v): New.
2189 * include/std/functional (is_bind_expression_v, is_placeholder_v):
2191 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
2192 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
2193 * testsuite/20_util/duration/literals/range.cc: Likewise.
2194 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
2195 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
2196 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
2197 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise.
2198 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
2200 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
2201 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
2204 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
2206 * testsuite/18_support/numeric_limits/40856.cc [__STRICT_ANSI__]: Do
2207 not test 128-bit types.
2208 * testsuite/20_util/is_floating_point/value.cc: Likewise.
2209 * testsuite/20_util/is_integral/value.cc: Likewise.
2210 * testsuite/20_util/is_signed/value.cc: Likewise.
2211 * testsuite/20_util/is_unsigned/value.cc: Likewise.
2212 * testsuite/20_util/make_signed/requirements/typedefs-1.cc: Likewise.
2213 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
2214 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
2216 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
2219 * testsuite/26_numerics/headers/cstdlib/54686.c: Rename to 54686.cc.
2221 2016-07-29 Ville Voutilainen <ville.voutilainen@gmail.com>
2223 Implement C++17 variable templates for type traits.
2224 * include/std/chrono (treat_as_floating_point_v): New.
2225 * include/std/ratio (ratio_equal_v, ratio_not_equal_v)
2226 (ratio_less_v, ratio_less_equal_v, ratio_greater_v)
2227 (ratio_greater_equal_v): Likewise.
2228 * include/std/system_error (is_error_code_enum_v)
2229 (is_error_condition_enum_v): Likewise.
2230 * include/std/tuple (tuple_size_v): Likewise.
2231 * type_traits (conjunction_v, disjunction_v, negation_v)
2232 (is_void_v, is_null_pointer_v, is_integral_v, is_floating_point_v)
2233 (is_array_v, is_pointer_v, is_lvalue_reference_v)
2234 (is_rvalue_reference_v, is_member_object_pointer_v)
2235 (is_member_function_pointer_v, is_enum_v, is_union_v)
2236 (is_class_v, is_function_v, is_reference_v, is_arithmetic_v)
2237 (is_fundamental_v, is_object_v, is_scalar_v, is_compound_v)
2238 (is_member_pointer_v, is_const_v, is_volatile_v, is_trivial_v)
2239 (is_trivially_copyable_v, is_standard_layout_v)
2240 (is_pod_v, is_literal_type_v, is_empty_v, is_polymorphic_v)
2241 (is_abstract_v, is_final_v, is_signed_v, is_unsigned_v)
2242 (is_constructible_v, is_default_constructible_v)
2243 (is_copy_constructible_v, is_move_constructible_v)
2244 (is_assignable_v, is_copy_assignable_v, is_move_assignable_v)
2245 (is_destructible_v, is_trivially_constructible_v)
2246 (is_trivially_default_constructible_v)
2247 (is_trivially_copy_constructible_v, is_trivially_move_constructible_v)
2248 (is_trivially_assignable_v, is_trivially_copy_assignable_v)
2249 (is_trivially_move_assignable_v, is_trivially_destructible_v)
2250 (is_nothrow_constructible_v, is_nothrow_default_constructible_v)
2251 (is_nothrow_copy_constructible_v, is_nothrow_move_constructible_v)
2252 (is_nothrow_assignable_v, is_nothrow_copy_assignable_v)
2253 (is_nothrow_move_assignable_v, is_nothrow_destructible_v)
2254 (has_virtual_destructor_v, alignment_of_v, rank_v, extent_v)
2255 (is_same_v, is_base_of_v, is_convertible_v): Likewise.
2256 * testsuite/19_diagnostics/error_code/is_error_code_v.cc: Likewise.
2257 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
2259 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc: Likewise.
2260 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
2261 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
2263 2016-07-29 Andreas Schwab <schwab@linux-m68k.org>
2265 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
2266 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
2267 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
2269 2016-07-29 Jonathan Wakely <jwakely@redhat.com>
2271 * doc/xml/manual/abi.xml: Document 6.0.22 library version.
2272 * doc/html/manual/abi.html: Regenerate.
2274 * acinclude.m4 (libtool_VERSION): Bump to 6:23:0.
2275 * config/abi/pre/gnu.ver: Add 3.4.23 version for new basic_string
2277 * configure: Regenerate.
2278 * testsuite/util/testsuite_abi.cc: Add new symbol version.
2280 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
2281 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
2282 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Likewise.
2283 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
2285 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
2286 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
2287 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Likewise.
2289 2016-07-28 Jonathan Wakely <jwakely@redhat.com>
2291 * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
2292 Adjust dg-prune-output pattern for error in C++98 mode.
2293 * testsuite/23_containers/deque/requirements/dr438/
2294 constructor_1_neg.cc: Likewise.
2295 * testsuite/23_containers/deque/requirements/dr438/
2296 constructor_2_neg.cc: Likewise.
2297 * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
2299 * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
2301 * testsuite/23_containers/list/requirements/dr438/
2302 constructor_1_neg.cc: Likewise.
2303 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
2305 * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
2307 * testsuite/23_containers/vector/requirements/dr438/
2308 constructor_1_neg.cc: Likewise.
2309 * testsuite/23_containers/vector/requirements/dr438/
2310 constructor_2_neg.cc: Likewise.
2311 * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
2314 * testsuite/23_containers/vector/check_construct_destroy.cc: Account
2315 for different construct/destroy counts in C++98 mode.
2317 * testsuite/17_intro/headers/c++2011/stdc++.cc: Change target-specific
2318 dg-options to dg-additional-options so that default options are used.
2319 * testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc:
2321 * testsuite/17_intro/headers/c++2014/stdc++.cc: Likewise.
2322 * testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc:
2324 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
2325 Use dg-additional-options instead of repeating the common options.
2327 * testsuite/22_locale/conversions/string/1.cc: Remove unintended
2328 dg-do compile directive.
2329 * testsuite/26_numerics/headers/cmath/fabs_inline.cc: Fix syntax of
2331 * testsuite/26_numerics/valarray/const_bracket.cc: Likewise.
2333 2016-07-28 Ville Voutilainen <ville.voutilainen@gmail.com>
2335 Implement std::string_view and P0254r2,
2336 Integrating std::string_view and std::string.
2337 * include/Makefile.am: Add string_view and string_view.tcc
2338 to the exported headers.
2339 * include/Makefile.in: Likewise.
2340 * include/bits/basic_string.h: Include <string_view> in C++17 mode.
2342 (basic_string(__sv_type, const _Alloc&)): Likewise.
2343 (operator=(__sv_type)): Likewise.
2344 (operator __sv_type()): Likewise.
2345 (operator+=(__sv_type)): Likewise.
2346 (append(__sv_type __sv)): Likewise.
2347 (append(__sv_type, size_type, size_type)): Likewise.
2348 (assign(__sv_type)): Likewise.
2349 (assign(__sv_type, size_type, size_type)): Likewise.
2350 (insert(size_type, __sv_type)): Likewise.
2351 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
2352 (replace(size_type, size_type, __sv_type)): Likewise.
2353 (replace(size_type, size_type, __sv_type, size_type, size_type)):
2355 (replace(const_iterator, const_iterator, __sv_type)): Likewise.
2356 (find(__sv_type, size_type)): Likewise.
2357 (rfind(__sv_type, size_type)): Likewise.
2358 (find_first_of(__sv_type, size_type)): Likewise.
2359 (find_last_of(__sv_type, size_type)): Likewise.
2360 (find_first_not_of(__sv_type, size_type)): Likewise.
2361 (find_last_not_of(__sv_type, size_type)): Likewise.
2362 (compare(__sv_type)): Likewise.
2363 (compare(size_type, size_type, __sv_type)): Likewise.
2364 (compare(size_type, size_type, __sv_type, size_type, size_type)):
2366 * include/bits/string_view.tcc: New.
2367 * include/std/string_view: Likewise.
2368 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
2369 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
2370 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
2372 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
2374 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
2376 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
2378 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
2380 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
2382 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
2384 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
2386 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
2388 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
2390 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
2392 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
2394 * testsuite/21_strings/basic_string/operators/char/5.cc: Likewise.
2395 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc: Likewise.
2396 * testsuite/21_strings/basic_string_view/capacity/1.cc: Likewise.
2397 * testsuite/21_strings/basic_string_view/cons/char/1.cc: Likewise.
2398 * testsuite/21_strings/basic_string_view/cons/char/2.cc: Likewise.
2399 * testsuite/21_strings/basic_string_view/cons/char/3.cc: Likewise.
2400 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc: Likewise.
2401 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc: Likewise.
2402 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc: Likewise.
2403 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
2405 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
2407 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
2409 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
2411 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
2413 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
2415 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
2417 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
2419 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
2420 * testsuite/21_strings/basic_string_view/inserters/char/1.cc: Likewise.
2421 * testsuite/21_strings/basic_string_view/inserters/char/2.cc: Likewise.
2422 * testsuite/21_strings/basic_string_view/inserters/char/3.cc: Likewise.
2423 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
2425 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
2427 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
2429 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
2431 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
2433 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
2435 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
2437 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
2439 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
2441 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
2443 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
2445 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
2447 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
2449 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
2451 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
2453 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
2455 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
2457 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
2459 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
2461 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
2463 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
2465 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
2467 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
2469 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
2471 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
2473 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
2475 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
2477 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
2479 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
2481 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
2483 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
2485 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
2487 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
2489 * testsuite/21_strings/basic_string_view/operators/char/2.cc: Likewise.
2490 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
2492 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
2494 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
2496 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
2498 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
2500 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
2502 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
2504 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
2506 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
2508 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
2509 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
2511 2016-07-27 Jonathan Wakely <jwakely@redhat.com>
2513 * testsuite/20_util/forward/1_neg.cc: Move dg-error to right line.
2515 2016-07-25 Georeth Chow <georeth2010@gmail.com>
2517 * include/ext/ropeimpl.h (rope<>::_S_dump(_RopeRep*, int)): Qualify
2518 _S_concat enumerator.
2519 * testsuite/ext/rope/6.cc: New test.
2521 2016-07-25 Jonathan Wakely <jwakely@redhat.com>
2523 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Use
2524 std::mt19937, std::thread and std::atomic to simplify test.
2525 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
2527 2016-07-22 Jonathan Wakely <jwakely@redhat.com>
2530 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2531 (basic_string::_Alloc_hider(pointer, _Alloc&&)): Add constructor.
2532 * include/bits/stl_tree.h (_Rb_tree(_Rb_tree&&)): Move allocator.
2533 * testsuite/21_strings/basic_string/allocator/71964.cc: New test.
2534 * testsuite/23_containers/set/allocator/71964.cc: New test.
2536 * testsuite/lib/libstdc++.exp (check_v3_target_namedlocale): Use
2537 delete[] instead of delete.
2539 2016-07-21 Jonathan Wakely <jwakely@redhat.com>
2541 * include/experimental/propagate_const (propagate_const::__t): Rename
2542 to _M_t and remove comment. Qualify std::move and std::forward.
2543 * testsuite/experimental/propagate_const/cons/default.cc: Fix test.
2545 * testsuite/23_containers/vector/zero_sized_allocations.cc:
2546 Define sized deallocation function.
2547 * testsuite/util/testsuite_new_operators.h:
2548 (operator delete(void*, const std::nothrow_t&)): Define nothrow
2549 deallocation function.
2551 * testsuite/21_strings/basic_string/modifiers/append/char/1.cc: Fix
2552 reads past the end of strings.
2553 * testsuite/21_strings/basic_string/operations/compare/char/1.cc:
2555 * testsuite/21_strings/char_traits/requirements/short/1.cc: Fix
2556 invalid array accesses.
2557 * testsuite/experimental/string_view/operations/compare/char/1.cc:
2558 Fix read past the end of string.
2559 * testsuite/util/testsuite_character.cc: Fix out-of-bounds write.
2561 * testsuite/24_iterators/container_access.cc: Fix missing returns.
2562 * testsuite/24_iterators/range_access_cpp14.cc: Likewise.
2564 * testsuite/18_support/new_delete_placement.cc: Don't allocate (and
2565 leak) memory for arguments to placement delete.
2566 * testsuite/20_util/addressof/1.cc: Don't leak memory.
2567 * testsuite/22_locale/locale/global_locale_objects/3.cc: Likewise.
2568 * testsuite/23_containers/unordered_multimap/insert/55028-debug.cc:
2571 2016-07-20 Jonathan Wakely <jwakely@redhat.com>
2573 * doc/xml/manual/intro.xml: Document DR 2684 status.
2574 * doc/html/*: Regenerate.
2576 * include/std/atomic (atomic_int8_t, atomic_uint8_t, atomic_int16_t)
2577 (atomic_uint16_t, atomic_int32_t, atomic_uint32_t, atomic_int64_t)
2578 (atomic_uint64_t): Define (LWG 2441).
2579 * testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc: Remove empty
2581 * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Test for
2583 * doc/xml/manual/intro.xml: Document DR 2441 status.
2585 * include/std/istream (operator>>(basic_istream&&, _Tp&)): Adjust
2586 to use perfect forwarding (LWG 2328).
2587 * testsuite/27_io/rvalue_streams.cc: Test perfect forwarding.
2588 * doc/xml/manual/intro.xml: Document DR 2328 status.
2590 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Use
2591 static objects for catching nullptr as pointer to member types.
2593 2016-07-18 Ville Voutilainen <ville.voutilainen@gmail.com>
2595 Clean up optional's comments.
2596 * include/std/optional: Remove incorrect section headers
2597 from comments when redundant, replace bare section
2598 headers with more descriptive comments.
2600 2016-07-15 Jonathan Wakely <jwakely@redhat.com>
2602 * include/bits/algorithmfwd.h: Change C++0x to C++11 in comments.
2603 * include/bits/move.h: Likewise.
2604 * include/bits/postypes.h: Likewise.
2605 * include/debug/bitset: Likewise.
2606 * include/ext/pb_ds/detail/type_utils.hpp: Likewise.
2607 * include/ext/string_conversions.h: Change C++0x to __cxx11 in
2609 * testsuite/27_io/fpos/14320-1.cc: Change C++0x to C++11 in comment.
2610 * testsuite/util/thread/all.h: Likewise.
2612 * include/bits/stl_algo.h (for_each): Remove redundant _GLIBCXX_MOVE
2616 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Make
2617 nullptr match handlers of pointer type.
2619 2016-07-15 Edward Smith-Rowland <3dw4rd@verizon.net>
2621 Implement C++17 P0025 clamp.
2622 * include/bits/algorithmfwd.h: Declare clamp overloads.
2623 * include/bits/stl_algo.h: Implement clamp. Feature __cpp_lib_clamp.
2624 * testsuite/25_algorithms/clamp/1.cc: New test.
2625 * testsuite/25_algorithms/clamp/2.cc: New test.
2626 * testsuite/25_algorithms/clamp/constexpr.cc: New test.
2627 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
2629 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
2632 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
2634 Fix the constraints for any's assignment operator template to properly
2635 reject assignment from a non-copyable lvalue.
2636 * include/std/any (operator=(_ValueType&&)): Constrain the decayed
2637 type for is_copy_constructible,
2638 * testsuite/20_util/any/requirements.cc: Add a test for
2639 non-copyable lvalues.
2641 2016-07-14 Jonathan Wakely <jwakely@redhat.com>
2643 * include/experimental/functional: Include <parallel/algorithm> in
2646 * testsuite/experimental/functional/searchers.cc: Include <algorithm>
2650 * include/bits/forward_list.h (forward_list): Update doxygen comments
2651 to reflect allocator propagation semantics. Remove ambiguous
2652 statements about data being lost.
2653 * include/bits/stl_deque.h (deque): Likewise.
2654 * include/bits/stl_list.h (list): Likewise.
2655 * include/bits/stl_map.h (map): Likewise.
2656 * include/bits/stl_multimap.h (multimap): Likewise.
2657 * include/bits/stl_multiset.h (multiset): Likewise.
2658 * include/bits/stl_set.h (set): Likewise.
2659 * include/bits/stl_vector.h (vector): Likewise.
2660 * include/bits/unordered_map.h (unordered_map, unordered_multimap):
2662 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
2665 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
2667 Implement P0032R3, Homogeneous interface for variant, any and optional,
2668 for the parts concerning any and optional.
2669 * include/std/any (_Storage()): Make constexpr and have it
2671 (any()): Make constexpr.
2672 (any(const any&)): Adjust.
2673 (any(any&&)): Likewise.
2674 (__any_constructible_t): New.
2675 (any(_ValueType&&)): Constrain.
2676 (any(in_place_type_t<_Tp>, _Args&&...)): New.
2677 (any(in_place_type_t<_Tp>, initializer_list<_Up>, _Args&&...)):
2680 (operator=(const any&)): Likewise.
2681 (operator=(any&&)): Likewise.
2682 (operator=(_ValueType&&)): Constrain.
2683 (emplace(_Args&&...)): New.
2684 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
2687 (swap(any&)): Adjust.
2691 (_Manager_internal::_S_create(_Storage&, _Args&&...)): New.
2692 (_Manager_external::_S_create(_Storage&, _Args&&...)): Likewise.
2693 (make_any(_Args&&...)): Likewise.
2694 (make_any(initializer_list<_Up>, _Args&&...)): Likewise.
2695 * include/std/optional (in_place_t, in_place): Remove.
2696 (bad_optional_access): Add a comment referring to LEWG 72.
2697 (emplace(_Args&&...)): Constrain.
2699 (reset()): Likewise.
2700 (make_optional(_Args&&...)): Likewise.
2701 (make_optional(initializer_list<_Up>, _Args&&...)): Likewise.
2702 * include/std/utility (in_place_tag): New.
2703 (__in_place, __in_place_type, __in_place_index): Likewise.
2704 (in_place_t, in_place_type_t, in_place_index_t): Likewise.
2705 (in_place(__in_place*)): Likewise.
2706 (in_place(__in_place_type<_Tp>*)): Likewise.
2707 (in_place(__in_place_index<_Idx>*)): Likewise.
2708 * testsuite/20_util/any/assign/1.cc: Adjust.
2709 * testsuite/20_util/any/assign/emplace.cc: New.
2710 * testsuite/20_util/any/assign/self.cc: Adjust.
2711 * testsuite/20_util/any/cons/1.cc: Likewise.
2712 * testsuite/20_util/any/cons/in_place.cc: New.
2713 * testsuite/20_util/any/make_any.cc: Likewise.
2714 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
2715 * testsuite/20_util/any/misc/swap.cc: Likewise.
2716 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2717 * testsuite/20_util/any/requirements.cc: New.
2718 * testsuite/20_util/in_place/requirements.cc: Likewise.
2719 * testsuite/20_util/optional/constexpr/in_place.cc: Adjust.
2720 * testsuite/20_util/optional/in_place.cc: Likewise.
2721 * testsuite/20_util/optional/make_optional.cc: Add tests for
2722 the new overloads of make_optional.
2724 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2726 Implement P0307R2, Making Optional Greater Equal Again.
2727 * include/experimental/optional (_Has_addressof): Fix the comment.
2728 * include/std/optional (_Has_addressof): Likewise.
2729 (operator=(_Up&&)): Constrain.
2730 (operator=(const optional<_Up>&)): Likewise.
2731 (operator=(optional<_Up>&&)): Likewise.
2732 (__optional_relop_t): New.
2733 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2734 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2735 Constrain and make transparent.
2736 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2737 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2738 Constrain and make transparent.
2739 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2740 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2741 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2742 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2743 (operator!=(const optional<_Tp>&, _Tp const&)):
2744 Constrain and make transparent.
2745 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2746 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2747 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2748 (operator>(const optional<_Tp>&, const _Tp&)):
2749 Constrain and make transparent.
2750 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2751 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2752 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2753 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2754 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2755 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2756 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2757 * testsuite/20_util/optional/relops/1.cc: Likewise.
2758 * testsuite/20_util/optional/relops/2.cc: Likewise.
2759 * testsuite/20_util/optional/relops/3.cc: Likewise.
2760 * testsuite/20_util/optional/relops/4.cc: Likewise.
2761 * testsuite/20_util/optional/requirements.cc: Add tests to verify
2762 that optional's relops are transparent and don't synthesize
2763 operators. Also test that assignment sfinaes.
2765 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2768 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Define to 1 not empty.
2769 * include/parallel/compiletime_settings.h (_GLIBCXX_ASSERTIONS):
2770 Rename to _GLIBCXX_PARALLEL_ASSERTIONS and make default value depend
2771 on _GLIBCXX_ASSERTIONS.
2772 * include/parallel/balanced_quicksort.h: Rename _GLIBCXX_ASSERTIONS.
2773 Include <unistd.h> for sleep.
2774 * include/parallel/losertree.h: Rename _GLIBCXX_ASSERTIONS.
2775 * include/parallel/merge.h: Likewise.
2776 * include/parallel/multiway_merge.h: Likewise.
2777 * include/parallel/partition.h: Likewise.
2778 * include/parallel/queue.h: Likewise.
2779 * include/parallel/sort.h: Likewise.
2780 * testsuite/25_algorithms/headers/algorithm/
2781 parallel_algorithm_assert.cc: New.
2783 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2784 (replace(__const_iterator, __const_iterator, initializer_list<C>)):
2785 Forward to different overload.
2787 * include/bits/allocated_ptr.h (__allocated_ptr::_S_raw_ptr): Make
2790 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2792 Revert "Add non-const overload of std::string::data()".
2794 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2796 Implement P0307R2, Making Optional Greater Equal Again.
2797 * include/experimental/optional (_Has_addressof): Fix the comment.
2798 * include/std/optional (_Has_addressof): Likewise.
2799 (operator=(_Up&&)): Constrain.
2800 (operator=(const optional<_Up>&)): Likewise.
2801 (operator=(optional<_Up>&&)): Likewise.
2802 (__optional_relop_t): New.
2803 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2804 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2805 Constrain and make transparent.
2806 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2807 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2808 Constrain and make transparent.
2809 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2810 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2811 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2812 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2813 (operator!=(const optional<_Tp>&, _Tp const&)):
2814 Constrain and make transparent.
2815 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2816 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2817 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2818 (operator>(const optional<_Tp>&, const _Tp&)):
2819 Constrain and make transparent.
2820 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2821 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2822 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2823 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2824 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2825 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2826 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2827 * testsuite/20_util/optional/relops/1.cc: Likewise.
2828 * testsuite/20_util/optional/relops/2.cc: Likewise.
2829 * testsuite/20_util/optional/relops/3.cc: Likewise.
2830 * testsuite/20_util/optional/relops/4.cc: Likewise.
2831 * testsuite/20_util/optional/requirements.cc: Add tests to verify
2832 that optional's relops are transparent and don't synthesize
2833 operators. Also test that assignment sfinaes.
2835 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2837 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (_M_c_str):
2839 (_M_disjunct, basic_string(const basic_string&, size_t)): Use data()
2840 instead of _M_data().
2841 (basic_string(const basic_string&, size_t, size_t, const _Alloc&)):
2843 (append(const basic_string&)): Likewise.
2844 (append(const basic_string&, size_type, size_type)): Likewise.
2845 (assign(const basic_string&, size_type, size_type)): Likewise.
2846 (insert(size_type, const basic_string&)): Likewise.
2847 (insert(size_type, const basic_string&, size_type, size_type)):
2849 (replace(size_type, size_type, const basic_string&, size_type,
2850 size_type)): Likewise.
2851 (replace(__const_iterator, __const_iterator, const basic_string&)):
2853 (c_str(), data()): Use c_str() instead of _M_data().
2854 (data()): Add non-const overload as per LWG 2391 and P0272R1.
2855 (compare(const basic_string&)): Use data() instead of _M_data().
2856 [!_GLIBCXX_USE_CXX11_ABI] (data()): Add non-const overload.
2857 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI] (_M_mutate):
2858 Pass raw pointers to _S_copy.
2859 (_M_erase, _M_replace_aux): Pass raw pointers to _S_move and
2861 (find(const _CharT*, size_type, size_type)): Use data instead of
2863 * testsuite/21_strings/basic_string/allocator/char/ext_ptr.cc: New.
2864 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
2865 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
2867 2016-07-12 Jonathan Wakely <jwakely@redhat.com>
2869 * libsupc++/new: Remove nothrow sized deletes (LWG 2458).
2870 * doc/xml/manual/intro.xml: Document DR 2458 status.
2871 * doc/html*: Regenerate.
2873 * testsuite/20_util/pair/astuple/astuple.cc: Only include <utility>.
2874 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
2875 Only include <array>.
2876 * testsuite/23_containers/array/tuple_interface/tuple_size.cc:
2878 * doc/xml/manual/intro.xml: Document LWG 2212 support.
2879 * doc/html*: Regenerate.
2881 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2882 Add testcase from LWG 2164.
2884 2016-07-11 François Dumont <fdumont@gcc.gnu.org>
2886 * include/bits/stl_vector.h (push_back(const value_type&)): Forward
2887 to _M_realloc_insert.
2888 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2889 (_M_realloc_insert): Declare new function.
2890 (_M_emplace_back_aux): Remove definition.
2891 * include/bits/vector.tcc (emplace_back(_Args...)):
2892 Use _M_realloc_insert.
2893 (insert(const_iterator, const value_type&)): Likewise.
2894 (_M_insert_rval, _M_emplace_aux): Likewise.
2895 (_M_emplace_back_aux): Remove declaration.
2896 (_M_realloc_insert): Define.
2897 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2898 Adjust expected results for emplacing an lvalue with reallocation.
2900 2016-07-10 Ville Voutilainen <ville.voutilainen@gmail.com>
2902 Implement std::optional.
2903 * include/Makefile.am: Add optional to exported headers.
2904 * include/Makefile.in: Likewise.
2905 * include/std/optional: New.
2906 * testsuite/20_util/optional/typedefs.cc: Likewise.
2907 * testsuite/20_util/optional/relops/2.cc: Likewise.
2908 * testsuite/20_util/optional/relops/3.cc: Likewise.
2909 * testsuite/20_util/optional/relops/4.cc: Likewise.
2910 * testsuite/20_util/optional/relops/5.cc: Likewise.
2911 * testsuite/20_util/optional/relops/1.cc: Likewise.
2912 * testsuite/20_util/optional/relops/6.cc: Likewise.
2913 * testsuite/20_util/optional/nullopt.cc: Likewise.
2914 * testsuite/20_util/optional/in_place.cc: Likewise.
2915 * testsuite/20_util/optional/make_optional.cc: Likewise.
2916 * testsuite/20_util/optional/assignment/2.cc: Likewise.
2917 * testsuite/20_util/optional/assignment/3.cc: Likewise.
2918 * testsuite/20_util/optional/assignment/4.cc: Likewise.
2919 * testsuite/20_util/optional/assignment/5.cc: Likewise.
2920 * testsuite/20_util/optional/assignment/1.cc: Likewise.
2921 * testsuite/20_util/optional/assignment/6.cc: Likewise.
2922 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
2923 * testsuite/20_util/optional/cons/default.cc: Likewise.
2924 * testsuite/20_util/optional/cons/move.cc: Likewise.
2925 * testsuite/20_util/optional/cons/value.cc: Likewise.
2926 * testsuite/20_util/optional/cons/copy.cc: Likewise.
2927 * testsuite/20_util/optional/requirements.cc: Likewise.
2928 * testsuite/20_util/optional/observers/2.cc: Likewise.
2929 * testsuite/20_util/optional/observers/3.cc: Likewise.
2930 * testsuite/20_util/optional/observers/4.cc: Likewise.
2931 * testsuite/20_util/optional/observers/5.cc: Likewise.
2932 * testsuite/20_util/optional/observers/1.cc: Likewise.
2933 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
2934 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
2935 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2936 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
2937 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
2938 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
2939 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
2940 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
2941 * testsuite/20_util/optional/constexpr/make_optional.cc: Likewise.
2942 * testsuite/20_util/optional/constexpr/cons/default.cc: Likewise.
2943 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
2944 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
2945 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
2946 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
2947 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
2948 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
2949 * testsuite/20_util/optional/swap/1.cc: Likewise.
2951 2016-07-08 Jonathan Wakely <jwakely@redhat.com>
2953 * testsuite/23_containers/vector/modifiers/insert/aliasing.cc: New.
2955 2016-07-07 Jonathan Wakely <jwakely@redhat.com>
2957 * doc/xml/manual/status_cxx2014.xml: Update LFTS status table.
2958 * doc/html/*: Regenerate.
2960 2016-07-07 Ville Voutilainen <ville.voutilainen@gmail.com>
2963 * include/Makefile.am: Add any and c++17_warning.h to exported headers.
2964 * include/Makefile.in: Likewise.
2965 * include/std/any: New.
2966 * testsuite/20_util/any/assign/1.cc: Likewise.
2967 * testsuite/20_util/any/assign/2.cc: Likewise.
2968 * testsuite/20_util/any/assign/self.cc: Likewise.
2969 * testsuite/20_util/any/cons/1.cc: Likewise.
2970 * testsuite/20_util/any/cons/2.cc: Likewise.
2971 * testsuite/20_util/any/cons/aligned.cc: Likewise.
2972 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
2973 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
2974 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
2975 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
2976 * testsuite/20_util/any/misc/swap.cc: Likewise.
2977 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2978 * testsuite/20_util/any/observers/type.cc: Likewise.
2979 * testsuite/20_util/any/typedefs.cc: Likewise.
2981 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2983 Add a new header for diagnosing the use of C++17 facilities
2985 * include/bits/c++17_warning.h: New.
2987 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2989 Implement LWG 2451, optional<T> should 'forward' T's
2990 implicit conversions.
2991 * include/experimental/optional (__is_optional_impl, __is_optional):
2993 (optional()): Make constexpr and default.
2994 (optional(_Up&&), optional(const optional<_Up>&),
2995 optional(optional<_Up>&& __t): New.
2996 (operator=(_Up&&)): Constrain.
2997 (operator=(const optional<_Up>&), operator=(optional<_Up>&&)): New.
2998 * testsuite/experimental/optional/cons/value.cc:
2999 Add tests for the functionality added by LWG 2451.
3000 * testsuite/experimental/optional/cons/value_neg.cc: New.
3002 2016-07-05 Ville Voutilainen <ville.voutilainen@gmail.com>
3005 any_cast doesn't work with rvalue reference targets and cannot
3006 move with a value target.
3007 * include/experimental/any (any(_ValueType&&)): Constrain and
3008 add an overload that doesn't forward.
3009 (any_cast(any&&)): Constrain and add an overload that moves.
3010 * testsuite/experimental/any/misc/any_cast.cc: Add tests for
3011 the functionality added by LWG 2509.
3013 2016-07-04 François Dumont <fdumont@gcc.gnu.org>
3015 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
3017 * testsuite/23_containers/vector/modifiers/insert/self_insert.cc: New
3020 2016-07-04 Jonathan Wakely <jwakely@redhat.com>
3022 * include/bits/stl_vector.h (emplace(const_iterator, _Args&&...)):
3023 Define inline. Forward to _M_emplace_aux.
3024 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
3025 (_M_insert_rval, _M_emplace_aux): Declare new functions.
3026 (_Temporary_value): New RAII type using allocator to construct/destroy.
3027 (_S_insert_aux_assign): Remove.
3028 (_M_insert_aux): Make non-variadic.
3029 * include/bits/vector.tcc (insert(const_iterator, const value_type&)):
3030 Use _Temporary_value.
3031 (emplace(const_iterator, _Args&&...)): Remove definition.
3032 (_M_insert_rval, _M_emplace_aux): Define.
3033 (_M_insert_aux): Make non-variadic, stop using _S_insert_aux_assign.
3034 (_M_fill_insert): Use _Temporary_value.
3035 * testsuite/23_containers/vector/allocator/construction.cc: New test.
3036 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
3037 Adjust expected results for emplacing an lvalue with reallocation.
3038 * testsuite/23_containers/vector/check_construct_destroy.cc: Adjust
3039 expected results to account for construction/destruction of temporary
3041 * testsuite/backward/hash_set/check_construct_destroy.cc: Likewise.
3043 2016-07-04 Ville Voutilainen <ville.voutilainen@gmail.com>
3046 * src/filesystem/ops.cc (remove_all(const path&, error_code&)):
3047 Call remove_all for children of a directory.
3048 * testsuite/experimental/filesystem/operations/create_directories.cc:
3051 2016-07-02 François Dumont <fdumont@gcc.gnu.org>
3053 * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Adjust
3054 dg-error line numbers.
3055 * testsuite/23_containers/array/tuple_interface/
3056 tuple_element_debug_neg.cc: Likewise.
3057 * testsuite/25_algorithms/lexicographical_compare/debug/
3058 irreflexive_neg.cc: Remove.
3060 2016-06-30 Thomas Preud'homme <thomas.preudhomme@arm.com>
3062 * testsuite/29_atomics/atomic/65913.cc: Require atomic-builtins rather
3063 than specific target.
3065 2016-06-27 François Dumont <fdumont@gcc.gnu.org>
3068 * include/bits/hashtable.h: Remove _Unique_keya parameter in _Insert
3071 2016-06-23 François Dumont <fdumont@gcc.gnu.org>
3073 * include/debug/array (array<>::swap): Fix noexcept qualificaton for
3076 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3078 * configure.host: Remove mep-* support.
3080 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3082 * configure: Regenerate.
3083 * configure.host: Remove support for knetbsd.
3084 * crossconfig.m4: Likewise.
3086 2016-06-20 François Dumont <fdumont@gcc.gnu.org>
3089 * include/tr1/hashtable_policy.h
3090 (_Prime_rehash_policy::_M_next_bkt): Make past-the-end iterator
3091 dereferenceable to avoid check on lower_bound result.
3092 (_Prime_rehash_policy::_M_bkt_for_elements): Call latter.
3093 (_Prime_rehash_policy::_M_need_rehash): Likewise.
3094 * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
3095 Always return a value greater than input value. Set _M_next_resize to
3096 max value when reaching highest prime number.
3097 * src/shared/hashtable-aux.cc (__prime_list): Add comment about sentinel
3099 * testsuite/23_containers/unordered_set/hash_policy/71181.cc: New.
3100 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc
3102 * testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc: New.
3103 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
3106 2016-06-17 Jonathan Wakely <jwakely@redhat.com>
3109 * include/bits/stl_algobase.h (lower_bound, lexicographical_compare):
3110 Remove irreflexive checks.
3111 * include/bits/stl_algo.h (lower_bound, upper_bound, equal_range,
3112 binary_search): Likewise.
3113 * testsuite/25_algorithms/equal_range/partitioned.cc: New test.
3114 * testsuite/25_algorithms/lexicographical_compare/71545.cc: New test.
3115 * testsuite/25_algorithms/lower_bound/partitioned.cc: New test.
3116 * testsuite/25_algorithms/upper_bound/partitioned.cc: New test.
3117 * testsuite/util/testsuite_iterators.h (__gnu_test::test_container):
3118 Add constructor from array.
3120 2016-06-16 François Dumont <fdumont@gcc.gnu.org>
3122 * include/debug/debug.h
3123 (__glibcxx_requires_non_empty_range, __glibcxx_requires_nonempty)
3124 (__glibcxx_requires_subscript): Move...
3125 * include/debug/assertions.h: ...here and add __builtin_expect.
3126 (_GLIBCXX_DEBUG_ONLY): Remove ; value.
3127 * include/bits/stl_deque.h
3128 (std::deque<>::operator[]): Add __glibcxx_requires_subscript check.
3129 (std::deque<>::front()): Add __glibcxx_requires_nonempty check.
3130 (std::deque<>::back()): Likewise.
3131 (std::deque<>::pop_front()): Likewise.
3132 (std::deque<>::pop_back()): Likewise.
3133 (std::deque<>::swap(deque&)): Add allocator check.
3134 * include/bits/stl_vector.h
3135 (std::vector<>::operator[]): Add __glibcxx_requires_subscript check.
3136 (std::vector<>::front()): Add __glibcxx_requires_nonempty check.
3137 (std::vector<>::back()): Likewise.
3138 (std::vector<>::pop_back()): Likewise.
3139 (std::vector<>::swap(vector&)): Add allocator check.
3141 2016-06-16 Daniel Kruegler <daniel.kruegler@gmail.com>
3143 Provide swappable traits (p0185r1)
3144 * include/std/type_traits (is_swappable, is_nothrow_swappable,
3145 is_swappable_with, is_nothrow_swappable_with, is_swappable_v,
3146 is_nothrow_swappable_v, is_swappable_with_v,
3147 is_nothrow_swappable_with_v): New.
3148 * include/bits/stl_pair.h: Use it as per p0185r1.
3149 * include/bits/stl_queue.h: Likewise.
3150 * include/bits/stl_stack.h: Likewise.
3151 * include/bits/unique_ptr.h: Likewise.
3152 * include/std/tuple: Likewise.
3153 * include/std/array: Likewise. Fix zero-size member swap.
3154 * include/bits/hashtable.h: Use __and_.
3155 * testsuite/20_util/is_nothrow_swappable/requirements/
3156 explicit_instantiation.cc: Change test options to std=gnu++17.
3157 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
3159 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
3160 * testsuite/20_util/is_swappable/requirements/
3161 explicit_instantiation.cc: Likewise.
3162 * testsuite/20_util/is_swappable/requirements/typedefs.cc: Likewise.
3163 * testsuite/20_util/is_swappable/value.cc: Likewise.
3164 * testsuite/20_util/is_nothrow_swappable/requirements/
3165 explicit_instantiation_ext.cc: New.
3166 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs_ext.cc:
3168 * testsuite/20_util/is_nothrow_swappable/value.h: New.
3169 * testsuite/20_util/is_nothrow_swappable/value_ext.cc: New.
3170 * testsuite/20_util/is_nothrow_swappable_with/requirements/
3171 explicit_instantiation.cc: New.
3172 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
3174 * testsuite/20_util/is_nothrow_swappable_with/value.cc: New.
3175 * testsuite/20_util/is_swappable/requirements/
3176 explicit_instantiation_ext.cc: New.
3177 * testsuite/20_util/is_swappable/requirements/typedefs_ext.cc: New.
3178 * testsuite/20_util/is_swappable/value.h: New.
3179 * testsuite/20_util/is_swappable/value_ext.cc: New.
3180 * testsuite/20_util/is_swappable_with/requirements/
3181 explicit_instantiation.cc: New.
3182 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc: New.
3183 * testsuite/20_util/is_swappable_with/value.cc: New.
3184 * testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
3185 dg-error line numbers.
3186 * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
3189 2016-06-16 Jonathan Wakely <jwakely@redhat.com>
3191 * include/std/array: Remove trailing whitespace.
3192 * include/std/atomic: Likewise.
3193 * include/std/bitset: Likewise.
3194 * include/std/chrono: Likewise.
3195 * include/std/complex: Likewise.
3196 * include/std/condition_variable: Likewise.
3197 * include/std/fstream: Likewise.
3198 * include/std/functional: Likewise.
3199 * include/std/future: Likewise.
3200 * include/std/iomanip: Likewise.
3201 * include/std/iosfwd: Likewise.
3202 * include/std/istream: Likewise.
3203 * include/std/limits: Likewise.
3204 * include/std/ratio: Likewise.
3205 * include/std/scoped_allocator: Likewise.
3206 * include/std/sstream: Likewise.
3207 * include/std/stdexcept: Likewise.
3208 * include/std/string: Likewise.
3209 * include/std/system_error: Likewise.
3210 * include/std/thread: Likewise.
3211 * include/std/tuple: Likewise.
3212 * include/std/type_traits: Likewise.
3213 * include/std/utility: Likewise.
3214 * include/std/valarray: Likewise.
3215 * include/std/vector: Likewise.
3217 * include/bits/stl_vector.h (vector::_S_insert_aux_assign): Define
3218 new overloaded functions.
3219 * include/bits/vector.tcc (vector::_M_insert_aux): Use new functions
3220 to avoid creating a redundant temporary.
3221 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc: New
3224 2016-06-15 François Dumont <fdumont@gcc.gnu.org>
3226 * include/bits/stl_deque.h
3227 (std::deque<>::operator=): Call _M_assign_aux.
3228 (std::deque<>::assign(initializer_list<>)): Likewise.
3229 (std::deque<>::resize(size_t, const value_type&)): Call _M_fill_insert.
3230 (std::deque<>::insert(const_iterator, initializer_list<>)):
3231 Call _M_range_insert_aux.
3232 (std::deque<>::_M_assign_aux<It>(It, It, std::forward_iterator_tag):
3234 (std::deque<>::_M_fill_assign): Call _M_fill_insert.
3235 (std::deque<>::_M_move_assign2): Call _M_assign_aux.
3236 * include/bits/deque.tcc
3237 (std::deque<>::operator=): Call _M_range_insert_aux.
3238 (std::deque<>::_M_assign_aux<It>(It, It, std::input_iterator_tag)):
3240 * include/bits/stl_vector.h
3241 (std::vector<>::operator=): Call _M_assign_aux.
3242 (std::vector<>::assign(initializer_list<>)): Likewise.
3243 (std::vector<>::resize(size_t, const value_type&)): Call _M_fill_insert.
3244 (std::vector<>::insert(const_iterator, initializer_list<>)):
3245 Call _M_range_insert.
3246 * include/bits/vector.tcc (std::vector<>::_M_assign_aux): Likewise.
3248 2016-06-07 François Dumont <fdumont@gcc.gnu.org>
3250 * include/std/tuple (_Head_base<>): Default specialization condition at
3253 2016-06-06 Ville Voutilainen <ville.voutilainen@gmail.com>
3255 Support allocators in tuples of zero size.
3256 * include/std/tuple (tuple<>::tuple(),
3257 tuple<>::tuple(allocator_arg_t, const _Alloc&),
3258 tuple<>::tuple(allocator_arg_t, const _Alloc&, const tuple&)): New.
3259 * testsuite/20_util/tuple/cons/allocators.cc: Adjust.
3261 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
3264 * src/filesystem/ops.cc (permissions(const path&, perms, error_code&)):
3265 Add or remove permissions according to perms argument.
3266 * testsuite/experimental/filesystem/operations/permissions.cc: New
3269 2016-06-05 Ville Voutilainen <ville.voutilainen@gmail.com>
3271 Protect allocator-overloads of tuple-from-tuple constructors
3272 from cases that would create dangling references.
3273 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
3274 const tuple<_UElements...>&), tuple(allocator_arg_t, const _Alloc&,
3275 tuple<_UElements...>&&)): Add a check for _NonNestedTuple.
3276 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Adjust.
3278 2016-05-29 Gerald Pfeifer <gerald@pfeifer.com>
3280 * doc/xml/manual/backwards_compatibility.xml: Adjust
3281 lists.debian.org link to https.
3282 * doc/html/manual/backwards.html: Regenerate.
3284 2016-05-27 Jonathan Wakely <jwakely@redhat.com>
3286 * doc/xml/manual/abi.xml: Adjust URL to use https.
3287 * doc/html/manual/*: Regenerate.
3289 2016-05-27 Ville Voutilainen <ville.voutilainen@gmail.com>
3292 * include/std/tuple (_TMC): Add a check for _NotSameTuple.
3293 * include/std/tuple (tuple(_UElements&&...)): Remove the separate
3294 check for _NotSameTuple.
3295 * include/std/tuple (_TMCT): New.
3296 * include/std/tuple (tuple(const tuple<_UElements...>&)): Use it.
3297 * include/std/tuple (tuple(tuple<_UElements...>&&)): Likewise.
3298 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
3299 const tuple<_UElements...>&)): Likewise.
3300 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
3301 tuple<_UElements...>&&)): Likewise.
3302 * testsuite/20_util/tuple/cons/66338.cc: New.
3304 2016-05-25 Jonathan Wakely <jwakely@redhat.com>
3306 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Fix test for sendfile.
3307 * configure: Regenerate.
3308 * config.h.in: Regenerate.
3310 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): Remove it.
3311 * include/bits/hashtable_policy.h (_Power2_rehash_policy::_M_next_bkt):
3312 Remove const qualification on function. Replace
3313 _GLIBCXX14_USE_CONSTEXPR on automatic variables with const.
3314 (_Power2_rehash_policy::_M_need_rehash): Remove const qualification.
3315 (_Power2_rehash_policy::_M_next_bkt): Remove mutable specifier.
3317 2016-05-24 François Dumont <fdumont@gcc.gnu.org>
3319 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): New.
3320 * include/bits/hashtable_policy.h
3321 (_Prime_rehash_policy::__has_load_factor): New. Mark rehash policy
3322 having load factor management.
3323 (_Mask_range_hashing): New.
3325 (_Power2_rehash_policy): New.
3326 (_Inserts<>): Remove last template parameter, _Unique_keys, so that
3327 partial specializations only depend on whether iterators are constant
3329 * testsuite/23_containers/unordered_set/hash_policy/26132.cc: Adapt to
3330 test new hash policy.
3331 * testsuite/23_containers/unordered_set/hash_policy/load_factor.cc:
3333 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
3335 * testsuite/23_containers/unordered_set/insert/hash_policy.cc:
3337 * testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
3339 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc:
3341 * testsuite/performance/23_containers/insert/54075.cc: Add benchmark
3342 using the new hash policy.
3343 * testsuite/performance/23_containers/insert_erase/41975.cc: Likewise.
3345 2016-05-24 Jonathan Wakely <jwakely@redhat.com>
3347 * include/bits/stl_queue.h (priority_queue::value_compare): Define.
3349 2016-05-23 François Dumont <fdumont@gcc.gnu.org>
3351 * include/debug/safe_iterator.h
3352 (_Safe_iterator<>::operator->()): Implement using underlying iterator
3354 * include/debug/safe_local_iterator.h
3355 (_Safe_local_iterator<>::operator->()): Likewise.
3357 2016-05-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
3359 * testsuite/experimental/memory_resource/1.cc: Add required argument
3360 to dg-require-atomic-builtins.
3362 2016-05-13 Jonathan Wakely <jwakely@redhat.com>
3365 * include/debug/bitset: Add #pragma GCC system_header.
3366 * include/debug/deque: Likewise.
3367 * include/debug/list: Likewise.
3368 * include/debug/map: Likewise.
3369 * include/debug/set: Likewise.
3370 * include/debug/string: Likewise.
3371 * include/debug/unordered_map: Likewise.
3372 * include/debug/unordered_set: Likewise.
3373 * include/debug/vector: Likewise.
3374 * include/debug/functions.h: Adjust whitespace.
3376 2016-05-12 Jonathan Wakely <jwakely@redhat.com>
3379 * testsuite/experimental/memory_resource/1.cc: Require atomics.
3381 2016-05-11 Jonathan Wakely <jwakely@redhat.com>
3384 * src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_DUAL_ABI]: Don't define
3385 exception constructors with __sso_string parameters.
3387 2016-05-10 Jonathan Wakely <jwakely@redhat.com>
3389 * include/experimental/bits/fs_dir.h (begin, end): Add noexcept.
3390 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
3391 Test begin and end functions.
3392 * testsuite/experimental/filesystem/iterators/
3393 recursive_directory_iterator.cc: Likewise.
3396 * src/filesystem/ops.cc (do_copy_file): Fix backwards conditions.
3397 * testsuite/experimental/filesystem/operations/copy_file.cc: New test.
3399 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
3400 Overload operator* to move from rvalues.
3403 * src/filesystem/ops.cc (create_dir): Handle EEXIST from mkdir.
3404 * testsuite/experimental/filesystem/operations/create_directory.cc:
3408 * src/filesystem/ops.cc (canonical(const path&, const path&)): Add
3409 base path to exception.
3410 * testsuite/experimental/filesystem/operations/canonical.cc: Test
3411 paths contained in exception.
3413 * testsuite/experimental/type_erased_allocator/2.cc: Remove unused
3417 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
3419 (directory_iterator::operator++(int)): Return proxy.
3420 (recursive_directory_iterator::operator++(int)): Likewise.
3421 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
3422 Test post-increment.
3423 * testsuite/experimental/filesystem/iterators/
3424 recursive_directory_iterator.cc: Likewise.
3426 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
3429 * testsuite/experimental/filesystem/iterators/
3430 recursive_directory_iterator.cc: Fix test02 to not call member
3431 functions on invalid iterator, and use VERIFY not assert.
3433 2016-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
3435 Avoid endless run-time recursion for copying single-element
3436 tuples where the element type is by-value constructible
3438 * include/std/tuple (_NotSameTuple): New.
3439 * include/std/tuple (tuple(_UElements&&...): Use it.
3440 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc: New.
3442 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
3445 * include/experimental/bits/fs_dir.h (recursive_directory_iterator):
3446 Initialize scalar member variables in default constructor.
3447 * testsuite/experimental/filesystem/iterators/
3448 recursive_directory_iterator.cc: Test default construction.
3450 2016-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3452 * testsuite/lib/libstdc++.exp (libstdc++_init): Enable on *-*-solaris*.
3454 2016-05-05 Jonathan Wakely <jwakely@redhat.com>
3456 * testsuite/experimental/filesystem/path/native/string.cc: Add
3457 dg-require-filesystem-ts directive.
3459 2016-05-04 Jonathan Wakely <jwakely@redhat.com>
3462 * include/experimental/memory_resource
3463 (__resource_adaptor_imp::do_allocate): Do not default-construct
3465 (__resource_adaptor_imp::do_deallocate): Likewise. Use
3466 allocator_traits to get pointer type.
3467 (__null_memory_resource::do_allocate): Remove unused parameters.
3468 (__null_memory_resource::do_deallocate): Likewise.
3469 (__null_memory_resource::do_is_equal): Likewise. Add return statement.
3470 * testsuite/experimental/type_erased_allocator/1.cc: Combine with ...
3471 * testsuite/experimental/type_erased_allocator/1_neg.cc: This, and
3473 * testsuite/experimental/memory_resource/1.cc: Here.
3474 * testsuite/experimental/memory_resource/null_memory_resource.cc: New.
3475 * testsuite/experimental/memory_resource/resource_adaptor.cc: New.
3477 2016-04-29 Chris Gregory <czipperz@gmail.com>
3479 * config/*: Remove trailing whitespace.
3481 * testsuite/tr1/*: Likewise.
3482 * testsuite/util/*: Likewise.
3484 2016-04-28 Jonathan Wakely <jwakely@redhat.com>
3487 * include/bits/basic_ios.tcc (basic_ios::_M_cache_locale): Use
3489 * include/bits/stream_iterator.h (istream_iterator, ostream_iterator):
3491 * include/std/atomic (atomic<_Tp>): Likewise.
3492 * include/std/shared_mutex (shared_lock): Likewise.
3493 * testsuite/24_iterators/istream_iterator/70766.cc: New test.
3494 * testsuite/24_iterators/ostream_iterator/70766.cc : New test.
3495 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
3496 * testsuite/29_atomics/atomic/70766.cc: New test.
3497 * testsuite/30_threads/shared_lock/70766.cc: New test.
3499 * include/bits/hashtable_policy.h (__detail::_Insert_base,
3500 __detail::_Insert): Improve comments.
3502 2016-04-27 Jonathan Wakely <jwakely@redhat.com>
3505 * include/std/limits: Update comments about DRs.
3506 (numeric_limits<const _Tp>, numeric_limits<volatile _Tp>,
3507 numeric_limits<const volatile _Tp>): Define unconditionally.
3509 2016-04-24 Jonathan Wakely <jwakely@redhat.com>
3512 * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path): Use
3513 static counter to return a different path on every call.
3515 2016-04-22 Tim Shen <timshen@google.com>
3518 * include/bits/regex_executor.tcc (_Executor<>::_M_word_boundary):
3519 Fix the match_not_bow and match_not_eow behavior.
3520 * testsuite/28_regex/regression.cc: Add testcase.
3522 2016-04-20 Jonathan Wakely <jwakely@redhat.com>
3525 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in,
3526 __codecvt_utf8_utf16_base<char16_t>::do_in): Fix mask operations.
3528 2016-04-19 Jonathan Wakely <jwakely@redhat.com>
3531 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in):
3532 Override endianness bit in mode.
3533 * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: New test.
3534 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc: Test
3535 that little_endian mode is ignored.
3536 * testsuite/experimental/filesystem/path/native/string.cc: New test.
3539 * src/filesystem/ops.cc (close_fd): New function.
3540 (do_copy_file): Set permissions before copying file contents. Check
3541 result of closing file descriptors. Don't copy streambuf when file
3543 (copy(const path&, const path&, copy_options, error_code&)): Use
3544 lstat for source file when copy_symlinks is set.
3545 * testsuite/experimental/filesystem/operations/copy.cc: Test copy().
3547 * include/experimental/bits/fs_fwd.h (operator&, operator|, operator^,
3548 operator~ operator&=, operator|=, operator^=): Add noexcept to
3549 overloaded operators for copy_options, perms and directory_options.
3550 * src/filesystem/ops.cc (make_file_type, make_file_status,
3551 is_not_found_errno, file_time): Add noexcept.
3553 2016-04-19 Edward Smith-Rowland <3dw4rd@verizon.net>
3555 * include/bits/c++14_warning.h: Do not refer C++14 as experimental.
3557 2016-04-18 Jonathan Wakely <jwakely@redhat.com>
3560 * include/bits/random.h: Reword static assertion messages to state
3561 positive conditions.
3562 * include/bits/random.tcc: Likewise.
3563 * include/bits/uniform_int_dist.h: Likewise.
3564 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3567 * include/std/function (_Bind, _Bind_result): Remove unused typedefs.
3569 * config/cpu/sh/atomicity.h: Fix typo in comment.
3572 * include/std/thread (operator<, operator==): Move definitions to
3574 * testsuite/30_threads/thread/id/70294.cc: New test.
3576 * testsuite/18_support/bad_exception/23591_thread-1.c: Add
3577 -Wno-pedantic to dg-options.
3578 * testsuite/20_util/align/2.cc: Use type as operand of alignof.
3579 * testsuite/20_util/is_floating_point/value.cc: Add -Wno-pedantic
3581 * testsuite/20_util/specialized_algorithms/uninitialized_fill/32158.cc:
3582 Remove extra semi-colon.
3583 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
3584 Always supply second argument to static_assert.
3585 * testsuite/25_algorithms/lower_bound/no_operator_ne.cc: Remove extra
3587 * testsuite/26_numerics/complex/c99.cc: Add -Wno-pedantic to
3589 * testsuite/26_numerics/complex/literals/values.cc: Likewise.
3590 * testsuite/29_atomics/atomic/60695.cc: Likewise.
3591 * testsuite/29_atomics/atomic/62259.cc: use __alignof__ instead of
3592 alignof when operand is an object not a type.
3593 * testsuite/decimal/ctor.cc: Add -Wno-pedantic to dg-options.
3594 * testsuite/decimal/make-decimal.cc: Likewise.
3595 * testsuite/experimental/type_traits/value.cc: Always supply second
3596 argument to static_assert.
3597 * testsuite/util/testsuite_common_types.h: Use __extension__ for
3600 * testsuite/experimental/type_erased_allocator/1.cc: Don't include
3602 * testsuite/experimental/type_erased_allocator/1_neg.cc: Likewise.
3603 * testsuite/experimental/type_erased_allocator/2.cc: Likewise.
3604 * testsuite/experimental/type_erased_allocator/uses_allocator.cc:
3605 Likewise. Add licence and change to compile-only test.
3607 * include/bits/locale_facets.h (ctype::do_narrow): Add attribute to
3609 * include/bits/regex_automaton.h (_NFA::_M_insert_alt): Likewise.
3611 * include/ext/string_conversions.h (__stoa): Avoid -Wsign-compare
3614 2016-04-17 Edward Smith-Rowland <3dw4rd@verizon.net>
3616 * include/bits/specfun.h: Trivial comment misspelling.
3618 2016-04-14 Jason Merrill <jason@redhat.com>
3620 Revert Jonathan's empty ABI change from yesterday.
3622 2016-04-13 Martin Sebor <msebor@redhat.com>
3625 * testsuite/25_algorithms/rotate/moveable2.cc: Make sure VLA
3626 upper bound is positive.
3628 2016-04-13 Jonathan Wakely <jwakely@redhat.com>
3630 * include/bits/c++config (_GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES,
3631 _GLIBCXX_END_NAMESPACE_EMPTY_TYPES, _GLIBCXX_ABI_TAG_EMPTY): Define.
3632 * include/bits/hashtable.h (_Hashtable::_M_emplace): Change signatures
3633 of functions taking empty structs by value. Add a template parameter
3634 to overloads without hints. Rename overloads with hints to
3636 (_Hashtable::_M_erase(true_type, const_iterator),
3637 _Hashtable::_M_erase(false_type, const_iterator)): Change signatures
3638 by reordering parameters.
3639 * include/bits/hashtable_policy.h (_Insert::insert): Adjust to call
3640 _M_emplace_hint instead of _M_emplace.
3641 * include/bits/shared_ptr.h (shared_ptr(_Tp1*, _Deleter, _Alloc),
3642 shared_ptr(nullptr_t, _Deleter, _Alloc)): Use _GLIBCXX_ABI_TAG_EMPTY.
3643 * include/bits/shared_ptr_base.h (_Sp_counted_deleter, __shared_count,
3644 __shared_ptr): Likewise.
3645 * include/bits/stl_algo.h (replace_if): Likewise.
3646 * include/bits/stl_pair.h (piecewise_construct_t,
3647 piecewise_construct): Use _GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES.
3648 * include/bits/uses_allocator.h (allocator_arg_t, allocator_arg,
3649 __uses_alloc0): Likewise.
3650 * include/ext/pb_ds/assoc_container.hpp (basic_hash_table): Likewise.
3651 * testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error.
3652 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
3653 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
3654 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
3655 * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
3656 * testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.
3658 2016-04-12 Edward Smith-Rowland <3dw4rd@verizon.net>
3660 Document C++17/TR29124 C++ Special Math Functions.
3661 * include/bits/specfun.h: Add Doxygen markup.
3663 2016-04-07 Jonathan Wakely <jwakely@redhat.com>
3665 * testsuite/30_threads/thread/70503.cc: Adjust from xfail to pass.
3667 2016-04-06 Eric Botcazou <ebotcazou@adacore.com>
3669 * src/Makefile.am (libstdc++-symbols.ver): Remove useless /dev/null.
3670 * src/Makefile.in: Regenerate.
3672 2016-04-05 Jonathan Wakely <jwakely@redhat.com>
3675 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Don't test
3676 __atomic_fetch_add for bool.
3677 * configure: Regenerate.
3679 * testsuite/30_threads/thread/70503.cc: Require -static to work.
3682 * src/c++11/thread.cc (execute_native_thread_routine,
3683 execute_native_thread_routine_compat): Give internal linkage.
3684 * testsuite/30_threads/thread/70503.cc: New test.
3686 2016-04-05 Ville Voutilainen <ville.voutilainen@gmail.com>
3689 * include/bits/stl_pair.h (_ConstructiblePair,
3690 _ImplicitlyConvertiblePair, _MoveConstructiblePair,
3691 _ImplicitlyMoveConvertiblePair): Add shortcut conditions
3692 for same-type cases.
3693 * testsuite/20_util/pair/70437.cc: New.
3695 2016-03-24 Jonathan Wakely <jwakely@redhat.com>
3698 * config/abi/pre/gnu.ver: Add new symbol.
3699 * libsupc++/eh_alloc.cc (__gnu_cxx::__freeres): Define.
3700 * testsuite/18_support/free_eh_pool.cc: New test.
3702 2016-03-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
3704 * include/Makefile.am (install-freestanding-headers): Add
3705 concept_check.h and move.h to the installed headers.
3706 * include/Makefile.in: Regenerated.
3707 * include/bits/concept_check.h: Ignore _GLIBCXX_CONCEPT_CHECKS for
3708 freestanding implementations.
3709 * doc/xml/manual/using.xml (_GLIBCXX_CONCEPT_CHECKS): Mention
3710 that this macro has no effect for freestanding implementations.
3711 * doc/html/manual/using_macros.html: Likewise.
3713 2016-02-24 Jonathan Wakely <jwakely@redhat.com>
3716 * include/experimental/tuple (__apply_impl): Qualify get and forward.
3718 2016-02-23 Jonathan Wakely <jwakely@redhat.com>
3720 * doc/xml/manual/using.xml: Document __STDCPP_WANT_MATH_SPEC_FUNCS__.
3721 * doc/html/*: Regenerate.
3724 * include/tr1/cmath (acosh, asinh, atanh, cbrt, copysign, erf, erfc,
3725 exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma, llrint,
3726 llround, log1p, log2, logb, lrint, lround, nan, nearbyint, nextafter,
3727 nexttoward, remainder, remquo, rint, round, scalbln, scalbn, tgamma,
3728 trunc) [__cplusplus >= 201103L]: Import from namespace std.
3729 (fabs) [__cplusplus < 201103L]: Import from namespace std.
3730 * include/tr1/complex (acosh, asinh, atanh) [__cplusplus >= 201103L]:
3732 * testsuite/tr1/headers/c++200x/complex.cc: Add std::fabs to global
3733 namespace before including TR1 headers.
3734 * testsuite/tr1/headers/c++200x/math.cc: New test.
3736 2016-02-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
3739 * include/c_global/cstdarg: Undefine __need___va_list.
3740 * include/c_global/cstddef: Undefine all kinds of __need_*.
3742 2016-02-16 Tim Shen <timshen@google.com>
3745 * include/bits/regex_scanner.h: Add different special character
3746 sets for grep and egrep regex.
3747 * include/bits/regex_scanner.tcc: Use _M_spec_char more uniformly.
3748 * testsuite/28_regex/regression.cc: Add new testcase.
3750 2016-02-08 Jonathan Wakely <jwakely@redhat.com>
3752 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Remove accidentally
3753 added 'constexpr' in previous commit.
3754 * configure: Regenerate.
3757 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Enable isinf and isnan
3758 checks for all targets except *-*-solaris2.* and ensure we find the
3759 libc math.h header not our own.
3760 * configure: Regenerate.
3762 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
3764 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt (FUNC):
3765 New file. Copied over from s390-linux-gnu.
3767 2016-02-04 Jonathan Wakely <jwakely@redhat.com>
3770 * acinclude.m4 (GLIBCXX_ENABLE_C99): Check C99 stdlib.h functions
3771 with -std=c++98 and define _GLIBCXX98_USE_C99_STDLIB.
3772 * config.h.in: Regenerate.
3773 * configure: Regenerate.
3774 * testsuite/21_strings/c_strings/char/69626.cc: New.
3776 * doc/html/index.html: Regenerate.
3778 * doc/xml/manual/containers.xml: Add cross-reference to Dual ABI.
3779 * doc/xml/manual/spine.xml: Update copyright years and author blurb.
3780 * doc/html/*: Regenerate.
3782 2016-02-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
3785 * include/c_compatibility/math.h: Move header guards.
3786 * include/c_compatibility/stdlib.h: Likewise.
3788 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
3791 * config/os/newlib/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3793 2016-01-28 John David Anglin <danglin@gcc.gnu.org>
3796 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Split check for obsolete
3797 isinf and isnan functions into two independent checks. Check on hpux.
3798 * config.h.in: Regenerate.
3799 * configure: Regenerate.
3800 * include/c_global/cmath (isinf(double), isnan(double)): Use
3801 _GLIBCXX_HAVE_OBSOLETE_ISINF and _GLIBCXX_HAVE_OBSOLETE_ISNAN,
3804 2016-01-27 Jakub Jelinek <jakub@redhat.com>
3806 * testsuite/libstdc++-prettyprinters/whatis.cc: Include <random>.
3808 2016-01-27 Jonathan Wakely <jwakely@redhat.com>
3811 * testsuite/ext/special_functions/hyperg/check_value.cc: Use
3812 -ffp-contract=off, and -ffloat-store to disable excess precision.
3813 * testsuite/special_functions/02_assoc_legendre/check_value.cc: Use
3816 2016-01-26 Jonathan Wakely <jwakely@redhat.com>
3819 * include/bits/stl_algobase.h (__copy_move<_IsMove, true,
3820 random_access_iterator_tag>): Check is_move_assignable when moving.
3821 (__copy_move_backwards<_IsMove, true, random_access_iterator_tag>):
3823 * testsuite/25_algorithms/copy/move_iterators/69478.cc: New.
3824 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc: New.
3825 * testsuite/25_algorithms/move/69478.cc: New.
3826 * testsuite/25_algorithms/move_backward/69478.cc: new.
3828 2016-01-26 Andris Pavenis <andris.pavenis@iki.fi>
3830 * include/c_compatibility/stdlib.h: Include wide character related
3831 definitions only when they are available in cstdlib.
3833 2016-01-25 Jonathan Wakely <jwakely@redhat.com>
3836 * include/Makefile.am: Add new header.
3837 * include/Makefile.in: Regenerate.
3838 * include/bits/random.h (uniform_int_distribution): Move to
3839 bits/uniform_int_dist.h.
3840 * include/bits/random.tcc (uniform_int_distribution::operator(),
3841 uniform_int_distribution::__generate_impl): Likewise.
3842 * include/bits/uniform_int_dist.h: New header.
3843 * include/bits/stl_algo.h [__cplusplus >= 201103L]: Include
3844 <bits/uniform_int_dist.h> instead of <random>.
3845 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
3846 move_iterators/1.cc: Include correct header for uninitialized_copy.
3847 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
3848 move_iterators/1.cc: Likewise.
3849 * testsuite/25_algorithms/nth_element/58800.cc: Include correct
3851 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lines.
3853 2016-01-23 John David Anglin <danglin@gcc.gnu.org>
3856 * config/os/hpux/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3858 2016-01-22 Edward Smith-Rowland <3dw4rd@verizon.net>
3860 TR29124 C++ Special Math - <math.h> pulls funcs into global namespace.
3861 * include/c_compatibility/math.h: Import the TR29124 functions
3862 into the global namespace.
3863 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: Remove
3864 xfail and make compile-only.
3865 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: Ditto.
3866 * testsuite/special_functions/03_beta/compile_2.cc: Ditto.
3867 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Ditto.
3868 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Ditto.
3869 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Ditto.
3870 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Ditto.
3871 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Ditto.
3872 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Ditto.
3873 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Ditto.
3874 * testsuite/special_functions/11_ellint_1/compile_2.cc: Ditto.
3875 * testsuite/special_functions/12_ellint_2/compile_2.cc: Ditto.
3876 * testsuite/special_functions/13_ellint_3/compile_2.cc: Ditto.
3877 * testsuite/special_functions/14_expint/compile_2.cc: Ditto.
3878 * testsuite/special_functions/15_hermite/compile_2.cc: Ditto.
3879 * testsuite/special_functions/16_laguerre/compile_2.cc: Ditto.
3880 * testsuite/special_functions/17_legendre/compile_2.cc: Ditto.
3881 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Ditto.
3882 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Ditto.
3883 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Ditto.
3884 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Ditto.
3886 2016-01-22 Jonathan Wakely <jwakely@redhat.com>
3889 * include/bits/valarray_before.h (__fun, __fun_with_valarray): Only
3890 define result_type for types which can be safely used with valarrays.
3891 * testsuite/26_numerics/valarray/69116.cc: New.
3894 * config/os/gnu-linux/os_defines.h: Define
3895 _GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC.
3896 * include/c_global/cmath (isinf, isnan): Check it.
3897 * doc/xml/manual/internals.xml: Document it.
3898 * doc/html/*: Regenerate.
3900 2016-01-21 Jonathan Wakely <jwakely@redhat.com>
3903 * include/bits/cpp_type_traits.h: Ensure C++ language linkage.
3904 * include/ext/type_traits.h: Likewise.
3905 * testsuite/17_intro/headers/c++2011/linkage.cc: Check autoconf macros
3906 for presence of C headers.
3907 * testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Adjust
3908 dg-error line number.
3909 * testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise.
3910 * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise.
3911 * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Likewise.
3913 2016-01-20 Torvald Riegel <triegel@redhat.com>
3916 * config/os/bsd/darwin/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3918 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
3921 * include/c_compatibility/math.h (acosh, asinh, atanh, acbrt,
3922 copysign, erf, erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb,
3923 lgamma, llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
3924 nextafter, nexttoward, remainder, remquo, rint, round, scalbln, scalbn,
3925 tgamma, trunc) [__cplusplus >= 201103L && _GLIBCXX_USE_C99_MATH_TR1]:
3926 Add using declarations.
3927 * testsuite/26_numerics/headers/cmath/60401.cc: New.
3930 * include/c_global/ccomplex: Ensure C++ language linkage.
3931 * include/c_global/cmath: Likewise.
3932 * include/c_global/cstdlib: Likewise.
3933 * include/c_global/ctgmath: Likewise.
3934 * testsuite/17_intro/headers/c++2011/linkage.cc: New.
3936 2016-01-19 Jonathan Wakely <jwakely@redhat.com>
3940 * include/Makefile.am: Use c_compatibility math.h and stdlib.h for
3941 --enable-cheaders=c_global configs.
3942 * include/Makefile.in: Regenerate.
3943 * include/c_compatibility/math.h: Remove obsolete _GLIBCXX_NAMESPACE_C
3944 test and allow inclusion from C files.
3945 * include/c_compatibility/stdlib.h: Likewise. Support freestanding.
3946 (at_quick_exit, quick_exit): Add using directives.
3947 * include/c_global/cmath: Use #include_next for math.h.
3948 * include/c_global/cstdlib: Use #include_next for stdlib.h.
3949 * testsuite/26_numerics/headers/cmath/14608.cc: New.
3950 * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
3951 Remove xfail for most targets.
3952 * testsuite/26_numerics/headers/cstdlib/60401.cc: New.
3954 2016-01-18 Torvald Riegel <triegel@redhat.com>
3956 * include/bits/c++config (_GLIBCXX_USE_WEAK_REF): New.
3957 (_GLIBCXX_TXN_SAFE, _GLIBCXX_TXN_SAFE_DYN): Use _GLIBCXX_USE_WEAK_REF
3958 and move after its definition.
3959 * config/os/aix/os_defines.h (_GLIBCXX_USE_WEAK_REF): Override.
3960 * src/c++11/cow-stdexcept.cc: Use _GLIBCXX_USE_WEAK_REF instead of
3961 __GXX_WEAK__, and only provide transactional clones if
3962 _GLIBCXX_USE_WEAK_REF is true. Don't provide stubs of libitm
3965 2016-01-18 Jonathan Wakely <jwakely@redhat.com>
3968 * testsuite/26_numerics/headers/cmath/60637.cc: Add test.
3971 * include/std/functional (_Function_base::_M_not_empty_function):
3972 Change overloads for pointers to take arguments by value.
3973 * testsuite/20_util/function/cons/57465.cc: Add tests for
3974 pointer-to-member cases.
3977 * src/c++11/cow-stdexcept.cc (_txnal_cow_string_C1_for_exceptions):
3978 Use macros for exception handling and fix unused parameter warning.
3980 2016-01-17 John David Anglin <danglin@gcc.gnu.org>
3983 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
3985 2016-01-17 Torvald Riegel <triegel@redhat.com>
3987 * src/c++11/cow-stdexcept.cc (txnal_read_ptr): Fix static_assert.
3989 2016-01-16 H.J. Lu <hongjiu.lu@intel.com>
3991 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Add
3994 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
3997 * include/bits/uses_allocator.h (__uses_alloc<true, ...>): Add
3998 static assertion that type is constructible from the arguments.
3999 * testsuite/20_util/scoped_allocator/69293_neg.cc: New.
4000 * testsuite/20_util/uses_allocator/69293_neg.cc: New.
4001 * testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error.
4004 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
4005 and isnan on AIX. Quote variables.
4006 * configure: Regenerate.
4008 2016-01-15 Torvald Riegel <triegel@redhat.com>
4010 * include/bits/basic_string.h (basic_string): Declare friends.
4011 * include/bits/c++config (_GLIBCXX_TXN_SAFE,
4012 _GLIBCXX_TXN_SAFE_DYN, _GLIBCXX_USE_ALLOCATOR_NEW): New.
4013 * include/std/stdexcept (logic_error, domain_error, invalid_argument,
4014 length_error, out_of_range, runtime_error, range_error,
4015 underflow_error, overflow_error): Declare members as transaction-safe.
4016 (logic_error, runtime_error): Declare friend functions.
4017 * libsupc++/exception (exception, bad_exception): Declare members as
4019 * src/c++11/cow-stdexcept.cc: Define transactional clones for the
4020 transaction-safe members of exceptions and helper functions.
4021 * libsupc++/eh_exception.cc: Adjust and define transactional clones.
4022 * config/abi/pre/gnu.ver (GLIBCXX_3.4.22) Add transactional clones.
4023 (CXXABI_1.3.10): New.
4024 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): New.
4025 (GLIBCXX_ENABLE_ALLOCATOR): Set ENABLE_ALLOCATOR_NEW.
4026 * configure.ac: Call GLIBCXX_CHECK_SIZE_T_MANGLING.
4027 * include/Makefile.am: Write ENABLE_ALLOCATOR_NEW to c++config.h.
4028 * include/Makefile.in: Regenerate.
4029 * config.h.in: Regenerate.
4030 * configure: Regenerate.
4031 * testsuite/util/testsuite_abi.cc (check_version): Add CXXABI_1.3.10.
4033 2016-01-15 Steve Ellcey <sellcey@imgtec.com>
4035 * include/ext/random.tcc: Use __builtin_isfinite instead of
4038 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
4040 * include/bits/std_mutex.h: Fix Doxygen @file name.
4042 2016-01-14 Edward Smith-Rowland <3dw4rd@verizon.net>
4043 Jonathan Wakely <jwakely@redhat.com>
4044 Florian Goth <CaptainSifff@gmx.de>
4046 Implement TR29124 C++ special Math Functions.
4047 * include/Makefile.am: Add new headers.
4048 * include/Makefile.in: Regenerate.
4049 * include/bits/specfun.h: New.
4050 * include/c_global/cmath: Adjust for both tr1 and tr29124 maths.
4051 * include/tr1/bessel_function.tcc: Ditto.
4052 * include/tr1/beta_function.tcc: Ditto.
4053 * include/tr1/cmath: Ditto.
4054 * include/tr1/ell_integral.tcc: Ditto.
4055 * include/tr1/exp_integral.tcc: Ditto.
4056 * include/tr1/gamma.tcc: Ditto.
4057 * include/tr1/hypergeometric.tcc: Ditto.
4058 * include/tr1/legendre_function.tcc: Ditto.
4059 * include/tr1/modified_bessel_func.tcc: Ditto.
4060 * include/tr1/poly_hermite.tcc: Ditto.
4061 * include/tr1/poly_laguerre.tcc: Ditto.
4062 * include/tr1/riemann_zeta.tcc: Ditto.
4063 * include/tr1/special_function_util.h: Ditto.
4064 * testsuite/ext/special_functions/conf_hyperg: New.
4065 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: New.
4066 * testsuite/ext/special_functions/conf_hyperg/check_value.cc: New.
4067 * testsuite/ext/special_functions/conf_hyperg/compile.cc: New.
4068 * testsuite/ext/special_functions/hyperg: New.
4069 * testsuite/ext/special_functions/hyperg/check_nan.cc: New.
4070 * testsuite/ext/special_functions/hyperg/check_value.cc: New.
4071 * testsuite/ext/special_functions/hyperg/compile.cc: New.
4072 * testsuite/libstdc++-dg/conformance.exp: Add special_functions directory.
4073 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc: New.
4074 * testsuite/special_functions/01_assoc_laguerre/check_value.cc: New.
4075 * testsuite/special_functions/01_assoc_laguerre/compile.cc: New.
4076 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: New.
4077 * testsuite/special_functions/02_assoc_legendre/check_nan.cc: New.
4078 * testsuite/special_functions/02_assoc_legendre/check_value.cc: New.
4079 * testsuite/special_functions/02_assoc_legendre/compile.cc: New.
4080 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: New.
4081 * testsuite/special_functions/03_beta/check_nan.cc: New.
4082 * testsuite/special_functions/03_beta/check_value.cc: New.
4083 * testsuite/special_functions/03_beta/compile.cc: New.
4084 * testsuite/special_functions/03_beta/compile_2.cc: New.
4085 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: New.
4086 * testsuite/special_functions/04_comp_ellint_1/check_value.cc: New.
4087 * testsuite/special_functions/04_comp_ellint_1/compile.cc: New.
4088 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: New.
4089 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: New.
4090 * testsuite/special_functions/05_comp_ellint_2/check_value.cc: New.
4091 * testsuite/special_functions/05_comp_ellint_2/compile.cc: New.
4092 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: New.
4093 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: New.
4094 * testsuite/special_functions/06_comp_ellint_3/check_value.cc: New.
4095 * testsuite/special_functions/06_comp_ellint_3/compile.cc: New.
4096 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: New.
4097 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: New.
4098 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc: New.
4099 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: New.
4100 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: New.
4101 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: New.
4102 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: New.
4103 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: New.
4104 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: New.
4105 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: New.
4106 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: New.
4107 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc: New.
4108 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: New.
4109 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: New.
4110 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: New.
4111 * testsuite/special_functions/10_cyl_neumann/check_value.cc: New.
4112 * testsuite/special_functions/10_cyl_neumann/compile.cc: New.
4113 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: New.
4114 * testsuite/special_functions/11_ellint_1/check_nan.cc: New.
4115 * testsuite/special_functions/11_ellint_1/check_value.cc: New.
4116 * testsuite/special_functions/11_ellint_1/compile.cc: New.
4117 * testsuite/special_functions/11_ellint_1/compile_2.cc: New.
4118 * testsuite/special_functions/12_ellint_2/check_nan.cc: New.
4119 * testsuite/special_functions/12_ellint_2/check_value.cc: New.
4120 * testsuite/special_functions/12_ellint_2/compile.cc: New.
4121 * testsuite/special_functions/12_ellint_2/compile_2.cc: New.
4122 * testsuite/special_functions/13_ellint_3/check_nan.cc: New.
4123 * testsuite/special_functions/13_ellint_3/check_value.cc: New.
4124 * testsuite/special_functions/13_ellint_3/compile.cc: New.
4125 * testsuite/special_functions/13_ellint_3/compile_2.cc: New.
4126 * testsuite/special_functions/14_expint/check_nan.cc: New.
4127 * testsuite/special_functions/14_expint/check_value.cc: New.
4128 * testsuite/special_functions/14_expint/compile.cc: New.
4129 * testsuite/special_functions/14_expint/compile_2.cc: New.
4130 * testsuite/special_functions/15_hermite/check_nan.cc: New.
4131 * testsuite/special_functions/15_hermite/check_value.cc: New.
4132 * testsuite/special_functions/15_hermite/compile.cc: New.
4133 * testsuite/special_functions/15_hermite/compile_2.cc: New.
4134 * testsuite/special_functions/16_laguerre/check_nan.cc: New.
4135 * testsuite/special_functions/16_laguerre/check_value.cc: New.
4136 * testsuite/special_functions/16_laguerre/compile.cc: New.
4137 * testsuite/special_functions/16_laguerre/compile_2.cc: New.
4138 * testsuite/special_functions/17_legendre/check_nan.cc: New.
4139 * testsuite/special_functions/17_legendre/check_value.cc: New.
4140 * testsuite/special_functions/17_legendre/compile.cc: New.
4141 * testsuite/special_functions/17_legendre/compile_2.cc: New.
4142 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: New.
4143 * testsuite/special_functions/18_riemann_zeta/check_value.cc: New.
4144 * testsuite/special_functions/18_riemann_zeta/compile.cc: New.
4145 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: New.
4146 * testsuite/special_functions/19_sph_bessel/check_nan.cc: New.
4147 * testsuite/special_functions/19_sph_bessel/check_value.cc: New.
4148 * testsuite/special_functions/19_sph_bessel/compile.cc: New.
4149 * testsuite/special_functions/19_sph_bessel/compile_2.cc: New.
4150 * testsuite/special_functions/20_sph_legendre/check_nan.cc: New.
4151 * testsuite/special_functions/20_sph_legendre/check_value.cc: New.
4152 * testsuite/special_functions/20_sph_legendre/compile.cc: New.
4153 * testsuite/special_functions/20_sph_legendre/compile_2.cc: New.
4154 * testsuite/special_functions/21_sph_neumann/check_nan.cc: New.
4155 * testsuite/special_functions/21_sph_neumann/check_value.cc: New.
4156 * testsuite/special_functions/21_sph_neumann/compile.cc: New.
4157 * testsuite/special_functions/21_sph_neumann/compile_2.cc: New.
4158 * testsuite/util/specfun_testcase.h: New.
4159 * testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc: More testcases.
4160 * testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc: Ditto.
4161 * testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc: Ditto.
4162 * testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc: Ditto.
4163 * testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc: Ditto.
4164 * testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc: Ditto.
4165 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc: New.
4167 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
4170 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
4171 and isnan functions.
4172 * config.h.in: Regenerate.
4173 * configure: Regenerate.
4174 * include/c_global/cmath (isinf(double), isnan(double))
4175 [_GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN]: Import via using-directive.
4176 * testsuite/26_numerics/headers/cmath/48891.cc: New.
4178 2016-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4181 * configure.host (abi_baseline_pair): Use separate baseline for
4182 Solaris 11+ and Solaris 10 with gld.
4183 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: New file.
4184 * config/abi/post/solaris2.11/baseline_symbols.txt: New file.
4185 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: New file.
4187 2016-01-12 Daniel Kruegler <daniel.kruegler@gmail.com>
4190 * include/std/type_traits: Following N4511, reimplement __is_swappable
4191 and __is_nothrow_swappable. Move __is_swappable to namespace std,
4192 adjust callers. Use __is_nothrow_swappable in swap.
4193 * include/bits/move.h: Use __is_nothrow_swappable in swap.
4194 * testsuite/20_util/is_nothrow_swappable/value.cc: Extend; remove
4195 __is_swappable related tests.
4196 * testsuite/20_util/is_swappable/value.cc: New.
4197 * testsuite/20_util/is_swappable/requirements/
4198 explicit_instantiation.cc: New.
4199 * testsuite/20_util/is_swappable/requirements/typedefs.cc: New.
4200 * testsuite/25_algorithms/swap/68877.cc: New.
4202 2016-01-12 Jonathan Wakely <jwakely@redhat.com>
4204 * testsuite/20_util/function/68995.cc: Test reference_wrapper cases.
4208 * include/std/functional (function::_Invoke): Remove, use result_of.
4209 (function::_Callable): Replace alias template with class template
4210 and use partial specialization instead of _NotSelf alias template.
4211 (function(_Functor)): Add "not self" constraint so that _Callable is
4212 not used while type is incomplete.
4213 * testsuite/20_util/function/69222.cc: New.
4215 2016-01-11 Jonathan Wakely <jwakely@redhat.com>
4218 * include/bits/alloc_traits.h (allocator_traits<allocator<_Tp>>):
4219 Define partial specialization.
4220 * testsuite/20_util/shared_ptr/cons/58659.cc: Add construct and
4221 destroy members to std::allocator explicit specialization.
4223 2016-01-08 Jonathan Wakely <jwakely@redhat.com>
4225 * testsuite/26_numerics/headers/cmath/
4226 c99_classification_macros_c++.cc: Rename to ...
4227 * testsuite/26_numerics/headers/cmath/
4228 c99_classification_macros_c++98.cc: Here and add -std=gnu++98.
4229 * testsuite/26_numerics/headers/cmath/
4230 c99_classification_macros_c++0x.cc: Rename to ...
4231 * testsuite/26_numerics/headers/cmath/
4232 c99_classification_macros_c++11.cc: Here.
4235 * include/bits/uses_allocator.h: Add missing include.
4237 2016-01-07 Jonathan Wakely <jwakely@redhat.com>
4242 * include/bits/stl_iterator.h (back_insert_iterator,
4243 front_insert_iterator, insert_iterator): Use __addressof (LWG 2324).
4244 * include/bits/uses_allocator.h (__use_alloc): Use __addressof.
4245 * include/std/future (__future::base::_State_baseV2::__setter):
4247 * include/std/scoped_allocator (__outermost): Likewise.
4248 * testsuite/20_util/scoped_allocator/69114.cc: New.
4249 * testsuite/20_util/uses_allocator/69114.cc: New.
4250 * testsuite/30_threads/promise/69106.cc: New.
4252 2016-01-06 Jonathan Wakely <jwakely@redhat.com>
4255 * include/bits/basic_string.h (basic_string::_S_copy_chars<_Iterator>):
4256 Remove _GLIBCXX_NOEXCEPT.
4257 testsuite/21_strings/basic_string/cons/char/69092.cc: New.
4259 * include/Makefile.am: Adjust.
4260 * include/Makefile.in: Regenerate.
4261 * include/bits/mutex.h: Rename to bits/std_mutex.h.
4262 * include/std/condition_variable: Adjust include.
4263 * include/std/mutex: Likewise.
4265 2016-01-04 Jakub Jelinek <jakub@redhat.com>
4267 Update copyright years.
4269 Copyright (C) 2016 Free Software Foundation, Inc.
4271 Copying and distribution of this file, with or without modification,
4272 are permitted in any medium without royalty provided the copyright
4273 notice and this notice are preserved.