* include/bits/c++config (_GLIBCXX_NOEXCEPT_IF): Define.
[official-gcc.git] / libstdc++-v3 / ChangeLog
blob93a9adb575f631f6674b018dda0d8b9c700fac97
1 2015-07-13  Jonathan Wakely  <jwakely@redhat.com>
3         * include/bits/c++config (_GLIBCXX_NOEXCEPT_IF): Define.
4         * include/bits/forward_list.h (forward_list::swap): Make noexcept
5         unconditional.
6         * include/bits/hashtable.h (_Hashtable::swap): Do not use
7         _S_nothrow_swap().
8         * include/bits/stl_bvector.h (vector<bool>::swap): Make noexcept
9         unconditional.
10         * include/bits/stl_deque.h (deque::swap): Likewise.
11         (swap(deque&, deque&)): Use _GLIBCXX_NOEXCEPT_IF.
12         * include/bits/stl_list.h (list::swap): Make noexcept unconditional.
13         (swap(list&, list&)): Use _GLIBCXX_NOEXCEPT_IF.
14         * include/bits/stl_map.h (map::swap, swap(map&, map&)): Use
15         _GLIBCXX_NOEXCEPT_IF, do not depend on _S_nothrow_swap.
16         * include/bits/stl_multimap.h (multimap::swap,
17         swap(multimap&, multimap&)): Likewise.
18         * include/bits/stl_multiset.h (multiset::swap,
19         swap(multiset&, multiset&)): Likewise.
20         * include/bits/stl_set.h (set::swap, swap(set&, set&)): Likewise.
21         * include/bits/stl_tree.h (_Rb_tree::swap,
22         swap(_Rb_tree&, _Rb_tree&)): Likewise.
23         * include/bits/stl_vector.h (vector::swap): Make noexcept
24         unconditional.
25         (swap(vector&, vector&)): Use _GLIBCXX_NOEXCEPT_IF.
26         * include/debug/deque (deque::swap, swap): Likewise.
27         * include/debug/forward_list (swap): Add noexcept.
28         * include/debug/list (list::swap, swap): Use _GLIBCXX_NOEXCEPT_IF.
29         * include/debug/map.h (map::swap, swap): Likewise.
30         * include/debug/multimap.h (multimap::swap, swap): Likewise.
31         * include/debug/multiset.h (multiset::Swap, swap): Likewise.
32         * include/debug/set.h (set::swap, swap): Likewise.
33         * include/debug/unordered_map (unordered_map::swap,
34         unordered_multimap::swap, swap): Likewise.
35         * include/debug/unordered_set (unordered_set::swap,
36         unordered_multiset::swap, swap): Likewise.
37         * include/debug/vector (vector::swap, swap): Likewise.
38         * include/ext/alloc_traits.h (__alloc_traits::_S_nothrow_swap()):
39         Remove.
40         * include/profile/deque (deque::swap, swap): Use _GLIBCXX_NOEXCEPT_IF.
41         * include/profile/forward_list (swap): Add noexcept.
42         * include/profile/list (list::swap, swap) : Use _GLIBCXX_NOEXCEPT_IF.
43         * include/profile/map.h (map::swap, swap): Likewise.
44         * include/profile/multimap.h (multimap::swap, swap): Likewise.
45         * include/profile/multiset.h (multiset::swap, swap): Likewise.
46         * include/profile/set.h (set::swap, swap): Likewise.
47         * include/profile/unordered_map (swap): Likewise.
48         * include/profile/unordered_set (swap): Likewise.
49         * include/profile/vector (vector::swap, swap): Likewise. Remove
50         overloads for swapping rvalues.
51         * testsuite/23_containers/deque/allocator/noexcept.cc: Update tests
52         for noexcept on swap.
53         * testsuite/23_containers/forward_list/allocator/noexcept.cc:
54         Likewise.
55         * testsuite/23_containers/list/allocator/noexcept.cc: Likewise.
56         * testsuite/23_containers/map/allocator/noexcept.cc: Likewise.
57         * testsuite/23_containers/multimap/allocator/noexcept.cc: Likewise.
58         * testsuite/23_containers/multiset/allocator/noexcept.cc: Likewise.
59         * testsuite/23_containers/set/allocator/noexcept.cc: Likewise.
60         * testsuite/23_containers/unordered_map/allocator/noexcept.cc:
61         Likewise.
62         * testsuite/23_containers/unordered_multimap/allocator/noexcept.cc:
63         Likewise.
64         * testsuite/23_containers/unordered_multiset/allocator/noexcept.cc:
65         Likewise.
66         * testsuite/23_containers/unordered_set/allocator/noexcept.cc:
67         Likewise.
68         * testsuite/23_containers/vector/allocator/noexcept.cc: Likewise.
69         * testsuite/23_containers/vector/bool/allocator/noexcept.cc: Likewise.
70         * testsuite/ext/profile/mutex_extensions_neg.cc: Adjust dg-error line
71         number.
73 2015-07-13  John Marino  <gnugcc@marino.st>
75         * config/os/bsd/dragonfly/os_defines.h (_GLIBCXX_USE_C99_CHECK,
76         _GLIBCXX_USE_C99_DYNAMIC, _GLIBCXX_USE_C99_LONG_LONG_CHECK,
77         _GLIBCXX_USE_C99_LONG_LONG_DYNAMIC): Define.
79 2015-07-05  François Dumont  <fdumont@gcc.gnu.org>
81         * include/bits/hashtable.h (_Hashtable<>::__rehash_policy): Do not
82         rehash container.
83         * testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
84         Adapt.
86 2015-07-03  Jonathan Wakely  <jwakely@redhat.com>
88         * doc/xml/manual/status_cxx2017.xml: Update status table.
89         * doc/html/manual/*: Regenerate.
91 2015-07-03  Ville Voutilainen  <ville.voutilainen@gmail.com>
93         Implement std::experimental::fundamentals_v2::propagate_const.
94         * include/Makefile.am: Add propagate_const.
95         * include/Makefile.in: Regenerate.
96         * include/experimental/propagate_const: New.
97         * testsuite/experimental/propagate_const/assignment/copy.cc: Likewise.
98         * testsuite/experimental/propagate_const/assignment/move.cc: Likewise.
99         * testsuite/experimental/propagate_const/assignment/move_neg.cc:
100         Likewise.
101         * testsuite/experimental/propagate_const/cons/copy.cc: Likewise.
102         * testsuite/experimental/propagate_const/cons/default.cc: Likewise.
103         * testsuite/experimental/propagate_const/cons/move.cc: Likewise.
104         * testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
105         * testsuite/experimental/propagate_const/hash/1.cc: Likewise.
106         * testsuite/experimental/propagate_const/observers/1.cc: Likewise.
107         * testsuite/experimental/propagate_const/relops/1.cc: Likewise.
108         * testsuite/experimental/propagate_const/requirements1.cc: Likewise.
109         * testsuite/experimental/propagate_const/requirements2.cc: Likewise.
110         * testsuite/experimental/propagate_const/requirements3.cc: Likewise.
111         * testsuite/experimental/propagate_const/requirements4.cc: Likewise.
112         * testsuite/experimental/propagate_const/requirements5.cc: Likewise.
113         * testsuite/experimental/propagate_const/swap/1.cc: Likewise.
114         * testsuite/experimental/propagate_const/typedefs.cc: Likewise.
116 2015-07-02  Jonathan Wakely  <jwakely@redhat.com>
118         * acinclude.m4 (GLIBCXX_DEFAULT_ABI): Change valid arguments for
119         --with-default-libstdcxx-abi
120         * configure: Regenerate.
121         * doc/xml/manual/configure.xml: Document valid arguments.
123 2015-07-02  Uros Bizjak  <ubizjak@gmail.com>
125         * libsupc++/guard.cc (__test_and_acquire): Use __p after __atomic_load
126         to avoid unused variable warning.
127         (__set_and_release): Use __p after __atomic_store to avoid unused
128         variable warning.
130 2015-07-01  Jonathan Wakely  <jwakely@redhat.com>
132         * include/bits/alloc_traits.h (__alloctr_rebind): Remove.
133         (__allocator_traits_base): New base class.
134         (__alloc_rebind): Reimplement in terms of detection idiom.
135         (allocator_traits): Derive from __allocator_traits_base. Reimplement
136         nested types in terms of detection idiom. Simplify SFINAE constraints
137         on overloaded static member functions.
138         * include/bits/hashtable.h (_Hashtable): Use __alloc_rebind instead
139         of __alloctr_rebind.
140         * testsuite/20_util/scoped_allocator/propagation.cc: Define rebind.
141         * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
142         dg-error line number.
144         * include/bits/ptr_traits.h (__ptrtr_elt_type, __ptrtr_diff_type,
145         __ptrtr_rebind, __ptrtr_not_void): Remove
146         (__get_first_arg, __replace_first_arg, __make_not_void): Define new
147         transformations.
148         (__detected_or_): New detection trait.
149         (pointer_traits): Use new traits.
150         * testsuite/20_util/pointer_traits/pointer_to.cc: Add rebind member.
151         * testsuite/20_util/pointer_traits/requirements/
152         explicit_instantiation.cc: Use valid arguments to pointer_traits.
154         * doc/xml/manual/status_cxx2017.xml: Update status table.
155         * include/experimental/type_traits (void_t, is_detected,
156         is_detected_v, detected_t, detected_or, detected_or_t,
157         is_detected_exact, is_detected_exact_v, is_detected_convertible,
158         is_detected_convertible_v): Define.
159         * include/std/type_traits (__detector, __detected_or, __detected_or_t,
160         __detected_or_t_): Define.
161         * testsuite/experimental/type_traits/detection.cc: New.
163 2015-06-30  Jonathan Wakely  <jwakely@redhat.com>
165         * doc/Makefile.am (stamp-pdf-doxygen): Grep for LaTeX errors in log.
166         * doc/Makefile.in: Regenerate.
168         * include/bits/stl_pair.h: Replace class keyword with typename.
170 2015-06-30  Ville Voutilainen  <ville.voutilainen@gmail.com>
172         Implement N4387, "Improving pair and tuple", and LWG 2367.
174         * include/bits/stl_pair.h (_ConstructiblePair,
175         _ImplicitlyConvertiblePair, _MoveConstructiblePair,
176         _ImplicitlyMoveConvertiblePair): New.
177         (pair()): Constrain it.
178         (pair(const _T1&, const _T2&), pair(const pair<_U1, _U2>&),
179         pair(_U1&&, const _T2&), pair(const _T1&, _U2&&), pair(_U1&&, _U2&&),
180         pair(pair<_U1, _U2>&&)): Make conditionally explicit.
181         * include/std/tuple (_TC, tuple::_TC2, tuple::TCC, tuple::TMC): New.
182         (tuple()): Constrain it.
183         (tuple(const _UElements&...), tuple(_UElements&&...),
184         tuple(const tuple<_UElements...>&), tuple(tuple<_UElements...>&&),
185         tuple(allocator_arg_t, const _Alloc&, const _UElements&...),
186         tuple(allocator_arg_t, const _Alloc&, _UElements&&...),
187         tuple(allocator_arg_t, const _Alloc&, const tuple<_UElements...>&),
188         tuple(allocator_arg_t, const _Alloc&, tuple<_UElements...>&&),
189         tuple(const pair<_U1, _U2>&), tuple(pair<_U1, _U2>&&),
190         tuple(allocator_arg_t, const _Alloc&, const pair<_U1, _U2>&),
191         tuple(allocator_arg_t, const _Alloc&, pair<_U1, _U2>&&)): Make
192         conditionally explicit.
193         * include/experimental/functional (__boyer_moore_array_base): Name
194         array type explicitly instead of using an empty braced-init-list.
195         * testsuite/20_util/pair/cons/explicit_construct.cc: New.
196         * testsuite/20_util/pair/piecewise.cc: Use piecewise_construct.
197         * testsuite/20_util/pair/requirements/dr2367.cc: New.
198         * testsuite/20_util/tuple/cons/explicit_construct.cc: New.
199         * testsuite/20_util/tuple/requirements/dr2367.cc: New.
201 2015-06-30  Jonathan Wakely  <jwakely@redhat.com>
203         * configure: Regenerate.
205 2015-06-29  François Dumont  <fdumont@gcc.gnu.org>
207         * include/bits/stl_iterator_base_types.h (_Iter_base): Limit definition
208         to pre-C++11 mode.
209         * include/debug/functions.h
210         (__gnu_debug::__valid_range, __gnu_debug::__base): Move...
211         * include/debug/safe_iterator.h
212         (__gnu_debug::_Sequence_traits): New.
213         (__gnu_debug::__get_distance_from_begin): New.
214         (__gnu_debug::__get_distance_to_end): New.
215         (__gnu_debug::_Safe_iterator<>::_M_valid_range): Expose iterator range
216         distance information. Add optional check_dereferenceable parameter,
217         default true.
218         (__gnu_debug::_Distance_precision, __gnu_debug::__get_distance): Move
219         default definition...
220         (__gnu_debug::__get_distance): New overload for _Safe_iterator.
221         (__gnu_debug::__unsafe): Likewise.
222         * include/debug/helper_functions.h: ...here. New.
223         (__gnu_debug::__unsafe): New helper function to remove safe iterator
224         layer.
225         * include/debug/stl_iterator.h: New. Include latter.
226         * include/bits/stl_iterator.h: Include latter in debug mode.
227         * include/debug/stl_iterator.tcc: Adapt.
228         * include/debug/safe_local_iterator.h (__gnu_debug::__get_distance): Add
229         overload for _Safe_local_iterator.
230         (__gnu_debug::__unsafe): Likewise.
231         * include/debug/safe_local_iterator.tcc: Adapt.
232         * include/debug/macros.h (__glibcxx_check_valid_range2): New.
233         (__glibcxx_check_insert_range): Add _Dist parameter.
234         (__glibcxx_check_insert_range_after): Likewise.
235         (__glibcxx_check_string, __glibcxx_check_string_len): Implement using
236         _GLIBCXX_DEBUG_PEDASSERT.
237         * include/debug/deque (deque<>::assign): Remove iterator debug layer
238         when possible.
239         (deque<>::insert): Likewise.
240         * include/debug/forward_list (__glibcxx_check_valid_fl_range): New.
241         (forward_list<>::splice_after): Use latter.
242         (forward_list<>::assign): Remove iterator debug layer when possible.
243         (forward_list<>::insert_after): Likewise.
244         (__gnu_debug::_Sequence_traits<>): Partial specialization.
245         * include/debug/list (list<>::assign): Remove iterator debug layer when
246         possible.
247         (list<>::insert): Likewise.
248         [__gnu_debug::_Sequence_traits<>]: Partial specialization pre C++11 ABI.
249         * include/debug/map.h (map<>::insert): Remove iterator debug layer when
250         possible.
251         * include/debug/multimap.h (multimap<>::insert): Likewise.
252         * include/debug/set.h (set<>::insert): Likewise.
253         * include/debug/multiset.h (multiset<>::insert): Likewise.
254         * include/debug/string (basic_string<>::append, basic_string<>::assign,
255         basic_string<>::insert, basic_string<>::replace): Likewise.
256         * include/debug/unordered_map
257         (unordered_map<>::insert, unordered_multimap<>::insert): Likewise.
258         * include/debug/unordered_set
259         (unordered_set<>::insert, unordered_multiset<>insert): Likewise.
260         * include/debug/vector
261         (vector<>::assign, vector<>::insert): Likewise.
262         * include/Makefile.am: Add new debug headers.
263         * include/Makefile.in: Regenerate.
265 2015-06-26  Jonathan Wakely  <jwakely@redhat.com>
267         * doc/xml/manual/intro.xml: Document LWG 2108 status.
268         * include/bits/alloc_traits.h (allocator_traits::is_always_equal):
269         Define.
270         * include/bits/allocator.h (allocator::is_always_equal): Likewise.
271         * include/bits/forward_list.h
272         (forward_list::operator=(forward_list&&)): Use __bool_constant.
273         (forward_list::swap(forward_list&)): Add noexcept.
274         * include/bits/hashtable.h (_Hashtable::operator=(_Hashtable&&)):
275         Likewise.
276         (_Hashtable::swap(_Hashtable&)): Likewise.
277         * include/bits/stl_deque.h (_Deque_base::_Deque_base(_Deque_base&&)):
278         Use _Alloc_traits::is_always_equal.
279         (deque::operator=(deque&&)): Likewise.
280         (deque::_M_move_assign1(deque&&, false_type)): Add comment and use
281         __bool_constant.
282         (swap(deque&, deque&)): Add noexcept.
283         * include/bits/stl_list.h (list::operator=(list&&)): Use
284         __bool_constant.
285         (swap(list&, list&)): Add noexcept.
286         * include/bits/stl_map.h (map::swap(map&)): Include _Compare in
287         noexcept.
288         (swap(map&, map&)): Add noexcept.
289         * include/bits/stl_multimap.h (multimap::swap(multimap&)): Include
290         _Compare in noexcept.
291         (swap(multimap&, multimap&)): Add noexcept.
292         * include/bits/stl_multiset.h (multiset::swap(multiset&)): Include
293         _Compare in noexcept.
294         (swap(multiset&, multiset&)): Add noexcept.
295         * include/bits/stl_set.h (set::swap(set&)): Include _Compare in
296         noexcept.
297         (swap(set&, set&)): Add noexcept.
298         * include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Include
299         _Compare in noexcept.
300         (_Rb_tree::_Rb_tree(_Rb_tree&&, _Node_alloc_type&&)): Use
301         is_always_equal.
302         * include/bits/stl_vector.h (vector::operator=(vector&&)): Use
303         __bool_constant.
304         (swap(vector&, vector&)): Add noexcept.
305         * include/bits/unordered_map.h (swap(unordered_map&, unordered_map&),
306         swap(unordered_multimap& unordered_multimap&)): Add noexcept.
307         * include/bits/unordered_set.h (swap(unordered_set&, unordered_set&),
308         swap(unordered_multiset& unordered_multiset&)): Add noexcept.
309         * include/ext/alloc_traits.h (__allocator_always_compares_equal):
310         Remove.
311         (__alloc_traits::_S_always_equal()): Use is_always_equal instead of
312         __allocator_always_compares_equal.
313         * include/ext/array_allocator.h (array_allocator::is_always_equal):
314         Define.
315         * include/std/scoped_allocator (__any_of, __propagate_on_copy,
316         __propagate_on_move, __propagate_on_swap): Remove.
317         (scoped_allocator_adaptor::propagate_on_container_copy_assignment,
318         scoped_allocator_adaptor::propagate_on_container_move_assignment,
319         scoped_allocator_adaptor::propagate_on_container_swap): Define with
320         __and_ instead of __any_of.
321         (scoped_allocator_adaptor::is_always_equal): Define.
322         * testsuite/20_util/allocator_traits/members/is_always_equal.cc: New.
323         * testsuite/20_util/scoped_allocator/propagation.cc: Make traits
324         derive from true_type or false_type.
325         * testsuite/23_containers/deque/allocator/move_assign-2.cc: Add
326         is_always_equal member and remove the trait specialization.
327         * testsuite/23_containers/vector/52591.cc: Likewise.
328         * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
329         Adjust dg-error line number.
330         * testsuite/23_containers/deque/requirements/dr438/
331         constructor_1_neg.cc: Likewise.
332         * testsuite/23_containers/deque/requirements/dr438/
333         constructor_2_neg.cc: Likewise.
334         * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
335         Likewise.
336         * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
337         Likewise.
338         * testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
339         Likewise.
340         * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
341         Likewise.
342         * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
343         Likewise.
344         * testsuite/23_containers/vector/requirements/dr438/
345         constructor_1_neg.cc: Likewise.
346         * testsuite/23_containers/vector/requirements/dr438/
347         constructor_2_neg.cc: Likewise.
348         * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
349         Likewise.
351         * include/bits/stl_bvector.h (vector<bool>::vector()): Add noexcept.
352         * include/bits/stl_map.h (map::map()): Likewise.
353         * include/bits/stl_multimap.h (multimap::multimap()): Likewise.
354         * include/bits/stl_multiset.h (multiset::multiset()): Likewise.
355         * include/bits/stl_set.h (set::set()): Likewise.
357 2015-06-25  Jonathan Wakely  <jwakely@redhat.com>
359         * include/bits/locale_conv.h (__do_str_codecvt): Set __count.
361 2015-06-24  François Dumont  <fdumont@gcc.gnu.org>
363         * include/bits/basic_string.h (basic_string<>::front()): Add !empty
364         debug check.
365         (basic_string<>::back()): Likewise.
366         (basic_string<>::pop_back()): Likewise.
368 2015-06-24  Paolo Carlini  <paolo.carlini@oracle.com>
370         * testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
371         dg-error line numbers.
372         * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
373         Likewise.
375 2015-06-23  François Dumont  <fdumont@gcc.gnu.org>
377         * include/debug/array: Include <array>. Add version namespace when
378         specializing tuple interface to array. Add specialization for
379         __is_tuple_like_impl.
380         * include/profile/array: Likewise.
381         * include/std/array: Include <utility>. Add specialization for
382         __is_tuple_like_impl.
383         * include/std/tuple
384         (__is_tuple_like_impl<>, __is_tuple_like_impl<pair>): Move...
385         * include/std/utility: ... here. Include <type_traits>.
386         * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Adjust
387         dg-error line number.
388         * testsuite/23_containers/array/tuple_interface/
389         tuple_element_debug_neg.cc: Likewise.
391 2015-06-22  Jonathan Wakely  <jwakely@redhat.com>
393         * testsuite/26_numerics/complex/value_operations/1.cc: Use
394         non-negative rho argument.
396         * include/debug/list (__gnu_debug::list): Use allocator-aware
397         _Safe_container base.
398         * include/debug/string (__gnu_debug::basic_string): Use
399         allocator-aware _Safe_container base for cxx11 ABI.
401         * include/bits/locale_conv.h (__do_str_codecvt): Handle empty range.
402         (wstring_convert): Move into __cxx11 namespace.
403         (wbuffer_convert(streambuf*, _Codecvt*, state_type)): Fix exception
404         message.
406         PR libstdc++/64657
407         * include/bits/stl_uninitialized.h
408         (__uninitialized_copy::__uninit_copy): Cast expression to void.
410 2015-06-17  Jonathan Wakely  <jwakely@redhat.com>
412         PR libstdc++/55409
413         * include/bits/list.tcc (_List_base::_M_clear()): Use allocator traits.
414         (list::list(const list&)): Use allocator propagation trait. Use
415         _M_assign_dispatch to copy elements.
416         * include/bits/stl_list.h (_List_node): Use __aligned_membuf in C++11.
417         (_List_node::_M_valptr()): Add accessor for stored value.
418         (_List_iterator, _List_const_iterator, _List_base): Use _M_valptr().
419         (_List_base, list): Use allocator traits.
420         (_List_base::_M_get_Tp_allocator, _List_base::get_allocator): Remove.
421         (_List_base::_M_move_nodes): New function.
422         (_List_base(_List_base&&)): Use _M_move_nodes.
423         (_List_base(_List_base&&, _Node_alloc_type&&)): New constructor.
424         (list::_M_create_node, list::_M_erase, list::max_size): Use allocator
425         traits.
426         (list(size_type)): Add allocator parameter.
427         (list(const list&)): Use allocator propagation trait.
428         (list(const list&, const allocator_type&)): New constructor.
429         (list(list&&, const allocator_type&)): Likewise.
430         (list::operator=(list&&), list::swap(list&)): Use allocator
431         propagation traits.
432         (list::_M_move_assign): New functions.
433         * include/debug/list: Add allocator-extended constructors.
434         * include/profile/list: Likewise.
435         * python/libstdcxx/v6/printers.py (get_value_from_list_node): New
436         function to get value from _List_node.
437         (StdListPrinter): Use get_value_from_list_node.
438         * testsuite/23_containers/list/allocator/copy.cc: New.
439         * testsuite/23_containers/list/allocator/copy_assign.cc: New.
440         * testsuite/23_containers/list/allocator/minimal.cc: New.
441         * testsuite/23_containers/list/allocator/move.cc: New.
442         * testsuite/23_containers/list/allocator/move_assign.cc: New.
443         * testsuite/23_containers/list/allocator/noexcept.cc: New.
444         * testsuite/23_containers/list/allocator/swap.cc: New.
445         * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
446         Adjust dg-prune-output line number.
447         * testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
448         Likewise.
449         * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
450         Likewise.
452         * include/bits/forward_list.h
453         (_Fwd_list_base(const _Node_alloc_type&)): Change parameter to
454         rvalue-reference.
455         (_Fwd_list_base(_Fwd_list_base&&, const _Node_alloc_type&)): Likewise.
456         (forward_list(const _Alloc&)): Split default constructor out to
457         separate function.
458         (forward_list(forward_list&&, const _Alloc&)): Move elements if base
459         class didn't do so.
460         (forward_list::_M_move_assign(forward_list&&, true_type)): Replace
461         swap call with two assignments.
462         * include/bits/forward_list.tcc
463         (_Fwd_list_base(_Fwd_list_base&&, const _Node_alloc_type&)): Don't
464         move elements when allocators are not equal.
465         * include/debug/forward_list (forward_list(const allocator_type&)):
466         Split default constructor out to separate function.
467         * include/profile/forward_list (forward_list(const _Alloc&)):
468         Likewise.
470         * include/bits/forward_list.h (forward_list::_M_get_Node_allocator):
471         Remove unnecessary uses of operator& and static_cast.
472         * include/bits/forward_list.tcc
473         (forward_list::operator=(const forward_list&)): Use __addressof
474         instead of operator&.
475         (forward_list::remove(const _Tp&), forward_list::remove(_Pred)):
476         Remove invalid static_casts.
477         * include/debug/forward_list: Use __addressof instead of operator&.
478         * testsuite/23_containers/forward_list/modifiers/addressof.cc: New.
480         * include/ext/alloc_traits.h (__alloc_traits::_S_nothrow_swap()): Use
481         __is_nothrow_swappable.
483 2015-06-16  Jonathan Wakely  <jwakely@redhat.com>
485         * include/bits/allocated_ptr.h (__allocated_ptr): Use __addressof.
487         * include/bits/list.tcc (list::operator=(const list&), list::merge):
488         Use __addressof instead of operator&.
489         (list::sort): Use array-to-pointer decay instead of operator&.
490         * include/bits/stl_list.h (list::splice): Use __addressof instead of
491         operator&.
492         * include/debug/formatter.h (_Error_formatter::_Parameter::_Parameter):
493         Likewise.
494         * include/debug/functions.h (__check_singular): Likewise.
495         * include/debug/list (list::splice, list::merge): Likewise.
496         * testsuite/23_containers/list/modifiers/addressof.cc: New.
498         PR libstdc++/65393
499         * src/c++11/thread.cc (thread::_M_make_thread): Replace shared_ptr
500         copies with moves.
502 2015-06-12  Jonathan Wakely  <jwakely@redhat.com>
504         * include/precompiled/stdc++.h: Include <codecvt> and <shared_mutex>.
506         PR libstdc++/66464
507         * src/c++11/codecvt.cc (codecvt_utf16_base<char32_t>::do_max_length):
508         Return 4 not 3.
510 2015-06-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
512         PR c++/66192
513         PR target/66200
514         * config/cpu/alpha/atomic_word.h: Remove.
515         * config/cpu/ia64/atomic_word.h: Remove.
516         * config/cpu/powerpc/atomic_word.h: Remove.
517         * config/os/aix/atomic_word.h: Remove.
518         * configure.host (atomic_word_dir) [ia64, aix*, powerpc, alpha]:
519         Use generic definition.
521 2015-06-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
523         PR target/66200
524         PR c++/66192
525         * * config/cpu/generic/atomic_word.h (_GLIBCXX_READ_MEM_BARRIER): Define
526         (_GLIBCXX_WRITE_MEM_BARRIER): Likewise
527         * include/bits/shared_ptr_base.h: Use ACQ_REL barrier.
528         * include/ext/atomicity.h: Likewise.
529         * include/tr1/shared_ptr.h: Likewise.
530         * libsupc++/guard.cc (__test_and_acquire): Rewrite with atomics.
531         Update comment.
532         (__set_and_release): Likewise.
533         * testsuite/20_util/shared_ptr/cons/43820_neg.cc (test01): Adjust for
534         line numbers.
535         * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
536         * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc:
537         Likewise.
539 2015-06-12  Jonathan Wakely  <jwakely@redhat.com>
541         * include/std/tuple (__is_tuple_like_impl): Disambiguate array in
542         debug and profile modes.
543         * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Adjust tests
544         for swap in C++11 and later.
546 2015-06-09  Jonathan Wakely  <jwakely@redhat.com>
548         PR libstdc++/66030
549         * config/abi/pre/gnu.ver: Export codecvt_byname and codecvt symbols
550         for mingw32.
552 2015-06-08  Jonathan Wakely  <jwakely@redhat.com>
554         PR libstdc++/66441
555         * testsuite/22_locale/conversions/string/66441.cc: New.
556         * include/bits/locale_conv.h (__do_str_codecvt): Reserve enough space
557         in the output string for BOM and complete result.
559         PR libstdc++/66417
560         * src/c++11/codecvt.cc (write_utf16_code_point): Use adjust_byte_order
561         for single UTF-16 units.
562         * testsuite/22_locale/codecvt/codecvt_utf16/66417.cc: New.
564 2015-06-07  François Dumont  <fdumont@gcc.gnu.org>
566         * include/bits/stl_tree.h (_Rb_tree<>::__is_transparent<>): Move to
567         outer scope and rename to ...
568         (std::__hash_is_transparent<>): ... this.
569         * include/debug/stl_map.h (map::find<>,
570         map::lower_bound<>, map::upper_bound<>, map::equal_range<>): New
571         member function templates to perform heterogeneous lookup.
572         * include/debug/stl_multimap.h (multimap::find<>,
573         multimap::lower_bound<>, multimap::upper_bound<>,
574         multimap::equal_range<>): Likewise.
575         * include/debug/stl_multiset.h (multiset::find<>,
576         multiset::lower_bound<>, multiset::upper_bound<>,
577         multiset::equal_range<>): Likewise.
578         * include/debug/stl_set.h (set::find<>,
579         set::lower_bound<>, set::upper_bound<>, set::equal_range<>): Likewise.
580         * include/profile/stl_map.h (map::find<>, map::count<>,
581         map::lower_bound<>, map::upper_bound<>, map::equal_range<>): Likewise.
582         * include/profile/stl_multimap.h (multimap::find<>, multimap::count<>,
583         multimap::lower_bound<>, multimap::upper_bound<>,
584         multimap::equal_range<>): Likewise.
585         * include/profile/stl_multiset.h (multiset::find<>, multiset::count<>,
586         multiset::lower_bound<>, multiset::upper_bound<>,
587         multiset::equal_range<>): Likewise.
588         * include/profile/stl_set.h (set::find<>, set::count<>,
589         set::lower_bound<>, set::upper_bound<>, set::equal_range<>): Likewise.
590         * testsuite/23_containers/map/operations/1.cc: Check const variants.
591         * testsuite/23_containers/multimap/operations/1.cc: Likewise.
592         * testsuite/23_containers/multiset/operations/1.cc: Likewise.
593         * testsuite/23_containers/set/operations/1.cc: Likewise.
595 2015-06-05  Jonathan Wakely  <jwakely@redhat.com>
597         * doc/xml/manual/status_cxx2017.xml: Update status tables.
598         * doc/html/manual/*: Regenerate.
599         * include/std/type_traits (bool_constant): Define.
600         * testsuite/20_util/bool_constant/requirements.cc: New.
601         * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error.
602         * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
603         Likewise.
604         * testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
605         Likewise.
607         * include/std/shared_mutex (__shared_mutex_pthread,
608         __shared_mutex_cv): New helper types implementing the shared mutex
609         requirements.
610         (shared_mutex): New type for C++17.
611         (shared_timed_mutex): Derive from one of the new helper types.
612         * testsuite/30_threads/shared_mutex/cons/1.cc: New.
613         * testsuite/30_threads/shared_mutex/cons/assign_neg.cc: New.
614         * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: New.
615         * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
616         New.
617         * testsuite/30_threads/shared_mutex/try_lock/1.cc: New.
618         * testsuite/30_threads/shared_mutex/try_lock/2.cc: New.
620 2015-06-05  Ville Voutilainen  <ville.voutilainen@gmail.com>
622         Add __is_nothrow_swappable and take it into use.
623         * include/bits/algorithmfwd.h (swap): Only declare for C++98 mode.
624         * include/bits/move.h (swap): Add constraints in C++11 and later.
625         * include/bits/stl_pair.h (swap): Use __is_nothrow_swappable
626         for the free swap function for pair.
627         * include/bits/stl_queue.h (swap): Use __is_nothrow_swappable
628         for the free swap functions for queue and priority_queue.
629         * include/bits/stl_stack.h (swap): Use __is_nothrow_swappable
630         for the free swap function for stack.
631         * include/debug/array (swap): Use __is_nothrow_swappable
632         for the free swap function for array.
633         * include/profile/array (swap): Likewise.
634         * include/std/array (swap): Likewise.
635         * include/std/tuple (_Tuple_impl::_M_swap): Use __is_nothrow_swappable.
636         * include/std/type_traits (__is_swappable_impl::__is_swappable,
637         __is_nothrow_swappable_impl, __is_nothrow_swappable): New.
638         * testsuite/20_util/is_nothrow_swappable/requirements/
639         explicit_instantiation.cc: New.
640         * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
641         New.
642         * testsuite/20_util/is_nothrow_swappable/value.cc: New.
644 2015-06-03  François Dumont  fdumont@gcc.gnu.org>
646         * testsuite/23_containers/list/61347.cc: Add dg-require-normal-mode.
648 2015-06-02  Jonathan Wakely  <jwakely@redhat.com>
650         * doc/xml/manual/abi.xml: Document versioning for 5.1.0 release.
651         * doc/html/manual/*: Regenerate.
653         * doc/html/ext/lwg-active.html: Update to R93.
654         * doc/html/ext/lwg-closed.html: Likewise.
655         * doc/html/ext/lwg-defects.html: Likewise.
656         * doc/html/manual/*: Regenerate.
657         * doc/xml/manual/intro.xml: Document status of several DRs.
659 2015-06-02  Renlin Li  <renlin.li@arm.com>
661         * testsuite/27_io/fpos/14775.cc: Add _GLIBCXX_HAVE_LIMIT_FSIZE check.
663 2015-06-01  Jonathan Wakely  <jwakely@redhat.com>
665         * testsuite/lib/libstdc++.exp (libstdc++_init): Unset LANGUAGE
666         environment variable.
668 2015-05-31  Jonathan Wakely  <jwakely@redhat.com>
670         PR libstdc++/66354
671         * include/bits/stl_algobase.h (__fill_a): Check length before calling
672         memset.
674 2015-05-30  Jonathan Wakely  <jwakely@redhat.com>
676         * include/bits/stl_algobase.h (__equal<true>::equal): Check length
677         instead of checking for null pointers.
678         (__lexicographical_compare<true>::__lc): Only check shorter length.
680 2015-05-29  François Dumont  fdumont@gcc.gnu.org>
682         * include/debug/debug.h (_GLIBCXX_DEBUG_ASSERT,
683         _GLIBCXX_DEBUG_PEDASSERT, _GLIBCXX_DEBUG_ONLY): Move definition...
684         * include/debug/assertions.h: ...here, new.
685         * include/debug/formatter.h
686         (_Error_formatter::_Is_iterator_value_type): New.
687         (_Error_formatter::_Is_instance): New.
688         (_Error_formatter::_Parameter): Make public and not friend anymore.
689         (_Error_formatter::_Parameter::__instance): New _M_kind enum entry.
690         (_Error_formatter::_Parameter::__iterator_value_type): New _M_kind enum
691         entry.
692         (_Error_formatter::_Parameter::_Type): New.
693         (_Error_formatter::_Parameter::_Instance): New, inherit from
694         latter.
695         (union _Error_formatter::_Parameter::_M_variant): Reorganize.
696         (_Parameter(_Iterator const&, const char*, _Is_iterator)): Make all
697         overloads take iterator through a const reference.
698         (_Parameter(const _Iterator&, const char*, _Is_iterator_value_type)):
699         New.
700         (_Parameter(const _Type&, const char*, _Is_instance)): New.
701         (_Error_formatter::_M_print_type): Delete.
702         (_Error_formatter::_M_iterator_value_type): New.
703         (_Error_formatter::_M_instance): New.
704         * include/Makefile.am: Add new above debug file.
705         * include/Makefile.in: Regenerate.
706         * include/debug/functions.h
707         (__check_dereferenceable(const _Safe_iterator<>&),
708         __valid_range(const _Safe_iterator<>&),
709         __is_safe_random_iterator<_Safe_iterator<>>): Move...
710         * include/debug/safe_iterator.h: ... here.
711         Replace debug.h include with assertions.h.
712         (__check_singular_aux): Move...
713         * include/debug/safe_base.h: ... here.
714         * include/debug/functions.h
715         (__check_dereferenceable(const _Safe_local_iterator<>&),
716         __valid_range(const _Safe_local_iterator<>&): Move...
717         * include/debug/safe_local_iterator.h: ...here.
718         * include/debug/safe_sequence.h: Replace debug.h with assertions.h.
719         Remove _Safe_iterator declaration.
720         * include/debug/safe_unordered_container.h: Replace debug.h with
721         assertions.h.
722         * include/debug/array: Replace safe_sequence.h include with
723         formatter.h and macros.h.
724         * include/debug/deque: Include functions.tcc.
725         * include/debug/forward_list: Likewise.
726         * include/debug/list: Likewise.
727         * include/debug/string: Likewise.
728         * include/debug/vector: Likewise.
729         * include/bits/unique_ptr.h: Replace debug.h include with new
730         assertions.h.
731         * include/bits/stl_iterator_base_funcs.h: Likewise.
732         * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc:
733         Adjust dg-error line number.
734         * testsuite/23_containers/array/tuple_interface/
735         tuple_element_debug_neg.cc: Likewise.
736         * src/c++11/debug.cc: Adapt.
738 2015-05-29  Jonathan Wakely  <jwakely@redhat.com>
740         * doc/xml/manual/status_cxx2017.xml: Fix duplicate ID attribute.
741         * doc/html/manual/*: Regenerate.
743         * include/std/future (__async_result_of): New alias template.
744         (async): Use __async_result_of to pass decayed types to result_of.
745         * testsuite/30_threads/async/lwg2021.cc: New.
746         * doc/xml/manual/intro.xml: Document LWG 2021 status.
748         PR libstdc++/66327
749         * include/bits/stl_algobase.h (__equal<true>::equal): Do not call
750         memcmp with null pointers.
751         (__lexicographical_compare<true>::__lc): Do not call memcmp for empty
752         ranges.
754 2015-05-28  Jonathan Wakely  <jwakely@redhat.com>
756         PR libstdc++/65352
757         * include/profile/array (array::data): Use _S_ptr.
758         * include/debug/array (array::data): Likewise.
760         PR libstdc++/65352
761         * include/std/array (__array_traits::_S_ptr): New function.
762         (array::data): Use _S_ptr to avoid creating invalid reference.
763         * testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
764         dg-error line numbers.
765         * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
766         likewise.
768 2015-05-27  Jonathan Wakely  <jwakely@redhat.com>
770         * include/bits/stl_tree.h (_Rb_tree::_M_end()): Return _Base_ptr
771         instead of downcasting.
772         (_Rb_tree::_M_copy): Change second parameter to _Base_ptr.
773         (_Rb_tree::_M_lower_bound, _Rb_tree:_M_upper_bound): Likewise.
774         (_Rb_tree::_S_iter): Remove.
775         (_Rb_tree::_S_lower_bound_tr, _Rb_tree::_S_upper_bound_tr): Remove.
776         (_Rb_tree::_M_find_tr(const _Kt&) const): Call _M_lower_bound_tr
777         instead of _S_lower_bound_tr
778         (_Rb_tree::_M_find_tr(const _Kt&)): Call const overload.
779         (_Rb_tree::_M_lower_bound_tr(const _Kt&) const): Do the search here
780         instead of calling _S_lower_bound_tr.
781         (_Rb_tree::_M_lower_bound_tr(const _Kt&)): Call const overload.
782         (_Rb_tree::_M_upper_bound_tr(const _Kt&) const): Do the search here
783         instead of calling _S_upper_bound_tr.
784         (_Rb_tree::_M_upper_bound_tr(const _Kt&)): Call const overload.
785         (_Rb_tree::_M_equal_range_tr(const _Kt&)): Likewise.
786         (_Rb_tree::equal_range): Use _Base_ptr for end pointer.
787         (_Rb_tree::_M_get_insert_unique_pos): Likewise.
788         (_Rb_tree::_M_get_insert_equal_pos): Likewise.
789         (_Rb_tree::_M_insert_equal_lower_node): Likewise.
790         (_Rb_tree::_M_insert_unique, _Rb_tree::_M_emplace_unique,
791         _Rb_tree::_M_emplace_hint_unique): Remove static_cast.
793         PR libstdc++/66017
794         * include/bits/stl_tree.h (_Rb_tree_node): Use __aligned_membuf.
795         (_Rb_tree_iterator, _Rb_tree_const_iterator): Support construction
796         from _Base_ptr.
797         (_Rb_tree_const_iterator::_M_const_cast): Remove static_cast.
798         (_Rb_tree::begin, _Rb_tree::end): Remove static_cast.
799         * include/ext/aligned_buffer.h (__aligned_membuf): New type using
800         alignment of _Tp as a member subobject, not as a complete object.
801         * python/libstdcxx/v6/printers.py (StdRbtreeIteratorPrinter): Lookup
802         _Link_type manually as it might not be in the debug info.
804 2015-05-26  Doug Evans  <dje@google.com>
806         * python/libstdcxx/v6/xmethods.py (UniquePtrMethodsMatcher): Add
807         operator-> support.
808         * testsuite/libstdc++-xmethods/unique_ptr.cc: Add tests for
809         operator->.
811 2015-05-26  Jonathan Wakely  <jwakely@redhat.com>
813         * include/bits/locale_conv.h: Fix copyright years.
814         * include/bits/quoted_string.h: Likewise.
815         * src/filesystem/Makefile.am: Likewise.
816         * testsuite/22_locale/conversions/buffer/1.cc: Likewise.
817         * testsuite/22_locale/conversions/buffer/requirements/typedefs.cc:
818         Likewise.
819         * testsuite/22_locale/conversions/string/1.cc: Likewise.
820         * testsuite/22_locale/conversions/string/2.cc: Likewise.
821         * testsuite/22_locale/conversions/string/3.cc: Likewise.
822         * testsuite/22_locale/conversions/string/requirements/typedefs-2.cc:
823         Likewise.
824         * testsuite/22_locale/conversions/string/requirements/typedefs.cc:
825         Likewise.
826         * testsuite/util/testsuite_fs.h: Likewise.
828 2015-05-23  François Dumont  fdumont@gcc.gnu.org>
830         PR libstdc++/64657
831         * include/debug/functions.h (__check_sorted_aux): Cast expression to
832         void.
834 2015-05-21  David Edelsohn  <dje.gcc@gmail.com>
836         PR target/66224
837         * config/cpu/powerpc/atomic_word.h (_GLIBCXX_READ_MEM_BARRIER):
838         Don't use isync. Use lwsync if available.
839         * configure.host (atomic_word_dir) [aix[56789]*]: Delete to use
840         powerpc cpu definition.
842 2015-05-21  Jason Merrill  <jason@redhat.com>
844         * libsupc++/del_opv.cc: Suppress -Wsized-deallocation.
845         * libsupc++/del_op.cc: Likewise.
847 2015-05-20  François Dumont  fdumont@gcc.gnu.org>
849         * include/debug/formatter.h (_GLIBCXX_TYPEID): New macro to simplify
850         usage of typeid.
851         (_Error_formatter::_M_print_type): New.
852         * src/c++11/debug.cc
853         (_Error_formatter::_Parameter::_M_print_field): Use latter.
854         (_Error_formatter::_M_print_type): Implement latter using
855         __cxaabiv1::__cxa_demangle to print demangled type name.
857         * include/bits/cpp_type_traits.h
858         (std::move_iterator): Delete declaration.
859         (std::__is_move_iterator<move_iterator>): Move partial specialization...
860         * include/bits/stl_iterator.h: ... here.
861         (std::__miter_base): Overloads for std::reverse_iterator and
862         std::move_iterator.
863         * include/bits/stl_algobase.h (std::__miter_base): Provide default
864         implementation.
866 2015-05-20  Jonathan Wakely  <jwakely@redhat.com>
868         * testsuite/util/testsuite_fs.h (nonexistent_path): Don't use tempnam.
870         PR libstdc++/66078
871         * include/bits/stl_iterator.h (__make_move_if_noexcept_iterator): Add
872         overload for pointers.
873         * testsuite/20_util/specialized_algorithms/uninitialized_copy/
874         808590.cc: Add -std=gnu++03 switch.
875         * testsuite/20_util/specialized_algorithms/uninitialized_copy/
876         808590-cxx11.cc: Copy of 808590.cc to test with -std=gnu++11.
877         * testsuite/23_containers/vector/modifiers/push_back/
878         strong_guarantee.cc: New.
880 2015-05-19  Jonathan Wakely  <jwakely@redhat.com>
882         * include/bits/stl_list.h (_M_resize_pos(size_type&)): Declare.
883         (operator==(const list&, const list&)): If size() is O(1) compare
884         sizes before comparing each element.
885         * include/bits/list.tcc (list::_M_resize_pos(size_type&)): Define.
886         (list::resize): Use _M_resize_pos.
888 2015-05-19  François Dumont  <fdumont@gcc.gnu.org>
890         * testsuite/23_containers/unordered_map/cons/66055.cc: Add constructor
891         invocations.
892         * testsuite/23_containers/unordered_multimap/cons/66055.cc: Likewise.
893         * testsuite/23_containers/unordered_multiset/cons/66055.cc: Likewise.
894         * testsuite/23_containers/unordered_set/cons/66055.cc: Likewise.
896 2015-05-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
898         * configure.host: Define cpu_defines_dir for ARM.
899         * config/cpu/arm/cpu_defines.h: New file.
901 2015-05-17  François Dumont  <fdumont@gcc.gnu.org>
903         * include/bits/unordered_map.h (unordered_map, unordered_multimap): Add
904         missing constructors.
905         * include/bits/unordered_set.h (unordered_set, unordered_multiset):
906         Likewise.
907         * include/debug/unordered_map (unordered_map, unordered_multimap): Add
908         missing constructors.
909         * include/debug/unordered_set (unordered_set, unordered_multiset):
910         Likewise.
911         * include/profile/unordered_map (unordered_map, unordered_multimap): Add
912         missing constructors.
913         * include/profile/unordered_set (unordered_set, unordered_multiset):
914         Likewise.
916 2015-05-15  Jonathan Wakely  <jwakely@redhat.com>
918         * src/filesystem/ops.cc (stat_type): Define alias for struct stat and
919         use throughout the file.
920         (make_file_type): New function.
921         (file_size(const path&, error_code&)): Report an error for anything
922         that isn't a regular file.
923         (status(const path&), symlink_status(const path&)): Do not throw for
924         file_type::not_found.
925         (temp_directory_path()): Check additional environment variables.
926         * testsuite/experimental/filesystem/operations/exists.cc: New.
927         * testsuite/experimental/filesystem/operations/file_size.cc: New.
928         * testsuite/experimental/filesystem/operations/status.cc: New.
929         * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
930         New.
932 2015-05-14  Nathan Myers  <ncm@cantrip.org>
933             Jonathan Wakely  <jwakely@redhat.com>
935         PR libstdc++/66055
936         * include/std/unordered_map (unordered_map, unordered_multimap): Add
937         missing constructors.
938         * include/std/unordered_set (unordered_set, unordered_multiset):
939         Likewise.
940         * testsuite/23_containers/unordered_map/cons/66055.cc: New.
941         * testsuite/23_containers/unordered_multimap/cons/66055.cc: New.
942         * testsuite/23_containers/unordered_multiset/cons/66055.cc: New.
943         * testsuite/23_containers/unordered_set/cons/66055.cc: New.
945 2015-05-14  Jonathan Wakely  <jwakely@redhat.com>
947         PR libstdc++/66011
948         * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for fchmod and
949         sendfile.
950         * config.h.in: Regenerate.
951         * configure: Regenerate.
952         * src/filesystem/ops.cc (do_copy_file): Fix arguments to open(). Do
953         not return after copying contents. Use fchmod, fchmodat, and sendfile
954         when available.
955         (current_path, permissions, space): Use errno not return value.
957         PR libstdc++/66018
958         * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for struct
959         dirent.d_type.
960         * config.h.in: Regenerate.
961         * configure: Regenerate.
962         * configure.ac (AC_STRUCT_DIRENT_D_TYPE): Remove.
964 2015-05-13  Eric Botcazou  <ebotcazou@adacore.com>
966         * acinclude.m4 (GLIBCXX_ENABLE_SJLJ_EXCEPTIONS): Delete.
967         * configure.ac: Remove GLIBCXX_ENABLE_SJLJ_EXCEPTIONS.
968         * config.h.in: Regenerate.
969         * configure: Likewise.
970         * libsupc++/eh_personality.cc: Replace _GLIBCXX_SJLJ_EXCEPTIONS by
971         __USING_SJLJ_EXCEPTIONS__.
972         * libsupc++/eh_throw.cc: Likewise.
973         * libsupc++/eh_ptr.cc: Likewise.
974         * doc/html/manual/appendix_porting.html: Remove
975         GLIBCXX_ENABLE_SJLJ_EXCEPTIONS
976         * doc/xml/manual/build_hacking.xml: Likewise.
977         * doc/html/manual/configure.html: Remove --enable-sjlj-exceptions.
978         * doc/xml/manual/configure.xml: Likewise.
980 2015-05-13  Jonathan Wakely  <jwakely@redhat.com>
982         * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)): Check
983         for nullptr (LWG 2415).
984         * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Test
985         construction from empty unique_ptr.
986         * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
987         * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
989         * include/bits/stl_raw_storage_iter.h (raw_storage_iterator::base()):
990         Define (LWG 2454).
991         * testsuite/20_util/raw_storage_iterator/base.cc: New.
993         * include/std/future (packaged_task(allocator_arg_t, const A&, F&&):
994         Remove explicit (LWG 2407).
996         * include/bits/basic_string.h (basic_string::basic_string()): Make
997         noexcept conditional on allocator (LWG 2455).
999         * include/std/complex (polar): Check for negative rho (LWG 2459).
1001         * include/experimental/tuple (apply): Handle pointers to member (LWG
1002         2418).
1003         * include/std/functional (_Mem_fn_base): Make constructors constexpr.
1004         (_Maybe_wrap_member_pointer::__do_wrap): Make constexpr.
1005         * testsuite/experimental/tuple/apply.cc: Test pointer to member.
1007         * include/bits/random.h (seed_seq): More noexcept (LWG 2440).
1009         * include/bits/alloc_traits.h (_S_max_size): Implement LWG 2466.
1010         * testsuite/20_util/allocator_traits/members/max_size.cc: Adjust.
1011         * testsuite/23_containers/forward_list/allocator/minimal.cc:
1012         Likewise.
1013         * testsuite/23_containers/map/allocator/minimal.cc: Likewise.
1014         * testsuite/23_containers/multimap/allocator/minimal.cc: Likewise.
1015         * testsuite/23_containers/multiset/allocator/minimal.cc: Likewise.
1016         * testsuite/23_containers/set/allocator/minimal.cc: Likewise.
1017         * testsuite/23_containers/unordered_map/allocator/minimal.cc:
1018         Likewise.
1019         * testsuite/23_containers/unordered_multimap/allocator/minimal.cc:
1020         Likewise.
1021         * testsuite/23_containers/unordered_multiset/allocator/minimal.cc:
1022         Likewise.
1023         * testsuite/23_containers/unordered_set/allocator/minimal.cc:
1024         Likewise.
1025         * testsuite/util/testsuite_allocator.h: Remove unused parameter.
1027         * acinclude.m4 (GLIBCXX_ENABLE_FILESYSTEM_TS): Re-enable on solaris.
1028         * configure: Regenerate.
1030 2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
1032         * Makefile.in: Regenerated with automake-1.11.6.
1033         * aclocal.m4: Likewise.
1034         * configure: Likewise.
1035         * doc/Makefile.in: Likewise.
1036         * include/Makefile.in: Likewise.
1037         * libsupc++/Makefile.in: Likewise.
1038         * po/Makefile.in: Likewise.
1039         * python/Makefile.in: Likewise.
1040         * src/Makefile.in: Likewise.
1041         * src/c++11/Makefile.in: Likewise.
1042         * src/c++98/Makefile.in: Likewise.
1043         * src/filesystem/Makefile.in: Likewise.
1044         * testsuite/Makefile.in: Likewise.
1046 2015-05-09  Jason Merrill  <jason@redhat.com>
1048         * testsuite/20_util/headers/functional/synopsis.cc: Add
1049         _GLIBCXX14_CONSTEXPR.
1050         * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Likewise.
1052 2015-05-08  Jason Merrill  <jason@redhat.com>
1054         * testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc: Add -std=c++98.
1055         * testsuite/20_util/auto_ptr/1.cc: Add -std=c++98.
1056         * testsuite/20_util/auto_ptr/2.cc: Add -std=c++98.
1057         * testsuite/20_util/auto_ptr/3.cc: Add -std=c++98.
1058         * testsuite/20_util/auto_ptr/4.cc: Add -std=c++98.
1059         * testsuite/20_util/auto_ptr/5.cc: Add -std=c++98.
1060         * testsuite/20_util/auto_ptr/6.cc: Add -std=c++98.
1061         * testsuite/20_util/auto_ptr/7.cc: Add -std=c++98.
1062         * testsuite/20_util/auto_ptr/3946.cc: Add -std=c++98.
1063         * testsuite/20_util/auto_ptr/assign_neg.cc: Add -std=c++98.
1064         * testsuite/20_util/auto_ptr/requirements/explicit_instantiation/1.cc:
1065         Likewise.
1066         * testsuite/20_util/headers/functional/synopsis.cc: Add -Wno-deprecated.
1067         * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
1068         Adjust expected errors.
1069         * testsuite/23_containers/deque/requirements/dr438/constructor_1_neg.cc:
1070         Likewise.
1071         * testsuite/23_containers/deque/requirements/dr438/constructor_2_neg.cc:
1072         Likewise.
1073         * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
1074         Likewise.
1075         * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
1076         Likewise.
1077         * testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
1078         Likewise.
1079         * testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc:
1080         Likewise.
1081         * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
1082         Likewise.
1083         * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
1084         Likewise.
1085         * testsuite/23_containers/vector/requirements/dr438
1086         /constructor_1_neg.cc: Likewise.
1087         * testsuite/23_containers/vector/requirements/dr438
1088         /constructor_2_neg.cc: Likewise.
1089         * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
1090         Likewise.
1091         * testsuite/ext/array_allocator/1.cc: Add -Wno-deprecated.
1092         * testsuite/ext/array_allocator/2.cc: Add -Wno-deprecated.
1093         * testsuite/ext/array_allocator/26875.cc: Add -Wno-deprecated.
1094         * testsuite/ext/array_allocator/3.cc: Add -Wno-deprecated.
1095         * testsuite/ext/array_allocator/check_allocate_max_size.cc:
1096         Add -Wno-deprecated.
1097         * testsuite/ext/array_allocator/check_deallocate_null.cc:
1098         Add -Wno-deprecated.
1099         * testsuite/ext/array_allocator/check_delete.cc: Add -Wno-deprecated.
1100         * testsuite/ext/array_allocator/check_new.cc: Add -Wno-deprecated.
1101         * testsuite/ext/profile/mutex_extensions_neg.cc: Prune follow-on error.
1102         * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr.cc:
1103         Add -std=c++98.
1104         * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_neg.cc:
1105         Add -std=c++98.
1106         * testsuite/tr1/2_general_utilities/shared_ptr/assign
1107         /auto_ptr_rvalue_neg.cc: Add -std=c++98.
1108         * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc:
1109         Add -std=c++98 -fno-show-column.
1110         * testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr.cc:
1111         Add -std=c++98.
1112         * testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr_neg.cc:
1113         Add -std=c++98.
1114         * testsuite/tr1/6_containers/utility/pair.cc: Add -std=c++98.
1115         * testsuite/tr1/8_c_compatibility/cmath/pow_cmath.cc: Add -std=c++98.
1117         * src/c++98/Makefile.am (AM_CXXFLAGS): Add -std=gnu++98.
1118         * src/c++98/Makefile.in: Regenerate.
1119         * src/Makefile.am (AM_CXXFLAGS): Add -std=gnu++98.
1120         * src/Makefile.in: Regenerate.
1122 2015-05-02  Jonathan Wakely  <jwakely@redhat.com>
1124         PR libstdc++/51617
1125         * include/std/future (async): Change default policy to launch::async.
1127         * include/experimental/any (any::_Storage): Fix alignment of buffer.
1128         (any::_Internal): Check alignment of type.
1129         * testsuite/experimental/any/cons/aligned.cc: New.
1130         * testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error.
1132         * include/experimental/iterator (ostream_joiner): Simplify by using
1133         the injected-class-name and the ostream_type typedef.
1135         * include/experimental/iterator: New. Define ostream_joiner.
1136         * include/Makefile.am: Add new header.
1137         * include/Makefile.in: Regenerate.
1138         * testsuite/experimental/iterator/make_ostream_joiner.cc: New.
1139         * testsuite/experimental/iterator/ostream_joiner.cc: New.
1140         * testsuite/experimental/iterator/requirements.cc: New.
1141         * doc/xml/manual/status_cxx2017.xml: Update status.
1142         * doc/html/manual/status.html: Regenerate.
1144         * include/experimental/numeric: New. Define gcd and lcm.
1145         * include/Makefile.am: Add new header.
1146         * include/Makefile.in: Regenerate.
1147         * testsuite/experimental/numeric/gcd.cc: New.
1148         * testsuite/experimental/numeric/lcm.cc: New.
1149         * doc/xml/manual/status_cxx2017.xml: Update status.
1150         * doc/html/manual/status.html: Regenerate.
1152 2015-05-02  Edward Smith-Rowland  <3dw4rd@verizon.net>
1154         Revert addition of feature macros from other headers per latest SD-6.
1155         * include/experimental/deque: Remove feature-test macro.
1156         * include/experimental/forward_list: Ditto.
1157         * include/experimental/list: Ditto.
1158         * include/experimental/map: Ditto.
1159         * include/experimental/set: Ditto.
1160         * include/experimental/string: Ditto.
1161         * include/experimental/unordered_map: Ditto.
1162         * include/experimental/unordered_set: Ditto.
1164 2015-05-02  Jonathan Wakely  <jwakely@redhat.com>
1166         * include/experimental/any (any::_Storage): Make non-copyable.
1167         (any::any): Do not copy _Storage object.
1168         (any::operator=): Implement more efficiently than swapping.
1169         (any::swap): Use new _Op_xfer operation.
1170         (any::_Op::_Op_xfer): New enumerator.
1171         (_Manager_internal::_S_alloc): Remove unused function.
1172         (_Manager_internal::_S_create, _Manager_external::_S_create): Use out
1173         parameter instead of returning a _Storage object.
1174         (_Manager_internal::_S_manage, _Manager_external::_S_manage): Add
1175         _Op_xfer operation for moving and swapping.
1176         * testsuite/experimental/any/cons/nontrivial.cc: New.
1177         * testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error.
1179         * include/experimental/fs_path.h (filesystem_error::~filesystem_error):
1180         Declare.
1181         * src/filesystem/path.cc (filesystem_error::~filesystem_error):
1182         Define.
1184         PR libstdc++/65978
1185         * include/std/tuple (forward_as_tuple, tie): Add constexpr.
1186         * testsuite/20_util/tuple/creation_functions/constexpr.cc: Uncomment
1187         and fix tests for forward_as_tuple and tie.
1189         * src/filesystem/ops.cc (last_write_time) [_GLIBCXX_USE_UTIMENSAT]:
1190         Set timespec members explicitly instead of with a braced-init-list.
1191         [_GLIBCXX_HAVE_UTIME_H]: Use lambda to handle st_atime being a macro.
1193 2015-05-02  Edward Smith-Rowland  <3dw4rd@verizon.net>
1195         * include/experimental/deque: Add feature-test macro.
1196         * include/experimental/forward_list: Ditto.
1197         * include/experimental/list: Ditto.
1198         * include/experimental/map: Ditto.
1199         * include/experimental/set: Ditto.
1200         * include/experimental/string: Ditto.
1201         * include/experimental/unordered_map: Ditto.
1202         * include/experimental/unordered_set: Ditto.
1204 2015-05-01  Jonathan Wakely  <jwakely@redhat.com>
1206         * include/experimental/memory: Correct feature-test macro.
1208         * include/experimental/memory: Add feature-test macro.
1209         * include/experimental/vector: Likewise.
1210         * doc/xml/manual/status_cxx2017.xml: Update status.
1211         * doc/html/manual/status.html: Regenerate.
1213 2015-05-01  Ville Voutilainen  <ville.voutilainen@gmail.com>
1215         Implement observer_ptr.
1216         * include/Makefile.am: Add new header.
1217         * include/Makefile.in: Regenerate.
1218         * include/experimental/memory: New.
1219         * testsuite/experimental/memory/observer_ptr/assignment/assign.cc: New.
1220         * testsuite/experimental/memory/observer_ptr/cons/cons.cc: New.
1221         * testsuite/experimental/memory/observer_ptr/hash/hash.cc: New.
1222         * testsuite/experimental/memory/observer_ptr/make_observer.cc: New.
1223         * testsuite/experimental/memory/observer_ptr/relops/relops.cc: New.
1224         * testsuite/experimental/memory/observer_ptr/requirements.cc: New.
1225         * testsuite/experimental/memory/observer_ptr/swap/swap.cc: New.
1226         * testsuite/experimental/memory/observer_ptr/typedefs.cc: New.
1228 2015-05-01  Jonathan Wakely  <jwakely@redhat.com>
1230         * src/filesystem/path.cc (path::compare): Do not copy strings.
1232         * acinclude.m4 (GLIBCXX_ENABLE_FILESYSTEM_TS): Disable when <dirent.h>
1233         is not available.
1234         (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for fchmodat.
1235         * configure: Regenerate.
1236         * config.h.in: Regenerate.
1237         * configure.ac: Check for utime.h
1238         * include/experimental/fs_path.h (path::string<>)
1239         [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Remove stray typename keyword.
1240         * src/filesystem/dir.cc [!_GLIBCXX_HAVE_DIRENT_H] (DIR, opendir,
1241         closedir, dirent, readdir_r): Replace dummy functions with #error.
1242         (native_readdir, _Dir::advance): Use readdir when readdir_r is missing.
1243         * src/filesystem/ops.cc (do_stat, is_set): Make inline.
1244         (last_write_time) [!_GLIBCXX_USE_UTIMENSAT]: Use utime.
1245         (permissions) [!_GLIBCXX_USE_FCHMODAT]: Use chmod.
1246         (space, temp_directory_path) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Set
1247         error_code.
1249         * include/experimental/fs_path.h (path::_List): Use vector instead of
1250         list.
1251         * python/libstdcxx/v6/printers.py (StdExpPathPrinter): Adapt.
1252         * src/filesystem/path.cc: Use std::prev instead of decrementing
1253         rvalues. Fix whitespace.
1254         * testsuite/experimental/filesystem/path/decompose/parent_path.cc:
1255         Do not decrement iterators before begin.
1257         * include/experimental/fs_dir.h: Fix use of non-reserved names.
1258         * include/experimental/fs_ops.h: Likewise.
1259         * include/experimental/fs_path.h: Likewise.
1260         * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Use
1261         C++11 when checking for support.
1263         * include/bits/locale_classes.h (locale::facet): Delete copy
1264         operations in C++11 mode.
1266         * include/bits/alloc_traits.h (__alloc_rebind): Change parameter name.
1268         * acinclude.m4 (GLIBCXX_ENABLE_FILESYSTEM_TS): Disable for solaris.
1269         * configure: Regenerate.
1271 2015-05-01  Edward Smith-Rowland  <3dw4rd@verizon.net>
1273         Inline one-line erasure dispatch functions.
1274         * include/experimental/forward_list (erase_if(), erase()): Inline.
1275         * include/experimental/list (erase_if(), erase()): Inline.
1276         * include/experimental/map (erase_if(*)): Inline.
1277         * include/experimental/set (erase_if(*)): Inline.
1278         * include/experimental/string (erase_if(), erase()): Inline.
1279         * include/experimental/unordered_map (erase_if(*)): Inline.
1280         * include/experimental/unordered_set (erase_if(*)): Inline.
1282 2015-05-01  Jonathan Wakely  <jwakely@redhat.com>
1284         * doc/xml/manual/intro.xml: Link to new status_cxx2017.xml file.
1285         * doc/xml/manual/status_cxx2011.xml: Update status tables.
1286         * doc/xml/manual/status_cxx2014.xml: Likewise.
1287         * doc/xml/manual/status_cxx2017.xml: New.
1288         * doc/xml/manual/using.xml: Fix typo.
1289         * doc/html/*: Regenerate.
1291         * include/std/memory (pointer_safety, declare_reachable,
1292         undeclare_reachable, declare_no_pointers, undeclare_no_pointers,
1293         get_pointer_safety): Define.
1294         * testsuite/20_util/pointer_safety/1.cc: New.
1296 2015-04-30  Jonathan Wakely  <jwakely@redhat.com>
1298         Implement N4100 File System TS
1299         * acinclude.m4 (GLIBCXX_ENABLE_FILESYSTEM_TS): Define.
1300         (GLIBCXX_CHECK_FILESYSTEM_DEPS): Define.
1301         * config.h.in: Regenerate.
1302         * configure: Regenerate.
1303         * configure.ac: Enable filesystem TS and check its dependencies.
1304         * include/Makefile.am: Add new headers.
1305         * include/Makefile.in: Regenerate.
1306         * include/bits/locale_conv.h (__do_str_code_cvt, __str_codecvt_in,
1307         __str_codecvt_out): Move code conversion logic from wstring_convert
1308         into new global functions.
1309         (wstring_convert::to_bytes, wstring_convert::from_bytes): Use new
1310         functions.
1311         (wstring_convert::_M_conv): Remove.
1312         * include/bits/quoted_string.h (_Quoted_string): Split out of iomanip.
1313         * include/experimental/filesystem: New.
1314         * include/experimental/fs_dir.h: New.
1315         * include/experimental/fs_fwd.h: New.
1316         * include/experimental/fs_ops.h: New.
1317         * include/experimental/fs_path.h: New.
1318         * include/std/iomanip (_Quoted_string): Move to bits/quoted_string.h.
1319         * python/libstdcxx/v6/printers.py (StdExpPathPrinter): Add.
1320         * src/Makefile.am (SUBDIRS): Add filesystem.
1321         * src/Makefile.in: Regenerate.
1322         * src/filesystem/Makefile.am: New.
1323         * src/filesystem/Makefile.in: New.
1324         * src/filesystem/dir.cc: New.
1325         * src/filesystem/ops.cc: New.
1326         * src/filesystem/path.cc: New.
1327         * testsuite/experimental/filesystem/operations/absolute.cc: New.
1328         * testsuite/experimental/filesystem/operations/copy.cc: New.
1329         * testsuite/experimental/filesystem/operations/current_path.cc: New.
1330         * testsuite/experimental/filesystem/path/append/path.cc: New.
1331         * testsuite/experimental/filesystem/path/assign/assign.cc: New.
1332         * testsuite/experimental/filesystem/path/assign/copy.cc: New.
1333         * testsuite/experimental/filesystem/path/compare/compare.cc: New.
1334         * testsuite/experimental/filesystem/path/compare/path.cc: New.
1335         * testsuite/experimental/filesystem/path/compare/strings.cc: New.
1336         * testsuite/experimental/filesystem/path/concat/path.cc: New.
1337         * testsuite/experimental/filesystem/path/concat/strings.cc: New.
1338         * testsuite/experimental/filesystem/path/construct/copy.cc: New.
1339         * testsuite/experimental/filesystem/path/construct/default.cc: New.
1340         * testsuite/experimental/filesystem/path/construct/locale.cc: New.
1341         * testsuite/experimental/filesystem/path/construct/range.cc: New.
1342         * testsuite/experimental/filesystem/path/decompose/extension.cc: New.
1343         * testsuite/experimental/filesystem/path/decompose/filename.cc: New.
1344         * testsuite/experimental/filesystem/path/decompose/parent_path.cc:
1345         New.
1346         * testsuite/experimental/filesystem/path/decompose/relative_path.cc:
1347         New.
1348         * testsuite/experimental/filesystem/path/decompose/root_directory.cc:
1349         New.
1350         * testsuite/experimental/filesystem/path/decompose/root_name.cc:
1351         New.
1352         * testsuite/experimental/filesystem/path/decompose/root_path.cc:
1353         New.
1354         * testsuite/experimental/filesystem/path/decompose/stem.cc: New.
1355         * testsuite/experimental/filesystem/path/generic/generic_string.cc:
1356         New.
1357         * testsuite/experimental/filesystem/path/itr/traversal.cc: New.
1358         * testsuite/experimental/filesystem/path/modifiers/clear.cc: New.
1359         * testsuite/experimental/filesystem/path/modifiers/make_preferred.cc:
1360         New.
1361         * testsuite/experimental/filesystem/path/modifiers/remove_filename.cc:
1362         New.
1363         * testsuite/experimental/filesystem/path/modifiers/replace_extension.cc:
1364         New.
1365         * testsuite/experimental/filesystem/path/modifiers/replace_filename.cc:
1366         New.
1367         * testsuite/experimental/filesystem/path/modifiers/swap.cc: New.
1368         * testsuite/experimental/filesystem/path/nonmember/hash_value.cc: New.
1369         * testsuite/experimental/filesystem/path/query/empty.cc: New.
1370         * testsuite/experimental/filesystem/path/query/has_extension.cc: New.
1371         * testsuite/experimental/filesystem/path/query/has_filename.cc: New.
1372         * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
1373         New.
1374         * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
1375         New.
1376         * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
1377         New.
1378         * testsuite/experimental/filesystem/path/query/has_root_name.cc:
1379         New.
1380         * testsuite/experimental/filesystem/path/query/has_root_path.cc:
1381         New.
1382         * testsuite/experimental/filesystem/path/query/has_stem.cc: New.
1383         * testsuite/experimental/filesystem/path/query/is_relative.cc: New.
1384         * testsuite/util/testsuite_fs.h: New.
1386 2015-04-30  Edward Smith-Rowland  <3dw4rd@verizon.net>
1388         Add fundamentals TR container erasure.
1389         * include/Makefile.am: Add new headers.
1390         * include/Makefile.in: Add new headers.
1391         * include/experimental/array: New.
1392         * include/experimental/deque: New.
1393         * include/experimental/erase_if.tcc: New.
1394         * include/experimental/forward_list: New.
1395         * include/experimental/list: New.
1396         * include/experimental/map: New.
1397         * include/experimental/set: New.
1398         * include/experimental/string: New.
1399         * include/experimental/unordered_map: New.
1400         * include/experimental/unordered_set: New.
1401         * include/experimental/vector: New.
1402         * testsuite/experimental/deque/erasure.cc: New.
1403         * testsuite/experimental/forward_list/erasure.cc: New.
1404         * testsuite/experimental/list/erasure.cc: New.
1405         * testsuite/experimental/map/erasure.cc: New.
1406         * testsuite/experimental/set/erasure.cc: New.
1407         * testsuite/experimental/string/erasure.cc: New.
1408         * testsuite/experimental/unordered_map/erasure.cc: New.
1409         * testsuite/experimental/unordered_set/erasure.cc: New.
1410         * testsuite/experimental/vector/erasure.cc: New.
1412 2015-04-30  François Dumont  <fdumont@gcc.gnu.org>
1414         * include/bits/cpp_type_traits.h
1415         (__gnu_cxx::__is_normal_iterator): Delete.
1416         * include/bits/stl_algobase.h (std::__niter_base): Adapt.
1417         * include/bits/stl_iterator.h (__make_reverse_iterator): New in C++11.
1418         (std::__niter_base): Overloads for std::reverse_iterator,
1419         __gnu_cxx::__normal_iterator and std::move_iterator.
1421 2015-04-30  François Dumont  <fdumont@gcc.gnu.org>
1423         * include/bits/hashtable_policy.h (_Prime_rehash_policy::_S_n_primes):
1424         Delete.
1425         * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
1426         Remove usage of latter and compute size of the prime numbers array
1427         locally.
1429 2015-04-29  Doug Evans  <dje@google.com>
1431         PR libstdc++/65839
1432         * python/libstdcxx/v6/xmethods.py (get_bool_type): New function.
1433         Replace all lookups of "bool" with this.
1434         (get_std_size_type): New function.  Replace all lookups of std::size_t
1435         with this.
1436         (*Worker): New method get_result_type.
1437         (DequeWorkerBase.__init__): New arg val_type.  All callers updated.
1438         (ListWorkerBase.__init__): New arg val_type.  All callers updated.
1439         (UniquePtrGetWorker.__init__): New arg elem_type.  All callers updated.
1440         Delete setting of name, enabled.
1441         (UniquePtrDerefWorker.__init__): New arg elem_type.  All callers
1442         updated.  Delete setting of name.
1443         (UniquePtrMethodsMatcher): Rewrite for consistency with all other
1444         libstdc++ xmethod matchers.
1445         * testsuite/libstdc++-xmethods/array.cc: Add whatis tests.
1446         * testsuite/libstdc++-xmethods/associative-containers.cc: Ditto.
1447         * testsuite/libstdc++-xmethods/deque.cc: Ditto.
1448         * testsuite/libstdc++-xmethods/forwardlist.cc: Ditto.
1449         * testsuite/libstdc++-xmethods/list.cc: Ditto.
1450         * testsuite/libstdc++-xmethods/unique_ptr.cc: Ditto.
1451         * testsuite/libstdc++-xmethods/vector.cc: Ditto.
1453 2015-04-29  Doug Evans  <dje@google.com>
1455         Use consistent naming for value type attributes.
1456         * python/libstdcxx/v6/xmethods.py (ArrayWorkerBase): Rename _valtype
1457         to _val_type.
1458         (ArraySizeWorker, ArrayEmptyWorker): Ditto.
1459         (ArrayFrontWorker, ArrayBackWorker): Ditto.
1460         (ArrayAtWorker, ArraySubscriptWorker): Ditto.
1461         (DequeWorkerBase): Rename elemtype to val_type.
1462         (ForwardListWorkerBase): Rename _elem_type to _val_type.
1463         (ForwardListFrontWorker): Ditto.  And rename elem_address to
1464         val_address.
1465         (ForwardListMethodsMatcher): Rename elem_type to val_type.
1466         (VectorWorkerBase): Rename _elemtype to _val_type.
1468 2015-04-29  Jonathan Wakely  <jwakely@redhat.com>
1470         PR libstdc++/65760
1471         * include/std/functional (__check_func_return_type): Use is_same to
1472         avoid using _is_convertible on incomplete types.
1473         * testsuite/20_util/function/65760.cc: New.
1475         PR libstdc++/64657
1476         * include/bits/basic_string (basic_string::_S_copy_chars): Cast
1477         expression to void.
1478         * include/bits/locale_facets_nonio.tcc (money_get::_M_extract,
1479         time_get::_M_extract_num, time_get::_M_extract_name,
1480         time_get::_M_extract_wday_or_month): Likewise.
1481         * include/bits/stl_algo.h (__includes, __replace_copy_if,
1482         __is_sorted_until, __is_permutation, transform): Likewise.
1483         * include/bits/stl_algobase.h (swap_ranges, __copy_move::__copy_m,
1484         __equal::equal, __lexicographical_compare_impl, equal): Likewise.
1485         * include/bits/stl_numeric.h (inner_product): Likewise.
1486         * include/bits/stl_uninitialized.h (__uninitialized_copy_a): Likewise.
1487         * testsuite/util/testsuite_iterators.h (output_iterator_wrapper,
1488         input_iterator_wrapper): Declare unusable comma operator.
1489         * testsuite/21_strings/basic_string/cons/char/64657.cc: New.
1490         * testsuite/21_strings/basic_string/modifiers/assign/char/64657.cc:
1491         New.
1493 2015-04-28  Doug Evans  <dje@google.com>
1495         * testsuite/libstdc++-xmethods/list.cc (_GLIBCXX_USE_CXX11_ABI):
1496         Define to zero.
1498 2015-04-28  Jonathan Wakely  <jwakely@redhat.com>
1500         * include/bits/stl_algo.h (random_shuffle): Only define for hosted
1501         implementations.
1503 2015-04-28  Jonathan Wakely  <jwakely@redhat.com>
1505         * Makefile.am (SUBDIRS): Move python to hosted_source.
1506         * Makefile.in: Regenerate.
1507         * acinclude.m4 (glibcxx_SUBDIRS): Reorder.
1508         * configure: Regenerate.
1510 2015-04-28  Marc Glisse  <marc.glisse@inria.fr>
1512         PR libstdc++/65883
1513         * include/std/limits (numeric_limits): Add missing unsigned.
1515 2015-04-28  Stephan Bergmann  <sbergman@redhat.com>
1517         * include/debug/vector (_Safe_vector::operator=): Add missing returns.
1519 2015-04-28  Jonathan Wakely  <jwakely@redhat.com>
1521         PR libstdc++/60333
1522         * include/std/type_traits (__make_unsigned_selector<_Tp, false, true>):
1523         Handle enumeration types larger than sizeof(long).
1524         (__make_signed_selector<_Tp, false, true>): Find unsigned type then
1525         make it signed.
1526         * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error.
1527         * testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
1528         Likewise.
1529         * testsuite/20_util/make_signed/requirements/typedefs-3.cc: New.
1530         * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Adjust
1531         dg-error.
1532         * testsuite/20_util/make_unsigned/requirements/typedefs-3.cc: New.
1534         PR libstdc++/61645
1535         * include/bits/forward_list.h (forward_list::splice_after): Add
1536         noexcept.
1537         * include/bits/forward_list.tcc (forward_list::splice_after):
1538         Likewise.
1540         PR libstdc++/65631
1541         * include/bits/random.h (seed_seq) Define copy constructor and copy
1542         assignment as deleted.
1543         * testsuite/26_numerics/random/seed_seq/cons/65631.cc: New.
1545         * libsupc++/exception (uncaught_exceptions): Add comment. Reorder #if.
1546         * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
1547         Use -std=gnu++1z. Check feature-test macro.
1549         * include/std/type_traits (void_t): Add.
1550         * testsuite/20_util/void_t/1.cc: New.
1552 2015-04-28  Tim Shen  <timshen@google.com>
1554         * include/bits/regex.tcc: Handle regex_constants::__polynomial.
1555         * include/bits/regex_automaton.tcc: Throw exception when parsing
1556         back-reference with flag __polynomial.
1557         * include/bits/regex_constants.h: Add extension flag
1558         syntax_option_type __polynomial.
1559         * bits/regex_executor.tcc: Still let BFS process ECMAScript.
1560         Alternative operation will be fixed in the coming refactoring.
1561         * testsuite/28_regex/algorithms/regex_search/61424.cc: Turn
1562         loose match_search_debug to use DFS only.
1564 2015-04-27  Sandra Loosemore  <sandra@codesourcery.com>
1566         PR libstdc++/65909
1567         * testsuite/lib/libstdc++.exp (check_v3_target_namedlocale):
1568         Make the generated test program fail gracefully if the target
1569         doesn't support passing command-line arguments.
1571 2015-04-27  Federico Lenarduzzi  <federico.lenarduzzi@tallertechnologies.com>
1572             Jonathan Wakely  <jwakely@redhat.com>
1574         * libsupc++/eh_catch.cc (uncaught_exception, uncaught_exceptions):
1575         Return false or zero if the library is built without exceptions.
1576         * libsupc++/eh_term_handler.cc: Disable verbose terminate handler if
1577         the library is built without exceptions.
1579 2015-04-27  Ville Voutilainen  <ville.voutilainen@gmail.com>
1581         * config/abi/pre/gnu.ver: Fix comment.
1583         Add support for std::uncaught_exceptions.
1584         * acinclude.m4: Bump libtool_VERSION.
1585         * config/abi/pre/gnu.ver: Export the new symbol.
1586         * configure: Regenerate.
1587         * libsupc++/eh_catch.cc (uncaught_exceptions): New.
1588         * libsupc++/exception (uncaught_exceptions): New.
1589         * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc: New.
1590         * testsuite/util/testsuite_abi.cc: Add 3.4.22 as the latest version.
1592 2015-04-27  Dmitry Prokoptsev  <dprokoptsev@gmail.com>
1593             Michael Hanselmann  <public@hansmi.ch>
1595         PR libstdc++/62258
1596         * libsupc++/eh_ptr.cc (rethrow_exception): Increment count of
1597         uncaught exceptions.
1598         * testsuite/18_support/exception_ptr/62258.cc: New.
1600 2015-04-27  Jonathan Wakely  <jwakely@redhat.com>
1602         * doc/xml/manual/extensions.xml: Add cross-reference.
1603         * doc/html/manual/ext_compile_checks.html: Regenerate.
1605 2015-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
1607         * config/os/generic/os_defines.h (_GLIBCXX_GTHREAD_USE_WEAK): Define.
1608         * configure.host (os_include_dir): Set to "os/generic" for linux-musl*.
1610 2015-04-22  Renlin Li  <renlin.li@arm.com>
1612         * testsuite/lib/dg-options.exp (dg-require-thread-fence): New.
1613         * testsuite/lib/libstdc++.exp (check_v3_target_thread_fence): New.
1614         * testsuite/29_atomics/atomic_flag/clear/1.cc: Use it.
1615         * testsuite/29_atomics/atomic_flag/test_and_set/explicit.cc: Likewise.
1616         * testsuite/29_atomics/atomic_flag/test_and_set/implicit.cc: Likewise.
1618 2015-04-21  Jonathan Wakely  <jwakely@redhat.com>
1620         * doc/xml/manual/configure.xml: Update descriptions of options
1621         affecting dual ABI and add cross-references.
1622         * doc/xml/manual/strings.xml: Clarify that string isn't COW now.
1623         * doc/xml/manual/using.xml: Document ABI transition.
1624         * doc/html/*: Regenerate.
1626         * doc/xml/manual/abi.xml: Use uppercase for C++ Standard Library.
1627         * doc/xml/manual/using.xml: Document newer -std options. Use better
1628         examples of nested namespaces.
1630 2015-04-20  Jonathan Wakely  <jwakely@redhat.com>
1632         * doc/xml/manual/concurrency_extensions.xml: Update documentation
1633         on atomics.
1634         * doc/xml/manual/using.xml: Likewise. Improve markup.
1635         * doc/html/*: Regenerate.
1637 2015-04-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1639         * scripts/extract_symvers.pl: Ignore elfdump error output.
1641 2015-04-14  Marc Glisse  <marc.glisse@inria.fr>
1643         PR libstdc++/61347
1644         * include/bits/stl_iterator_base_funcs.h (_List_iterator,
1645         _List_const_iterator): Declare.
1646         (__distance): Declare new overloads for _List_iterator and
1647         _List_const_iterator.
1648         * include/bits/stl_list.h (__distance): New overloads for
1649         _List_iterator and _List_const_iterator.
1650         * testsuite/23_containers/list/61347.cc: New testcase.
1652 2015-04-14  Jonathan Wakely  <jwakely@redhat.com>
1654         * doc/xml/manual/evolution.xml: Fix typos.
1655         * doc/html/manual/api.html: Regenerate.
1657 2015-04-14  Hans-Peter Nilsson  <hp@axis.com>
1659         * testsuite/29_atomics/atomic/62259.cc: Assert atomic
1660         alignment is larger-equal, not equal, to default alignment.
1662 2015-04-13  Jonathan Wakely  <jwakely@redhat.com>
1664         PR libstdc++/65754
1665         * config/abi/pre/gnu.ver: Export base object constructors for
1666         fstreams.
1667         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
1668         * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
1669         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
1670         * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
1671         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
1672         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
1673         * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update
1674         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
1675         * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
1676         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
1677         * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Update.
1678         * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
1679         * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
1680         * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
1681         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
1682         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
1683         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Update.
1684         * testsuite/27_io/basic_fstream/cons/base.cc: New.
1686 2015-04-13  Jonathan Wakely  <jwakely@redhat.com>
1688         * doc/xml/manual/evolution.xml: Document changes since 4.5 release.
1689         * doc/html/*: Regenerate.
1691 2015-04-12  Uros Bizjak  <ubizjak@gmail.com>
1693         * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
1695 2015-04-10  Andreas Schwab  <schwab@linux-m68k.org>
1697         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
1699         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
1701 2015-04-10  Jonathan Wakely  <jwakely@redhat.com>
1703         * doc/xml/manual/test.xml: Improve documentation on running a subset
1704         of tests.
1705         * doc/html/manual/test.html: Regenerate.
1707 2015-04-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1709         * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update
1710         for GCC 5.1 release.
1711         * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
1712         Likewise.
1714 2015-04-10  Jonathan Wakely  <jwakely@redhat.com>
1716         * include/std/shared_mutex (shared_timed_mutex): Add comments to
1717         explain the logic in the non-pthread_rwlock_t version.
1718         (_Mutex): Remove redundant type.
1719         (_M_n_readers): Rename to _S_max_readers.
1720         (_M_write_entered, _M_readers): New convenience functions.
1721         (lock, lock_shared, try_lock_shared, unlock_shared): Use convenience
1722         functions. Use predicates with condition variables. Simplify bitwise
1723         operations.
1724         (try_lock_for, try_shared_lock_for): Convert duration to time_point
1725         and call try_lock_until or try_shared_lock_until respectively.
1726         (try_lock_until, try_shared_lock_until): Wait on the condition
1727         variables until the specified time passes.
1728         (unlock): Add Debug Mode assertion.
1729         (unlock_shared): Add Debug Mode assertion.
1730         * testsuite/30_threads/shared_timed_mutex/try_lock/3.cc: New.
1732         * include/std/shared_mutex (shared_timed_mutex): Only use
1733         pthread_rwlock_t when the POSIX Timeouts option is supported.
1734         * testsuite/30_threads/shared_lock/cons/5.cc: Remove
1735         dg-require-gthreads-timed.
1736         * testsuite/30_threads/shared_lock/cons/6.cc: Likewise.
1737         * testsuite/30_threads/shared_lock/locking/3.cc: Likewise.
1738         * testsuite/30_threads/shared_lock/locking/4.cc: Likewise.
1740 2015-04-09  H.J. Lu  <hongjiu.lu@intel.com>
1742         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Update.
1744 2015-04-09  Jonathan Wakely  <jwakely@redhat.com>
1745             Richard Henderson  <rth@redhat.com>
1747         PR libstdc++/65147
1748         * include/bits/atomic_base.h (__atomic_base<_ITp>): Increase
1749         alignment.
1750         * include/std/atomic (atomic): For types with a power of two size set
1751         alignment to at least the size.
1752         * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
1753         * testsuite/29_atomics/atomic/65147.cc: New.
1754         * testsuite/29_atomics/atomic_integral/65147.cc: New.
1756 2015-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1758         * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
1759         * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
1760         * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
1762 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
1764         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
1765         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
1766         * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
1767         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
1768         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
1769         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
1770         * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Update.
1771         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
1773 2015-03-30  Jonathan Wakely  <jwakely@redhat.com>
1775         PR libstdc++/65630
1776         * config/abi/pre/gnu.ver: Export operator+ for new strings.
1777         * testsuite/21_strings/basic_string/operators/char/65630.cc: New.
1778         * testsuite/21_strings/basic_string/operators/wchar_t/65630.cc: New.
1780 2015-03-28  Tim Shen  <timshen@google.com>
1782         PR libstdc++/65420
1783         * include/bits/regex_constants.h: Use constexpr variables for flags.
1784         * testsuite/28_regex/constants/constexpr.cc: New testcase.
1786 2015-03-27  Jonathan Wakely  <jwakely@redhat.com>
1788         PR libstdc++/65499
1789         * include/std/chrono: Add using-directive for literals to std::chrono.
1790         * testsuite/20_util/duration/literals/65499.cc: New.
1792 2015-03-26  Jonathan Wakely  <jwakely@redhat.com>
1794         PR libstdc++/58038
1795         PR libstdc++/60421
1796         * include/std/thread (this_thread::sleep_for): Check for negative
1797         durations.
1798         (this_thread::sleep_until): Check for times in the past.
1799         * testsuite/30_threads/this_thread/58038.cc: New.
1800         * testsuite/30_threads/this_thread/60421.cc: New.
1802 2015-03-26  Jonathan Wakely  <jwakely@redhat.com>
1804         PR libstdc++/62259
1805         PR libstdc++/65147
1806         * include/std/atomic (atomic<T>): Increase alignment for types with
1807         the same size as one of the integral types.
1808         * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
1809         * testsuite/29_atomics/atomic/62259.cc: New.
1811 2015-03-26  Richard Henderson  <rth@redhat.com>
1813         PR libstdc++/65033
1814         * include/bits/atomic_base.h (__atomic_base<T>::is_lock_free): Build
1815         a fake pointer indicating type alignment.
1816         (__atomic_base<T *>::is_lock_free): Likewise.
1817         * include/std/atomic (atomic<T>::is_lock_free): Likewise.
1819 2015-03-25  Alan Lawrence  <alan.lawrence@arm.com>
1821         PR libstdc++/33394
1822         * testsuite/21_strings/basic_string/pthread33394.cc: Use
1823         dg-additional-options.
1825 2015-03-25  Paolo Carlini  <paolo.carlini@oracle.com>
1827         PR libstdc++/65543
1828         * include/std/istream (operator>>(basic_istream<>&&, _Tp&): Revert
1829         thinko in r150387.
1830         * include/std/ostream (operator<<(basic_ostream<>&&, const _Tp&):
1831         Likewise.
1832         * testsuite/27_io/rvalue_streams-2.cc: New.
1834 2015-03-24  Jonathan Wakely  <jwakely@redhat.com>
1836         PR libstdc++/33394
1837         * testsuite/21_strings/basic_string/pthread33394.cc: Add test.
1839 2015-03-23  Jonathan Wakely  <jwakely@redhat.com>
1841         PR libstdc++/64967
1842         * acinclude.m4: Disable dual ABI when gnu-versioned-namespace in use.
1843         * configure: Regenerate.
1844         * src/c++11/compatibility-c++0x.cc (error_category), generic_category,
1845         system_category): Use macros for versioned namespace.
1846         * src/c++11/futex.cc: Add missing end macro for versioned namespace.
1848 2015-03-20  James Greenhalgh  <james.greenhalgh@arm.com>
1850         * testsuite/17_intro/headers/c++1998/all_attributes.cc: Disable
1851         test for unused for ARM.
1852         * testsuite/17_intro/headers/c++200x/all_attributes.cc: Likewise.
1853         * testsuite/17_intro/headers/c++2014/all_attributes.cc: Likewise.
1855 2015-03-20  Jonathan Wakely  <jwakely@redhat.com>
1857         * include/bits/c++config (__gnu_cxx::__cxx11): Define new namespace.
1858         * include/ext/codecvt_specializations.h (encoding_state,
1859         encoding_char_traits): Remove abi-tag and use inline namespace.
1860         * testsuite/ext/profile/mutex_extensions_neg.cc: Adjust dg-error line.
1862 2015-03-19  Jason Merrill  <jason@redhat.com>
1864         * config/locale/gnu/messages_members.cc: Revert abi-tag change.
1865         * src/c++11/cxx11-shim_facets.cc: Revert abi-tag change.
1867 2015-03-18  Jonathan Wakely  <jwakely@redhat.com>
1869         PR c++/65046
1870         * config/locale/gnu/messages_members.cc (Catalog_info, Catalogs,
1871         get_catalogs): Add abi-tag.
1872         * include/ext/codecvt_specializations.h (encoding_state,
1873         encoding_char_traits): Likewise.
1874         * src/c++11/cxx11-ios_failure.cc (io_error_category): Likewise.
1875         * src/c++11/cxx11-shim_facets.cc (__any_string::operator basic_string,
1876         numpunct_shim, collate_shim, time_get_shim, moneypunct_shim,
1877         money_get_shim, money_put_shim, messages_shim): Likewise.
1878         * src/c++11/future.cc (future_error_category::message): Likewise.
1879         * src/c++11/system_error.cc (generic_error_category::message,
1880         system_error_category::message): Likewise.
1881         (__sso_string): Disable -Wabi-tag warnings.
1883 2015-03-18  Jonathan Wakely  <jwakely@redhat.com>
1885         PR libstdc++/13631
1886         * config/locale/gnu/messages_members.cc (get_glibc_msg): Fix fallback
1887         implementation for old glibc. Fix whitespace.
1889 2015-03-18  Jonathan Wakely  <jwakely@redhat.com>
1890             Torvald Riegel  <triegel@redhat.com>
1892         * acinclude.m4 (GLIBCXX_CHECK_GTHREADS): Check for pthread_rwlock_t.
1893         * config.h.in: Regenerate.
1894         * configure: Regenerate.
1895         * include/std/shared_mutex: Check _GLIBCXX_USE_PTHREAD_RWLOCK_T.
1896         (shared_timed_mutex::_M_rwlock): Use PTHREAD_RWLOCK_INITIALIZER.
1897         (shared_timed_mutex::lock_shared()): Retry on EAGAIN.
1898         (shared_timed_mutex::try_lock_shared_until()): Retry on EAGAIN and
1899         EDEADLK.
1901 2015-03-17  Jonathan Wakely  <jwakely@redhat.com>
1903         * libsupc++/nested_exception.h: Do not try to derive from final
1904         classes.
1905         * testsuite/18_support/nested_exception/throw_with_nested.cc: Test
1906         final class.
1908         * testsuite/30_threads/shared_lock/modifiers/1.cc: Remove name of
1909         unused exception variable.
1910         * testsuite/30_threads/unique_lock/modifiers/1.cc: Likewise.
1911         * testsuite/30_threads/shared_lock/modifiers/2.cc: Remove duplicate
1912         test.
1913         * testsuite/30_threads/unique_lock/modifiers/2.cc: Likewise.
1915 2015-03-13  Jonathan Wakely  <jwakely@redhat.com>
1917         * acinclude.m4: Make --enable-libstdcxx-time=auto work for dragonfly.
1918         * configure: Regenerate.
1920         * include/experimental/system_error: Fix include guard.
1922 2015-03-12  Renlin Li  <renlin.li@arm.com>
1924         * testsuite/27_io/ios_base/sync_with_stdio/1.cc: Remove xfail for
1925         wrapped target.
1927 2015-03-10  Tim Shen  <timshen@google.com>
1929         PR libstdc++/64441
1930         * include/bits/regex.h (match_results<>::size,
1931         match_results<>::position, match_results<>::str,
1932         match_results<>::operator[], match_results<>::prefix,
1933         match_results<>::suffix, match_results<>::end,
1934         match_results<>::_M_resize, match_results<>::_M_unmatched_sub,
1935         match_results<>::_M_prefix, match_results<>::_M_suffix): Remove
1936         global __unmatched_sub. Add unmatched submatch as part of
1937         match_results.
1938         * include/bits/regex.tcc (__regex_algo_impl<>, regex_replace<>,
1939         regex_iterator<>::operator++): Adjust to use match_results::_M_prefix.
1940         * testsuite/28_regex/match_results/out_of_range_submatches.cc:
1941         New testcases.
1943 2015-03-09  Jonathan Wakely  <jwakely@redhat.com>
1945         PR libstdc++/64467
1946         * testsuite/28_regex/traits/char/isctype.cc: Don't test newline
1947         for newlib targets. Really fix mixed line-endings this time.
1949 2015-03-06  Jonathan Wakely  <jwakely@redhat.com>
1951         * include/std/future (future_error(error_code)): Construct base
1952         class with error_code's message.
1953         * src/c++11/future.cc (future_error::what()): Do not call c_str() on
1954         temporary string.
1956 2015-03-05  Jonathan Wakely  <jwakely@redhat.com>
1958         * include/bits/locale_conv.h (wstring_convert::_M_conv): Handle
1959         noconv result.
1960         * testsuite/22_locale/conversions/string/2.cc: Also test UTF-8.
1961         * testsuite/22_locale/conversions/string/3.cc: Likewise, and UTF-16.
1963 2015-03-04  Jonathan Wakely  <jwakely@redhat.com>
1965         PR libstdc++/64797
1966         * include/bits/locale_conv.h (wstring_convert::_M_conv): Handle
1967         incomplete multibyte sequences correctly.
1968         * include/std/codecvt (codecvt_utf8, codecvt_utf16,
1969         codecvt_utf8_utf16): Limit _Maxcode to maximum Unicode code point.
1970         * src/c++11/codecvt.cc (invalid_mb_sequence, incomplete_mb_character):
1971         Define constants.
1972         (is_high_surrogate, is_low_surrogate, surrogate_pair_to_code_point):
1973         Define convenience functions.
1974         (read_utf8_code_point): Return relevant constant to distinguish
1975         incomplete characters from invalid sequences.
1976         (read_utf16_code_point): Likewise. Check for invalid sequences.
1977         (ucs4_in, utf16_in): Use incomplete_mb_character constant.
1978         (utf16_out): Check for invalid sequences.
1979         (utf16_span): Fix condition.
1980         (ucs2_out): Use is_high_surrogate.
1981         (ucs2_in): Use incomplete_mb_character constant and fix condition.
1982         * testsuite/22_locale/codecvt/char16_t.cc: Fix whitespace.
1983         * testsuite/22_locale/conversions/buffer/1.cc: New.
1984         * testsuite/22_locale/conversions/string/2.cc: Use char16_t and
1985         char32_t instead of wchar_t.
1986         * testsuite/22_locale/conversions/string/3.cc: New.
1988 2015-03-03  Iain Sandoe  <iain@codesourcery.com>
1990         PR libstdc++/64883
1991         * testsuite/17_intro/headers/c++1998/all_attributes.cc: Don't check
1992         visibility for Darwin.
1993         * testsuite/17_intro/headers/c++200x/all_attributes.cc: Likewise, and
1994         also deprecated.
1995         * testsuite/17_intro/headers/c++2014/all_attributes.cc: Likewise.
1997 2015-03-02  Jonathan Wakely  <jwakely@redhat.com>
1999         PR libstdc++/65279
2000         * include/std/scoped_allocator (__inner_type_impl,
2001         scoped_allocator_adaptor): Add defaulted copy assignment and move
2002         assignment operators.
2003         * testsuite/20_util/scoped_allocator/65279.cc: New.
2005 2015-03-02  Jonathan Wakely  <jwakely@redhat.com>
2007         PR libstdc++/64367
2008         * include/std/stdexcept (__sso_string): Don't use non-static member
2009         in sizeof.
2011 2015-02-28  Matthias Klose  <doko@ubuntu.com>
2013         PR libstdc++/65246
2014         * python/libstdcxx/v6/__init__.py: Use explicit relative imports.
2016 2015-02-22  Jonathan Wakely  <jwakely@redhat.com>
2018         * doc/xml/manual/status_cxx2011.xml: Remove duplicated information.
2019         * doc/html/manual/status.html: Regenerate.
2021 2015-02-20  Jonathan Wakely  <jwakely@redhat.com>
2023         PR libstdc++/64695
2024         * python/libstdcxx/v6/printers.py (StdTuplePrinter): Handle new
2025         tuple layout.
2027         * doc/xml/manual/status_cxx2011.xml: Document implementation-defined
2028         behavior.
2029         * doc/html/manual/status.html: Regenerate.
2031 2015-02-19  Jonathan Wakely  <jwakely@redhat.com>
2033         PR libstdc++/58357
2034         * include/bits/algorithmfwd.h (rotate): Move to inline namespace _V2.
2035         * include/bits/stl_algo.h (__rotate, rotate): Likewise.
2037 2015-02-19  Hans-Peter Nilsson  <hp@axis.com>
2039         PR testsuite/65093
2040         * testsuite/26_numerics/random/binomial_distribution/operators/values.cc
2041         (test01): Add explanatory comment.  Keep only the bd1 sub-test and
2042         split out bd2, bd3, bd4, and bd5 sub-tests into...
2043         * testsuite/26_numerics/random/binomial_distribution/operators/values2.cc,
2044         testsuite/26_numerics/random/binomial_distribution/operators/values3.cc,
2045         testsuite/26_numerics/random/binomial_distribution/operators/values4.cc,
2046         testsuite/26_numerics/random/binomial_distribution/operators/values5.cc:
2047         New separate files with the old parts.
2049 2015-02-18  Jonathan Wakely  <jwakely@redhat.com>
2051         * src/c++11/codecvt.cc (write_utf16_code_point): Fix code to output
2052         surrogate pairs.
2053         (utf16_in): Pass mode argument to write_utf16_code_point.
2054         (codecvt<char16_t, char, mbstate_t>::do_in): Set mode according to
2055         native byte order.
2056         * testsuite/22_locale/codecvt/char16_t.cc: New.
2057         * testsuite/22_locale/codecvt/in/wchar_t/1.cc: Fix typo.
2059         * testsuite/22_locale/codecvt/char16_t.cc: Add dg-require-cstdint.
2060         * testsuite/22_locale/codecvt/char32_t.cc: Likewise.
2062 2015-02-17  Rüdiger Sonderfeld  <ruediger@c-plusplus.de>
2063             Jonathan Wakely  <jwakely@redhat.com>
2065         * testsuite/22_locale/codecvt/char32_t.cc: New.
2067 2015-02-17  Jonathan Wakely  <jwakely@redhat.com>
2069         PR libstdc++/65085
2070         * include/bits/basic_string.h (basic_string(basic_string&&)): Ensure
2071         empty string gets null-terminated.
2072         * testsuite/21_strings/basic_string/cons/char/65085.cc: New.
2074 2015-02-13  Matthew Wahab  <matthew.wahab@arm.com>
2076         * testsuite/28_regex/traits/char/isctype.cc (test01): Fix
2077         mixed line-endings introduced in last change.
2079 2015-02-12  Matthew Wahab  <matthew.wahab@arm.com>
2081         * testsuite/28_regex/traits/char/isctype.cc (test01): Replace test
2082         for __NEWLIB__ macro with a dejagnu set macro.
2083         * testsuite/28_regex/traits/wchar_t/isctype.cc (test01): Likewise.
2085 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
2087         PR libstdc++/64467
2088         * testsuite/28_regex/traits/char/isctype.cc (test01):   Add newlib
2089         special case for '\n'.
2090         * testsuite/28_regex/traits/wchar_t/isctype.cc (test01): Likewise.
2092 2015-02-01  Jonathan Wakely  <jwakely@redhat.com>
2094         * src/c++11/futex.cc: Do not define for gthr-single.h targets.
2096 2015-02-01  Jonathan Wakely  <jwakely@redhat.com>
2098         PR libstdc++/64883
2099         * include/c_global/cstdio (gets): Use __deprecated__ attribute instead
2100         of deprecated.
2101         * include/c_std/cstdio (gets): Likewise.
2102         * testsuite/17_intro/headers/c++1998/all_attributes.cc: Avoid clashing
2103         with attributes used in darwin headers.
2105 2015-01-29  Jakub Jelinek  <jakub@redhat.com>
2107         * acinclude.m4 (VTV_CYGMIN): Use x$vtv_cygmin = xyes instead of
2108         $vtv_cygmin = yes.  Initialize vtv_cygmin=no unconditionally first.
2109         * configure: Regenerated.
2111 2015-01-29  H.J. Lu  <hongjiu.lu@intel.com>
2113         * acinclude.m4 (GLIBCXX_ENABLE_VTABLE_VERIFY): Define VTV_CYGMIN
2114         after vtv_cygmin is set.
2115         * configure: Regenerated.
2117 2015-01-29  Matthias Klose  <doko@ubuntu.com>
2119         * acinclude.m4 (GLIBCXX_ENABLE_VTABLE_VERIFY): Define VTV_CYGMIN
2120         unconditionally.
2121         * configure: Regenerate.
2123 2015-01-29  Caroline Tice  <cmtice@google.com>
2125         Committing VTV Cywin/Ming patch for Patrick Wollgast
2126         * configure: Regenerate.
2127         * libsupc++/Makefile.in: Regenerate.
2128         * src/Makefile.in: Regenerate.
2130 2015-01-29  Jonathan Wakely  <jwakely@redhat.com>
2132         * include/bits/atomic_base.h: Use __always_inline__ instead of
2133         always_inline.
2134         * include/bits/atomic_futex.h: Likewise.
2135         * include/bits/c++config: Use __abi_tag__ instead of abi_tag.
2136         * include/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp: Use
2137         __packed__ instead of packed.
2138         * include/std/shared_mutex: Use __unused__ instead of unused.
2139         * testsuite/17_intro/headers/c++1998/all_attributes.cc: New.
2140         * testsuite/17_intro/headers/c++200x/all_attributes.cc: New.
2141         * testsuite/17_intro/headers/c++2014/all_attributes.cc: New.
2143 2015-01-28  Caroline Tice  <cmtice@google.com>
2145         Committing VTV Cywin/Ming patch for Patrick Wollgast
2146         * acinclude.m4: Define VTV_CYGMIN.
2147         * libsupc++/Makefile.am: Add vtv_sources only to libsupc___la_SOURCES
2148         and libsupc__convenience_la_SOURCES if VTV_CYGMIN is not set.
2149         * libsupc++/vtv_stubs.cc: Add none weak declaration of every function
2150         for Cygwin and MinGW.
2151         * src/Makefile.am: Add libvtv.la to toolexeclib_LTLIBRARIES, if
2152         VTV_CYGMIN is set. Define libvtv_la_SOURCES, libvtv_la_LDFLAGS,
2153         libvtv_la_AM_CXXFLAGS and libvtv_la_LINK if VTV_CYGMIN is set.
2155 2015-01-28  Jonathan Wakely  <jwakely@redhat.com>
2157         PR libstdc++/64828
2158         * libsupc++/Makefile.am: Compile del_opvs.cc as C++14.
2159         * libsupc++/Makefile.in: Regenerate.
2160         * src/c++11/Makefile.in: Regenerate.
2162 2015-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2164         * testsuite/lib/libstdc++.exp (v3_target_compile): Remove
2165         check for unsupported.
2166         (v3_target_compile_as_c): Likewise.
2168 2015-01-28  Richard Biener  <rguenther@suse.de>
2170         PR libstdc++/64798
2171         * libsupc++/eh_alloc.cc (struct allocated_entry): Align
2172         data member.
2173         (pool::allocate): Adjust allocation size and alignment to
2174         that change.
2175         (pool::free): Adjust pointer offsetting.
2177 2015-01-27  Jonathan Wakely  <jwakely@redhat.com>
2179         PR libstdc++/64368
2180         * include/std/shared_mutex (shared_timed_mutex::try_lock_for,
2181         shared_timed_mutex::try_lock_until): Only define when POSIX thread
2182         timeouts option is supported.
2183         (shared_timed_mutex::try_shared_lock_for,
2184         shared_timed_mutex::try_shared_lock_until): Likewise.
2186 2015-01-26  Jonathan Wakely  <jwakely@redhat.com>
2188         PR libstdc++/64368
2189         * config/locale/gnu/numeric_members.cc (numpunct<char>::~numpunct(),
2190         numpunct<wchar_t>::~numpunct()): Do not set _M_data->_M_grouping.
2191         * src/c++11/cxx11-shim_facets.cc (numpunct_shim): Remove _M_grouping
2192         and use cache's _M_grouping field.
2193         (__numpunct_fill_cache): Likewise.
2194         (__moneypunct_fill_cache): Improve comments.
2196 2015-01-26  Jonathan Wakely  <jwakely@redhat.com>
2198         * testsuite/23_containers/set/operations/2.cc: Add test for
2199         non-transparent comparison function.
2201 2015-01-25  Oleg Endo  <olegendo@gcc.gnu.org>
2203         PR target/29366
2204         * config/cpu/sh/atomicity.h (__exchange_and_add, __atomic_add): 
2205         Remove SH4A inline asm and lock based implementations and use the
2206         defaults from ext/atomicity.h.
2208 2015-01-23  Jonathan Wakely  <jwakely@redhat.com>
2210         * config/abi/pre/gnu.ver: Tighten GLIBCXX_3.4 patterns to not match
2211         new std::string constructors for byname facets.
2213 2015-01-22  Richard Biener  <rguenther@suse.de>
2215         PR libstdc++/64535
2216         * libsupc++/eh_alloc.cc: Include new.
2217         (bitmask_type): Remove.
2218         (one_buffer): Likewise.
2219         (emergency_buffer): Likewise.
2220         (emergency_used): Likewise.
2221         (dependents_buffer): Likewise.
2222         (dependents_used): Likewise.
2223         (class pool): New custom fixed-size arena, variable size object
2224         allocator.
2225         (emergency_pool): New global.
2226         (__cxxabiv1::__cxa_allocate_exception): Use new emergency_pool.
2227         (__cxxabiv1::__cxa_free_exception): Likewise.
2228         (__cxxabiv1::__cxa_allocate_dependent_exception): Likewise.
2229         (__cxxabiv1::__cxa_free_dependent_exception): Likewise.
2231 2015-01-22  Tim Shen  <timshen@google.com>
2233         PR libstdc++/64680
2234         * include/bits/regex.h (basic_regex<>::basic_regex,
2235         basic_regex<>::operator=, basic_regex<>::imbue): Conform to the
2236         standard interface.
2237         * testsuite/28_regex/basic_regex/assign/char/cstring.cc: New testcase.
2239 2015-01-22  Tim Shen  <timshen@google.com>
2241         PR libstdc++/64649
2242         * include/bits/regex.tcc (regex_traits<>::lookup_collatename,
2243         regex_traits<>::lookup_classname): Correctly narrow input chars.
2244         * testsuite/28_regex/traits/wchar_t/user_defined.cc: New testcase.
2246 2015-01-21  Jonathan Wakely  <jwakely@redhat.com>
2248         * config/abi/pre/gnu.ver: Use [jmy] for size_t parameters.
2250 2015-01-21  Jonathan Wakely  <jwakely@redhat.com>
2252         * testsuite/29_atomics/atomic/64658.cc: Test stored value.
2254 2015-01-20  Jonathan Wakely  <jwakely@redhat.com>
2256         * doc/xml/manual/status_cxx2011.xml: Remove stray dbhtml tags.
2257         * doc/xml/manual/status_cxx2014.xml: Update status.
2258         * doc/html/manual/status.html: Regenerate.
2260 2015-01-20  Jonathan Wakely  <jwakely@redhat.com>
2262         PR libstdc++/64650
2263         * include/experimental/optional (bad_optional_access): Add default
2264         constructor.
2265         * testsuite/experimental/optional/requirements.cc: Test for default
2266         constructor.
2268 2015-01-20  Jonathan Wakely  <jwakely@redhat.com>
2270         * include/bits/stl_map.h (map::find<>, map::count<>,
2271         map::lower_bound<>, map::upper_bound<>, map::equal_range<>): New
2272         member function templates to perform heterogeneous lookup.
2273         * include/bits/stl_multimap.h (multimap::find<>, multimap::count<>,
2274         multimap::lower_bound<>, multimap::upper_bound<>,
2275         multimap::equal_range<>): Likewise.
2276         * include/bits/stl_multiset.h (multiset::find<>, multiset::count<>,
2277         multiset::lower_bound<>, multiset::upper_bound<>,
2278         multiset::equal_range<>): Likewise.
2279         * include/bits/stl_set.h (set::find<>, set::count<>,
2280         set::lower_bound<>, set::upper_bound<>, set::equal_range<>): Likewise.
2281         * include/bits/stl_tree.h (_Rb_tree::_S_lower_bound_tr,
2282         _Rb_tree::_S_upper_bound_tr, _Rb_tree::_M_find_tr,
2283         _Rb_tree::_M_count_tr, _Rb_tree::_M_lower_bound_tr,
2284         _Rb_tree::_M_upper_bound_tr, _Rb_tree::_M_equal_range_tr): Likewise.
2285         * testsuite/23_containers/map/operations/2.cc: New.
2286         * testsuite/23_containers/multimap/operations/2.cc: New.
2287         * testsuite/23_containers/multiset/operations/2.cc: New.
2288         * testsuite/23_containers/set/operations/2.cc: New.
2290 2015-01-20  Jonathan Wakely  <jwakely@redhat.com>
2292         * config/abi/pre/gnu.ver: Export new constructors.
2293         * include/bits/codecvt.h (codecvt_byname): Add string constructor.
2294         (codecvt_byname<char16_t>, codecvt_byname<char32_t>): Define explicit
2295         specializations and declare explicit instantiations.
2296         * include/bits/locale_classes.h (locale, collate_byname): Add string
2297         constructors.
2298         * include/bits/locale_facets.h (ctype_byname, numpunct_byname):
2299         Likewise.
2300         * include/bits/locale_facets_nonio.h (time_get_byname,
2301         time_put_byname, moneypunct_byname, messages_byname): Likewise.
2302         * src/c++11/codecvt.cc (codecvt_byname<char16_t>,
2303         codecvt_byname<char32_t>): Define explicit instantiations.
2304         * src/c++11/locale-inst.cc (time_put_byname, codecvt_byname):
2305         Instantiate string constructors.
2306         (ctype_byname): Define string constructor.
2307         * testsuite/22_locale/codecvt_byname/1.cc: New.
2308         * testsuite/22_locale/collate_byname/1.cc: New.
2309         * testsuite/22_locale/ctype_byname/2.cc: New.
2310         * testsuite/22_locale/messages_byname/1.cc: New.
2311         * testsuite/22_locale/moneypunct_byname/1.cc: New.
2312         * testsuite/22_locale/numpunct_byname/1.cc: New.
2314 2015-01-20  Jonathan Wakely  <jwakely@redhat.com>
2316         PR libstdc++/64658
2317         * include/std/atomic (atomic_init): Define.
2318         * testsuite/29_atomics/atomic/64658.cc: New.
2320 2015-01-19  Tim Shen  <timshen@google.com>
2322         PR libstdc++/64649
2323         * include/bits/regex.tcc (regex_traits<>::lookup_collatename,
2324         regex_traits<>::lookup_classname): Support forward iterators.
2325         * testsuite/28_regex/traits/char/lookup_classname.cc: New testcases.
2326         * testsuite/28_regex/traits/char/lookup_collatename.cc: New testcase.
2328 2015-01-19  Tim Shen  <timshen@google.com>
2330         PR libstdc++/64584
2331         PR libstdc++/64585
2332         * include/bits/regex.h (basic_regex<>::basic_regex,
2333         basic_regex<>::assign, basic_regex<>::imbue,
2334         basic_regex<>::swap, basic_regex<>::mark_count): Drop NFA after
2335         imbuing basic_regex; Make assign() transactional against exception.
2336         * include/bits/regex_compiler.h (__compile_nfa<>): Add back
2337         __compile_nfa SFINAE.
2338         * include/std/regex: Adjust include order to avoid __compile_nfa
2339         forward declaration.
2340         * testsuite/28_regex/basic_regex/assign/char/string.cc: New testcase.
2341         * testsuite/28_regex/basic_regex/imbue/string.cc: New testcase.
2343 2015-01-19  Ville Voutilainen  <ville.voutilainen@gmail.com>
2344             Jonathan Wakely  <jwakely@redhat.com>
2346         * include/bits/range_access.h (begin, end): Use _GLIBCXX14_CONSTEXPR
2347         on overloads for arrays.
2348         (cbegin, cend, rbegin, rend, crbegin, crend): New.
2349         * testsuite/24_iterators/range_access_cpp14.cc: New.
2351 2015-01-18  Jonathan Wakely  <jwakely@redhat.com>
2353         PR libstdc++/64646
2354         * include/bits/stl_algo.h (__is_permutation): Also test for reaching
2355         end of the second range.
2356         * testsuite/25_algorithms/is_permutation/64646.cc: New.
2358 2015-01-18  Jonathan Wakely  <jwakely@redhat.com>
2360         * doc/xml/manual/status_cxx2011.xml: Remove note about offsetof.
2361         * doc/html/manual/status.html: Regenerate.
2363 2015-01-18  Jonathan Wakely  <jwakely@redhat.com>
2365         * include/bits/atomic_futex.h: Use mutex and condition_variable when
2366         atomic int is not lock-free. Make member variables private.
2367         * src/c++11/futex.cc: Likewise.
2369         * src/c++11/futex.cc: Fix order of includes and preprocessor condition.
2371 2015-01-17  Jonathan Wakely  <jwakely@redhat.com>
2373         PR libstdc++/64638
2374         * include/bits/atomic_futex.h: Use appropriate config macros for
2375         availability of std::mutex, std::condition and std::chrono.
2377 2015-01-17  Ville Voutilainen  <ville.voutilainen@gmail.com>
2378             Jonathan Wakely  <jwakely@redhat.com>
2380         * doc/xml/manual/status_cxx2011.xml: Update C++11 status.
2381         * doc/html/*: Regenerate.
2383 2015-01-17  Jonathan Wakely  <jwakely@redhat.com>
2385         DR 488
2386         PR libstdc++/58357
2387         * include/bits/algorithmfwd.h (rotate): Return an iterator.
2388         * include/bits/stl_algo.h (rotate, __rotate): Likewise.
2389         * testsuite/25_algorithms/rotate/dr488.cc: New.
2390         * testsuite/25_algorithms/rotate/check_type.cc: Adjust function type.
2391         * testsuite/25_algorithms/rotate/requirements/explicit_instantiation/
2392         2.cc: Likewise.
2393         * testsuite/25_algorithms/rotate/requirements/explicit_instantiation/
2394         pod.cc: Likewise.
2396 2015-01-17  Jonathan Wakely  <jwakely@redhat.com>
2398         PR libstdc++/60940
2399         * include/bits/atomic_base.h: Remove atomic integral typedefs as
2400         synonyms for __atomic_base<int> etc.
2401         * include/std/atomic: Make atomic_int a synonym for atomic<int> and
2402         likewise for all atomic integral types.
2403         * testsuite/29_atomics/atomic_integral/cons/copy_list.cc: New.
2404         * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
2406 2015-01-17  Jonathan Wakely  <jwakely@redhat.com>
2408         PR libstdc++/56785
2409         * include/std/tuple (_Tuple_impl): Remove zero-element specialization
2410         and define one-element specialization.
2411         * testsuite/20_util/tuple/56785.cc: New.
2413 2015-01-17  Jonathan Wakely  <jwakely@redhat.com>
2415         * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc:
2416         Remove unused header.
2417         * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
2418         Likewise.
2419         * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
2420         Likewise.
2422 2015-01-16  Jonathan Wakely  <jwakely@redhat.com>
2424         * include/bits/locale_conv.h (wstring_convert, wbuffer_convert): New.
2425         * include/std/locale: Include new header.
2426         * include/Makefile.am: Add it.
2427         * include/Makefile.in: Regenerate.
2428         * testsuite/22_locale/conversions/buffer/requirements/typedefs.cc: New.
2429         * testsuite/22_locale/conversions/string/1.cc: New.
2430         * testsuite/22_locale/conversions/string/2.cc: New.
2431         * testsuite/22_locale/conversions/string/requirements/typedefs.cc: New.
2432         * testsuite/22_locale/conversions/string/requirements/typedefs-2.cc:
2433         New.
2435 2015-01-16  Jonathan Wakely  <jwakely@redhat.com>
2437         * config/abi/pre/gnu.ver: Export new symbols.
2438         * include/Makefile.am: Add codecvt.
2439         * include/Makefile.in: Regenerate.
2440         * include/std/codecvt: New header.
2441         * src/c++11/codecvt.cc (__codecvt_utf8_base, __codecvt_utf16_base,
2442         __codecvt_utf8_utf16_base): Define specializations.
2443         * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc: New.
2444         * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc: New.
2445         * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
2446         New.
2448 2015-01-16  Torvald Riegel  <triegel@redhat.com>
2450         * src/c++11/futex.cc: New file.
2451         * include/bits/atomic_futex.h: New file.
2452         * include/std/future (__future_base::_State_baseV2): Use
2453         atomic_futex_unsigned instead of mutex+condvar.
2454         * src/c++11/futex.cc: Likewise.
2455         * include/Makefile.am: Add atomic_futex.h.
2456         * include/Makefile.in: Likewise.
2457         * src/c++11/Makefile.am: Add futex.cc.
2458         * src/c++11/Makefile.in: Likewise.
2460 2015-01-16  Jonathan Wakely  <jwakely@redhat.com>
2462         * acinclude.m4: Fix typo in comment.
2463         * configure: Regenerate.
2464         * include/bits/codecvt.h (codecvt<char16_t, char, mbstate_t>,
2465         codecvt<char16_t, char, mbstate_t>): Declare specializations.
2466         * include/bits/locale_facets.h: Reserve space for new specializations.
2467         * src/c++11/Makefile.am: Add codecvt.cc.
2468         * src/c++11/Makefile.in: Regenerate.
2469         * src/c++11/codecvt.cc: New.
2470         * src/c++98/Makefile.am: Compile locale_init.cc and localename.cc
2471         with -std=gnu++11.
2472         * src/c++98/Makefile.in: Regenerate.
2473         * src/c++98/locale_init.cc: Initialize new codecvt specializations.
2474         * src/c++98/localename.cc: Likewise.
2475         * config/abi/pre/gnu.ver: Exports for new codecvt specializations.
2476         * testsuite/22_locale/codecvt/utf8.cc: New.
2477         * testsuite/22_locale/locale/cons/unicode.cc: Check that new
2478         specializations are installed in locale objects.
2480 2015-01-16  Torvald Riegel  <triegel@redhat.com>
2482         * include/std/shared_mutex (shared_timed_mutex): Add POSIX-based
2483         implementation.
2485 2015-01-13  Jonathan Wakely  <jwakely@redhat.com>
2487         PR libstdc++/64571
2488         * config/abi/pre/gnu.ver: Export fstream functions using new string.
2490 2015-01-12  Jonathan Wakely  <jwakely@redhat.com>
2492         PR libstdc++/64560
2493         * src/c++11/cxx11-shim_facets.cc (locale::facet::_M_sso_shim): Check
2494         for RTTI support.
2496         PR libstdc++/64553
2497         * src/c++11/cxx11-shim_facets.cc: Check for wchar_t support.
2499 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
2501         * doc/xml/manual/parallel_mode.xml: Update for libgomp being
2502         renamed from "GNU OpenMP Runtime Library" to "GNU Offloading and
2503         Multi Processing Runtime Library".
2505 2015-01-09  Jonathan Wakely  <jwakely@redhat.com>
2507         PR libstdc++/64476
2508         * include/bits/stl_uninitialized.h (uninitialized_copy): Fix
2509         is_assignable arguments.
2510         * testsuite/20_util/specialized_algorithms/uninitialized_copy/64476.cc:
2511         New.
2513 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
2515         * libsupc++/unwind-cxx.h: Revert previous commit.
2517 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
2519         * configure.host: Add arm*-*-freebsd* port_specific_symbol_files.
2521 2015-01-09  Tim Shen  <timshen@google.com>
2523         PR libstdc++/64239
2524         * include/bits/regex.h (match_results<>::swap): Use std::swap
2525         instead of swap.
2526         * include/bits/regex_compiler.tcc (_Compiler<>::_M_quantifier):
2527         Likewise.
2528         * testsuite/28_regex/match_results/swap.cc: New testcase.
2530 2015-01-08  Jonathan Wakely  <jwakely@redhat.com>
2532         PR libstdc++/60132
2533         * include/std/type_traits (has_trivial_default_constructor,
2534         has_trivial_copy_constructor, has_trivial_copy_assign): Add deprecated
2535         attribute.
2536         * testsuite/20_util/has_trivial_copy_assign/requirements/
2537         explicit_instantiation.cc: Use -Wno-deprecated.
2538         * testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc:
2539         Likewise.
2540         * testsuite/20_util/has_trivial_copy_assign/value.cc: Likewise.
2541         * testsuite/20_util/has_trivial_copy_constructor/requirements/
2542         explicit_instantiation.cc: Likewise.
2543         * testsuite/20_util/has_trivial_copy_constructor/requirements/
2544         typedefs.cc: Likewise.
2545         * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise.
2546         * testsuite/20_util/has_trivial_default_constructor/requirements/
2547         explicit_instantiation.c: Likewise.
2548         * testsuite/20_util/has_trivial_default_constructor/requirements/
2549         typedefs.cc: Likewise.
2550         * testsuite/20_util/has_trivial_default_constructor/value.cc:
2551         Likewise.
2552         * testsuite/20_util/pair/requirements/dr801.cc: Replace deprecated
2553         trait.
2554         * testsuite/20_util/tuple/requirements/dr801.cc: Likewise.
2555         * testsuite/util/testsuite_common_types.h: Likewise.
2557 2015-01-08  Jonathan Wakely  <jwakely@redhat.com>
2559         * include/bits/hashtable_policy.h: Use __bool_constant.
2561 2015-01-07  Jonathan Wakely  <jwakely@redhat.com>
2563         * libsupc++/Makefile.am: Compile del_ops.cc as C++14.
2564         * libsupc++/Makefile.in: Regenerate.
2566 2015-01-06  Jonathan Wakely  <jwakely@redhat.com>
2568         * config/abi/pre/gnu.ver: Fix version conflict for std::locale::name().
2570 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
2572         Update copyright years.
2574 2015-01-04  Jonathan Wakely  <jwakely@redhat.com>
2576         PR libstdc++/64483
2577         * testsuite/18_support/exception_ptr/64241.cc: Use
2578         dg-require-atomic-builtins.
2580 2015-01-02  Jonathan Wakely  <jwakely@redhat.com>
2582         * testsuite/21_strings/basic_string/modifiers/64422.cc: Fix copyright
2583         date.
2585 2015-01-02  Tim Shen  <timshen@google.com>
2587         PR libstdc++/64475
2588         * include/bits/regex_executor.tcc (_Executor<>::_M_dfs): Copy the
2589         iterator, since the original one shouldn't be mutated.
2591 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2593         PR libstdc++/64422
2594         * src/c++98/misc-inst.cc (string::erase): Add missing overloads.
2595         (string::insert): Likewise.
2596         (string::replace): Likewise.
2597         (wstring::erase): Likewise.
2598         (wstring::insert): Likewise.
2599         (wstring::replace): Likewise.
2600         * testsuite/21_strings/basic_string/modifiers/64422.cc: New testcase.
2602 2015-01-02  Jonathan Wakely  <jwakely@redhat.com>
2604         PR libstdc++/64468
2605         * doc/doxygen/user.cfg.in: Set correct TAB_SIZE.
2607 2015-01-02  Jonathan Wakely  <jwakely@redhat.com>
2609         PR libstdc++/64438
2610         * testsuite/21_strings/basic_string/numeric_conversions/char/dr1261.cc:
2611         Revert removal of dg-require-string-conversions.
2612         * testsuite/21_strings/basic_string/numeric_conversions/char/stod.cc:
2613         Likewise.
2614         * testsuite/21_strings/basic_string/numeric_conversions/char/stof.cc:
2615         Likewise.
2616         * testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc:
2617         Likewise.
2618         * testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc:
2619         Likewise.
2620         * testsuite/21_strings/basic_string/numeric_conversions/char/stold.cc:
2621         Likewise.
2622         * testsuite/21_strings/basic_string/numeric_conversions/char/stoll.cc:
2623         Likewise.
2624         * testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc:
2625         Likewise.
2626         * testsuite/21_strings/basic_string/numeric_conversions/char/
2627         stoull.cc: Likewise.
2628         * testsuite/21_strings/basic_string/numeric_conversions/char/
2629         to_string.cc: Likewise.
2631 Copyright (C) 2015 Free Software Foundation, Inc.
2633 Copying and distribution of this file, with or without modification,
2634 are permitted in any medium without royalty provided the copyright
2635 notice and this notice are preserved.