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