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