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