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