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