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