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