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