1 2016-10-12 Jonathan Wakely <jwakely@redhat.com>
3 * testsuite/util/testsuite_common_types.h
4 (bitwise_assignment_operators): Use direct-initialization for C++11
5 and later, to avoid CopyConstructible requirement.
6 * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust dg-error
8 * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
9 * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: Likewise.
10 * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: Likewise.
11 * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc:
12 Adjust expected errors and line numbers.
14 * include/std/mutex [_GLIBCXX_HAVE_TLS] (_Once_call): Remove.
15 (call_once) [_GLIBCXX_HAVE_TLS]: Simplify by removing _Once_call.
17 * include/bits/stl_uninitialized.h
18 (__uninitialized_default_novalue_n_1<true>): Add missing return.
19 * testsuite/20_util/specialized_algorithms/memory_management_tools/
20 1.cc: Check return values of uninitialized_xxx_n algorithms.
22 * libsupc++/nested_exception.h (throw_with_nested): Remove return.
24 * doc/xml/manual/intro.xml: Document LWG 2442 status.
25 * include/std/mutex [_GLIBCXX_HAVE_TLS] (__once_call_impl): Remove.
26 [_GLIBCXX_HAVE_TLS] (_Once_call): Declare primary template and define
27 partial specialization to unpack args and forward to std::invoke.
28 (call_once) [_GLIBCXX_HAVE_TLS]: Use forward_as_tuple and _Once_call
29 instead of __bind_simple and __once_call_impl.
30 (call_once) [!_GLIBCXX_HAVE_TLS]: Use __invoke instead of
32 * testsuite/30_threads/call_once/dr2442.cc: New test.
34 2016-10-11 Jonathan Wakely <jwakely@redhat.com>
36 * include/bits/stl_list.h (assign(initializer_list<value_type>)): Call
37 _M_assign_dispatch directly with correct tag.
39 * doc/xml/manual/intro.xml: Document LWG 2484 status.
40 * libsupc++/nested_exception.h (_Throw_with_nested_impl)
41 (_Throw_with_nested_helper): Remove.
42 (__throw_with_nested_impl): New overloaded functions to implement
43 throw_with_nested logic.
44 (throw_with_nested): Call __throw_with_nested_impl.
45 (_Rethrow_if_nested_impl): Remove
46 (__rethrow_if_nested_impl): New overloaded functions to implement
47 rethrow_if_nested logic.
48 (rethrow_if_nested): Call __rethrow_if_nested_impl.
49 * testsuite/18_support/nested_exception/rethrow_if_nested.cc: Test
50 problem cases from LWG 2484.
52 * python/libstdcxx/v6/printers.py (build_libstdcxx_dictionary):
53 Register printer for std::__cxx11::list.
54 * python/libstdcxx/v6/xmethods.py (ListMethodsMatcher.match): Match
55 std::__cxx11::list as well as std::list.
57 * include/experimental/string_view (basic_string_view::_S_compare):
58 Remove redundant const from return type.
59 * include/std/string_view (basic_string_view:_S_compare): Likewise.
61 * include/bits/std_mutex.h (mutex::native_handle)
62 (lock_guard(mutex_type&, adopt_lock_t)
63 (unique_lock(mutex_type&, adopt_lock_t): Add noexcept.
64 * include/std/mutex (recursive_mutex, timed_mutex)
65 (recursive_timed_mutex): Likewise.
67 2016-10-10 Jonathan Wakely <jwakely@redhat.com>
69 * doc/xml/manual/appendix_contributing.xml (contrib.organization):
70 Replace <literallayout> with nested <variablelist> elements. Update
71 some more outdated text.
72 * doc/html/*: Regenerate.
74 2016-10-10 Ville Voutilainen <ville.voutilainen@gmail.com>
76 Make any's copy assignment operator exception-safe,
77 don't copy the underlying value when any is moved,
78 make in_place constructors explicit.
79 * include/std/any (any(in_place_type_t<_ValueType>, _Args&&...)):
81 (any(in_place_type_t<_ValueType>, initializer_list<_Up>, _Args&&...)):
83 (operator=(const any&)): Make strongly exception-safe.
84 (operator=(any&&)): reset() unconditionally in the case where
86 (operator=(_ValueType&&)): Indent the return type.
87 (_Manager_internal<_Tp>::_S_manage): Move in _Op_xfer, don't copy.
88 * testsuite/20_util/any/assign/2.cc: Adjust.
89 * testsuite/20_util/any/assign/exception.cc: New.
90 * testsuite/20_util/any/cons/2.cc: Adjust.
91 * testsuite/20_util/any/cons/explicit.cc: New.
92 * testsuite/20_util/any/misc/any_cast_neg.cc: Ajust.
94 2016-10-10 Jonathan Wakely <jwakely@redhat.com>
96 * doc/xml/manual/appendix_contributing.xml (contrib.organization):
97 Describe other subdirectories and add markup. Remove outdated
98 reference to check-script target.
99 * doc/html/*: Regenerate.
101 * doc/xml/manual/status_cxx2011.xml: Correct C++11 status.
103 * libsupc++/eh_ptr.cc (exception_ptr): Replace _GLIBCXX_USE_NOEXCEPT
106 * include/std/functional (_Bind_result::__enable_if_void): Use alias
107 template instead of class template.
108 (_Bind_result::__disable_if_void): Likewise.
109 (_Bind_result::__call): Adjust uses of __enable_if_void and
112 * doc/xml/manual/intro.xml: Document DR 2296 status.
113 * doc/xml/manual/status_cxx2017.xml: Update status.
114 * include/bits/move.h (__addressof): Add _GLIBCXX_CONSTEXPR and
115 call __builtin_addressof.
116 (addressof): Add _GLIBCXX17_CONSTEXPR.
117 * testsuite/20_util/addressof/requirements/constexpr.cc: New test.
118 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error lineno.
119 * testsuite/20_util/forward/f_neg.cc: Likewise.
121 * include/bits/allocator.h (allocator<T>::is_always_equal): Define.
122 * testsuite/20_util/allocator/requirements/typedefs.cc: Test for
124 * testsuite/util/testsuite_allocator.h
125 (uneq_allocator::is_always_equal): Define as false_type.
127 * include/experimental/numeric (gcd, lcm): Make bool arguments
129 * include/std/numeric (gcd, lcm): Likewise.
130 * testsuite/26_numerics/gcd/gcd_neg.cc: New test.
131 * testsuite/26_numerics/lcm/lcm_neg.cc: New test.
133 * include/bits/shared_ptr.h (enable_shared_from_this::weak_from_this):
135 * include/bits/shared_ptr_base.h
136 (__enable_shared_from_this::weak_from_this): Likewise.
137 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
138 Test exception-specification of weak_from_this.
140 2016-10-07 Jonathan Wakely <jwakely@redhat.com>
142 * doc/xml/manual/status_cxx1998.xml: Improve documentation of
143 implementation-defined properties.
144 * doc/xml/manual/status_cxx2011.xml: Likewise.
145 * doc/xml/manual/status_cxx2017.xml: Likewise.
147 * doc/xml/manual/status_cxx2017.xml: Update status.
148 * include/std/type_traits (has_unique_object_representations): Define.
149 * testsuite/20_util/has_unique_object_representations/value.cc: New.
150 * testsuite/20_util/has_unique_object_representations/requirements/
151 explicit_instantiation.cc: New.
152 * testsuite/20_util/has_unique_object_representations/requirements/
155 2016-10-06 Jonathan Wakely <jwakely@redhat.com>
157 * doc/xml/manual/status_cxx2011.xml: Update status.
158 * include/std/scoped_allocator (__outer_allocator_t, __outermost_type):
159 New helpers for recursive OUTERMOST.
160 (__outermost): Use __outermost_type::_S_outermost.
161 (__do_outermost, scoped_allocator_adaptor::__outermost_type): Remove.
162 (scoped_allocator_adaptor::__outermost_alloc_traits): Use new
163 __outermost_type helper.
164 (scoped_allocator_adaptor::_Constructible): New alias template.
165 (scoped_allocator_adaptor::scoped_allocator_adaptor<_Outer2>):
166 Constrain template constructors.
167 * testsuite/20_util/scoped_allocator/3.cc: New test.
168 * testsuite/20_util/scoped_allocator/outermost.cc: New test.
170 2016-10-05 Jonathan Wakely <jwakely@redhat.com>
173 * testsuite/20_util/not_fn/1.cc: Fix test.
174 * testsuite/experimental/functional/not_fn.cc: Likewise.
177 * include/bits/stl_queue.h (priority_queue): Fix allocator-extended
179 * testsuite/23_containers/priority_queue/allocator.cc: New test.
182 * include/bits/stl_map.h (map::map()): Use nothrow constructibility
183 of comparison function in conditional noexcept.
184 * include/bits/stl_multimap.h (multimap::multimap()): Likewise.
185 * include/bits/stl_multiset.h (multiset::multiset()): Likewise.
186 * include/bits/stl_set.h (set::set()): Likewise.
187 * testsuite/23_containers/map/cons/noexcept_default_construct.cc:
189 * testsuite/23_containers/multimap/cons/noexcept_default_construct.cc:
191 * testsuite/23_containers/multiset/cons/noexcept_default_construct.cc:
193 * testsuite/23_containers/set/cons/noexcept_default_construct.cc:
196 * include/bits/node_handle.h (_Node_handle): Remove invalid and unused
200 * include/experimental/functional (_Not_fn): Remove.
201 (not_fn): Use std::_Not_fn.
202 * include/std/functional (_Not_fn): Add second parameter to
203 disambiguate copying from initialization by not_fn. Define for C++14.
204 (not_fn): Add second argument to initialization.
205 * testsuite/20_util/not_fn/1.cc: Copy call wrapper using
206 direct-initialization.
208 2016-10-03 François Dumont <fdumont@gcc.gnu.org>
210 * src/c++11/shared_ptr.cc (mask, invalid, get_mutex): Move
212 * src/c++11/mutex_pool.h: ... here. New.
213 * src/c++11/debug.cc: Use latter.
215 2016-10-03 Jonathan Wakely <jwakely@redhat.com>
217 * doc/xml/manual/status_cxx2017.xml: Update gcd/lcm status.
218 * doc/html/*: Regenerate.
219 * include/experimental/numeric (__abs): Move to <numeric>.
220 (gcd, lcm): Use __detail::gcd and __detail::lcm.
221 * include/std/numeric (__detail::__abs_integral)
222 (__detail::__gcd, __detail::__lcm): Define.
223 (gcd, lcm): Define for C++17.
224 * testsuite/26_numerics/gcd/1.cc: New test.
225 * testsuite/26_numerics/lcm/1.cc: New test.
226 * testsuite/experimental/numeric/gcd.cc: Swap contents with ...
227 * testsuite/experimental/numeric/lcd.cc: ... this.
231 * config/abi/pre/gnu-versioned-namespace.ver: Add exports for
232 __cxa_thread_atexit and __gnu_cxx::__freeres.
233 * include/Makefile.am: Add <experimental/bits/lfts_config.h>
234 * include/Makefile.in: Regenerate.
235 * include.bits/basic_string.h: Fix nesting of versioned namespaces.
236 * include/bits/c++config: Declare versioned namespaces for literals.
237 * include/bits/regex.h (basic_regex, match_results): Add workarounds
239 * include/bits/uniform_int_dist.h: Fix nesting of versioned namespace.
240 * include/std/chrono: Likewise.
241 * include/std/complex: Likewise.
242 * include/std/string_view: Likewise.
243 * include/std/variant: Likewise. Add workaround for PR c++/59256.
244 * include/experimental/bits/fs_fwd.h: Declare versioned namespace.
245 * include/experimental/bits/lfts_config.h: Declare versioned
247 * include/experimental/algorithm: Include
248 <experimental/bits/lfts_config.h>.
249 * include/experimental/any: Likewise.
250 * include/experimental/bits/erase_if.h: Likewise.
251 * include/experimental/chrono: Likewise.
252 * include/experimental/functional: Likewise.
253 * include/experimental/memory_resource: Likewise.
254 * include/experimental/optional: Likewise.
255 * include/experimental/propagate_const: Likewise.
256 * include/experimental/random: Likewise.
257 * include/experimental/ratio: Likewise.
258 * include/experimental/system_error: Likewise.
259 * include/experimental/tuple: Likewise.
260 * include/experimental/type_traits: Likewise.
261 * include/experimental/utility: Likewise.
262 * include/experimental/string_view: Likewise. Fix nesting of
263 versioned namespaces.
264 * include/experimental/bits/string_view.tcc: Reopen inline namespace
265 for non-inline function definitions.
266 * testsuite/17_intro/using_namespace_std_exp_neg.cc: New test.
267 * testsuite/20_util/duration/literals/range.cc: Adjust dg-error line.
268 * testsuite/experimental/any/misc/any_cast_neg.cc: Likewise.
269 * testsuite/experimental/propagate_const/assignment/move_neg.cc:
271 * testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
272 * testsuite/experimental/propagate_const/requirements2.cc: Likewise.
273 * testsuite/experimental/propagate_const/requirements3.cc: Likewise.
274 * testsuite/experimental/propagate_const/requirements4.cc: Likewise.
275 * testsuite/experimental/propagate_const/requirements5.cc: Likewise.
276 * testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.
279 * include/bits/std_abs.h: Use "C++" language linkage.
280 * testsuite/17_intro/headers/c++2011/linkage.cc: Move <complex.h> to
281 the end. Add <stdalign.h>.
283 2016-10-03 Ville Voutilainen <ville.voutilainen@gmail.com>
286 * testsuite/20_util/tuple/77802.cc: New.
289 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
290 Implement LWG 2729 for tuple.
291 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)):
292 Suppress conditionally.
293 (_Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&&)): Likewise.
294 (__is_tuple_impl_trait_impl, __is_tuple_impl_trait): New.
295 (_Tuple_impl(const _Head&)): Constrain.
296 (_Tuple_impl(_UHead&&)): Likewise.
297 (_Tuple_impl(_Tuple_impl&&)): Suppress conditionally.
298 (_Tuple_impl(const _Tuple_impl<_Idx, _UHead>&)): Constrain.
299 (_Tuple_impl(_Tuple_impl<_Idx, _UHead>&&)): Likewise.
300 (operator=(const tuple&)): Enable conditionally.
301 (operator=(tuple&&)): Suppress conditionally.
302 (operator=(const tuple<_UElements...>&)): Constrain.
303 (operator=(tuple<_UElements...>&&)): Likewise.
304 (operator=(const tuple&)): Enable conditionally (2-param tuple).
305 (operator=(tuple&&)): Suppress conditionally (2-param tuple).
306 (operator=(const tuple<_U1, _U2>&)): Constrain.
307 (operator=(tuple<_U1, _U2>&&)): Likewise.
308 (operator=(const pair<_U1, _U2>&)): Likewise.
309 (operator=(pair<_U1, _U2>&&)): Likewise.
310 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust.
311 * testsuite/20_util/tuple/tuple_traits.cc: New.
313 2016-09-30 Jonathan Wakely <jwakely@redhat.com>
316 * acinclude.m4 (GLIBCXX_CHECK_STDIO_PROTO): Use -std=gnu++11 to check
318 * config.h.in: Regenerate.
319 * configure: Regenerate.
320 * include/c_global/cstdio [!_GLIBCXX_HAVE_GETS] (gets): Only declare
322 * include/c_std/cstdio [!_GLIBCXX_HAVE_GETS] (gets): Likewise.
323 * testsuite/27_io/headers/cstdio/functions_neg.cc: New test.
325 * doc/xml/manual/intro.xml: Document LWG 2192 changes.
326 * doc/html/*: Regenerate.
327 * include/Makefile.am: Add bits/std_abs.h.
328 * include/Makefile.in: Regenerate.
329 * include/bits/std_abs.h: New header defining all required overloads
330 of std::abs in one place (LWG 2294).
331 * include/c_global/cmath (abs(double), abs(float), abs(long double)):
332 Move to bits/std_abs.h.
333 (abs<_Tp>(_Tp)): Remove.
334 * include/c_global/cstdlib (abs(long), abs(long long), abs(__int<N>)):
335 Move to bits/std_abs.h.
336 * testsuite/26_numerics/headers/cmath/dr2192.cc: New test.
337 * testsuite/26_numerics/headers/cmath/dr2192_neg.cc: New test.
338 * testsuite/26_numerics/headers/cstdlib/dr2192.cc: New test.
339 * testsuite/26_numerics/headers/cstdlib/dr2192_neg.cc: New test.
342 * include/experimental/numeric: Include <numeric>.
344 (gcd, lcm): Use __abs instead of std::abs.
345 * testsuite/experimental/numeric/77801.cc: New test.
346 * testsuite/experimental/numeric/gcd.cc: Test unsigned inputs.
347 * testsuite/experimental/numeric/lcm.cc: Likewise.
349 2016-09-29 Ville Voutilainen <ville.voutilainen@gmail.com>
351 Make optional::reset noexcept, make optional::value
352 work in constant expressions.
353 * include/std/optional (_M_get): Make constexpr.
354 (reset): Make noexcept.
355 * testsuite/20_util/optional/assignment/7.cc: New.
356 * testsuite/20_util/optional/observers/6.cc: New.
358 2016-09-29 Jonathan Wakely <jwakely@redhat.com>
360 * include/c_global/cmath (hypot, __hypot3): Move C++17 overloads
361 outside _GLIBCXX_USE_C99_MATH_TR1 condition.
363 2016-09-29 Alan Modra <amodra@gmail.com>
365 * configure.ac (LONG_DOUBLE_COMPAT_FLAGS): New ACSUBST.
366 * src/Makefile.am (compatibility-ldbl.o, compatibility-ldbl.lo):
367 Use LONG_DOUBLE_COMPAT_FLAGS.
368 * Makefile.in: Regenerate.
369 * configure: Regenerate.
370 * doc/Makefile.in: Regenerate.
371 * include/Makefile.in: Regenerate.
372 * libsupc++/Makefile.in: Regenerate.
373 * po/Makefile.in: Regenerate.
374 * python/Makefile.in: Regenerate.
375 * src/Makefile.in: Regenerate.
376 * src/c++11/Makefile.in: Regenerate.
377 * src/c++98/Makefile.in: Regenerate.
378 * src/filesystem/Makefile.in: Regenerate.
379 * testsuite/Makefile.in: Regenerate.
381 2016-09-28 Jonathan Wakely <jwakely@redhat.com>
383 * include/std/chrono (system_clock): Fix typo in comment.
385 * include/experimental/bits/fs_fwd.h (file_time_type): Simplify
387 * src/filesystem/ops.cc (file_time): Take error_code parameter and
389 (do_copy_file, last_write_time): Pass error_code in file_time calls.
390 * testsuite/experimental/filesystem/operations/last_write_time.cc:
392 * testsuite/util/testsuite_fs.h (scoped_file): Define RAII helper.
395 * include/std/functional (_Any_data): Add may_alias attribute.
397 2016-09-27 Jonathan Wakely <jwakely@redhat.com>
399 * doc/xml/manual/status_cxx2017.xml: Update status.
400 * doc/html/*: Regenerate.
401 * include/std/functional (__cpp_lib_boyer_moore_searcher): Define.
402 * testsuite/20_util/function_objects/searchers.cc: Test feature macro.
404 * doc/xml/manual/status_cxx2017.xml: Update status.
405 * include/c_global/cmath (hypot): Add three-dimensional overloads.
406 * testsuite/26_numerics/headers/cmath/hypot.cc: New.
408 2016-09-26 Ville Voutilainen <ville.voutilainen@gmail.com>
411 * include/std/optional (optional(const optional<_Up>&)):
412 Default-initialize the base and use emplace.
413 (optional(optional<_Up>&&)): Likewise.
414 * testsuite/20_util/optional/cons/77727.cc: New.
416 2016-09-26 François Dumont <fdumont@gcc.gnu.org>
418 * include/debug/safe_base.h
419 (_Safe_iterator_base::_M_detach_single): Make public.
421 2016-09-26 Jonathan Wakely <jwakely@redhat.com>
423 * include/bits/range_access.h (__cpp_lib_array_constexpr): Do not
424 redefine macro defined in <bits/stl_iterator.h>.
426 * include/bits/stl_map.h (map::extract(const_iterator)): Assert that
427 iterator is not past-the-end.
428 * include/bits/stl_multimap.h (multimap::extract(const_iterator)):
430 * include/bits/stl_multiset.h (multiset::extract(const_iterator)):
432 * include/bits/stl_set.h (set::extract(const_iterator)): Likewise.
433 * include/bits/unordered_map.h (unordered_map::extract(const_iterator))
434 (unordered_multimap::extract(const_iterator)): Likewise.
435 * include/bits/unordered_set.h (unordered_set::extract(const_iterator))
436 (unordered_multiset::extract(const_iterator)): Likewise.
438 2016-09-26 Ville Voutilainen <ville.voutilainen@gmail.com>
441 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
442 Fix an out-of-bounds access.
444 2016-09-26 Marek Polacek <polacek@redhat.com>
447 * libsupc++/hash_bytes.cc: Add [[gnu::fallthrough]].
449 2016-09-25 François Dumont <fdumont@gcc.gnu.org>
451 * src/c++11/debug.cc: Include debug/vector. Include cctype. Remove
453 (get_safe_base_mutex): Get mutex based on address lowest non nil bits.
454 * testsuite/23_containers/vector/debug/mutex_association.cc: New.
456 * include/debug/bitset (bitset::reference::reference(const _Base_ref&,
457 bitset*)): Remove __unused__ attribute.
458 * include/debug/safe_base.h (_Safe_iterator_base): Make
459 _Safe_sequence_base a friend.
460 (_Safe_iterator_base::_M_attach): Make protected.
461 (_Safe_iterator_base::_M_attach_single): Likewise.
462 (_Safe_iterator_base::_M_detach): Likewise.
463 (_Safe_iterator_base::_M_detach_single): Likewise.
464 (_Safe_sequence_base): Make _Safe_iterator_base a friend.
465 (_Safe_sequence_base::_Safe_sequence_base(_Safe_sequence_base&&)): New.
466 (_Safe_sequence_base::_M_swap): Make protected.
467 (_Safe_sequence_base::_M_attach): Make private.
468 (_Safe_sequence_base::_M_attach_single): Likewise.
469 (_Safe_sequence_base::_M_detach): Likewise.
470 (_Safe_sequence_base::_M_detach_single): Likewise.
471 * include/debug/safe_container.h
472 (_Safe_container::_Safe_container(_Safe_container&&)): Make default.
473 * include/debug/safe_iterator.h
474 (_Safe_iterator::operator++()): Name __scoped_lock instance.
475 * include/debug/safe_iterator.tcc: Remove trailing line.
476 * include/debug/safe_unordered_base.h
477 (_Safe_local_iterator_base::_M_attach): Make protected.
478 (_Safe_local_iterator_base::_M_attach_single): Likewise.
479 (_Safe_local_iterator_base::_M_detach): Likewise.
480 (_Safe_local_iterator_base::_M_detach_single): Likewise.
481 (_Safe_unordered_container_base): Make _Safe_local_iterator_base friend.
482 (_Safe_unordered_container_base::_M_attach_local): Make private.
483 (_Safe_unordered_container_base::_M_attach_local_single): Likewise.
484 (_Safe_unordered_container_base::_M_detach_local): Likewise.
485 (_Safe_unordered_container_base::_M_detach_local_single): Likewise.
487 * include/parallel/algo.h: Generalize usage of std::__iterator_category.
490 2016-09-23 Jonathan Wakely <jwakely@redhat.com>
494 * include/bits/basic_string.h (basic_string::clear()): Drop reference
496 * include/ext/rc_string_base.h (__rc_string_base::_M_clear()):
498 * testsuite/21_strings/basic_string/56166.cc: New.
499 * testsuite/ext/vstring/modifiers/clear/56166.cc: New.
501 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
502 (basic_string::erase(size_type, size_type)): Add fast path for
503 truncating the string, by calling _M_set_length directly.
504 (basic_string::erase(__const_iterator, __const_iterator)): Likewise.
505 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
506 (basic_string::resize(size_type, _CharT)): Likewise.
508 2016-09-22 Jason Merrill <jason@redhat.com>
510 * configure.ac: Define HAVE_MEMALIGN for newlib.
512 2015-09-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
514 * config/cpu/m68k/atomicity.h: Adjust comment.
515 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Honor
516 explicit atomicity_dir setup via configure.host.
517 * configure.host (rtems-*): Set atomicity_dir.
518 * configure: Regenerate.
520 2016-09-22 Jonathan Wakely <jwakely@redhat.com>
522 Implement C++17 node extraction and insertion (P0083R5)
523 * doc/xml/manual/status_cxx2017.xml: Document status.
524 * doc/html/*: Regenerate.
525 * include/Makefile.am: Add bits/node_handle.h and reorder.
526 * include/Makefile.in: Regenerate.
527 * include/bits/hashtable.h (_Hashtable::node_type)
528 (_Hashtable::insert_return_type, _Hashtable::_M_reinsert_node)
529 (_Hashtable::_M_reinsert_node_multi, _Hashtable::extract)
530 (_Hashtable::_M_merge_unique, _Hashtable::_M_merge_multi): Define.
531 (_Hash_merge_helper): Define primary template.
532 * include/bits/node_handle.h: New header.
533 * include/bits/stl_map.h (map): Declare _Rb_tree_merge_helper as
535 (map::node_type, map::insert_return_type, map::extract, map::merge)
536 (map::insert(node_type&&), map::insert(const_iterator, node_type&&)):
538 (_Rb_tree_merge_helper): Specialize for map.
539 * include/bits/stl_multimap.h (multimap): Declare _Rb_tree_merge_helper
541 (multimap::node_type, multimap::extract, multimap::merge)
542 (multimap::insert(node_type&&))
543 (multimap::insert(const_iterator, node_type&&)): Define.
544 (_Rb_tree_merge_helper): Specialize for multimap.
545 * include/bits/stl_multiset.h (multiset): Declare _Rb_tree_merge_helper
547 (multiset::node_type, multiset::extract, multiset::merge)
548 (multiset::insert(node_type&&))
549 (multiset::insert(const_iterator, node_type&&)): Define.
550 * include/bits/stl_set.h (set): Declare _Rb_tree_merge_helper as
552 (set::node_type, set::insert_return_type, set::extract, set::merge)
553 (set::insert(node_type&&), set::insert(const_iterator, node_type&&)):
555 (_Rb_tree_merge_helper): Specialize for set.
556 * include/bits/stl_tree.h (_Rb_tree): Declare _Rb_tree<> as friend.
557 (_Rb_tree::node_type, _Rb_tree::insert_return_type)
558 (_Rb_tree::_M_reinsert_node_unique, _Rb_tree::_M_reinsert_node_equal)
559 (_Rb_tree::_M_reinsert_node_hint_unique)
560 (_Rb_tree::_M_reinsert_node_hint_equal, _Rb_tree::extract)
561 (_Rb_tree::_M_merge_unique, _Rb_tree::_M_merge_equal): Define.
562 (_Rb_tree_merge_helper): Specialize for multiset.
563 * include/bits/unordered_map.h (unordered_map): Declare
564 unordered_map<> and unordered_multimap<> as friends.
565 (unordered_map::node_type, unordered_map::insert_return_type)
566 (unordered_map::extract, unordered_map::merge)
567 (unordered_map::insert(node_type&&))
568 (unordered_map::insert(const_iterator, node_type&&))
569 (unordered_multimap): Declare _Hash_merge_helper as friend.
570 (unordered_multimap::node_type, unordered_multimap::extract)
571 (unordered_multimap::merge, unordered_multimap::insert(node_type&&))
572 (unordered_multimap::insert(const_iterator, node_type&&)): Define.
573 (_Hash_merge_helper): Specialize for unordered maps and multimaps.
574 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
575 Declare _Hash_merge_helper as friend.
576 (unordered_set::node_type, unordered_set::insert_return_type)
577 (unordered_set::extract, unordered_set::merge)
578 (unordered_set::insert(node_type&&))
579 (unordered_set::insert(const_iterator, node_type&&)): Define.
580 (unordered_multiset::node_type, unordered_multiset::extract)
581 (unordered_multiset::merge, unordered_multiset::insert(node_type&&))
582 (unordered_multiset::insert(const_iterator, node_type&&)): Define.
583 (_Hash_merge_helper): Specialize for unordered sets and multisets.
584 * include/debug/map.h (map): Add using declarations or forwarding
585 functions for new members.
586 * include/debug/map.h (multimap): Likewise.
587 * include/debug/map.h (multiset): Likewise.
588 * include/debug/map.h (set): Likewise.
589 * include/debug/unordered_map (unordered_map, unordered_multimap):
591 * include/debug/unordered_set( unordered_set, unordered_multiset):
593 * python/libstdcxx/v6/printers.py (get_value_from_aligned_membuf): New
595 (get_value_from_list_node, get_value_from_Rb_tree_node): Use helper.
596 (StdNodeHandlePrinter): Define printer for node handles.
597 (build_libstdcxx_dictionary): Register StdNodeHandlePrinter.
598 * testsuite/23_containers/map/modifiers/extract.cc: New.
599 * testsuite/23_containers/map/modifiers/merge.cc: New.
600 * testsuite/23_containers/multimap/modifiers/extract.cc: New.
601 * testsuite/23_containers/multimap/modifiers/merge.cc: New.
602 * testsuite/23_containers/multiset/modifiers/extract.cc: New.
603 * testsuite/23_containers/multiset/modifiers/merge.cc: New.
604 * testsuite/23_containers/set/modifiers/extract.cc: New.
605 * testsuite/23_containers/set/modifiers/merge.cc: New.
606 * testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
607 * testsuite/23_containers/unordered_map/modifiers/merge.cc: New.
608 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
610 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc: New.
611 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
613 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc: New.
614 * testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
615 * testsuite/23_containers/unordered_set/modifiers/merge.cc: New.
616 * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
618 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test node handles.
620 2016-09-22 Ville Voutilainen <ville.voutilainen@gmail.com>
622 Fix tests on old arm platforms for optional.
623 * testsuite/20_util/optional/77288.cc: Don't use exception_ptr.
625 2016-09-22 Jonathan Wakely <jwakely@redhat.com>
627 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Adjust for
628 recent change to _Variant_storage.
629 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test variant with
632 * include/bits/uses_allocator.h (__uses_allocator_construct): Qualify
633 std::forward and ::new. Cast pointer to void*.
634 * include/std/variant (_Variant_storage, _Union, _Variant_base)
635 (__access, __visit_invoke, variant, visit): Qualify std::forward.
636 * testsuite/20_util/variant/compile.cc: Test for ADL problems.
638 2016-09-22 Tim Shen <timshen@google.com>
640 * include/std/variant (variant::operator=): Fix assignment
642 * testsuite/20_util/variant/compile.cc: Add test.
644 2016-09-22 Tim Shen <timshen@google.com>
647 * include/std/variant (_Variant_storage::_Variant_storage):
648 Change _Variant_storage's union to be default constructible.
649 * testsuite/20_util/variant/compile.cc: New test.
651 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
654 * include/std/optional (__is_optional_impl, __is_optional): Remove.
655 (__converts_from_optional, __assigns_from_optional): New.
656 (optional(_Up&&)): Use is_same instead of __is_optional.
657 (optional(const optional<_Up>&)): Constrain with
658 __converts_from_optional.
659 (optional(optional<_Up>&&)): Likewise.
660 (operator=(_Up&&)): Use is_same instead of __is_optional, check
661 is_same and is_scalar.
662 (operator=(const optional<_Up>&)): Constrain with
663 __converts_from_optional and __assigns_from_optional.
664 (operator=(optional<_Up>&&)): Likewise.
665 * testsuite/20_util/optional/77288.cc: New.
666 * testsuite/20_util/optional/cons/value.cc: Adjust.
668 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
670 Implement LWG 2729 for tuple.
671 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)):
672 Suppress conditionally.
673 (_Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&&)): Likewise.
674 (__is_tuple_impl_trait_impl, __is_tuple_impl_trait): New.
675 (_Tuple_impl(const _Head&)): Constrain.
676 (_Tuple_impl(_UHead&&)): Likewise.
677 (_Tuple_impl(_Tuple_impl&&)): Suppress conditionally.
678 (_Tuple_impl(const _Tuple_impl<_Idx, _UHead>&)): Constrain.
679 (_Tuple_impl(_Tuple_impl<_Idx, _UHead>&&)): Likewise.
680 (operator=(const tuple&)): Enable conditionally.
681 (operator=(tuple&&)): Suppress conditionally.
682 (operator=(const tuple<_UElements...>&)): Constrain.
683 (operator=(tuple<_UElements...>&&)): Likewise.
684 (operator=(const tuple&)): Enable conditionally (2-param tuple).
685 (operator=(tuple&&)): Suppress conditionally (2-param tuple).
686 (operator=(const tuple<_U1, _U2>&)): Constrain.
687 (operator=(tuple<_U1, _U2>&&)): Likewise.
688 (operator=(const pair<_U1, _U2>&)): Likewise.
689 (operator=(pair<_U1, _U2>&&)): Likewise.
690 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust.
691 * testsuite/20_util/tuple/tuple_traits.cc: New.
693 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
696 Implement LWG 2729 for pair.
697 * include/bits/stl_pair.h (_PCC): New.
698 (_ConstructiblePair, _ImplicitlyConvertiblePair):
699 Turn into static member functions of _PCC.
700 (_MoveConstructiblePair, _ImplicitlyMoveConvertiblePair): Likewise.
702 (pair(const _T1&, const _T2&)): Adjust.
704 (pair(const pair<_U1, _U2>&)): Adjust.
705 (pair(_U1&&, const _T2&)): Likewise.
706 (pair(const _T1&, _U2&&)): Likewise.
707 (pair(_U1&&, _U2&&)): Likewise.
708 (pair(pair<_U1, _U2>&&)): Likewise.
709 (operator=(const pair&)): Make conditionally deleted.
710 (operator=(pair&&)): Make conditionally suppressed.
711 (operator=(const pair<_U1, _U2>&)): Constrain.
712 (operator=(pair<_U1, _U2>&&): Likewise.
713 * include/std/type_traits (__nonesuch): New.
714 * testsuite/20_util/pair/traits.cc: New.
716 2016-09-20 Ville Voutilainen <ville.voutilainen@gmail.com>
719 * include/bits/stl_construct.h: (_Construct_novalue): New.
720 (_Destroy_n_aux, _Destroy_n): New.
721 * include/bits/stl_uninitialized.h: (type_traits):
722 New include in C++11 mode.
723 (__uninitialized_default_novalue_1): New.
724 (__uninitialized_default_novalue_n_1): Likewise.
725 (__uninitialized_default_novalue): Likewise.
726 (__uninitialized_default_novalue_n): Likewise.
727 (__uninitialized_copy_n_pair): Likewise.
728 (uninitialized_default_construct):
729 Use __uninitialized_default_novalue.
730 (uninitialized_default_construct_n):
731 Use __uninitialized_default_novalue_n.
732 (uninitialized_value_construct): Use __uninitialized_default.
733 (uninitialized_value_construct_n): Use __uninitialized_default_n.
734 (uninitialized_move): Use uninitialized_copy.
735 (uninitialized_move_n): Use __uninitialized_copy_n_pair.
736 (destroy_at): Use _Destroy.
738 (destroy_n): Likewise.
739 * testsuite/20_util/specialized_algorithms/
740 memory_management_tools/1.cc: Add tests for exceptions,
741 add tests for trivial cases for construct and move.
743 2016-09-20 Jonathan Wakely <jwakely@redhat.com>
745 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
746 (DequeWorkerBase.index, VectorWorkerBase.get): Use // for division.
748 2016-09-19 Jonathan Wakely <jwakely@redhat.com>
751 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
752 (DequeWorkerBase.index, VectorWorkerBase.get): Cast results of
753 division to int to work with Python 3.
755 * testsuite/lib/gdb-test.exp (gdb-test): Fail if Python error occurs.
757 * python/libstdcxx/v6/printers.py (SingleObjContainerPrinter): Allow
758 display_hint to be set by subclasses.
759 (StdVariantPrinter): Use array for display_hint. Adjust output to be
760 more similar to std::any and std::optional output.
761 (register_type_printers): Add type printers for basic_string_view
762 typedefs and experimental::any. Adjust type printers for
763 fundamentals_v1 templates to match fundamentals_v2 and later.
764 * testsuite/libstdc++-prettyprinters/cxx17.cc: New.
767 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.index): Rename
769 (ListWorkerBase.get_value_from_node): Define new method.
770 (ListFrontWorker.__call__, ListBackWorker.__call__): Use it.
772 2016-09-17 Jonathan Wakely <jwakely@redhat.com>
774 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Define.
775 (StdExpAnyPrinter, StdExpOptionalPrinter, StdExpStringViewPrinter):
776 Register for C++17 components in namespace std. Strip inline namespace
779 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
781 * doc/xml/manual/profile_mode.xml: Fix typo.
782 * doc/html/manual/profile_mode_devel.html: Regenerate.
784 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
785 Marc Glisse <marc.glisse@inria.fr>
787 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_ALIGNED_ALLOC]
788 (operator new(size_t, align_val_t)): Replace modulus operator with
791 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
793 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_POSIX_MEMALIGN] (aligned_alloc):
794 Increase alignment if less than sizeof(void*).
795 [_GLIBCXX_HAVE_ALIGNED_ALLOC] (operator new(size_t, align_val_t)):
796 Increase size if not a multiple of alignment.
798 2016-09-15 Jonathan Wakely <jwakely@redhat.com>
800 * doc/xml/manual/debug_mode.xml: Minor editorial fixes.
801 * doc/html/*: Regenerate.
803 * testsuite/23_containers/vector/debug/insert6_neg.cc: Remove
805 * testsuite/util/debug/checks.h (generate_unique<bool>): Specialize.
807 2016-09-14 Marek Polacek <polacek@redhat.com>
809 * testsuite/23_containers/vector/debug/insert6_neg.cc: Use
812 2016-09-14 Christophe Lyon <christophe.lyon@linaro.org>
814 * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
815 Move dg-do directive before dg-skip.
816 * testsuite/21_strings/debug/iterator_self_move_assign_neg.cc:
817 Move dg-do directive before dg-require.
818 * testsuite/21_strings/debug/self_move_assign_neg.cc: Likewise.
819 * testsuite/23_containers/vector/debug/57779_neg.cc: Likewise.
820 * testsuite/23_containers/vector/debug/60587_neg.cc: Likewise.
821 * testsuite/23_containers/vector/debug/assign1_neg.cc: Likewise.
822 * testsuite/23_containers/vector/debug/assign2_neg.cc: Likewise.
823 * testsuite/23_containers/vector/debug/assign3_neg.cc: Likewise.
824 * testsuite/23_containers/vector/debug/construct1_neg.cc: Likewise.
825 * testsuite/23_containers/vector/debug/construct2_neg.cc: Likewise.
826 * testsuite/23_containers/vector/debug/construct3_neg.cc: Likewise.
827 * testsuite/23_containers/vector/debug/insert1_neg.cc: Likewise.
828 * testsuite/23_containers/vector/debug/insert2_neg.cc: Likewise.
829 * testsuite/23_containers/vector/debug/insert3_neg.cc: Likewise.
830 * testsuite/23_containers/vector/debug/insert5_neg.cc: Likewise.
831 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Likewise.
832 * testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
834 * testsuite/25_algorithms/pop_heap/empty2_neg.cc: Likewise.
835 * testsuite/25_algorithms/pop_heap/empty_neg.cc: Likewise.
836 * testsuite/27_io/objects/char/12048-5.cc: Likewise.
837 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Likewise.
838 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
840 2016-09-13 Ville Voutilainen <ville.voutilainen@gmail.com>
842 Implement P0040R3, Extending memory management tools.
843 * include/bits/stl_uninitialized.h (utility): New include
845 (uninitialized_default_construct): New.
846 (uninitialized_default_construct_n): Likewise.
847 (uninitialized_value_construct): Likewise.
848 (uninitialized_value_construct_n): Likewise.
849 (uninitialized_move): Likewise.
850 (uninitialized_move_n): Likewise.
851 (destroy_at, destroy, destroy_n): Likewise.
852 * testsuite/20_util/specialized_algorithms/memory_management_tools/
855 2016-09-12 Jason Merrill <jason@redhat.com>
857 * config/abi/pre/gnu.ver: Use [jmy] for size_t.
859 2016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
861 Implement P0253R1, Fixing a design mistake in the searchers
862 interface in Library Fundamentals.
863 * include/std/functional: (utility): New include in C++17 mode.
864 (default_searcher): Use a pair as return type, adjust the definition.
865 (boyer_moore_searcher): Likewise.
866 (boyer_moore_horspool_searcher): Likewise.
867 * testsuite/20_util/function_objects/searchers.cc: Adjust.
869 2016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
871 Implement C++17 string searchers.
872 * include/std/functional: (unordered_map, vector): New includes
874 (array, bits/stl_algo.h): Likewise.
875 (default_searcher, __boyer_moore_map_base): New.
876 (__boyer_moore_array_base, __is_std_equal_to): Likewise.
877 (__boyer_moore_base_t, boyer_moore_searcher): Likewise.
878 (boyer_moore_horspool_searcher, make_default_searcher): Likewise.
879 (make_boyer_moore_searcher): Likewise.
880 (make_boyer_moore_horspool_searcher): Likewise.
881 * testsuite/20_util/function_objects/searchers.cc: New.
883 2016-09-12 Matthew Wahab <matthew.wahab@arm.com>
885 * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
886 Move dg-do directive before dg-require.
887 * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc: Likewise.
888 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
890 * testsuite/22_locale/codecvt/utf8.cc: Likewise.
891 * testsuite/22_locale/locale/cons/unicode.cc: Likewise.
892 * testsuite/23_containers/deque/debug/assign1_neg.cc: Likewise.
893 * testsuite/23_containers/deque/debug/assign2_neg.cc: Likewise.
894 * testsuite/23_containers/deque/debug/assign3_neg.cc: Likewise.
895 * testsuite/23_containers/deque/debug/construct1_neg.cc: Likewise.
896 * testsuite/23_containers/deque/debug/construct2_neg.cc: Likewise.
897 * testsuite/23_containers/deque/debug/construct3_neg.cc: Likewise.
898 * testsuite/23_containers/deque/debug/insert1_neg.cc: Likewise.
899 * testsuite/23_containers/deque/debug/insert2_neg.cc: Likewise.
900 * testsuite/23_containers/deque/debug/insert3_neg.cc: Likewise.
901 * testsuite/23_containers/deque/debug/insert5_neg.cc: Likewise.
902 * testsuite/23_containers/deque/debug/iterator_self_move_assign_neg.cc:
904 * testsuite/23_containers/deque/debug/self_move_assign_neg.cc:
906 * testsuite/23_containers/deque/debug/shrink_to_fit.cc: Likewise.
907 * testsuite/23_containers/forward_list/debug/60499.cc: Likewise.
908 * testsuite/23_containers/forward_list/debug/construct1_neg.cc:
910 * testsuite/23_containers/forward_list/debug/construct2_neg.cc:
912 * testsuite/23_containers/forward_list/debug/construct3_neg.cc:
914 * testsuite/23_containers/forward_list/debug/erase_after1_neg.cc:
916 * testsuite/23_containers/forward_list/debug/erase_after2_neg.cc:
918 * testsuite/23_containers/forward_list/debug/erase_after3_neg.cc:
920 * testsuite/23_containers/forward_list/debug/erase_after4_neg.cc:
922 * testsuite/23_containers/forward_list/debug/erase_after5_neg.cc:
924 * testsuite/23_containers/forward_list/debug/erase_after6_neg.cc:
926 * testsuite/23_containers/forward_list/debug/erase_after7_neg.cc:
928 * testsuite/23_containers/forward_list/debug/erase_after8_neg.cc:
930 * testsuite/23_containers/forward_list/debug/erase_after9_neg.cc:
932 * testsuite/23_containers/forward_list/debug/insert_after1_neg.cc:
934 * testsuite/23_containers/forward_list/debug/insert_after2_neg.cc:
936 * testsuite/23_containers/forward_list/debug/insert_after3_neg.cc:
938 * testsuite/23_containers/forward_list/debug/insert_after4_neg.cc:
940 * testsuite/23_containers/forward_list/debug/
941 iterator_self_move_assign_neg.cc: Likewise.
942 * testsuite/23_containers/forward_list/debug/self_move_assign_neg.cc:
944 * testsuite/23_containers/forward_list/debug/splice_after1_neg.cc:
946 * testsuite/23_containers/forward_list/debug/splice_after2_neg.cc:
948 * testsuite/23_containers/forward_list/debug/splice_after3_neg.cc:
950 * testsuite/23_containers/forward_list/debug/splice_after4_neg.cc:
952 * testsuite/23_containers/forward_list/debug/splice_after5_neg.cc:
954 * testsuite/23_containers/forward_list/debug/splice_after6_neg.cc:
956 * testsuite/23_containers/forward_list/debug/splice_after7_neg.cc:
958 * testsuite/23_containers/list/debug/assign1_neg.cc: Likewise.
959 * testsuite/23_containers/list/debug/assign2_neg.cc: Likewise.
960 * testsuite/23_containers/list/debug/assign3_neg.cc: Likewise.
961 * testsuite/23_containers/list/debug/construct1_neg.cc: Likewise.
962 * testsuite/23_containers/list/debug/construct2_neg.cc: Likewise.
963 * testsuite/23_containers/list/debug/construct3_neg.cc: Likewise.
964 * testsuite/23_containers/list/debug/insert1_neg.cc: Likewise.
965 * testsuite/23_containers/list/debug/insert2_neg.cc: Likewise.
966 * testsuite/23_containers/list/debug/insert3_neg.cc: Likewise.
967 * testsuite/23_containers/list/debug/insert5_neg.cc: Likewise.
968 * testsuite/23_containers/list/debug/iterator_self_move_assign_neg.cc:
970 * testsuite/23_containers/list/debug/self_move_assign_neg.cc: Likewise.
971 * testsuite/23_containers/map/debug/60499.cc: Likewise.
972 * testsuite/23_containers/map/debug/construct1_neg.cc: Likewise.
973 * testsuite/23_containers/map/debug/construct2_neg.cc: Likewise.
974 * testsuite/23_containers/map/debug/construct3_neg.cc: Likewise.
975 * testsuite/23_containers/map/debug/insert1_neg.cc: Likewise.
976 * testsuite/23_containers/map/debug/insert2_neg.cc: Likewise.
977 * testsuite/23_containers/map/debug/insert3_neg.cc: Likewise.
978 * testsuite/23_containers/map/debug/iterator_self_move_assign_neg.cc:
980 * testsuite/23_containers/map/debug/self_move_assign_neg.cc: Likewise.
981 * testsuite/23_containers/multimap/debug/60499.cc: Likewise.
982 * testsuite/23_containers/multimap/debug/construct1_neg.cc: Likewise.
983 * testsuite/23_containers/multimap/debug/construct2_neg.cc: Likewise.
984 * testsuite/23_containers/multimap/debug/construct3_neg.cc: Likewise.
985 * testsuite/23_containers/multimap/debug/insert1_neg.cc: Likewise.
986 * testsuite/23_containers/multimap/debug/insert2_neg.cc: Likewise.
987 * testsuite/23_containers/multimap/debug/insert3_neg.cc: Likewise.
988 * testsuite/23_containers/multimap/debug/
989 iterator_self_move_assign_neg.cc: Likewise.
990 * testsuite/23_containers/multimap/debug/self_move_assign_neg.cc:
992 * testsuite/23_containers/multiset/debug/60499.cc: Likewise.
993 * testsuite/23_containers/multiset/debug/construct1_neg.cc: Likewise.
994 * testsuite/23_containers/multiset/debug/construct2_neg.cc: Likewise.
995 * testsuite/23_containers/multiset/debug/construct3_neg.cc: Likewise.
996 * testsuite/23_containers/multiset/debug/insert1_neg.cc: Likewise.
997 * testsuite/23_containers/multiset/debug/insert2_neg.cc: Likewise.
998 * testsuite/23_containers/multiset/debug/insert3_neg.cc: Likewise.
999 * testsuite/23_containers/multiset/debug/
1000 iterator_self_move_assign_neg.cc: Likewise.
1001 * testsuite/23_containers/multiset/debug/self_move_assign_neg.cc:
1003 * testsuite/23_containers/set/debug/60499.cc: Likewise.
1004 * testsuite/23_containers/set/debug/construct1_neg.cc: Likewise.
1005 * testsuite/23_containers/set/debug/construct2_neg.cc: Likewise.
1006 * testsuite/23_containers/set/debug/construct3_neg.cc: Likewise.
1007 * testsuite/23_containers/set/debug/insert1_neg.cc: Likewise.
1008 * testsuite/23_containers/set/debug/insert2_neg.cc: Likewise.
1009 * testsuite/23_containers/set/debug/insert3_neg.cc: Likewise.
1010 * testsuite/23_containers/set/debug/iterator_self_move_assign_neg.cc:
1012 * testsuite/23_containers/set/debug/self_move_assign_neg.cc: Likewise.
1013 * testsuite/23_containers/unordered_map/debug/60499.cc: Likewise.
1014 * testsuite/23_containers/unordered_map/debug/begin1_neg.cc: Likewise.
1015 * testsuite/23_containers/unordered_map/debug/begin2_neg.cc: Likewise.
1016 * testsuite/23_containers/unordered_map/debug/bucket_size_neg.cc:
1018 * testsuite/23_containers/unordered_map/debug/cbegin_neg.cc: Likewise.
1019 * testsuite/23_containers/unordered_map/debug/cend_neg.cc: Likewise.
1020 * testsuite/23_containers/unordered_map/debug/construct1_neg.cc:
1022 * testsuite/23_containers/unordered_map/debug/construct2_neg.cc:
1024 * testsuite/23_containers/unordered_map/debug/construct3_neg.cc:
1026 * testsuite/23_containers/unordered_map/debug/end1_neg.cc: Likewise.
1027 * testsuite/23_containers/unordered_map/debug/end2_neg.cc: Likewise.
1028 * testsuite/23_containers/unordered_map/debug/insert1_neg.cc: Likewise.
1029 * testsuite/23_containers/unordered_map/debug/insert2_neg.cc: Likewise.
1030 * testsuite/23_containers/unordered_map/debug/insert3_neg.cc: Likewise.
1031 * testsuite/23_containers/unordered_map/debug/
1032 invalid_local_iterator_compare_neg.cc: Likewise.
1033 * testsuite/23_containers/unordered_map/debug/
1034 invalid_local_iterator_range_neg.cc: Likewise.
1035 * testsuite/23_containers/unordered_map/debug/
1036 iterator_self_move_assign_neg.cc: Likewise.
1037 * testsuite/23_containers/unordered_map/debug/max_load_factor_neg.cc:
1039 * testsuite/23_containers/unordered_map/debug/self_move_assign_neg.cc:
1041 * testsuite/23_containers/unordered_map/debug/
1042 use_erased_local_iterator_neg.cc: Likewise.
1043 * testsuite/23_containers/unordered_map/debug/
1044 use_invalid_iterator_neg.cc: Likewise.
1045 * testsuite/23_containers/unordered_map/debug/
1046 use_invalid_local_iterator_neg.cc: Likewise.
1047 * testsuite/23_containers/unordered_multimap/debug/60499.cc: Likewise.
1048 * testsuite/23_containers/unordered_multimap/debug/begin1_neg.cc:
1050 * testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc:
1052 * testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc:
1054 * testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc:
1056 * testsuite/23_containers/unordered_multimap/debug/cend_neg.cc:
1058 * testsuite/23_containers/unordered_multimap/debug/construct1_neg.cc:
1060 * testsuite/23_containers/unordered_multimap/debug/construct2_neg.cc:
1062 * testsuite/23_containers/unordered_multimap/debug/construct3_neg.cc:
1064 * testsuite/23_containers/unordered_multimap/debug/end1_neg.cc:
1066 * testsuite/23_containers/unordered_multimap/debug/end2_neg.cc:
1068 * testsuite/23_containers/unordered_multimap/debug/insert1_neg.cc:
1070 * testsuite/23_containers/unordered_multimap/debug/insert2_neg.cc:
1072 * testsuite/23_containers/unordered_multimap/debug/insert3_neg.cc:
1074 * testsuite/23_containers/unordered_multimap/debug/
1075 invalid_local_iterator_compare_neg.cc: Likewise.
1076 * testsuite/23_containers/unordered_multimap/debug/
1077 invalid_local_iterator_range_neg.cc: Likewise.
1078 * testsuite/23_containers/unordered_multimap/debug/
1079 iterator_self_move_assign_neg.cc: Likewise.
1080 * testsuite/23_containers/unordered_multimap/debug/
1081 max_load_factor_neg.cc: Likewise.
1082 * testsuite/23_containers/unordered_multimap/debug/
1083 self_move_assign_neg.cc: Likewise.
1084 * testsuite/23_containers/unordered_multimap/debug/
1085 use_erased_local_iterator_neg.cc: Likewise.
1086 * testsuite/23_containers/unordered_multimap/debug/
1087 use_invalid_iterator_neg.cc: Likewise.
1088 * testsuite/23_containers/unordered_multimap/debug/
1089 use_invalid_local_iterator_neg.cc: Likewise.
1090 * testsuite/23_containers/unordered_multiset/debug/60499.cc:
1092 * testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc:
1094 * testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc:
1096 * testsuite/23_containers/unordered_multiset/debug/bucket_size_neg.cc:
1098 * testsuite/23_containers/unordered_multiset/debug/cbegin_neg.cc:
1100 * testsuite/23_containers/unordered_multiset/debug/cend_neg.cc:
1102 * testsuite/23_containers/unordered_multiset/debug/construct1_neg.cc:
1104 * testsuite/23_containers/unordered_multiset/debug/construct2_neg.cc:
1106 * testsuite/23_containers/unordered_multiset/debug/construct3_neg.cc:
1108 * testsuite/23_containers/unordered_multiset/debug/end1_neg.cc:
1110 * testsuite/23_containers/unordered_multiset/debug/end2_neg.cc:
1112 * testsuite/23_containers/unordered_multiset/debug/insert1_neg.cc:
1114 * testsuite/23_containers/unordered_multiset/debug/insert2_neg.cc:
1116 * testsuite/23_containers/unordered_multiset/debug/insert3_neg.cc:
1118 * testsuite/23_containers/unordered_multiset/debug/
1119 invalid_local_iterator_compare_neg.cc: Likewise.
1120 * testsuite/23_containers/unordered_multiset/debug/
1121 invalid_local_iterator_range_neg.cc: Likewise.
1122 * testsuite/23_containers/unordered_multiset/debug/
1123 iterator_self_move_assign_neg.cc: Likewise.
1124 * testsuite/23_containers/unordered_multiset/debug/
1125 max_load_factor_neg.cc: Likewise.
1126 * testsuite/23_containers/unordered_multiset/debug/
1127 self_move_assign_neg.cc: Likewise.
1128 * testsuite/23_containers/unordered_multiset/debug/
1129 use_erased_local_iterator_neg.cc: Likewise.
1130 * testsuite/23_containers/unordered_multiset/debug/
1131 use_invalid_iterator_neg.cc: Likewise.
1132 * testsuite/23_containers/unordered_multiset/debug/
1133 use_invalid_local_iterator_neg.cc: Likewise.
1134 * testsuite/23_containers/unordered_set/debug/60499.cc: Likewise.
1135 * testsuite/23_containers/unordered_set/debug/begin1_neg.cc: Likewise.
1136 * testsuite/23_containers/unordered_set/debug/begin2_neg.cc: Likewise.
1137 * testsuite/23_containers/unordered_set/debug/bucket_size_neg.cc:
1139 * testsuite/23_containers/unordered_set/debug/cbegin_neg.cc: Likewise.
1140 * testsuite/23_containers/unordered_set/debug/cend_neg.cc: Likewise.
1141 * testsuite/23_containers/unordered_set/debug/construct1_neg.cc:
1143 * testsuite/23_containers/unordered_set/debug/construct2_neg.cc:
1145 * testsuite/23_containers/unordered_set/debug/construct3_neg.cc:
1147 * testsuite/23_containers/unordered_set/debug/end1_neg.cc: Likewise.
1148 * testsuite/23_containers/unordered_set/debug/end2_neg.cc: Likewise.
1149 * testsuite/23_containers/unordered_set/debug/insert1_neg.cc: Likewise.
1150 * testsuite/23_containers/unordered_set/debug/insert2_neg.cc: Likewise.
1151 * testsuite/23_containers/unordered_set/debug/insert3_neg.cc: Likewise.
1152 * testsuite/23_containers/unordered_set/debug/
1153 invalid_local_iterator_compare_neg.cc: Likewise.
1154 * testsuite/23_containers/unordered_set/debug/
1155 invalid_local_iterator_range_neg.cc: Likewise.
1156 * testsuite/23_containers/unordered_set/debug/
1157 iterator_self_move_assign_neg.cc: Likewise.
1158 * testsuite/23_containers/unordered_set/debug/
1159 max_load_factor_neg.cc: Likewise.
1160 * testsuite/23_containers/unordered_set/debug/
1161 self_move_assign_neg.cc: Likewise.
1162 * testsuite/23_containers/unordered_set/debug/
1163 use_erased_local_iterator_neg.cc: Likewise.
1164 * testsuite/23_containers/unordered_set/debug/
1165 use_invalid_iterator_neg.cc: Likewise.
1166 * testsuite/23_containers/unordered_set/debug/
1167 use_invalid_local_iterator_neg.cc: Likewise.
1168 * testsuite/23_containers/vector/debug/52433.cc: Likewise.
1169 * testsuite/23_containers/vector/debug/60499.cc: Likewise.
1170 * testsuite/23_containers/vector/debug/bool/shrink_to_fit.cc: Likewise.
1171 * testsuite/23_containers/vector/debug/
1172 iterator_self_move_assign_neg.cc: Likewise.
1173 * testsuite/23_containers/vector/debug/self_move_assign_neg.cc:
1175 * testsuite/23_containers/vector/debug/shrink_to_fit.cc: Likewise.
1176 * testsuite/25_algorithms/pop_heap/complexity.cc: Likewise.
1177 * testsuite/25_algorithms/push_heap/complexity.cc: Likewise.
1178 * testsuite/25_algorithms/sort_heap/complexity.cc: Likewise.
1179 * testsuite/29_atomics/atomic/60658.cc: Likewise.
1180 * testsuite/29_atomics/atomic/60695.cc: Likewise.
1181 * testsuite/29_atomics/atomic/62259.cc: Likewise.
1182 * testsuite/29_atomics/atomic/64658.cc: Likewise.
1183 * testsuite/29_atomics/atomic/cons/49445.cc: Likewise.
1184 * testsuite/29_atomics/atomic/operators/51811.cc: Likewise.
1185 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
1188 2016-09-11 Jonathan Wakely <jwakely@redhat.com>
1190 * libsupc++/new_opant.cc: Include exception_defines.h.
1191 * libsupc++/new_opvant.cc: Likewise.
1193 2016-09-09 Jason Merrill <jason@redhat.com>
1195 Implement P0035R4, C++17 new of over-aligned types.
1196 * libsupc++/new: Declare aligned new/delete operators.
1197 * config/abi/pre/gnu.ver: Export them.
1198 * configure.ac: Check for aligned_alloc, posix_memalign, memalign,
1200 * libsupc++/new_opa.cc: New.
1201 * libsupc++/new_opant.cc: New.
1202 * libsupc++/new_opva.cc: New.
1203 * libsupc++/new_opva.cc: New.
1204 * libsupc++/del_opa.cc: New.
1205 * libsupc++/del_opant.cc: New.
1206 * libsupc++/del_opsa.cc: New.
1207 * libsupc++/del_opva.cc: New.
1208 * libsupc++/del_opvant.cc: New.
1209 * libsupc++/del_opvsa.cc: New.
1210 * libsupc++/Makefile.am: Build them.
1212 2016-09-05 Tim Shen <timshen@google.com>
1214 * include/std/variant: include bits/move.h for std::addressof.
1216 2016-09-05 Mikhail Strelnikov <mikhail.strelnikov@gmail.com>
1218 * include/std/variant (_Variant_storage::_M_storage()): Use
1219 std::addressof instead of operator& to take address.
1221 2016-09-02 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
1223 * acinclude.m4 (GLIBCXX_CONFIGURE_TESTSUITE): Check for presence of
1224 setrlimit on both native and cross targets.
1225 * configure: Regenerate.
1227 2016-08-31 Jonathan Wakely <jwakely@redhat.com>
1229 * include/bits/shared_ptr.h (_Assignable): New alias template.
1230 (shared_ptr::operator=(const shared_ptr<_Tp1>&))
1231 (shared_ptr::operator=(shared_ptr<_Tp1>&&))
1232 (shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
1234 * include/bits/shared_ptr_base.h (_Assignable): New alias template.
1235 (__shared_ptr::operator=(const __shared_ptr<_Tp1>&))
1236 (__shared_ptr::operator=(__shared_ptr<_Tp1>&&))
1237 (__shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
1239 (__shared_ptr::reset(_Tp1*), __shared_ptr::reset(_Tp1*, _Deleter))
1240 (__shared_ptr::reset(_Tp1*, _Deleter, _Alloc)): Constrain with
1242 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Change dg-error to
1244 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
1245 * testsuite/20_util/shared_ptr/assign/sfinae.cc: New test.
1246 * testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc: Update
1247 expected errors. Remove unnecessary code.
1248 * testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc: New test.
1250 * include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Move
1252 * testsuite/23_containers/set/move_comparison.cc: New test.
1254 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
1257 2016-08-30 Ville Voutilainen <ville.voutilainen@gmail.com>
1260 * include/std/type_traits (is_constructible): Forward-declare...
1261 (__is_base_to_derived_ref): ...and use here.
1262 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
1263 * testsuite/20_util/is_constructible/77395.cc: New.
1264 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust.
1265 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1267 * testsuite/20_util/tuple/77395.cc: New.
1269 2016-08-30 Uros Bizjak <ubizjak@gmail.com>
1271 * testsuite/22_locale/time_get/get/char/2.cc: Move dg-do run
1272 directive above dg-require-namedlocale directive.
1273 * testsuite/22_locale/time_get/get/wchar_t/2.cc: Ditto.
1274 * testsuite/27_io/manipulators/extended/get_time/char/2.cc: Ditto.
1275 * testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc: Ditto.
1276 * testsuite/27_io/manipulators/extended/put_time/char/2.cc: Ditto.
1277 * testsuite/27_io/manipulators/extended/put_time/wchar_t/2.cc: Ditto.
1279 2016-08-27 Tim Shen <timshen@google.com>
1282 * include/bits/regex_compiler.tcc(_M_insert_bracket_matcher,
1283 _M_expression_term): Modify to support dash literal.
1284 * include/bits/regex_scanner.h: Add dash as a token type to make
1285 a different from the mandated dash literal by escaping.
1286 * include/bits/regex_scanner.tcc(_M_scan_in_bracket): Emit dash
1287 token in bracket expression parsing.
1288 * testsuite/28_regex/regression.cc: Add new testcases.
1290 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
1293 * doc/xml/manual/intro.xml: Document DR 2127 change.
1294 * doc/html/*: Regenerate.
1295 * include/bits/stl_raw_storage_iter.h (operator=(_Tp&&)): Add.
1296 (operator++(), operator++(int)): Use injected class name.
1297 * testsuite/20_util/raw_storage_iterator/dr2127.cc: New test.
1299 * testsuite/*: Use { target c++11 } or { target c++14 } instead of
1300 using -std in dg-options.
1302 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
1303 Pedro Alves <palves@redhat.com>
1305 * testsuite/lib/gdb-test.exp (gdb-dg-runtest): Define wrapper to save
1306 and restore dg-interpreter-batch-mode.
1307 * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Use
1308 gdb-dg-runtest instead of dg-runtest.
1309 * testsuite/libstdc++-xmethods/xmethods.exp: Likewise.
1311 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
1313 * config/abi/pre/gnu.ver (GLIBCXX_3.4, GLIBCXX_3.4.21): Use more
1314 precise patterns for basic_string constructors.
1315 (GLIBCXX_3.4.23): Export new constructors.
1316 * doc/xml/manual/intro.xml: Document LWG 2583 status.
1317 * doc/html/*: Regenerate.
1318 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1319 (basic_string(const basic_string&, size_type, const Alloc&)): Add
1320 new constructor for LWG 2583.
1321 (basic_string(const basic_string&, size_type, size_type)): Remove
1323 [!_GLIBCXX_USE_CXX11_ABI]: Likewise.
1324 * include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]: Define it.
1325 * testsuite/21_strings/basic_string/cons/char/8.cc: New test.
1326 * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: New test.
1328 2016-08-24 Aditya Kumar <hiraditya@msn.com>
1330 * include/bits/algorithmfwd.h: Remove trailing whitespace.
1331 * include/bits/shared_ptr_base.h: Likewise.
1333 2016-08-23 Jonathan Wakely <jwakely@redhat.com>
1335 * include/debug/array (array): Add _GLIBCXX17_CONSTEXPR.
1336 * include/profile/array (array): Likewise.
1337 (array::swap): Fix exception specification for zero-sized arrays.
1340 * include/bits/stl_tree.h (_Rb_tree::_M_move_assign): New functions.
1341 (_Rb_tree::operator=(_Rb_tree&&)): Dispatch to _M_move_assign.
1342 * testsuite/23_containers/map/77334.cc: New test.
1344 * doc/xml/manual/using.xml: Remove reference to -pthreads option.
1345 * doc/html/*: Regenerate.
1347 * testsuite/experimental/feat-cxx14.cc: Only preprocess, not compile.
1348 * testsuite/experimental/feat-lib-fund.cc: Likewise.
1351 * include/bits/stl_iterator.h
1352 (operator-(reverse_iterator<Iter>, reverse_iterator<Iter>): Only
1353 define for C++98 mode.
1354 (operator-(move_iterator<Iter>, move_iterator<Iter>): Don't define.
1355 * testsuite/24_iterators/headers/iterator/synopsis.cc: Use
1357 * testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: New test.
1358 * testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: New test.
1359 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: New test.
1360 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Don't test
1361 difference operator.
1362 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc: Only test
1363 difference operator for C++98.
1364 * testsuite/24_iterators/reverse_iterator/71771.cc: New test.
1366 * include/bits/c++config (_GLIBCXX17_CONSTEXPR): Define.
1367 * include/bits/range_access.h (begin, end, rbegin, rend, crbegin)
1368 (crend): Add _GLIBCXX17_CONSTEXPR as per P0031R0.
1369 * include/bits/stl_iterator.h (reverse_iterator, move_iterator)
1370 (__make_reverse_iterator, make_reverse_iterator, make_move_iterator):
1372 * include/bits/stl_iterator_base_funcs.h (__distance, __advance): Add
1373 _GLIBCXX14_CONSTEXPR.
1374 (distance, advance, next, prev): Add _GLIBCXX17_CONSTEXPR.
1375 * include/std/array (array::begin, array::end, array::rbegin)
1376 (array::rend, array::cbegin, array:cend, array::crbegin)
1377 (array::crend, array::operator[], array::at, array::front)
1378 (array::back, array::data): Likewise.
1379 * testsuite/24_iterators/headers/iterator/range_access.cc: Replace
1380 with separate tests for C++11, C++14, and C++17.
1381 * testsuite/24_iterators/headers/iterator/range_access_c++11.cc: New.
1382 * testsuite/24_iterators/headers/iterator/range_access_c++14.cc: New.
1383 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc: New.
1385 2016-08-22 Tim Shen <timshen@google.com>
1387 Split _M_dfs() into smaller functions.
1388 * regex_executor.h(_M_handle_repeat, _M_handle_subexpr_begin)
1389 (_M_handle_subexpr_end, _M_handle_line_begin_assertion)
1390 (_M_handle_line_end_assertion, _M_handle_word_boundary)
1391 (_M_handle_subexpr_lookahead, _M_handle_match)
1392 (_M_handle_backref, _M_handle_accept, _M_handle_alternative):
1393 Add separate function declarations.
1394 * regex_executor.tcc: Split _M_dfs() into multiple handler functions.
1396 2016-08-22 Gleb Natapov <gleb@scylladb.com>
1399 * config/abi/pre/gnu-versioned-namespace.ver: Export
1400 __cxa_init_primary_exception and std::exception_ptr(void*).
1401 * config/abi/pre/gnu.ver (CXXABI_1.3.11) : Add new symbol version and
1402 export __cxa_init_primary_exception and std::exception_ptr(void*).
1403 * include/Makefile.am: Add new headers.
1404 * include/Makefile.in: Regenerate.
1405 * libsupc++/Makefile.am: Add new headers.
1406 * libsupc++/Makefile.in: Regenerate.
1407 * libsupc++/cxxabi.h (__cxa_allocate_exception): Move to ...
1408 * libsupc++/cxxabi_init_exception.h: New header.
1409 (__cxa_init_primary_exception): Declare.
1410 * libsupc++/eh_throw.cc (__cxa_init_primary_exception): Define.
1411 (__cxa_throw): Use __cxa_init_primary_exception.
1412 * libsupc++/exception (std::exception): Move to ...
1413 * libsupc++/exception.h: New header.
1414 * libsupc++/exception_ptr.h (__exception_ptr::exception_ptr): Add
1416 (__exception_ptr::__dest_thunk): New function template.
1417 (std::make_exception_ptr) [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]:
1418 Use __cxa_allocate_exception and __cxa_init_primary_exception to
1419 create exception_ptr.
1420 * libsupc++/typeinfo: Include bits/exception.h instead of exception.
1421 * testsuite/util/testsuite_abi.cc: Add CXXABI_1.3.11 version.
1423 2016-08-22 Jonathan Wakely <jwakely@redhat.com>
1425 * doc/xml/api.xml: Replace hardcoded links for specific versions with
1426 link to docs for all releases.
1427 * doc/html/*: Regenerate.
1430 * doc/xml/manual/intro.xml: Document DR 2062 change.
1431 * include/std/functional (function::swap): Add noexcept.
1432 (swap(function<Res(Args...)&, function<Res(Args...)&)): Likewise.
1433 * testsuite/20_util/function/77322.cc: New test.
1435 2016-08-19 Jonathan Wakely <jwakely@redhat.com>
1437 * testsuite/21_strings/basic_string/pthread18185.cc: Use -pthread for
1438 *-*-solaris* instead of -pthreads.
1439 * testsuite/21_strings/basic_string/pthread4.cc : Likewise.
1440 * testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
1441 * testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
1442 * testsuite/23_containers/list/pthread1.cc: Likewise.
1443 * testsuite/23_containers/list/pthread5.cc: Likewise.
1444 * testsuite/23_containers/map/pthread6.cc: Likewise.
1445 * testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
1446 * testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
1447 * testsuite/30_threads/shared_mutex/*: Likewise.
1448 * testsuite/ext/rope/pthread7-rope.cc: Likewise.
1449 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
1450 default_weaktoshared.cc: Likewise.
1451 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
1452 mutex_weaktoshared.cc: Likewise.
1453 * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise. Use
1454 dg-require-effective-target instead of using -std option.
1455 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
1457 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
1458 * testsuite/23_containers/vector/debug/multithreaded_swap.cc:
1460 * testsuite/30_threads/async/*: Likewise.
1461 * testsuite/30_threads/call_once/*: Likewise.
1462 * testsuite/30_threads/condition_variable/*: Likewise.
1463 * testsuite/30_threads/condition_variable_any/*: Likewise.
1464 * testsuite/30_threads/future/*: Likewise.
1465 * testsuite/30_threads/lock/*: Likewise.
1466 * testsuite/30_threads/mutex/*: Likewise.
1467 * testsuite/30_threads/packaged_task/*: Likewise.
1468 * testsuite/30_threads/promise/*: Likewise.
1469 * testsuite/30_threads/recursive_mutex/*: Likewise.
1470 * testsuite/30_threads/recursive_timed_mutex/*: Likewise.
1471 * testsuite/30_threads/shared_future/*: Likewise.
1472 * testsuite/30_threads/shared_lock/*: Likewise.
1473 * testsuite/30_threads/shared_timed_mutex/*: Likewise.
1474 * testsuite/30_threads/this_thread/*: Likewise.
1475 * testsuite/30_threads/thread/*: Likewise.
1476 * testsuite/30_threads/timed_mutex/*: Likewise.
1477 * testsuite/30_threads/try_lock/*: Likewise.
1478 * testsuite/30_threads/unique_lock/*: Likewise.
1480 * doc/xml/manual/status_cxx2017.xml: Update status of not_fn.
1481 * doc/html/*: Regenerate.
1482 * include/experimental/functional (_Not_fn, not_fn): Match C++17
1484 * include/std/functional (_Not_fn, not_fn): Define for C++17.
1485 * testsuite/20_util/not_fn/1.cc: New.
1486 * testsuite/experimental/functional/not_fn.cc: Test abstract class.
1487 Remove test for volatile-qualified wrapper.
1489 * include/std/atomic (atomic::is_always_lock_free): Define.
1490 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
1491 * testsuite/29_atomics/atomic/is_always_lock_free.cc: New.
1492 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc: New.
1493 * doc/xml/manual/status_cxx2017.xml: Update status.
1494 * doc/html/*: Regenerate.
1496 * include/experimental/tuple (apply): Qualify call to __apply_impl.
1497 * include/std/tuple (apply): Likewise.
1498 * testsuite/experimental/system_error/value.cc: Fix ambiguities in
1500 * testsuite/experimental/tuple/tuple_size.cc: Likewise.
1501 * testsuite/experimental/type_traits/value.cc: Likewise.
1503 * doc/xml/manual/status_cxx2017.xml: Update status of make_from_tuple
1505 * doc/html/*: Regenerate.
1507 2016-08-18 Ville Voutilainen <ville.voutilainen@gmail.com>
1509 Implement the latest proposed resolution of LWG 2756.
1510 * include/std/optional (Optional_base(const _Tp&))
1511 (Optional_base(_Tp&&), using _Base::_Base): Remove.
1512 (optional(nullopt_t)): New.
1513 (optional(_Up&&)): Invoke base directly with in_place
1514 rather than creating a temporary, add default template
1515 argument, change constraints.
1516 (optional(const optional<_Up>&)): Invoke base directly
1517 with in_place, remove unnecessary constraints.
1518 (optional(optional<_Up>&& __t)): Likewise.
1519 (optional(in_place_t, _Args&&...)): New.
1520 (optional(in_place_t, initializer_list<_Up>, _Args&&...)): Likewise.
1521 (operator=(_Up&&)): Add default template argument, change constraints.
1522 (operator=(const optional<_Up>&)): Put is_same first in the
1524 (operator=(optional<_Up>&&)): Likewise.
1525 * testsuite/20_util/optional/assignment/5.cc: Add a test to
1526 verify assignment from something that can't be perfect-forwarded.
1527 * testsuite/20_util/optional/cons/value.cc: Add tests to verify
1528 that a nested optional is disengaged when constructed
1529 from a disengaged element type, and to verify that assignments
1530 from an engaged element type engage the optional.
1532 2016-08-18 Tim Shen <timshen@google.com>
1536 * include/Makefile.am: Add new file std/variant.
1537 * include/Makefile.in: Generated from Makefile.am.
1538 * include/bits/enable_special_members.h: Add a tag type to allow
1539 the construction in non-default constructor.
1540 * include/bits/uses_allocator.h: Add convenience traits to
1541 detect constructibility.
1542 * include/std/variant: Implement <variant>.
1543 * testsuite/20_util/variant/compile.cc: Compile-time tests.
1544 * testsuite/20_util/variant/run.cc: Runtime tests.
1546 2016-08-18 Jonathan Wakely <jwakely@redhat.com>
1548 * doc/xml/manual/test.xml (test.run.permutations): Expand section.
1549 (test.new_tests): Rewrite section.
1550 (tests.dg.directives): New section.
1551 * doc/html/*: Regenerate.
1553 * doc/xml/manual/test.xml: Improve documentation of test targets.
1554 Document new-abi-baseline, check-debug, and check-parallel targets.
1556 * doc/xml/manual/build_hacking.xml: New section on shared library
1559 * doc/xml/manual/build_hacking.xml: Improve markup.
1560 * doc/xml/manual/test.xml: Likewise. Change section title from "Test"
1562 * doc/xml/faq.xml: Change link text to "Testing".
1564 * testsuite/tr1/3_function_objects/function/10.cc: Remove unintended
1565 dg-options directive.
1567 2016-08-17 Jonathan Wakely <jwakely@redhat.com>
1569 * testsuite/20_util/reference_wrapper/invoke-2.cc: Fix invalid dg-do
1570 directive and use effective target instead of dg-options.
1572 * testsuite/20_util/hash/chi2_q_bit_flip_set.cc: Use effective target
1573 instead of -std in dg-options.
1574 * testsuite/20_util/hash/chi2_q_bit_string_set.cc: Likewise.
1575 * testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc: Likewise.
1576 * testsuite/20_util/hash/chi2_q_uniform_random.cc: Likewise.
1577 * testsuite/20_util/hash/quality.cc: Likewise.
1578 * testsuite/25_algorithms/heap/moveable.cc: Likewise.
1579 * testsuite/25_algorithms/heap/moveable2.cc: Likewise.
1580 * testsuite/25_algorithms/nth_element/random_test.cc: Likewise.
1581 * testsuite/25_algorithms/partial_sort/random_test.cc: Likewise.
1582 * testsuite/25_algorithms/partial_sort_copy/random_test.cc: Likewise.
1583 * testsuite/25_algorithms/sort/random_test.cc: Likewise.
1585 * testsuite/20_util/tuple/67844.cc: Require c++11 effective target.
1586 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Likewise.
1587 * testsuite/27_io/rvalue_streams.cc: Likewise.
1589 * testsuite/26_numerics/complex/literals/types.cc: Add comment.
1591 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
1592 Remove duplicate dg-options directive.
1594 * testsuite/ext/profile/all.cc: Use effective target instead of
1595 -std=gnu++11. Use dg-additional-options instead of repeating options.
1597 * testsuite/20_util/bind/ref_neg.cc: Use effective target instead of
1598 -std=gnu++11. Add -fno-show-columns to dg-options. Use dg-prune-output
1599 instead of dg-excess-errors.
1601 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Disable
1603 * testsuite/experimental/chrono/value.cc: Avoid ambiguities in C++17.
1604 * testsuite/experimental/ratio/value.cc: Likewise.
1605 * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Disable test for
1607 * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
1608 * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
1609 * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
1610 * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
1611 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
1612 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
1613 * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
1614 * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
1615 * testsuite/tr1/5_numerical_facilities/special_functions/
1616 10_cyl_bessel_k/airy.cc: Adjust namespace of __detail::__airy for
1617 C++17 compatibility.
1619 * testsuite/24_iterators/headers/iterator/range_access.cc: Adjust
1620 expected signatures for C++14 compatibility.
1623 * include/bits/basic_string.h (operator=(__sv_type)
1624 (append(__sv_type), assign(__sv_type), insert(size_type, __sv_type))
1625 (replace(size_type, size_type, __sv_type))
1626 (replace(const_iterator, const_iterator, __sv_type))
1627 (find(__sv_type, size_type), rfind(__sv_type, size_type))
1628 (compare(size_type, size_type, __sv_type)): Reformat.
1629 (_If_sv): Define helper for SFINAE constaints.
1630 (append(const _Tp&, size_type, size_type))
1631 (assign(const _Tp&, size_type, size_type))
1632 (insert(size_type, const _Tp&, size_type, size_type))
1633 (replace(size_type, size_type, const _Tp&, size_type, size_type)):
1635 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc: Test
1637 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
1639 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1641 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
1643 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
1645 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
1647 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
1649 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
1651 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1653 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
1655 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
1658 2016-08-16 Jonathan Wakely <jwakely@redhat.com>
1661 * include/bits/stl_bvector.h (_Bvector_base::_M_deallocate): Zero
1662 pointers to start and end of storage.
1663 * testsuite/23_containers/vector/bool/72847.cc: New test.
1664 * include/bits/vector.tcc (vector<bool>::_M_reallocate): Only update
1665 _M_finish after deallocating.
1666 (vector<bool>::_M_fill_insert): Likewise.
1667 (vector<bool>::_M_insert_range): Likewise.
1668 (vector<bool>::_M_insert_aux): Likewise.
1670 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1672 Implement LWG 2744 and LWG 2754.
1673 * include/std/any (any(ValueType&&)): Constrain with __is_in_place_type.
1674 (any(in_place_type_t<_ValueType>, _Args&&...)): Use _Decay.
1675 (any(in_place_type_t<_ValueType>, initializer_list<_Up>, _Args&&...)):
1677 (emplace(_Args&&...)): Likewise.
1678 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
1679 * include/std/utility: (__is_in_place_type_impl): New.
1680 (__is_in_place_type): Likewise.
1681 * testsuite/20_util/any/assign/emplace.cc: Add tests for decaying
1683 * testsuite/20_util/any/cons/in_place.cc: Add tests for decaying
1684 in_place constructor.
1685 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
1686 * testsuite/20_util/any/requirements.cc: Add a test for
1687 in_place-constructing a non-default-constructible type.
1689 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1691 Add a feature macro for C++17 make_from_tuple.
1692 * include/std/tuple (__cpp_lib_make_from_tuple): New.
1693 (__make_from_tuple_impl(_Tuple&&, index_sequence<_Idx...>)):
1694 Qualify the call to get<>().
1695 * testsuite/20_util/tuple/make_from_tuple/1.cc: Adjust.
1697 2016-08-15 Uros Bizjak <ubizjak@gmail.com>
1699 * src/filesystem/ops.cc: Always include ostream and
1700 ext/stdio_filebuf.h.
1701 (do_copy_file): Check if _GLIBCXX_USE_FCHMODAT is defined.
1702 [_GLIBCXX_USE_SENDFILE]: Fallback to read/write operations in case
1703 sendfile fails with ENOSYS or EINVAL.
1705 2016-08-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
1708 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Fix dg-error
1711 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1713 Implement C++17 make_from_tuple.
1714 * include/std/tuple (__make_from_tuple_impl, make_from_tuple): New.
1715 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
1717 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1720 * include/bits/basic_string.h
1721 (append(__sv_type, size_type, size_type)): Turn into a template,
1722 change parameter type, constrain, add a conversion to __sv_type
1723 from the dependent parameter type.
1724 (assign(__sv_type, size_type, size_type)): Likewise.
1725 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
1726 (replace(size_type, size_type, __sv_type, size_type, size_type)):
1728 (compare(size_type, size_type,__sv_type, size_type, size_type)):
1730 * testsuite/21_strings/basic_string/lwg2758.cc: New.
1732 2016-08-06 Jonathan Wakely <jwakely@redhat.com>
1734 * doc/xml/manual/status_cxx2017.xml: Update status table.
1735 * doc/html/manual/status.html: Regenerate.
1737 * testsuite/lib/libstdc++.exp: Fix typo in comment.
1740 * include/std/functional (_Function_base::_Base_manager::_M_clone):
1741 Qualify new operator.
1742 * testsuite/20_util/function/cons/72820.cc: New test.
1744 * doc/xml/manual/status_cxx2017.xml: Add missing LFTSv2 features.
1745 * doc/html/manual/status.html: Regenerate.
1746 * include/Makefile.am: Add new header.
1747 * include/Makefile.in: Regenerate.
1748 * include/bits/invoke.h: New header.
1749 (__invoke): Make constexpr. Add && to types in exception specification.
1750 * include/experimental/tuple (apply, __apply_impl): Fix non-reserved
1751 names. Include <bits/invoke.h> and use std::__invoke.
1752 * include/std/functional (__invfwd, __invoke_impl, __invoke): Move to
1754 (invoke): Add && to types in exception specification.
1755 * include/std/tuple (apply, __apply_impl): Define for C++17.
1756 * testsuite/20_util/tuple/apply/1.cc: New test.
1757 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error
1760 2016-08-05 Jonathan Wakely <jwakely@redhat.com>
1762 * doc/xml/manual/status_cxx2017.xml: Correct shared_from_this status.
1763 * doc/html/manual/status.html: Regenerate.
1765 * include/std/chrono (floor, ceil, round, abs): New for C++17.
1766 * testsuite/20_util/duration_cast/rounding.cc: New test.
1767 * testsuite/20_util/time_point_cast/rounding.cc: New test.
1768 * doc/xml/manual/status_cxx2017.xml: Update status table.
1769 * doc/html/manual/status.html: Regenerate.
1770 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust
1772 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1773 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1774 * testsuite/20_util/duration/literals/range.cc: Likewise.
1776 * include/std/functional (__callable_functor): Remove.
1777 (_Function_handler::_M_invoke): Use __invoke instead of
1778 __callable_functor or mem_fn.
1779 (function::_Callable): Use lvalue in result_of expression.
1780 (function): Remove TODO comments about allocators.
1781 * testsuite/20_util/function/cons/refqual.cc: New test.
1783 2016-08-04 Jonathan Wakely <jwakely@redhat.com>
1785 * doc/xml/manual/status_cxx2017.xml: Update status table.
1786 * include/std/functional (__inv_unwrap): Move to <type_traits>.
1787 (__invoke_impl): Remove exception specifications.
1788 (__invoke, invoke): Add exception specifications using
1789 __is_nothrow_callable.
1790 * include/std/type_traits (__inv_unwrap): Move from <functional>.
1791 (__is_callable_impl, __call_is_nt, __call_is_nothrow): New helpers.
1792 (__is_callable, __is_nothrow_callable): New traits.
1793 (is_callable, is_callable_v): New C++17 traits.
1794 (is_nothrow_callable, is_nothrow_callable_v): Likewise.
1795 * testsuite/20_util/is_callable/requirements/
1796 explicit_instantiation.cc: New test.
1797 * testsuite/20_util/is_callable/requirements/
1798 explicit_instantiation_ext.cc: New test.
1799 * testsuite/20_util/is_callable/requirements/typedefs.cc: New test.
1800 * testsuite/20_util/is_callable/requirements/typedefs_ext.cc: New
1802 * testsuite/20_util/is_callable/value.cc: New test.
1803 * testsuite/20_util/is_callable/value_ext.cc: New test.
1804 * testsuite/20_util/is_nothrow_callable/requirements/
1805 explicit_instantiation.cc: New test.
1806 * testsuite/20_util/is_nothrow_callable/requirements/
1807 explicit_instantiation_ext.cc: New test.
1808 * testsuite/20_util/is_nothrow_callable/requirements/typedefs.cc:
1810 * testsuite/20_util/is_nothrow_callable/requirements/typedefs_ext.cc:
1812 * testsuite/20_util/is_nothrow_callable/value.cc: New test.
1813 * testsuite/20_util/is_nothrow_callable/value_ext.cc: New test.
1815 * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
1816 * doc/html/manual/status.html: Regenerate.
1818 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Use
1819 effective target not dg-options. Move check for feature-test macro to:
1820 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
1823 * include/std/functional (_Unwrap): Rename to __inv_unwrap.
1825 (__invoke_impl): Remove unused template parameters.
1826 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
1828 * testsuite/20_util/function_objects/invoke/ref_ext.cc: Copy 59768.cc
1829 and test __invoke extension for C++11.
1831 2016-08-03 Jonathan Wakely <jwakely@redhat.com>
1833 * include/bits/shared_ptr_base.h (__cpp_lib_enable_shared_from_this):
1834 Define feature-test macro.
1835 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Test
1838 * include/bits/shared_ptr.h (shared_ptr::weak_type): Define.
1839 * include/bits/shared_ptr_base.h (__shared_ptr::weak_type): Define.
1840 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
1841 * testsuite/20_util/shared_ptr/requirements/weak_type.cc: New test.
1842 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
1844 * include/std/utility (as_const): Define.
1845 * testsuite/20_util/as_const/1.cc: New test.
1846 * testsuite/20_util/as_const/rvalue_neg.cc: New test.
1848 * include/bits/shared_ptr.h (owner_less): Add default template
1850 * include/bits/shared_ptr_base.h (_Sp_owner_less<void, void>): Define
1852 (owner_less<void>): Define specialization.
1853 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
1855 * testsuite/20_util/owner_less/void.cc: New test.
1856 * testsuite/experimental/feat-cxx14.cc: Update macro value tested.
1858 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
1859 Define feature-test macro.
1860 * include/bits/range_access.h (__cpp_lib_array_constexpr): Likewise.
1861 * include/std/shared_mutex (__cpp_lib_shared_mutex): Uncomment.
1862 * include/std/type_traits (__cpp_lib_logical_traits): Fix value.
1863 (__cpp_lib_type_trait_variable_templates): Define.
1865 * include/bits/stl_function.h: Remove commented-out macro.
1866 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
1867 Define feature-test macro.
1868 * testsuite/experimental/feat-cxx14.cc: Add tests for more macros.
1870 * include/bits/c++config (_GLIBCXX_USE_STD_SPEC_FUNCS): Define for
1871 C++17, or for C++11/C++14 when __STDCPP_WANT_MATH_SPEC_FUNCS__ is
1873 * include/bits/specfun.h [!__STDCPP_WANT_MATH_SPEC_FUNCS__]: Don't
1874 do #error for C++17.
1875 * include/c_global/cmath: Check _GLIBCXX_USE_STD_SPEC_FUNCS instead
1876 of __STDCPP_WANT_MATH_SPEC_FUNCS__.
1877 * include/tr1/bessel_function.tcc: Likewise.
1878 * include/tr1/beta_function.tcc: Likewise.
1879 * include/tr1/cmath: Likewise.
1880 * include/tr1/ell_integral.tcc: Likewise.
1881 * include/tr1/exp_integral.tcc: Likewise.
1882 * include/tr1/gamma.tcc: Likewise.
1883 * include/tr1/hypergeometric.tcc: Likewise.
1884 * include/tr1/legendre_function.tcc: Likewise.
1885 * include/tr1/modified_bessel_func.tcc: Likewise.
1886 * include/tr1/poly_hermite.tcc: Likewise.
1887 * include/tr1/poly_laguerre.tcc: Likewise.
1888 * include/tr1/riemann_zeta.tcc: Likewise.
1889 * include/tr1/special_function_util.h: Likewise.
1890 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc: New.
1892 * include/std/type_traits (has_trivial_default_constructor): Remove.
1893 (has_trivial_copy_constructor, has_trivial_copy_assign): Likewise.
1894 * testsuite/20_util/has_trivial_copy_assign/requirements/
1895 explicit_instantiation.cc: Remove test.
1896 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
1898 * testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc:
1900 * testsuite/20_util/has_trivial_copy_assign/value.cc: Likewise.
1901 * testsuite/20_util/has_trivial_copy_constructor/requirements/
1902 explicit_instantiation.cc: Likewise.
1903 * testsuite/20_util/has_trivial_copy_constructor/requirements/
1904 typedefs.cc: Likewise.
1905 * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise.
1906 * testsuite/20_util/has_trivial_default_constructor/requirements/
1907 explicit_instantiation.cc: Likewise.
1908 * testsuite/20_util/has_trivial_default_constructor/requirements/
1909 typedefs.cc: Likewise.
1910 * testsuite/20_util/has_trivial_default_constructor/value.cc:
1912 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
1913 Check has_trivial_default_constructor, has_trivial_copy_constructor,
1914 and has_trivial_copy_assign are not defined.
1915 * testsuite/20_util/pair/requirements/dr801.cc: Remove commented out
1917 * testsuite/20_util/tuple/requirements/dr801.cc: Likewise.
1918 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
1919 dg-error line number.
1920 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1923 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
1925 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
1926 Remove reundant check for _GLIBCXX_USE_WCHAR_T and fix char type.
1927 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
1929 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
1931 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
1933 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
1935 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
1937 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
1940 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Improve
1943 * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Move
1944 dg-error to relevant line.
1945 * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc:
1947 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
1949 * scripts/testsuite_flags.in: Add -fno-show-column to cxxflags.
1951 * testsuite/18_support/bad_exception/23591_thread-1.c: Skip test if
1952 options are present that aren't valid for C.
1953 * testsuite/abi/header_cxxabi.c: Likewise.
1955 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/
1956 check_value.cc: Do not add special functions to namespace std in TR1
1959 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Only
1960 run for C++11 and later.
1961 * testsuite/ext/special_functions/conf_hyperg/check_value.cc:
1963 * testsuite/ext/special_functions/conf_hyperg/compile.cc: Likewise.
1964 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
1965 * testsuite/ext/special_functions/hyperg/check_value.cc: Likewise.
1966 * testsuite/ext/special_functions/hyperg/compile.cc: Likewise.
1967 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
1969 * testsuite/special_functions/01_assoc_laguerre/check_value.cc:
1971 * testsuite/special_functions/01_assoc_laguerre/compile.cc: Likewise.
1972 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc:
1974 * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
1976 * testsuite/special_functions/02_assoc_legendre/check_value.cc:
1978 * testsuite/special_functions/02_assoc_legendre/compile.cc: Likewise.
1979 * testsuite/special_functions/02_assoc_legendre/compile_2.cc:
1980 * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
1981 * testsuite/special_functions/03_beta/check_value.cc: Likewise.
1982 * testsuite/special_functions/03_beta/compile.cc: Likewise.
1983 * testsuite/special_functions/03_beta/compile_2.cc: Likewise.
1984 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: Likewise.
1985 * testsuite/special_functions/04_comp_ellint_1/check_value.cc:
1987 * testsuite/special_functions/04_comp_ellint_1/compile.cc: Likewise.
1988 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Likewise.
1989 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: Likewise.
1990 * testsuite/special_functions/05_comp_ellint_2/check_value.cc:
1992 * testsuite/special_functions/05_comp_ellint_2/compile.cc: Likewise.
1993 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Likewise.
1994 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: Likewise.
1995 * testsuite/special_functions/06_comp_ellint_3/check_value.cc:
1997 * testsuite/special_functions/06_comp_ellint_3/compile.cc: Likewise.
1998 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Likewise.
1999 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: Likewise.
2000 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc:
2002 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: Likewise.
2003 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Likewise.
2004 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: Likewise.
2005 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: Likewise.
2006 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc:
2008 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: Likewise.
2009 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Likewise.
2010 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: Likewise.
2011 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc:
2013 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: Likewise.
2014 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Likewise.
2015 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: Likewise.
2016 * testsuite/special_functions/10_cyl_neumann/check_value.cc: Likewise.
2017 * testsuite/special_functions/10_cyl_neumann/compile.cc: Likewise.
2018 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Likewise.
2019 * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
2020 * testsuite/special_functions/11_ellint_1/check_value.cc: Likewise.
2021 * testsuite/special_functions/11_ellint_1/compile.cc: Likewise.
2022 * testsuite/special_functions/11_ellint_1/compile_2.cc: Likewise.
2023 * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
2024 * testsuite/special_functions/12_ellint_2/check_value.cc: Likewise.
2025 * testsuite/special_functions/12_ellint_2/compile.cc: Likewise.
2026 * testsuite/special_functions/12_ellint_2/compile_2.cc: Likewise.
2027 * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
2028 * testsuite/special_functions/13_ellint_3/check_value.cc: Likewise.
2029 * testsuite/special_functions/13_ellint_3/compile.cc: Likewise.
2030 * testsuite/special_functions/13_ellint_3/compile_2.cc: Likewise.
2031 * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
2032 * testsuite/special_functions/14_expint/check_value.cc: Likewise.
2033 * testsuite/special_functions/14_expint/compile.cc: Likewise.
2034 * testsuite/special_functions/14_expint/compile_2.cc: Likewise.
2035 * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
2036 * testsuite/special_functions/15_hermite/check_value.cc: Likewise.
2037 * testsuite/special_functions/15_hermite/compile.cc: Likewise.
2038 * testsuite/special_functions/15_hermite/compile_2.cc: Likewise.
2039 * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
2040 * testsuite/special_functions/16_laguerre/check_value.cc: Likewise.
2041 * testsuite/special_functions/16_laguerre/compile.cc: Likewise.
2042 * testsuite/special_functions/16_laguerre/compile_2.cc: Likewise.
2043 * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
2044 * testsuite/special_functions/17_legendre/check_value.cc: Likewise.
2045 * testsuite/special_functions/17_legendre/compile.cc: Likewise.
2046 * testsuite/special_functions/17_legendre/compile_2.cc: Likewise.
2047 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: Likewise.
2048 * testsuite/special_functions/18_riemann_zeta/check_value.cc:
2050 * testsuite/special_functions/18_riemann_zeta/compile.cc: Likewise.
2051 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Likewise.
2052 * testsuite/special_functions/19_sph_bessel/check_nan.cc: Likewise.
2053 * testsuite/special_functions/19_sph_bessel/check_value.cc: Likewise.
2054 * testsuite/special_functions/19_sph_bessel/compile.cc: Likewise.
2055 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Likewise.
2056 * testsuite/special_functions/20_sph_legendre/check_nan.cc: Likewise.
2057 * testsuite/special_functions/20_sph_legendre/check_value.cc:
2059 * testsuite/special_functions/20_sph_legendre/compile.cc: Likewise.
2060 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Likewise.
2061 * testsuite/special_functions/21_sph_neumann/check_nan.cc: Likewise.
2062 * testsuite/special_functions/21_sph_neumann/check_value.cc: Likewise.
2063 * testsuite/special_functions/21_sph_neumann/compile.cc: Likewise.
2064 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Likewise.
2066 * testsuite/tr1/5_numerical_facilities/special_functions/
2067 08_cyl_bessel_i/check_value.cc: Use __attribute__((unused)) instead
2069 * testsuite/tr1/5_numerical_facilities/special_functions/
2070 09_cyl_bessel_j/check_value.cc: Likewise.
2071 * testsuite/tr1/5_numerical_facilities/special_functions/
2072 10_cyl_bessel_k/check_value.cc: Likewise.
2073 * testsuite/tr1/5_numerical_facilities/special_functions/
2074 11_cyl_neumann/check_value.cc: Likewise.
2075 * testsuite/tr1/5_numerical_facilities/special_functions/
2076 21_sph_bessel/check_value.cc: Likewise.
2077 * testsuite/tr1/5_numerical_facilities/special_functions/
2078 23_sph_neumann/check_value.cc: Likewise.
2080 2016-08-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2082 * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
2083 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
2084 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
2085 * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
2086 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
2087 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
2089 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
2091 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: Skip
2094 * testsuite/lib/libstdc++.exp (v3-build_support): Add -fno-lto to
2095 additional flags for compiling libtestc++.a objects.
2097 2016-08-01 Jonathan Wakely <jwakely@redhat.com>
2099 * include/bits/basic_string.h (data() const): Update comment.
2100 (data()): Add non-const overload for C++17.
2101 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
2102 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
2104 * include/bits/basic_string.tcc: Disable explicit instantiation
2105 declarations for C++17.
2107 * testsuite/23_containers/unordered_map/requirements/53339.cc: Remove
2108 ignored "xfail" from { dg-do compile { xfail selector } } directive.
2109 * testsuite/23_containers/unordered_multimap/requirements/53339.cc:
2111 * testsuite/26_numerics/headers/cmath/
2112 c99_classification_macros_c++11.cc: Likewise.
2113 * testsuite/26_numerics/headers/cmath/
2114 c99_classification_macros_c++98.cc: Likewise.
2115 * testsuite/26_numerics/headers/cmath/
2116 c99_classification_macros_c.cc: Likewise.
2118 * testsuite/backward/hash_set/check_construct_destroy.cc: Account
2119 for different construct/destroy counts in C++98 mode.
2121 * testsuite/17_intro/freestanding.cc: Remove "-x c" from dg-options.
2123 * testsuite/20_util/tuple/cons/66338.cc: Limit test to C++11 and
2125 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc:
2128 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Use
2129 C++98-compatible initialization for array.
2131 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc: Remove
2132 unused header and variable from compile-only test.
2133 * testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc: Likewise.
2134 * testsuite/28_regex/basic_regex/assign/char/cstring.cc: Likewise.
2135 * testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc: Likewise.
2136 * testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc:
2139 * testsuite/experimental/string_view/operations/rfind/char/2.cc:
2140 Remove duplicate dg-options directive.
2142 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
2143 808590.cc: Use -std=gnu++98 instead of -std=gnu++03.
2145 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Remove
2146 linker options from compile-only tests.
2147 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
2150 * testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Make test
2151 supported for C++11 and later.
2152 * testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
2153 * testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.
2155 2016-08-01 Uros Bizjak <ubizjak@gmail.com>
2157 * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
2159 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
2161 * testsuite/20_util/conditional/requirements/typedefs.cc: Change to
2164 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
2165 Ensure test is compiled with optimization.
2167 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
2168 Adjust dg-prune-output pattern for error in C++98 mode.
2170 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Only
2171 run for C++11 or later.
2173 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Fix
2174 test to not rely on GNU extension (escaped normal characters in POSIX
2175 BRE). Enable tests for other strings which are now supported.
2177 * testsuite/20_util/pair/astuple/get_neg.cc: Use effective-target
2178 c++11 instead of setting -std=gnu++14.
2181 * include/std/array (get): Use positive message for static assertions.
2182 * include/std/functional (_Safe_tuple_element_t): Fix indentation.
2183 * include/std/tuple (tuple_element<I, tuple<>>): Add partial
2184 specialization for invalid indices, with static assertion.
2185 * testsuite/20_util/tuple/element_access/get_neg.cc: New test.
2187 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Move
2188 dg-error to relevant line.
2189 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
2191 * testsuite/23_containers/forward_list/requirements/dr438/
2192 assign_neg.cc: Likewise.
2193 * testsuite/23_containers/forward_list/requirements/dr438/
2194 constructor_1_neg.cc: Likewise.
2195 * testsuite/23_containers/forward_list/requirements/dr438/
2196 constructor_2_neg.cc: Likewise.
2197 * testsuite/23_containers/forward_list/requirements/dr438/
2198 insert_neg.cc: Likewise.
2199 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc:
2201 * testsuite/26_numerics/random/linear_congruential_engine/
2202 requirements/non_uint_neg.cc: Likewise.
2203 * testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc:
2204 Likewise. Also test for std::atomic_address.
2206 2016-07-31 Ville Voutilainen <ville.voutilainen@gmail.com>
2208 Add missing variable traits, fix testsuite failures.
2209 * include/bits/uses_allocator.h (uses_allocator_v): New.
2210 * include/std/functional (is_bind_expression_v, is_placeholder_v):
2212 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
2213 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
2214 * testsuite/20_util/duration/literals/range.cc: Likewise.
2215 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
2216 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
2217 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
2218 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise.
2219 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
2221 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
2222 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
2225 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
2227 * testsuite/18_support/numeric_limits/40856.cc [__STRICT_ANSI__]: Do
2228 not test 128-bit types.
2229 * testsuite/20_util/is_floating_point/value.cc: Likewise.
2230 * testsuite/20_util/is_integral/value.cc: Likewise.
2231 * testsuite/20_util/is_signed/value.cc: Likewise.
2232 * testsuite/20_util/is_unsigned/value.cc: Likewise.
2233 * testsuite/20_util/make_signed/requirements/typedefs-1.cc: Likewise.
2234 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
2235 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
2237 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
2240 * testsuite/26_numerics/headers/cstdlib/54686.c: Rename to 54686.cc.
2242 2016-07-29 Ville Voutilainen <ville.voutilainen@gmail.com>
2244 Implement C++17 variable templates for type traits.
2245 * include/std/chrono (treat_as_floating_point_v): New.
2246 * include/std/ratio (ratio_equal_v, ratio_not_equal_v)
2247 (ratio_less_v, ratio_less_equal_v, ratio_greater_v)
2248 (ratio_greater_equal_v): Likewise.
2249 * include/std/system_error (is_error_code_enum_v)
2250 (is_error_condition_enum_v): Likewise.
2251 * include/std/tuple (tuple_size_v): Likewise.
2252 * type_traits (conjunction_v, disjunction_v, negation_v)
2253 (is_void_v, is_null_pointer_v, is_integral_v, is_floating_point_v)
2254 (is_array_v, is_pointer_v, is_lvalue_reference_v)
2255 (is_rvalue_reference_v, is_member_object_pointer_v)
2256 (is_member_function_pointer_v, is_enum_v, is_union_v)
2257 (is_class_v, is_function_v, is_reference_v, is_arithmetic_v)
2258 (is_fundamental_v, is_object_v, is_scalar_v, is_compound_v)
2259 (is_member_pointer_v, is_const_v, is_volatile_v, is_trivial_v)
2260 (is_trivially_copyable_v, is_standard_layout_v)
2261 (is_pod_v, is_literal_type_v, is_empty_v, is_polymorphic_v)
2262 (is_abstract_v, is_final_v, is_signed_v, is_unsigned_v)
2263 (is_constructible_v, is_default_constructible_v)
2264 (is_copy_constructible_v, is_move_constructible_v)
2265 (is_assignable_v, is_copy_assignable_v, is_move_assignable_v)
2266 (is_destructible_v, is_trivially_constructible_v)
2267 (is_trivially_default_constructible_v)
2268 (is_trivially_copy_constructible_v, is_trivially_move_constructible_v)
2269 (is_trivially_assignable_v, is_trivially_copy_assignable_v)
2270 (is_trivially_move_assignable_v, is_trivially_destructible_v)
2271 (is_nothrow_constructible_v, is_nothrow_default_constructible_v)
2272 (is_nothrow_copy_constructible_v, is_nothrow_move_constructible_v)
2273 (is_nothrow_assignable_v, is_nothrow_copy_assignable_v)
2274 (is_nothrow_move_assignable_v, is_nothrow_destructible_v)
2275 (has_virtual_destructor_v, alignment_of_v, rank_v, extent_v)
2276 (is_same_v, is_base_of_v, is_convertible_v): Likewise.
2277 * testsuite/19_diagnostics/error_code/is_error_code_v.cc: Likewise.
2278 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
2280 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc: Likewise.
2281 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
2282 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
2284 2016-07-29 Andreas Schwab <schwab@linux-m68k.org>
2286 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
2287 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
2288 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
2290 2016-07-29 Jonathan Wakely <jwakely@redhat.com>
2292 * doc/xml/manual/abi.xml: Document 6.0.22 library version.
2293 * doc/html/manual/abi.html: Regenerate.
2295 * acinclude.m4 (libtool_VERSION): Bump to 6:23:0.
2296 * config/abi/pre/gnu.ver: Add 3.4.23 version for new basic_string
2298 * configure: Regenerate.
2299 * testsuite/util/testsuite_abi.cc: Add new symbol version.
2301 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
2302 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
2303 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Likewise.
2304 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
2306 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
2307 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
2308 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Likewise.
2310 2016-07-28 Jonathan Wakely <jwakely@redhat.com>
2312 * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
2313 Adjust dg-prune-output pattern for error in C++98 mode.
2314 * testsuite/23_containers/deque/requirements/dr438/
2315 constructor_1_neg.cc: Likewise.
2316 * testsuite/23_containers/deque/requirements/dr438/
2317 constructor_2_neg.cc: Likewise.
2318 * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
2320 * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
2322 * testsuite/23_containers/list/requirements/dr438/
2323 constructor_1_neg.cc: Likewise.
2324 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
2326 * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
2328 * testsuite/23_containers/vector/requirements/dr438/
2329 constructor_1_neg.cc: Likewise.
2330 * testsuite/23_containers/vector/requirements/dr438/
2331 constructor_2_neg.cc: Likewise.
2332 * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
2335 * testsuite/23_containers/vector/check_construct_destroy.cc: Account
2336 for different construct/destroy counts in C++98 mode.
2338 * testsuite/17_intro/headers/c++2011/stdc++.cc: Change target-specific
2339 dg-options to dg-additional-options so that default options are used.
2340 * testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc:
2342 * testsuite/17_intro/headers/c++2014/stdc++.cc: Likewise.
2343 * testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc:
2345 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
2346 Use dg-additional-options instead of repeating the common options.
2348 * testsuite/22_locale/conversions/string/1.cc: Remove unintended
2349 dg-do compile directive.
2350 * testsuite/26_numerics/headers/cmath/fabs_inline.cc: Fix syntax of
2352 * testsuite/26_numerics/valarray/const_bracket.cc: Likewise.
2354 2016-07-28 Ville Voutilainen <ville.voutilainen@gmail.com>
2356 Implement std::string_view and P0254r2,
2357 Integrating std::string_view and std::string.
2358 * include/Makefile.am: Add string_view and string_view.tcc
2359 to the exported headers.
2360 * include/Makefile.in: Likewise.
2361 * include/bits/basic_string.h: Include <string_view> in C++17 mode.
2363 (basic_string(__sv_type, const _Alloc&)): Likewise.
2364 (operator=(__sv_type)): Likewise.
2365 (operator __sv_type()): Likewise.
2366 (operator+=(__sv_type)): Likewise.
2367 (append(__sv_type __sv)): Likewise.
2368 (append(__sv_type, size_type, size_type)): Likewise.
2369 (assign(__sv_type)): Likewise.
2370 (assign(__sv_type, size_type, size_type)): Likewise.
2371 (insert(size_type, __sv_type)): Likewise.
2372 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
2373 (replace(size_type, size_type, __sv_type)): Likewise.
2374 (replace(size_type, size_type, __sv_type, size_type, size_type)):
2376 (replace(const_iterator, const_iterator, __sv_type)): Likewise.
2377 (find(__sv_type, size_type)): Likewise.
2378 (rfind(__sv_type, size_type)): Likewise.
2379 (find_first_of(__sv_type, size_type)): Likewise.
2380 (find_last_of(__sv_type, size_type)): Likewise.
2381 (find_first_not_of(__sv_type, size_type)): Likewise.
2382 (find_last_not_of(__sv_type, size_type)): Likewise.
2383 (compare(__sv_type)): Likewise.
2384 (compare(size_type, size_type, __sv_type)): Likewise.
2385 (compare(size_type, size_type, __sv_type, size_type, size_type)):
2387 * include/bits/string_view.tcc: New.
2388 * include/std/string_view: Likewise.
2389 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
2390 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
2391 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
2393 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
2395 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
2397 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
2399 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
2401 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
2403 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
2405 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
2407 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
2409 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
2411 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
2413 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
2415 * testsuite/21_strings/basic_string/operators/char/5.cc: Likewise.
2416 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc: Likewise.
2417 * testsuite/21_strings/basic_string_view/capacity/1.cc: Likewise.
2418 * testsuite/21_strings/basic_string_view/cons/char/1.cc: Likewise.
2419 * testsuite/21_strings/basic_string_view/cons/char/2.cc: Likewise.
2420 * testsuite/21_strings/basic_string_view/cons/char/3.cc: Likewise.
2421 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc: Likewise.
2422 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc: Likewise.
2423 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc: Likewise.
2424 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
2426 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
2428 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
2430 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
2432 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
2434 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
2436 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
2438 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
2440 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
2441 * testsuite/21_strings/basic_string_view/inserters/char/1.cc: Likewise.
2442 * testsuite/21_strings/basic_string_view/inserters/char/2.cc: Likewise.
2443 * testsuite/21_strings/basic_string_view/inserters/char/3.cc: Likewise.
2444 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
2446 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
2448 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
2450 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
2452 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
2454 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
2456 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
2458 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
2460 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
2462 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
2464 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
2466 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
2468 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
2470 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
2472 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
2474 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
2476 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
2478 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
2480 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
2482 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
2484 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
2486 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
2488 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
2490 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
2492 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
2494 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
2496 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
2498 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
2500 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
2502 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
2504 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
2506 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
2508 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
2510 * testsuite/21_strings/basic_string_view/operators/char/2.cc: Likewise.
2511 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
2513 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
2515 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
2517 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
2519 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
2521 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
2523 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
2525 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
2527 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
2529 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
2530 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
2532 2016-07-27 Jonathan Wakely <jwakely@redhat.com>
2534 * testsuite/20_util/forward/1_neg.cc: Move dg-error to right line.
2536 2016-07-25 Georeth Chow <georeth2010@gmail.com>
2538 * include/ext/ropeimpl.h (rope<>::_S_dump(_RopeRep*, int)): Qualify
2539 _S_concat enumerator.
2540 * testsuite/ext/rope/6.cc: New test.
2542 2016-07-25 Jonathan Wakely <jwakely@redhat.com>
2544 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Use
2545 std::mt19937, std::thread and std::atomic to simplify test.
2546 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
2548 2016-07-22 Jonathan Wakely <jwakely@redhat.com>
2551 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2552 (basic_string::_Alloc_hider(pointer, _Alloc&&)): Add constructor.
2553 * include/bits/stl_tree.h (_Rb_tree(_Rb_tree&&)): Move allocator.
2554 * testsuite/21_strings/basic_string/allocator/71964.cc: New test.
2555 * testsuite/23_containers/set/allocator/71964.cc: New test.
2557 * testsuite/lib/libstdc++.exp (check_v3_target_namedlocale): Use
2558 delete[] instead of delete.
2560 2016-07-21 Jonathan Wakely <jwakely@redhat.com>
2562 * include/experimental/propagate_const (propagate_const::__t): Rename
2563 to _M_t and remove comment. Qualify std::move and std::forward.
2564 * testsuite/experimental/propagate_const/cons/default.cc: Fix test.
2566 * testsuite/23_containers/vector/zero_sized_allocations.cc:
2567 Define sized deallocation function.
2568 * testsuite/util/testsuite_new_operators.h:
2569 (operator delete(void*, const std::nothrow_t&)): Define nothrow
2570 deallocation function.
2572 * testsuite/21_strings/basic_string/modifiers/append/char/1.cc: Fix
2573 reads past the end of strings.
2574 * testsuite/21_strings/basic_string/operations/compare/char/1.cc:
2576 * testsuite/21_strings/char_traits/requirements/short/1.cc: Fix
2577 invalid array accesses.
2578 * testsuite/experimental/string_view/operations/compare/char/1.cc:
2579 Fix read past the end of string.
2580 * testsuite/util/testsuite_character.cc: Fix out-of-bounds write.
2582 * testsuite/24_iterators/container_access.cc: Fix missing returns.
2583 * testsuite/24_iterators/range_access_cpp14.cc: Likewise.
2585 * testsuite/18_support/new_delete_placement.cc: Don't allocate (and
2586 leak) memory for arguments to placement delete.
2587 * testsuite/20_util/addressof/1.cc: Don't leak memory.
2588 * testsuite/22_locale/locale/global_locale_objects/3.cc: Likewise.
2589 * testsuite/23_containers/unordered_multimap/insert/55028-debug.cc:
2592 2016-07-20 Jonathan Wakely <jwakely@redhat.com>
2594 * doc/xml/manual/intro.xml: Document DR 2684 status.
2595 * doc/html/*: Regenerate.
2597 * include/std/atomic (atomic_int8_t, atomic_uint8_t, atomic_int16_t)
2598 (atomic_uint16_t, atomic_int32_t, atomic_uint32_t, atomic_int64_t)
2599 (atomic_uint64_t): Define (LWG 2441).
2600 * testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc: Remove empty
2602 * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Test for
2604 * doc/xml/manual/intro.xml: Document DR 2441 status.
2606 * include/std/istream (operator>>(basic_istream&&, _Tp&)): Adjust
2607 to use perfect forwarding (LWG 2328).
2608 * testsuite/27_io/rvalue_streams.cc: Test perfect forwarding.
2609 * doc/xml/manual/intro.xml: Document DR 2328 status.
2611 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Use
2612 static objects for catching nullptr as pointer to member types.
2614 2016-07-18 Ville Voutilainen <ville.voutilainen@gmail.com>
2616 Clean up optional's comments.
2617 * include/std/optional: Remove incorrect section headers
2618 from comments when redundant, replace bare section
2619 headers with more descriptive comments.
2621 2016-07-15 Jonathan Wakely <jwakely@redhat.com>
2623 * include/bits/algorithmfwd.h: Change C++0x to C++11 in comments.
2624 * include/bits/move.h: Likewise.
2625 * include/bits/postypes.h: Likewise.
2626 * include/debug/bitset: Likewise.
2627 * include/ext/pb_ds/detail/type_utils.hpp: Likewise.
2628 * include/ext/string_conversions.h: Change C++0x to __cxx11 in
2630 * testsuite/27_io/fpos/14320-1.cc: Change C++0x to C++11 in comment.
2631 * testsuite/util/thread/all.h: Likewise.
2633 * include/bits/stl_algo.h (for_each): Remove redundant _GLIBCXX_MOVE
2637 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Make
2638 nullptr match handlers of pointer type.
2640 2016-07-15 Edward Smith-Rowland <3dw4rd@verizon.net>
2642 Implement C++17 P0025 clamp.
2643 * include/bits/algorithmfwd.h: Declare clamp overloads.
2644 * include/bits/stl_algo.h: Implement clamp. Feature __cpp_lib_clamp.
2645 * testsuite/25_algorithms/clamp/1.cc: New test.
2646 * testsuite/25_algorithms/clamp/2.cc: New test.
2647 * testsuite/25_algorithms/clamp/constexpr.cc: New test.
2648 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
2650 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
2653 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
2655 Fix the constraints for any's assignment operator template to properly
2656 reject assignment from a non-copyable lvalue.
2657 * include/std/any (operator=(_ValueType&&)): Constrain the decayed
2658 type for is_copy_constructible,
2659 * testsuite/20_util/any/requirements.cc: Add a test for
2660 non-copyable lvalues.
2662 2016-07-14 Jonathan Wakely <jwakely@redhat.com>
2664 * include/experimental/functional: Include <parallel/algorithm> in
2667 * testsuite/experimental/functional/searchers.cc: Include <algorithm>
2671 * include/bits/forward_list.h (forward_list): Update doxygen comments
2672 to reflect allocator propagation semantics. Remove ambiguous
2673 statements about data being lost.
2674 * include/bits/stl_deque.h (deque): Likewise.
2675 * include/bits/stl_list.h (list): Likewise.
2676 * include/bits/stl_map.h (map): Likewise.
2677 * include/bits/stl_multimap.h (multimap): Likewise.
2678 * include/bits/stl_multiset.h (multiset): Likewise.
2679 * include/bits/stl_set.h (set): Likewise.
2680 * include/bits/stl_vector.h (vector): Likewise.
2681 * include/bits/unordered_map.h (unordered_map, unordered_multimap):
2683 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
2686 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
2688 Implement P0032R3, Homogeneous interface for variant, any and optional,
2689 for the parts concerning any and optional.
2690 * include/std/any (_Storage()): Make constexpr and have it
2692 (any()): Make constexpr.
2693 (any(const any&)): Adjust.
2694 (any(any&&)): Likewise.
2695 (__any_constructible_t): New.
2696 (any(_ValueType&&)): Constrain.
2697 (any(in_place_type_t<_Tp>, _Args&&...)): New.
2698 (any(in_place_type_t<_Tp>, initializer_list<_Up>, _Args&&...)):
2701 (operator=(const any&)): Likewise.
2702 (operator=(any&&)): Likewise.
2703 (operator=(_ValueType&&)): Constrain.
2704 (emplace(_Args&&...)): New.
2705 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
2708 (swap(any&)): Adjust.
2712 (_Manager_internal::_S_create(_Storage&, _Args&&...)): New.
2713 (_Manager_external::_S_create(_Storage&, _Args&&...)): Likewise.
2714 (make_any(_Args&&...)): Likewise.
2715 (make_any(initializer_list<_Up>, _Args&&...)): Likewise.
2716 * include/std/optional (in_place_t, in_place): Remove.
2717 (bad_optional_access): Add a comment referring to LEWG 72.
2718 (emplace(_Args&&...)): Constrain.
2720 (reset()): Likewise.
2721 (make_optional(_Args&&...)): Likewise.
2722 (make_optional(initializer_list<_Up>, _Args&&...)): Likewise.
2723 * include/std/utility (in_place_tag): New.
2724 (__in_place, __in_place_type, __in_place_index): Likewise.
2725 (in_place_t, in_place_type_t, in_place_index_t): Likewise.
2726 (in_place(__in_place*)): Likewise.
2727 (in_place(__in_place_type<_Tp>*)): Likewise.
2728 (in_place(__in_place_index<_Idx>*)): Likewise.
2729 * testsuite/20_util/any/assign/1.cc: Adjust.
2730 * testsuite/20_util/any/assign/emplace.cc: New.
2731 * testsuite/20_util/any/assign/self.cc: Adjust.
2732 * testsuite/20_util/any/cons/1.cc: Likewise.
2733 * testsuite/20_util/any/cons/in_place.cc: New.
2734 * testsuite/20_util/any/make_any.cc: Likewise.
2735 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
2736 * testsuite/20_util/any/misc/swap.cc: Likewise.
2737 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2738 * testsuite/20_util/any/requirements.cc: New.
2739 * testsuite/20_util/in_place/requirements.cc: Likewise.
2740 * testsuite/20_util/optional/constexpr/in_place.cc: Adjust.
2741 * testsuite/20_util/optional/in_place.cc: Likewise.
2742 * testsuite/20_util/optional/make_optional.cc: Add tests for
2743 the new overloads of make_optional.
2745 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2747 Implement P0307R2, Making Optional Greater Equal Again.
2748 * include/experimental/optional (_Has_addressof): Fix the comment.
2749 * include/std/optional (_Has_addressof): Likewise.
2750 (operator=(_Up&&)): Constrain.
2751 (operator=(const optional<_Up>&)): Likewise.
2752 (operator=(optional<_Up>&&)): Likewise.
2753 (__optional_relop_t): New.
2754 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2755 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2756 Constrain and make transparent.
2757 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2758 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2759 Constrain and make transparent.
2760 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2761 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2762 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2763 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2764 (operator!=(const optional<_Tp>&, _Tp const&)):
2765 Constrain and make transparent.
2766 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2767 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2768 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2769 (operator>(const optional<_Tp>&, const _Tp&)):
2770 Constrain and make transparent.
2771 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2772 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2773 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2774 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2775 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2776 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2777 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2778 * testsuite/20_util/optional/relops/1.cc: Likewise.
2779 * testsuite/20_util/optional/relops/2.cc: Likewise.
2780 * testsuite/20_util/optional/relops/3.cc: Likewise.
2781 * testsuite/20_util/optional/relops/4.cc: Likewise.
2782 * testsuite/20_util/optional/requirements.cc: Add tests to verify
2783 that optional's relops are transparent and don't synthesize
2784 operators. Also test that assignment sfinaes.
2786 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2789 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Define to 1 not empty.
2790 * include/parallel/compiletime_settings.h (_GLIBCXX_ASSERTIONS):
2791 Rename to _GLIBCXX_PARALLEL_ASSERTIONS and make default value depend
2792 on _GLIBCXX_ASSERTIONS.
2793 * include/parallel/balanced_quicksort.h: Rename _GLIBCXX_ASSERTIONS.
2794 Include <unistd.h> for sleep.
2795 * include/parallel/losertree.h: Rename _GLIBCXX_ASSERTIONS.
2796 * include/parallel/merge.h: Likewise.
2797 * include/parallel/multiway_merge.h: Likewise.
2798 * include/parallel/partition.h: Likewise.
2799 * include/parallel/queue.h: Likewise.
2800 * include/parallel/sort.h: Likewise.
2801 * testsuite/25_algorithms/headers/algorithm/
2802 parallel_algorithm_assert.cc: New.
2804 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2805 (replace(__const_iterator, __const_iterator, initializer_list<C>)):
2806 Forward to different overload.
2808 * include/bits/allocated_ptr.h (__allocated_ptr::_S_raw_ptr): Make
2811 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2813 Revert "Add non-const overload of std::string::data()".
2815 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2817 Implement P0307R2, Making Optional Greater Equal Again.
2818 * include/experimental/optional (_Has_addressof): Fix the comment.
2819 * include/std/optional (_Has_addressof): Likewise.
2820 (operator=(_Up&&)): Constrain.
2821 (operator=(const optional<_Up>&)): Likewise.
2822 (operator=(optional<_Up>&&)): Likewise.
2823 (__optional_relop_t): New.
2824 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2825 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2826 Constrain and make transparent.
2827 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2828 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2829 Constrain and make transparent.
2830 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2831 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2832 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2833 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2834 (operator!=(const optional<_Tp>&, _Tp const&)):
2835 Constrain and make transparent.
2836 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2837 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2838 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2839 (operator>(const optional<_Tp>&, const _Tp&)):
2840 Constrain and make transparent.
2841 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2842 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2843 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2844 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2845 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2846 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2847 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2848 * testsuite/20_util/optional/relops/1.cc: Likewise.
2849 * testsuite/20_util/optional/relops/2.cc: Likewise.
2850 * testsuite/20_util/optional/relops/3.cc: Likewise.
2851 * testsuite/20_util/optional/relops/4.cc: Likewise.
2852 * testsuite/20_util/optional/requirements.cc: Add tests to verify
2853 that optional's relops are transparent and don't synthesize
2854 operators. Also test that assignment sfinaes.
2856 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2858 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (_M_c_str):
2860 (_M_disjunct, basic_string(const basic_string&, size_t)): Use data()
2861 instead of _M_data().
2862 (basic_string(const basic_string&, size_t, size_t, const _Alloc&)):
2864 (append(const basic_string&)): Likewise.
2865 (append(const basic_string&, size_type, size_type)): Likewise.
2866 (assign(const basic_string&, size_type, size_type)): Likewise.
2867 (insert(size_type, const basic_string&)): Likewise.
2868 (insert(size_type, const basic_string&, size_type, size_type)):
2870 (replace(size_type, size_type, const basic_string&, size_type,
2871 size_type)): Likewise.
2872 (replace(__const_iterator, __const_iterator, const basic_string&)):
2874 (c_str(), data()): Use c_str() instead of _M_data().
2875 (data()): Add non-const overload as per LWG 2391 and P0272R1.
2876 (compare(const basic_string&)): Use data() instead of _M_data().
2877 [!_GLIBCXX_USE_CXX11_ABI] (data()): Add non-const overload.
2878 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI] (_M_mutate):
2879 Pass raw pointers to _S_copy.
2880 (_M_erase, _M_replace_aux): Pass raw pointers to _S_move and
2882 (find(const _CharT*, size_type, size_type)): Use data instead of
2884 * testsuite/21_strings/basic_string/allocator/char/ext_ptr.cc: New.
2885 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
2886 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
2888 2016-07-12 Jonathan Wakely <jwakely@redhat.com>
2890 * libsupc++/new: Remove nothrow sized deletes (LWG 2458).
2891 * doc/xml/manual/intro.xml: Document DR 2458 status.
2892 * doc/html*: Regenerate.
2894 * testsuite/20_util/pair/astuple/astuple.cc: Only include <utility>.
2895 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
2896 Only include <array>.
2897 * testsuite/23_containers/array/tuple_interface/tuple_size.cc:
2899 * doc/xml/manual/intro.xml: Document LWG 2212 support.
2900 * doc/html*: Regenerate.
2902 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2903 Add testcase from LWG 2164.
2905 2016-07-11 François Dumont <fdumont@gcc.gnu.org>
2907 * include/bits/stl_vector.h (push_back(const value_type&)): Forward
2908 to _M_realloc_insert.
2909 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2910 (_M_realloc_insert): Declare new function.
2911 (_M_emplace_back_aux): Remove definition.
2912 * include/bits/vector.tcc (emplace_back(_Args...)):
2913 Use _M_realloc_insert.
2914 (insert(const_iterator, const value_type&)): Likewise.
2915 (_M_insert_rval, _M_emplace_aux): Likewise.
2916 (_M_emplace_back_aux): Remove declaration.
2917 (_M_realloc_insert): Define.
2918 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2919 Adjust expected results for emplacing an lvalue with reallocation.
2921 2016-07-10 Ville Voutilainen <ville.voutilainen@gmail.com>
2923 Implement std::optional.
2924 * include/Makefile.am: Add optional to exported headers.
2925 * include/Makefile.in: Likewise.
2926 * include/std/optional: New.
2927 * testsuite/20_util/optional/typedefs.cc: Likewise.
2928 * testsuite/20_util/optional/relops/2.cc: Likewise.
2929 * testsuite/20_util/optional/relops/3.cc: Likewise.
2930 * testsuite/20_util/optional/relops/4.cc: Likewise.
2931 * testsuite/20_util/optional/relops/5.cc: Likewise.
2932 * testsuite/20_util/optional/relops/1.cc: Likewise.
2933 * testsuite/20_util/optional/relops/6.cc: Likewise.
2934 * testsuite/20_util/optional/nullopt.cc: Likewise.
2935 * testsuite/20_util/optional/in_place.cc: Likewise.
2936 * testsuite/20_util/optional/make_optional.cc: Likewise.
2937 * testsuite/20_util/optional/assignment/2.cc: Likewise.
2938 * testsuite/20_util/optional/assignment/3.cc: Likewise.
2939 * testsuite/20_util/optional/assignment/4.cc: Likewise.
2940 * testsuite/20_util/optional/assignment/5.cc: Likewise.
2941 * testsuite/20_util/optional/assignment/1.cc: Likewise.
2942 * testsuite/20_util/optional/assignment/6.cc: Likewise.
2943 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
2944 * testsuite/20_util/optional/cons/default.cc: Likewise.
2945 * testsuite/20_util/optional/cons/move.cc: Likewise.
2946 * testsuite/20_util/optional/cons/value.cc: Likewise.
2947 * testsuite/20_util/optional/cons/copy.cc: Likewise.
2948 * testsuite/20_util/optional/requirements.cc: Likewise.
2949 * testsuite/20_util/optional/observers/2.cc: Likewise.
2950 * testsuite/20_util/optional/observers/3.cc: Likewise.
2951 * testsuite/20_util/optional/observers/4.cc: Likewise.
2952 * testsuite/20_util/optional/observers/5.cc: Likewise.
2953 * testsuite/20_util/optional/observers/1.cc: Likewise.
2954 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
2955 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
2956 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2957 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
2958 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
2959 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
2960 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
2961 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
2962 * testsuite/20_util/optional/constexpr/make_optional.cc: Likewise.
2963 * testsuite/20_util/optional/constexpr/cons/default.cc: Likewise.
2964 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
2965 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
2966 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
2967 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
2968 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
2969 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
2970 * testsuite/20_util/optional/swap/1.cc: Likewise.
2972 2016-07-08 Jonathan Wakely <jwakely@redhat.com>
2974 * testsuite/23_containers/vector/modifiers/insert/aliasing.cc: New.
2976 2016-07-07 Jonathan Wakely <jwakely@redhat.com>
2978 * doc/xml/manual/status_cxx2014.xml: Update LFTS status table.
2979 * doc/html/*: Regenerate.
2981 2016-07-07 Ville Voutilainen <ville.voutilainen@gmail.com>
2984 * include/Makefile.am: Add any and c++17_warning.h to exported headers.
2985 * include/Makefile.in: Likewise.
2986 * include/std/any: New.
2987 * testsuite/20_util/any/assign/1.cc: Likewise.
2988 * testsuite/20_util/any/assign/2.cc: Likewise.
2989 * testsuite/20_util/any/assign/self.cc: Likewise.
2990 * testsuite/20_util/any/cons/1.cc: Likewise.
2991 * testsuite/20_util/any/cons/2.cc: Likewise.
2992 * testsuite/20_util/any/cons/aligned.cc: Likewise.
2993 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
2994 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
2995 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
2996 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
2997 * testsuite/20_util/any/misc/swap.cc: Likewise.
2998 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2999 * testsuite/20_util/any/observers/type.cc: Likewise.
3000 * testsuite/20_util/any/typedefs.cc: Likewise.
3002 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
3004 Add a new header for diagnosing the use of C++17 facilities
3006 * include/bits/c++17_warning.h: New.
3008 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
3010 Implement LWG 2451, optional<T> should 'forward' T's
3011 implicit conversions.
3012 * include/experimental/optional (__is_optional_impl, __is_optional):
3014 (optional()): Make constexpr and default.
3015 (optional(_Up&&), optional(const optional<_Up>&),
3016 optional(optional<_Up>&& __t): New.
3017 (operator=(_Up&&)): Constrain.
3018 (operator=(const optional<_Up>&), operator=(optional<_Up>&&)): New.
3019 * testsuite/experimental/optional/cons/value.cc:
3020 Add tests for the functionality added by LWG 2451.
3021 * testsuite/experimental/optional/cons/value_neg.cc: New.
3023 2016-07-05 Ville Voutilainen <ville.voutilainen@gmail.com>
3026 any_cast doesn't work with rvalue reference targets and cannot
3027 move with a value target.
3028 * include/experimental/any (any(_ValueType&&)): Constrain and
3029 add an overload that doesn't forward.
3030 (any_cast(any&&)): Constrain and add an overload that moves.
3031 * testsuite/experimental/any/misc/any_cast.cc: Add tests for
3032 the functionality added by LWG 2509.
3034 2016-07-04 François Dumont <fdumont@gcc.gnu.org>
3036 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
3038 * testsuite/23_containers/vector/modifiers/insert/self_insert.cc: New
3041 2016-07-04 Jonathan Wakely <jwakely@redhat.com>
3043 * include/bits/stl_vector.h (emplace(const_iterator, _Args&&...)):
3044 Define inline. Forward to _M_emplace_aux.
3045 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
3046 (_M_insert_rval, _M_emplace_aux): Declare new functions.
3047 (_Temporary_value): New RAII type using allocator to construct/destroy.
3048 (_S_insert_aux_assign): Remove.
3049 (_M_insert_aux): Make non-variadic.
3050 * include/bits/vector.tcc (insert(const_iterator, const value_type&)):
3051 Use _Temporary_value.
3052 (emplace(const_iterator, _Args&&...)): Remove definition.
3053 (_M_insert_rval, _M_emplace_aux): Define.
3054 (_M_insert_aux): Make non-variadic, stop using _S_insert_aux_assign.
3055 (_M_fill_insert): Use _Temporary_value.
3056 * testsuite/23_containers/vector/allocator/construction.cc: New test.
3057 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
3058 Adjust expected results for emplacing an lvalue with reallocation.
3059 * testsuite/23_containers/vector/check_construct_destroy.cc: Adjust
3060 expected results to account for construction/destruction of temporary
3062 * testsuite/backward/hash_set/check_construct_destroy.cc: Likewise.
3064 2016-07-04 Ville Voutilainen <ville.voutilainen@gmail.com>
3067 * src/filesystem/ops.cc (remove_all(const path&, error_code&)):
3068 Call remove_all for children of a directory.
3069 * testsuite/experimental/filesystem/operations/create_directories.cc:
3072 2016-07-02 François Dumont <fdumont@gcc.gnu.org>
3074 * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Adjust
3075 dg-error line numbers.
3076 * testsuite/23_containers/array/tuple_interface/
3077 tuple_element_debug_neg.cc: Likewise.
3078 * testsuite/25_algorithms/lexicographical_compare/debug/
3079 irreflexive_neg.cc: Remove.
3081 2016-06-30 Thomas Preud'homme <thomas.preudhomme@arm.com>
3083 * testsuite/29_atomics/atomic/65913.cc: Require atomic-builtins rather
3084 than specific target.
3086 2016-06-27 François Dumont <fdumont@gcc.gnu.org>
3089 * include/bits/hashtable.h: Remove _Unique_keya parameter in _Insert
3092 2016-06-23 François Dumont <fdumont@gcc.gnu.org>
3094 * include/debug/array (array<>::swap): Fix noexcept qualificaton for
3097 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3099 * configure.host: Remove mep-* support.
3101 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3103 * configure: Regenerate.
3104 * configure.host: Remove support for knetbsd.
3105 * crossconfig.m4: Likewise.
3107 2016-06-20 François Dumont <fdumont@gcc.gnu.org>
3110 * include/tr1/hashtable_policy.h
3111 (_Prime_rehash_policy::_M_next_bkt): Make past-the-end iterator
3112 dereferenceable to avoid check on lower_bound result.
3113 (_Prime_rehash_policy::_M_bkt_for_elements): Call latter.
3114 (_Prime_rehash_policy::_M_need_rehash): Likewise.
3115 * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
3116 Always return a value greater than input value. Set _M_next_resize to
3117 max value when reaching highest prime number.
3118 * src/shared/hashtable-aux.cc (__prime_list): Add comment about sentinel
3120 * testsuite/23_containers/unordered_set/hash_policy/71181.cc: New.
3121 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc
3123 * testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc: New.
3124 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
3127 2016-06-17 Jonathan Wakely <jwakely@redhat.com>
3130 * include/bits/stl_algobase.h (lower_bound, lexicographical_compare):
3131 Remove irreflexive checks.
3132 * include/bits/stl_algo.h (lower_bound, upper_bound, equal_range,
3133 binary_search): Likewise.
3134 * testsuite/25_algorithms/equal_range/partitioned.cc: New test.
3135 * testsuite/25_algorithms/lexicographical_compare/71545.cc: New test.
3136 * testsuite/25_algorithms/lower_bound/partitioned.cc: New test.
3137 * testsuite/25_algorithms/upper_bound/partitioned.cc: New test.
3138 * testsuite/util/testsuite_iterators.h (__gnu_test::test_container):
3139 Add constructor from array.
3141 2016-06-16 François Dumont <fdumont@gcc.gnu.org>
3143 * include/debug/debug.h
3144 (__glibcxx_requires_non_empty_range, __glibcxx_requires_nonempty)
3145 (__glibcxx_requires_subscript): Move...
3146 * include/debug/assertions.h: ...here and add __builtin_expect.
3147 (_GLIBCXX_DEBUG_ONLY): Remove ; value.
3148 * include/bits/stl_deque.h
3149 (std::deque<>::operator[]): Add __glibcxx_requires_subscript check.
3150 (std::deque<>::front()): Add __glibcxx_requires_nonempty check.
3151 (std::deque<>::back()): Likewise.
3152 (std::deque<>::pop_front()): Likewise.
3153 (std::deque<>::pop_back()): Likewise.
3154 (std::deque<>::swap(deque&)): Add allocator check.
3155 * include/bits/stl_vector.h
3156 (std::vector<>::operator[]): Add __glibcxx_requires_subscript check.
3157 (std::vector<>::front()): Add __glibcxx_requires_nonempty check.
3158 (std::vector<>::back()): Likewise.
3159 (std::vector<>::pop_back()): Likewise.
3160 (std::vector<>::swap(vector&)): Add allocator check.
3162 2016-06-16 Daniel Kruegler <daniel.kruegler@gmail.com>
3164 Provide swappable traits (p0185r1)
3165 * include/std/type_traits (is_swappable, is_nothrow_swappable,
3166 is_swappable_with, is_nothrow_swappable_with, is_swappable_v,
3167 is_nothrow_swappable_v, is_swappable_with_v,
3168 is_nothrow_swappable_with_v): New.
3169 * include/bits/stl_pair.h: Use it as per p0185r1.
3170 * include/bits/stl_queue.h: Likewise.
3171 * include/bits/stl_stack.h: Likewise.
3172 * include/bits/unique_ptr.h: Likewise.
3173 * include/std/tuple: Likewise.
3174 * include/std/array: Likewise. Fix zero-size member swap.
3175 * include/bits/hashtable.h: Use __and_.
3176 * testsuite/20_util/is_nothrow_swappable/requirements/
3177 explicit_instantiation.cc: Change test options to std=gnu++17.
3178 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
3180 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
3181 * testsuite/20_util/is_swappable/requirements/
3182 explicit_instantiation.cc: Likewise.
3183 * testsuite/20_util/is_swappable/requirements/typedefs.cc: Likewise.
3184 * testsuite/20_util/is_swappable/value.cc: Likewise.
3185 * testsuite/20_util/is_nothrow_swappable/requirements/
3186 explicit_instantiation_ext.cc: New.
3187 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs_ext.cc:
3189 * testsuite/20_util/is_nothrow_swappable/value.h: New.
3190 * testsuite/20_util/is_nothrow_swappable/value_ext.cc: New.
3191 * testsuite/20_util/is_nothrow_swappable_with/requirements/
3192 explicit_instantiation.cc: New.
3193 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
3195 * testsuite/20_util/is_nothrow_swappable_with/value.cc: New.
3196 * testsuite/20_util/is_swappable/requirements/
3197 explicit_instantiation_ext.cc: New.
3198 * testsuite/20_util/is_swappable/requirements/typedefs_ext.cc: New.
3199 * testsuite/20_util/is_swappable/value.h: New.
3200 * testsuite/20_util/is_swappable/value_ext.cc: New.
3201 * testsuite/20_util/is_swappable_with/requirements/
3202 explicit_instantiation.cc: New.
3203 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc: New.
3204 * testsuite/20_util/is_swappable_with/value.cc: New.
3205 * testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
3206 dg-error line numbers.
3207 * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
3210 2016-06-16 Jonathan Wakely <jwakely@redhat.com>
3212 * include/std/array: Remove trailing whitespace.
3213 * include/std/atomic: Likewise.
3214 * include/std/bitset: Likewise.
3215 * include/std/chrono: Likewise.
3216 * include/std/complex: Likewise.
3217 * include/std/condition_variable: Likewise.
3218 * include/std/fstream: Likewise.
3219 * include/std/functional: Likewise.
3220 * include/std/future: Likewise.
3221 * include/std/iomanip: Likewise.
3222 * include/std/iosfwd: Likewise.
3223 * include/std/istream: Likewise.
3224 * include/std/limits: Likewise.
3225 * include/std/ratio: Likewise.
3226 * include/std/scoped_allocator: Likewise.
3227 * include/std/sstream: Likewise.
3228 * include/std/stdexcept: Likewise.
3229 * include/std/string: Likewise.
3230 * include/std/system_error: Likewise.
3231 * include/std/thread: Likewise.
3232 * include/std/tuple: Likewise.
3233 * include/std/type_traits: Likewise.
3234 * include/std/utility: Likewise.
3235 * include/std/valarray: Likewise.
3236 * include/std/vector: Likewise.
3238 * include/bits/stl_vector.h (vector::_S_insert_aux_assign): Define
3239 new overloaded functions.
3240 * include/bits/vector.tcc (vector::_M_insert_aux): Use new functions
3241 to avoid creating a redundant temporary.
3242 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc: New
3245 2016-06-15 François Dumont <fdumont@gcc.gnu.org>
3247 * include/bits/stl_deque.h
3248 (std::deque<>::operator=): Call _M_assign_aux.
3249 (std::deque<>::assign(initializer_list<>)): Likewise.
3250 (std::deque<>::resize(size_t, const value_type&)): Call _M_fill_insert.
3251 (std::deque<>::insert(const_iterator, initializer_list<>)):
3252 Call _M_range_insert_aux.
3253 (std::deque<>::_M_assign_aux<It>(It, It, std::forward_iterator_tag):
3255 (std::deque<>::_M_fill_assign): Call _M_fill_insert.
3256 (std::deque<>::_M_move_assign2): Call _M_assign_aux.
3257 * include/bits/deque.tcc
3258 (std::deque<>::operator=): Call _M_range_insert_aux.
3259 (std::deque<>::_M_assign_aux<It>(It, It, std::input_iterator_tag)):
3261 * include/bits/stl_vector.h
3262 (std::vector<>::operator=): Call _M_assign_aux.
3263 (std::vector<>::assign(initializer_list<>)): Likewise.
3264 (std::vector<>::resize(size_t, const value_type&)): Call _M_fill_insert.
3265 (std::vector<>::insert(const_iterator, initializer_list<>)):
3266 Call _M_range_insert.
3267 * include/bits/vector.tcc (std::vector<>::_M_assign_aux): Likewise.
3269 2016-06-07 François Dumont <fdumont@gcc.gnu.org>
3271 * include/std/tuple (_Head_base<>): Default specialization condition at
3274 2016-06-06 Ville Voutilainen <ville.voutilainen@gmail.com>
3276 Support allocators in tuples of zero size.
3277 * include/std/tuple (tuple<>::tuple(),
3278 tuple<>::tuple(allocator_arg_t, const _Alloc&),
3279 tuple<>::tuple(allocator_arg_t, const _Alloc&, const tuple&)): New.
3280 * testsuite/20_util/tuple/cons/allocators.cc: Adjust.
3282 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
3285 * src/filesystem/ops.cc (permissions(const path&, perms, error_code&)):
3286 Add or remove permissions according to perms argument.
3287 * testsuite/experimental/filesystem/operations/permissions.cc: New
3290 2016-06-05 Ville Voutilainen <ville.voutilainen@gmail.com>
3292 Protect allocator-overloads of tuple-from-tuple constructors
3293 from cases that would create dangling references.
3294 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
3295 const tuple<_UElements...>&), tuple(allocator_arg_t, const _Alloc&,
3296 tuple<_UElements...>&&)): Add a check for _NonNestedTuple.
3297 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Adjust.
3299 2016-05-29 Gerald Pfeifer <gerald@pfeifer.com>
3301 * doc/xml/manual/backwards_compatibility.xml: Adjust
3302 lists.debian.org link to https.
3303 * doc/html/manual/backwards.html: Regenerate.
3305 2016-05-27 Jonathan Wakely <jwakely@redhat.com>
3307 * doc/xml/manual/abi.xml: Adjust URL to use https.
3308 * doc/html/manual/*: Regenerate.
3310 2016-05-27 Ville Voutilainen <ville.voutilainen@gmail.com>
3313 * include/std/tuple (_TMC): Add a check for _NotSameTuple.
3314 * include/std/tuple (tuple(_UElements&&...)): Remove the separate
3315 check for _NotSameTuple.
3316 * include/std/tuple (_TMCT): New.
3317 * include/std/tuple (tuple(const tuple<_UElements...>&)): Use it.
3318 * include/std/tuple (tuple(tuple<_UElements...>&&)): Likewise.
3319 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
3320 const tuple<_UElements...>&)): Likewise.
3321 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
3322 tuple<_UElements...>&&)): Likewise.
3323 * testsuite/20_util/tuple/cons/66338.cc: New.
3325 2016-05-25 Jonathan Wakely <jwakely@redhat.com>
3327 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Fix test for sendfile.
3328 * configure: Regenerate.
3329 * config.h.in: Regenerate.
3331 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): Remove it.
3332 * include/bits/hashtable_policy.h (_Power2_rehash_policy::_M_next_bkt):
3333 Remove const qualification on function. Replace
3334 _GLIBCXX14_USE_CONSTEXPR on automatic variables with const.
3335 (_Power2_rehash_policy::_M_need_rehash): Remove const qualification.
3336 (_Power2_rehash_policy::_M_next_bkt): Remove mutable specifier.
3338 2016-05-24 François Dumont <fdumont@gcc.gnu.org>
3340 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): New.
3341 * include/bits/hashtable_policy.h
3342 (_Prime_rehash_policy::__has_load_factor): New. Mark rehash policy
3343 having load factor management.
3344 (_Mask_range_hashing): New.
3346 (_Power2_rehash_policy): New.
3347 (_Inserts<>): Remove last template parameter, _Unique_keys, so that
3348 partial specializations only depend on whether iterators are constant
3350 * testsuite/23_containers/unordered_set/hash_policy/26132.cc: Adapt to
3351 test new hash policy.
3352 * testsuite/23_containers/unordered_set/hash_policy/load_factor.cc:
3354 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
3356 * testsuite/23_containers/unordered_set/insert/hash_policy.cc:
3358 * testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
3360 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc:
3362 * testsuite/performance/23_containers/insert/54075.cc: Add benchmark
3363 using the new hash policy.
3364 * testsuite/performance/23_containers/insert_erase/41975.cc: Likewise.
3366 2016-05-24 Jonathan Wakely <jwakely@redhat.com>
3368 * include/bits/stl_queue.h (priority_queue::value_compare): Define.
3370 2016-05-23 François Dumont <fdumont@gcc.gnu.org>
3372 * include/debug/safe_iterator.h
3373 (_Safe_iterator<>::operator->()): Implement using underlying iterator
3375 * include/debug/safe_local_iterator.h
3376 (_Safe_local_iterator<>::operator->()): Likewise.
3378 2016-05-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
3380 * testsuite/experimental/memory_resource/1.cc: Add required argument
3381 to dg-require-atomic-builtins.
3383 2016-05-13 Jonathan Wakely <jwakely@redhat.com>
3386 * include/debug/bitset: Add #pragma GCC system_header.
3387 * include/debug/deque: Likewise.
3388 * include/debug/list: Likewise.
3389 * include/debug/map: Likewise.
3390 * include/debug/set: Likewise.
3391 * include/debug/string: Likewise.
3392 * include/debug/unordered_map: Likewise.
3393 * include/debug/unordered_set: Likewise.
3394 * include/debug/vector: Likewise.
3395 * include/debug/functions.h: Adjust whitespace.
3397 2016-05-12 Jonathan Wakely <jwakely@redhat.com>
3400 * testsuite/experimental/memory_resource/1.cc: Require atomics.
3402 2016-05-11 Jonathan Wakely <jwakely@redhat.com>
3405 * src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_DUAL_ABI]: Don't define
3406 exception constructors with __sso_string parameters.
3408 2016-05-10 Jonathan Wakely <jwakely@redhat.com>
3410 * include/experimental/bits/fs_dir.h (begin, end): Add noexcept.
3411 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
3412 Test begin and end functions.
3413 * testsuite/experimental/filesystem/iterators/
3414 recursive_directory_iterator.cc: Likewise.
3417 * src/filesystem/ops.cc (do_copy_file): Fix backwards conditions.
3418 * testsuite/experimental/filesystem/operations/copy_file.cc: New test.
3420 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
3421 Overload operator* to move from rvalues.
3424 * src/filesystem/ops.cc (create_dir): Handle EEXIST from mkdir.
3425 * testsuite/experimental/filesystem/operations/create_directory.cc:
3429 * src/filesystem/ops.cc (canonical(const path&, const path&)): Add
3430 base path to exception.
3431 * testsuite/experimental/filesystem/operations/canonical.cc: Test
3432 paths contained in exception.
3434 * testsuite/experimental/type_erased_allocator/2.cc: Remove unused
3438 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
3440 (directory_iterator::operator++(int)): Return proxy.
3441 (recursive_directory_iterator::operator++(int)): Likewise.
3442 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
3443 Test post-increment.
3444 * testsuite/experimental/filesystem/iterators/
3445 recursive_directory_iterator.cc: Likewise.
3447 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
3450 * testsuite/experimental/filesystem/iterators/
3451 recursive_directory_iterator.cc: Fix test02 to not call member
3452 functions on invalid iterator, and use VERIFY not assert.
3454 2016-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
3456 Avoid endless run-time recursion for copying single-element
3457 tuples where the element type is by-value constructible
3459 * include/std/tuple (_NotSameTuple): New.
3460 * include/std/tuple (tuple(_UElements&&...): Use it.
3461 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc: New.
3463 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
3466 * include/experimental/bits/fs_dir.h (recursive_directory_iterator):
3467 Initialize scalar member variables in default constructor.
3468 * testsuite/experimental/filesystem/iterators/
3469 recursive_directory_iterator.cc: Test default construction.
3471 2016-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3473 * testsuite/lib/libstdc++.exp (libstdc++_init): Enable on *-*-solaris*.
3475 2016-05-05 Jonathan Wakely <jwakely@redhat.com>
3477 * testsuite/experimental/filesystem/path/native/string.cc: Add
3478 dg-require-filesystem-ts directive.
3480 2016-05-04 Jonathan Wakely <jwakely@redhat.com>
3483 * include/experimental/memory_resource
3484 (__resource_adaptor_imp::do_allocate): Do not default-construct
3486 (__resource_adaptor_imp::do_deallocate): Likewise. Use
3487 allocator_traits to get pointer type.
3488 (__null_memory_resource::do_allocate): Remove unused parameters.
3489 (__null_memory_resource::do_deallocate): Likewise.
3490 (__null_memory_resource::do_is_equal): Likewise. Add return statement.
3491 * testsuite/experimental/type_erased_allocator/1.cc: Combine with ...
3492 * testsuite/experimental/type_erased_allocator/1_neg.cc: This, and
3494 * testsuite/experimental/memory_resource/1.cc: Here.
3495 * testsuite/experimental/memory_resource/null_memory_resource.cc: New.
3496 * testsuite/experimental/memory_resource/resource_adaptor.cc: New.
3498 2016-04-29 Chris Gregory <czipperz@gmail.com>
3500 * config/*: Remove trailing whitespace.
3502 * testsuite/tr1/*: Likewise.
3503 * testsuite/util/*: Likewise.
3505 2016-04-28 Jonathan Wakely <jwakely@redhat.com>
3508 * include/bits/basic_ios.tcc (basic_ios::_M_cache_locale): Use
3510 * include/bits/stream_iterator.h (istream_iterator, ostream_iterator):
3512 * include/std/atomic (atomic<_Tp>): Likewise.
3513 * include/std/shared_mutex (shared_lock): Likewise.
3514 * testsuite/24_iterators/istream_iterator/70766.cc: New test.
3515 * testsuite/24_iterators/ostream_iterator/70766.cc : New test.
3516 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
3517 * testsuite/29_atomics/atomic/70766.cc: New test.
3518 * testsuite/30_threads/shared_lock/70766.cc: New test.
3520 * include/bits/hashtable_policy.h (__detail::_Insert_base,
3521 __detail::_Insert): Improve comments.
3523 2016-04-27 Jonathan Wakely <jwakely@redhat.com>
3526 * include/std/limits: Update comments about DRs.
3527 (numeric_limits<const _Tp>, numeric_limits<volatile _Tp>,
3528 numeric_limits<const volatile _Tp>): Define unconditionally.
3530 2016-04-24 Jonathan Wakely <jwakely@redhat.com>
3533 * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path): Use
3534 static counter to return a different path on every call.
3536 2016-04-22 Tim Shen <timshen@google.com>
3539 * include/bits/regex_executor.tcc (_Executor<>::_M_word_boundary):
3540 Fix the match_not_bow and match_not_eow behavior.
3541 * testsuite/28_regex/regression.cc: Add testcase.
3543 2016-04-20 Jonathan Wakely <jwakely@redhat.com>
3546 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in,
3547 __codecvt_utf8_utf16_base<char16_t>::do_in): Fix mask operations.
3549 2016-04-19 Jonathan Wakely <jwakely@redhat.com>
3552 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in):
3553 Override endianness bit in mode.
3554 * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: New test.
3555 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc: Test
3556 that little_endian mode is ignored.
3557 * testsuite/experimental/filesystem/path/native/string.cc: New test.
3560 * src/filesystem/ops.cc (close_fd): New function.
3561 (do_copy_file): Set permissions before copying file contents. Check
3562 result of closing file descriptors. Don't copy streambuf when file
3564 (copy(const path&, const path&, copy_options, error_code&)): Use
3565 lstat for source file when copy_symlinks is set.
3566 * testsuite/experimental/filesystem/operations/copy.cc: Test copy().
3568 * include/experimental/bits/fs_fwd.h (operator&, operator|, operator^,
3569 operator~ operator&=, operator|=, operator^=): Add noexcept to
3570 overloaded operators for copy_options, perms and directory_options.
3571 * src/filesystem/ops.cc (make_file_type, make_file_status,
3572 is_not_found_errno, file_time): Add noexcept.
3574 2016-04-19 Edward Smith-Rowland <3dw4rd@verizon.net>
3576 * include/bits/c++14_warning.h: Do not refer C++14 as experimental.
3578 2016-04-18 Jonathan Wakely <jwakely@redhat.com>
3581 * include/bits/random.h: Reword static assertion messages to state
3582 positive conditions.
3583 * include/bits/random.tcc: Likewise.
3584 * include/bits/uniform_int_dist.h: Likewise.
3585 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3588 * include/std/function (_Bind, _Bind_result): Remove unused typedefs.
3590 * config/cpu/sh/atomicity.h: Fix typo in comment.
3593 * include/std/thread (operator<, operator==): Move definitions to
3595 * testsuite/30_threads/thread/id/70294.cc: New test.
3597 * testsuite/18_support/bad_exception/23591_thread-1.c: Add
3598 -Wno-pedantic to dg-options.
3599 * testsuite/20_util/align/2.cc: Use type as operand of alignof.
3600 * testsuite/20_util/is_floating_point/value.cc: Add -Wno-pedantic
3602 * testsuite/20_util/specialized_algorithms/uninitialized_fill/32158.cc:
3603 Remove extra semi-colon.
3604 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
3605 Always supply second argument to static_assert.
3606 * testsuite/25_algorithms/lower_bound/no_operator_ne.cc: Remove extra
3608 * testsuite/26_numerics/complex/c99.cc: Add -Wno-pedantic to
3610 * testsuite/26_numerics/complex/literals/values.cc: Likewise.
3611 * testsuite/29_atomics/atomic/60695.cc: Likewise.
3612 * testsuite/29_atomics/atomic/62259.cc: use __alignof__ instead of
3613 alignof when operand is an object not a type.
3614 * testsuite/decimal/ctor.cc: Add -Wno-pedantic to dg-options.
3615 * testsuite/decimal/make-decimal.cc: Likewise.
3616 * testsuite/experimental/type_traits/value.cc: Always supply second
3617 argument to static_assert.
3618 * testsuite/util/testsuite_common_types.h: Use __extension__ for
3621 * testsuite/experimental/type_erased_allocator/1.cc: Don't include
3623 * testsuite/experimental/type_erased_allocator/1_neg.cc: Likewise.
3624 * testsuite/experimental/type_erased_allocator/2.cc: Likewise.
3625 * testsuite/experimental/type_erased_allocator/uses_allocator.cc:
3626 Likewise. Add licence and change to compile-only test.
3628 * include/bits/locale_facets.h (ctype::do_narrow): Add attribute to
3630 * include/bits/regex_automaton.h (_NFA::_M_insert_alt): Likewise.
3632 * include/ext/string_conversions.h (__stoa): Avoid -Wsign-compare
3635 2016-04-17 Edward Smith-Rowland <3dw4rd@verizon.net>
3637 * include/bits/specfun.h: Trivial comment misspelling.
3639 2016-04-14 Jason Merrill <jason@redhat.com>
3641 Revert Jonathan's empty ABI change from yesterday.
3643 2016-04-13 Martin Sebor <msebor@redhat.com>
3646 * testsuite/25_algorithms/rotate/moveable2.cc: Make sure VLA
3647 upper bound is positive.
3649 2016-04-13 Jonathan Wakely <jwakely@redhat.com>
3651 * include/bits/c++config (_GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES,
3652 _GLIBCXX_END_NAMESPACE_EMPTY_TYPES, _GLIBCXX_ABI_TAG_EMPTY): Define.
3653 * include/bits/hashtable.h (_Hashtable::_M_emplace): Change signatures
3654 of functions taking empty structs by value. Add a template parameter
3655 to overloads without hints. Rename overloads with hints to
3657 (_Hashtable::_M_erase(true_type, const_iterator),
3658 _Hashtable::_M_erase(false_type, const_iterator)): Change signatures
3659 by reordering parameters.
3660 * include/bits/hashtable_policy.h (_Insert::insert): Adjust to call
3661 _M_emplace_hint instead of _M_emplace.
3662 * include/bits/shared_ptr.h (shared_ptr(_Tp1*, _Deleter, _Alloc),
3663 shared_ptr(nullptr_t, _Deleter, _Alloc)): Use _GLIBCXX_ABI_TAG_EMPTY.
3664 * include/bits/shared_ptr_base.h (_Sp_counted_deleter, __shared_count,
3665 __shared_ptr): Likewise.
3666 * include/bits/stl_algo.h (replace_if): Likewise.
3667 * include/bits/stl_pair.h (piecewise_construct_t,
3668 piecewise_construct): Use _GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES.
3669 * include/bits/uses_allocator.h (allocator_arg_t, allocator_arg,
3670 __uses_alloc0): Likewise.
3671 * include/ext/pb_ds/assoc_container.hpp (basic_hash_table): Likewise.
3672 * testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error.
3673 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
3674 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
3675 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
3676 * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
3677 * testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.
3679 2016-04-12 Edward Smith-Rowland <3dw4rd@verizon.net>
3681 Document C++17/TR29124 C++ Special Math Functions.
3682 * include/bits/specfun.h: Add Doxygen markup.
3684 2016-04-07 Jonathan Wakely <jwakely@redhat.com>
3686 * testsuite/30_threads/thread/70503.cc: Adjust from xfail to pass.
3688 2016-04-06 Eric Botcazou <ebotcazou@adacore.com>
3690 * src/Makefile.am (libstdc++-symbols.ver): Remove useless /dev/null.
3691 * src/Makefile.in: Regenerate.
3693 2016-04-05 Jonathan Wakely <jwakely@redhat.com>
3696 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Don't test
3697 __atomic_fetch_add for bool.
3698 * configure: Regenerate.
3700 * testsuite/30_threads/thread/70503.cc: Require -static to work.
3703 * src/c++11/thread.cc (execute_native_thread_routine,
3704 execute_native_thread_routine_compat): Give internal linkage.
3705 * testsuite/30_threads/thread/70503.cc: New test.
3707 2016-04-05 Ville Voutilainen <ville.voutilainen@gmail.com>
3710 * include/bits/stl_pair.h (_ConstructiblePair,
3711 _ImplicitlyConvertiblePair, _MoveConstructiblePair,
3712 _ImplicitlyMoveConvertiblePair): Add shortcut conditions
3713 for same-type cases.
3714 * testsuite/20_util/pair/70437.cc: New.
3716 2016-03-24 Jonathan Wakely <jwakely@redhat.com>
3719 * config/abi/pre/gnu.ver: Add new symbol.
3720 * libsupc++/eh_alloc.cc (__gnu_cxx::__freeres): Define.
3721 * testsuite/18_support/free_eh_pool.cc: New test.
3723 2016-03-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
3725 * include/Makefile.am (install-freestanding-headers): Add
3726 concept_check.h and move.h to the installed headers.
3727 * include/Makefile.in: Regenerated.
3728 * include/bits/concept_check.h: Ignore _GLIBCXX_CONCEPT_CHECKS for
3729 freestanding implementations.
3730 * doc/xml/manual/using.xml (_GLIBCXX_CONCEPT_CHECKS): Mention
3731 that this macro has no effect for freestanding implementations.
3732 * doc/html/manual/using_macros.html: Likewise.
3734 2016-02-24 Jonathan Wakely <jwakely@redhat.com>
3737 * include/experimental/tuple (__apply_impl): Qualify get and forward.
3739 2016-02-23 Jonathan Wakely <jwakely@redhat.com>
3741 * doc/xml/manual/using.xml: Document __STDCPP_WANT_MATH_SPEC_FUNCS__.
3742 * doc/html/*: Regenerate.
3745 * include/tr1/cmath (acosh, asinh, atanh, cbrt, copysign, erf, erfc,
3746 exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma, llrint,
3747 llround, log1p, log2, logb, lrint, lround, nan, nearbyint, nextafter,
3748 nexttoward, remainder, remquo, rint, round, scalbln, scalbn, tgamma,
3749 trunc) [__cplusplus >= 201103L]: Import from namespace std.
3750 (fabs) [__cplusplus < 201103L]: Import from namespace std.
3751 * include/tr1/complex (acosh, asinh, atanh) [__cplusplus >= 201103L]:
3753 * testsuite/tr1/headers/c++200x/complex.cc: Add std::fabs to global
3754 namespace before including TR1 headers.
3755 * testsuite/tr1/headers/c++200x/math.cc: New test.
3757 2016-02-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
3760 * include/c_global/cstdarg: Undefine __need___va_list.
3761 * include/c_global/cstddef: Undefine all kinds of __need_*.
3763 2016-02-16 Tim Shen <timshen@google.com>
3766 * include/bits/regex_scanner.h: Add different special character
3767 sets for grep and egrep regex.
3768 * include/bits/regex_scanner.tcc: Use _M_spec_char more uniformly.
3769 * testsuite/28_regex/regression.cc: Add new testcase.
3771 2016-02-08 Jonathan Wakely <jwakely@redhat.com>
3773 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Remove accidentally
3774 added 'constexpr' in previous commit.
3775 * configure: Regenerate.
3778 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Enable isinf and isnan
3779 checks for all targets except *-*-solaris2.* and ensure we find the
3780 libc math.h header not our own.
3781 * configure: Regenerate.
3783 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
3785 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt (FUNC):
3786 New file. Copied over from s390-linux-gnu.
3788 2016-02-04 Jonathan Wakely <jwakely@redhat.com>
3791 * acinclude.m4 (GLIBCXX_ENABLE_C99): Check C99 stdlib.h functions
3792 with -std=c++98 and define _GLIBCXX98_USE_C99_STDLIB.
3793 * config.h.in: Regenerate.
3794 * configure: Regenerate.
3795 * testsuite/21_strings/c_strings/char/69626.cc: New.
3797 * doc/html/index.html: Regenerate.
3799 * doc/xml/manual/containers.xml: Add cross-reference to Dual ABI.
3800 * doc/xml/manual/spine.xml: Update copyright years and author blurb.
3801 * doc/html/*: Regenerate.
3803 2016-02-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
3806 * include/c_compatibility/math.h: Move header guards.
3807 * include/c_compatibility/stdlib.h: Likewise.
3809 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
3812 * config/os/newlib/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3814 2016-01-28 John David Anglin <danglin@gcc.gnu.org>
3817 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Split check for obsolete
3818 isinf and isnan functions into two independent checks. Check on hpux.
3819 * config.h.in: Regenerate.
3820 * configure: Regenerate.
3821 * include/c_global/cmath (isinf(double), isnan(double)): Use
3822 _GLIBCXX_HAVE_OBSOLETE_ISINF and _GLIBCXX_HAVE_OBSOLETE_ISNAN,
3825 2016-01-27 Jakub Jelinek <jakub@redhat.com>
3827 * testsuite/libstdc++-prettyprinters/whatis.cc: Include <random>.
3829 2016-01-27 Jonathan Wakely <jwakely@redhat.com>
3832 * testsuite/ext/special_functions/hyperg/check_value.cc: Use
3833 -ffp-contract=off, and -ffloat-store to disable excess precision.
3834 * testsuite/special_functions/02_assoc_legendre/check_value.cc: Use
3837 2016-01-26 Jonathan Wakely <jwakely@redhat.com>
3840 * include/bits/stl_algobase.h (__copy_move<_IsMove, true,
3841 random_access_iterator_tag>): Check is_move_assignable when moving.
3842 (__copy_move_backwards<_IsMove, true, random_access_iterator_tag>):
3844 * testsuite/25_algorithms/copy/move_iterators/69478.cc: New.
3845 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc: New.
3846 * testsuite/25_algorithms/move/69478.cc: New.
3847 * testsuite/25_algorithms/move_backward/69478.cc: new.
3849 2016-01-26 Andris Pavenis <andris.pavenis@iki.fi>
3851 * include/c_compatibility/stdlib.h: Include wide character related
3852 definitions only when they are available in cstdlib.
3854 2016-01-25 Jonathan Wakely <jwakely@redhat.com>
3857 * include/Makefile.am: Add new header.
3858 * include/Makefile.in: Regenerate.
3859 * include/bits/random.h (uniform_int_distribution): Move to
3860 bits/uniform_int_dist.h.
3861 * include/bits/random.tcc (uniform_int_distribution::operator(),
3862 uniform_int_distribution::__generate_impl): Likewise.
3863 * include/bits/uniform_int_dist.h: New header.
3864 * include/bits/stl_algo.h [__cplusplus >= 201103L]: Include
3865 <bits/uniform_int_dist.h> instead of <random>.
3866 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
3867 move_iterators/1.cc: Include correct header for uninitialized_copy.
3868 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
3869 move_iterators/1.cc: Likewise.
3870 * testsuite/25_algorithms/nth_element/58800.cc: Include correct
3872 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lines.
3874 2016-01-23 John David Anglin <danglin@gcc.gnu.org>
3877 * config/os/hpux/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3879 2016-01-22 Edward Smith-Rowland <3dw4rd@verizon.net>
3881 TR29124 C++ Special Math - <math.h> pulls funcs into global namespace.
3882 * include/c_compatibility/math.h: Import the TR29124 functions
3883 into the global namespace.
3884 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: Remove
3885 xfail and make compile-only.
3886 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: Ditto.
3887 * testsuite/special_functions/03_beta/compile_2.cc: Ditto.
3888 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Ditto.
3889 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Ditto.
3890 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Ditto.
3891 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Ditto.
3892 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Ditto.
3893 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Ditto.
3894 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Ditto.
3895 * testsuite/special_functions/11_ellint_1/compile_2.cc: Ditto.
3896 * testsuite/special_functions/12_ellint_2/compile_2.cc: Ditto.
3897 * testsuite/special_functions/13_ellint_3/compile_2.cc: Ditto.
3898 * testsuite/special_functions/14_expint/compile_2.cc: Ditto.
3899 * testsuite/special_functions/15_hermite/compile_2.cc: Ditto.
3900 * testsuite/special_functions/16_laguerre/compile_2.cc: Ditto.
3901 * testsuite/special_functions/17_legendre/compile_2.cc: Ditto.
3902 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Ditto.
3903 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Ditto.
3904 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Ditto.
3905 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Ditto.
3907 2016-01-22 Jonathan Wakely <jwakely@redhat.com>
3910 * include/bits/valarray_before.h (__fun, __fun_with_valarray): Only
3911 define result_type for types which can be safely used with valarrays.
3912 * testsuite/26_numerics/valarray/69116.cc: New.
3915 * config/os/gnu-linux/os_defines.h: Define
3916 _GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC.
3917 * include/c_global/cmath (isinf, isnan): Check it.
3918 * doc/xml/manual/internals.xml: Document it.
3919 * doc/html/*: Regenerate.
3921 2016-01-21 Jonathan Wakely <jwakely@redhat.com>
3924 * include/bits/cpp_type_traits.h: Ensure C++ language linkage.
3925 * include/ext/type_traits.h: Likewise.
3926 * testsuite/17_intro/headers/c++2011/linkage.cc: Check autoconf macros
3927 for presence of C headers.
3928 * testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Adjust
3929 dg-error line number.
3930 * testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise.
3931 * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise.
3932 * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Likewise.
3934 2016-01-20 Torvald Riegel <triegel@redhat.com>
3937 * config/os/bsd/darwin/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3939 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
3942 * include/c_compatibility/math.h (acosh, asinh, atanh, acbrt,
3943 copysign, erf, erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb,
3944 lgamma, llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
3945 nextafter, nexttoward, remainder, remquo, rint, round, scalbln, scalbn,
3946 tgamma, trunc) [__cplusplus >= 201103L && _GLIBCXX_USE_C99_MATH_TR1]:
3947 Add using declarations.
3948 * testsuite/26_numerics/headers/cmath/60401.cc: New.
3951 * include/c_global/ccomplex: Ensure C++ language linkage.
3952 * include/c_global/cmath: Likewise.
3953 * include/c_global/cstdlib: Likewise.
3954 * include/c_global/ctgmath: Likewise.
3955 * testsuite/17_intro/headers/c++2011/linkage.cc: New.
3957 2016-01-19 Jonathan Wakely <jwakely@redhat.com>
3961 * include/Makefile.am: Use c_compatibility math.h and stdlib.h for
3962 --enable-cheaders=c_global configs.
3963 * include/Makefile.in: Regenerate.
3964 * include/c_compatibility/math.h: Remove obsolete _GLIBCXX_NAMESPACE_C
3965 test and allow inclusion from C files.
3966 * include/c_compatibility/stdlib.h: Likewise. Support freestanding.
3967 (at_quick_exit, quick_exit): Add using directives.
3968 * include/c_global/cmath: Use #include_next for math.h.
3969 * include/c_global/cstdlib: Use #include_next for stdlib.h.
3970 * testsuite/26_numerics/headers/cmath/14608.cc: New.
3971 * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
3972 Remove xfail for most targets.
3973 * testsuite/26_numerics/headers/cstdlib/60401.cc: New.
3975 2016-01-18 Torvald Riegel <triegel@redhat.com>
3977 * include/bits/c++config (_GLIBCXX_USE_WEAK_REF): New.
3978 (_GLIBCXX_TXN_SAFE, _GLIBCXX_TXN_SAFE_DYN): Use _GLIBCXX_USE_WEAK_REF
3979 and move after its definition.
3980 * config/os/aix/os_defines.h (_GLIBCXX_USE_WEAK_REF): Override.
3981 * src/c++11/cow-stdexcept.cc: Use _GLIBCXX_USE_WEAK_REF instead of
3982 __GXX_WEAK__, and only provide transactional clones if
3983 _GLIBCXX_USE_WEAK_REF is true. Don't provide stubs of libitm
3986 2016-01-18 Jonathan Wakely <jwakely@redhat.com>
3989 * testsuite/26_numerics/headers/cmath/60637.cc: Add test.
3992 * include/std/functional (_Function_base::_M_not_empty_function):
3993 Change overloads for pointers to take arguments by value.
3994 * testsuite/20_util/function/cons/57465.cc: Add tests for
3995 pointer-to-member cases.
3998 * src/c++11/cow-stdexcept.cc (_txnal_cow_string_C1_for_exceptions):
3999 Use macros for exception handling and fix unused parameter warning.
4001 2016-01-17 John David Anglin <danglin@gcc.gnu.org>
4004 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
4006 2016-01-17 Torvald Riegel <triegel@redhat.com>
4008 * src/c++11/cow-stdexcept.cc (txnal_read_ptr): Fix static_assert.
4010 2016-01-16 H.J. Lu <hongjiu.lu@intel.com>
4012 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Add
4015 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
4018 * include/bits/uses_allocator.h (__uses_alloc<true, ...>): Add
4019 static assertion that type is constructible from the arguments.
4020 * testsuite/20_util/scoped_allocator/69293_neg.cc: New.
4021 * testsuite/20_util/uses_allocator/69293_neg.cc: New.
4022 * testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error.
4025 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
4026 and isnan on AIX. Quote variables.
4027 * configure: Regenerate.
4029 2016-01-15 Torvald Riegel <triegel@redhat.com>
4031 * include/bits/basic_string.h (basic_string): Declare friends.
4032 * include/bits/c++config (_GLIBCXX_TXN_SAFE,
4033 _GLIBCXX_TXN_SAFE_DYN, _GLIBCXX_USE_ALLOCATOR_NEW): New.
4034 * include/std/stdexcept (logic_error, domain_error, invalid_argument,
4035 length_error, out_of_range, runtime_error, range_error,
4036 underflow_error, overflow_error): Declare members as transaction-safe.
4037 (logic_error, runtime_error): Declare friend functions.
4038 * libsupc++/exception (exception, bad_exception): Declare members as
4040 * src/c++11/cow-stdexcept.cc: Define transactional clones for the
4041 transaction-safe members of exceptions and helper functions.
4042 * libsupc++/eh_exception.cc: Adjust and define transactional clones.
4043 * config/abi/pre/gnu.ver (GLIBCXX_3.4.22) Add transactional clones.
4044 (CXXABI_1.3.10): New.
4045 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): New.
4046 (GLIBCXX_ENABLE_ALLOCATOR): Set ENABLE_ALLOCATOR_NEW.
4047 * configure.ac: Call GLIBCXX_CHECK_SIZE_T_MANGLING.
4048 * include/Makefile.am: Write ENABLE_ALLOCATOR_NEW to c++config.h.
4049 * include/Makefile.in: Regenerate.
4050 * config.h.in: Regenerate.
4051 * configure: Regenerate.
4052 * testsuite/util/testsuite_abi.cc (check_version): Add CXXABI_1.3.10.
4054 2016-01-15 Steve Ellcey <sellcey@imgtec.com>
4056 * include/ext/random.tcc: Use __builtin_isfinite instead of
4059 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
4061 * include/bits/std_mutex.h: Fix Doxygen @file name.
4063 2016-01-14 Edward Smith-Rowland <3dw4rd@verizon.net>
4064 Jonathan Wakely <jwakely@redhat.com>
4065 Florian Goth <CaptainSifff@gmx.de>
4067 Implement TR29124 C++ special Math Functions.
4068 * include/Makefile.am: Add new headers.
4069 * include/Makefile.in: Regenerate.
4070 * include/bits/specfun.h: New.
4071 * include/c_global/cmath: Adjust for both tr1 and tr29124 maths.
4072 * include/tr1/bessel_function.tcc: Ditto.
4073 * include/tr1/beta_function.tcc: Ditto.
4074 * include/tr1/cmath: Ditto.
4075 * include/tr1/ell_integral.tcc: Ditto.
4076 * include/tr1/exp_integral.tcc: Ditto.
4077 * include/tr1/gamma.tcc: Ditto.
4078 * include/tr1/hypergeometric.tcc: Ditto.
4079 * include/tr1/legendre_function.tcc: Ditto.
4080 * include/tr1/modified_bessel_func.tcc: Ditto.
4081 * include/tr1/poly_hermite.tcc: Ditto.
4082 * include/tr1/poly_laguerre.tcc: Ditto.
4083 * include/tr1/riemann_zeta.tcc: Ditto.
4084 * include/tr1/special_function_util.h: Ditto.
4085 * testsuite/ext/special_functions/conf_hyperg: New.
4086 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: New.
4087 * testsuite/ext/special_functions/conf_hyperg/check_value.cc: New.
4088 * testsuite/ext/special_functions/conf_hyperg/compile.cc: New.
4089 * testsuite/ext/special_functions/hyperg: New.
4090 * testsuite/ext/special_functions/hyperg/check_nan.cc: New.
4091 * testsuite/ext/special_functions/hyperg/check_value.cc: New.
4092 * testsuite/ext/special_functions/hyperg/compile.cc: New.
4093 * testsuite/libstdc++-dg/conformance.exp: Add special_functions directory.
4094 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc: New.
4095 * testsuite/special_functions/01_assoc_laguerre/check_value.cc: New.
4096 * testsuite/special_functions/01_assoc_laguerre/compile.cc: New.
4097 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: New.
4098 * testsuite/special_functions/02_assoc_legendre/check_nan.cc: New.
4099 * testsuite/special_functions/02_assoc_legendre/check_value.cc: New.
4100 * testsuite/special_functions/02_assoc_legendre/compile.cc: New.
4101 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: New.
4102 * testsuite/special_functions/03_beta/check_nan.cc: New.
4103 * testsuite/special_functions/03_beta/check_value.cc: New.
4104 * testsuite/special_functions/03_beta/compile.cc: New.
4105 * testsuite/special_functions/03_beta/compile_2.cc: New.
4106 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: New.
4107 * testsuite/special_functions/04_comp_ellint_1/check_value.cc: New.
4108 * testsuite/special_functions/04_comp_ellint_1/compile.cc: New.
4109 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: New.
4110 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: New.
4111 * testsuite/special_functions/05_comp_ellint_2/check_value.cc: New.
4112 * testsuite/special_functions/05_comp_ellint_2/compile.cc: New.
4113 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: New.
4114 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: New.
4115 * testsuite/special_functions/06_comp_ellint_3/check_value.cc: New.
4116 * testsuite/special_functions/06_comp_ellint_3/compile.cc: New.
4117 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: New.
4118 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: New.
4119 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc: New.
4120 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: New.
4121 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: New.
4122 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: New.
4123 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: New.
4124 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: New.
4125 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: New.
4126 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: New.
4127 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: New.
4128 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc: New.
4129 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: New.
4130 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: New.
4131 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: New.
4132 * testsuite/special_functions/10_cyl_neumann/check_value.cc: New.
4133 * testsuite/special_functions/10_cyl_neumann/compile.cc: New.
4134 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: New.
4135 * testsuite/special_functions/11_ellint_1/check_nan.cc: New.
4136 * testsuite/special_functions/11_ellint_1/check_value.cc: New.
4137 * testsuite/special_functions/11_ellint_1/compile.cc: New.
4138 * testsuite/special_functions/11_ellint_1/compile_2.cc: New.
4139 * testsuite/special_functions/12_ellint_2/check_nan.cc: New.
4140 * testsuite/special_functions/12_ellint_2/check_value.cc: New.
4141 * testsuite/special_functions/12_ellint_2/compile.cc: New.
4142 * testsuite/special_functions/12_ellint_2/compile_2.cc: New.
4143 * testsuite/special_functions/13_ellint_3/check_nan.cc: New.
4144 * testsuite/special_functions/13_ellint_3/check_value.cc: New.
4145 * testsuite/special_functions/13_ellint_3/compile.cc: New.
4146 * testsuite/special_functions/13_ellint_3/compile_2.cc: New.
4147 * testsuite/special_functions/14_expint/check_nan.cc: New.
4148 * testsuite/special_functions/14_expint/check_value.cc: New.
4149 * testsuite/special_functions/14_expint/compile.cc: New.
4150 * testsuite/special_functions/14_expint/compile_2.cc: New.
4151 * testsuite/special_functions/15_hermite/check_nan.cc: New.
4152 * testsuite/special_functions/15_hermite/check_value.cc: New.
4153 * testsuite/special_functions/15_hermite/compile.cc: New.
4154 * testsuite/special_functions/15_hermite/compile_2.cc: New.
4155 * testsuite/special_functions/16_laguerre/check_nan.cc: New.
4156 * testsuite/special_functions/16_laguerre/check_value.cc: New.
4157 * testsuite/special_functions/16_laguerre/compile.cc: New.
4158 * testsuite/special_functions/16_laguerre/compile_2.cc: New.
4159 * testsuite/special_functions/17_legendre/check_nan.cc: New.
4160 * testsuite/special_functions/17_legendre/check_value.cc: New.
4161 * testsuite/special_functions/17_legendre/compile.cc: New.
4162 * testsuite/special_functions/17_legendre/compile_2.cc: New.
4163 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: New.
4164 * testsuite/special_functions/18_riemann_zeta/check_value.cc: New.
4165 * testsuite/special_functions/18_riemann_zeta/compile.cc: New.
4166 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: New.
4167 * testsuite/special_functions/19_sph_bessel/check_nan.cc: New.
4168 * testsuite/special_functions/19_sph_bessel/check_value.cc: New.
4169 * testsuite/special_functions/19_sph_bessel/compile.cc: New.
4170 * testsuite/special_functions/19_sph_bessel/compile_2.cc: New.
4171 * testsuite/special_functions/20_sph_legendre/check_nan.cc: New.
4172 * testsuite/special_functions/20_sph_legendre/check_value.cc: New.
4173 * testsuite/special_functions/20_sph_legendre/compile.cc: New.
4174 * testsuite/special_functions/20_sph_legendre/compile_2.cc: New.
4175 * testsuite/special_functions/21_sph_neumann/check_nan.cc: New.
4176 * testsuite/special_functions/21_sph_neumann/check_value.cc: New.
4177 * testsuite/special_functions/21_sph_neumann/compile.cc: New.
4178 * testsuite/special_functions/21_sph_neumann/compile_2.cc: New.
4179 * testsuite/util/specfun_testcase.h: New.
4180 * testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc: More testcases.
4181 * testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc: Ditto.
4182 * testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc: Ditto.
4183 * testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc: Ditto.
4184 * testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc: Ditto.
4185 * testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc: Ditto.
4186 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc: New.
4188 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
4191 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
4192 and isnan functions.
4193 * config.h.in: Regenerate.
4194 * configure: Regenerate.
4195 * include/c_global/cmath (isinf(double), isnan(double))
4196 [_GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN]: Import via using-directive.
4197 * testsuite/26_numerics/headers/cmath/48891.cc: New.
4199 2016-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4202 * configure.host (abi_baseline_pair): Use separate baseline for
4203 Solaris 11+ and Solaris 10 with gld.
4204 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: New file.
4205 * config/abi/post/solaris2.11/baseline_symbols.txt: New file.
4206 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: New file.
4208 2016-01-12 Daniel Kruegler <daniel.kruegler@gmail.com>
4211 * include/std/type_traits: Following N4511, reimplement __is_swappable
4212 and __is_nothrow_swappable. Move __is_swappable to namespace std,
4213 adjust callers. Use __is_nothrow_swappable in swap.
4214 * include/bits/move.h: Use __is_nothrow_swappable in swap.
4215 * testsuite/20_util/is_nothrow_swappable/value.cc: Extend; remove
4216 __is_swappable related tests.
4217 * testsuite/20_util/is_swappable/value.cc: New.
4218 * testsuite/20_util/is_swappable/requirements/
4219 explicit_instantiation.cc: New.
4220 * testsuite/20_util/is_swappable/requirements/typedefs.cc: New.
4221 * testsuite/25_algorithms/swap/68877.cc: New.
4223 2016-01-12 Jonathan Wakely <jwakely@redhat.com>
4225 * testsuite/20_util/function/68995.cc: Test reference_wrapper cases.
4229 * include/std/functional (function::_Invoke): Remove, use result_of.
4230 (function::_Callable): Replace alias template with class template
4231 and use partial specialization instead of _NotSelf alias template.
4232 (function(_Functor)): Add "not self" constraint so that _Callable is
4233 not used while type is incomplete.
4234 * testsuite/20_util/function/69222.cc: New.
4236 2016-01-11 Jonathan Wakely <jwakely@redhat.com>
4239 * include/bits/alloc_traits.h (allocator_traits<allocator<_Tp>>):
4240 Define partial specialization.
4241 * testsuite/20_util/shared_ptr/cons/58659.cc: Add construct and
4242 destroy members to std::allocator explicit specialization.
4244 2016-01-08 Jonathan Wakely <jwakely@redhat.com>
4246 * testsuite/26_numerics/headers/cmath/
4247 c99_classification_macros_c++.cc: Rename to ...
4248 * testsuite/26_numerics/headers/cmath/
4249 c99_classification_macros_c++98.cc: Here and add -std=gnu++98.
4250 * testsuite/26_numerics/headers/cmath/
4251 c99_classification_macros_c++0x.cc: Rename to ...
4252 * testsuite/26_numerics/headers/cmath/
4253 c99_classification_macros_c++11.cc: Here.
4256 * include/bits/uses_allocator.h: Add missing include.
4258 2016-01-07 Jonathan Wakely <jwakely@redhat.com>
4263 * include/bits/stl_iterator.h (back_insert_iterator,
4264 front_insert_iterator, insert_iterator): Use __addressof (LWG 2324).
4265 * include/bits/uses_allocator.h (__use_alloc): Use __addressof.
4266 * include/std/future (__future::base::_State_baseV2::__setter):
4268 * include/std/scoped_allocator (__outermost): Likewise.
4269 * testsuite/20_util/scoped_allocator/69114.cc: New.
4270 * testsuite/20_util/uses_allocator/69114.cc: New.
4271 * testsuite/30_threads/promise/69106.cc: New.
4273 2016-01-06 Jonathan Wakely <jwakely@redhat.com>
4276 * include/bits/basic_string.h (basic_string::_S_copy_chars<_Iterator>):
4277 Remove _GLIBCXX_NOEXCEPT.
4278 testsuite/21_strings/basic_string/cons/char/69092.cc: New.
4280 * include/Makefile.am: Adjust.
4281 * include/Makefile.in: Regenerate.
4282 * include/bits/mutex.h: Rename to bits/std_mutex.h.
4283 * include/std/condition_variable: Adjust include.
4284 * include/std/mutex: Likewise.
4286 2016-01-04 Jakub Jelinek <jakub@redhat.com>
4288 Update copyright years.
4290 Copyright (C) 2016 Free Software Foundation, Inc.
4292 Copying and distribution of this file, with or without modification,
4293 are permitted in any medium without royalty provided the copyright
4294 notice and this notice are preserved.