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