Fix PR# in last commit
[official-gcc.git] / libstdc++-v3 / ChangeLog
blobd04a1f56facaea380207552adaaa4002b126e577
1 2017-03-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
3         PR libstdc++/80183
4         * include/bits/stl_tree.h:
5         (_Rb_tree_header::_M_move_data(_Rb_tree_header&)): Also save _M_color.
7 2017-03-23  Jonathan Wakely  <jwakely@redhat.com>
9         * testsuite/23_containers/array/tuple_interface/
10         tuple_element_debug_neg.cc: Adjust dg-error.
11         * testsuite/23_containers/list/operations/78389.cc: Fix less-than to
12         define a valid strict weak ordering.
13         * testsuite/23_containers/priority_queue/67085.cc: Disable test for
14         Debug Mode, due to debug checks making extra copies of predicate.
15         * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
16         Likewise.
18         * doc/xml/faq.xml: Add link.
19         * doc/xml/manual/backwards_compatibility.xml: Remove outdated
20         information on pre-ISO headers. Replace broken link to C++ FAQ Lite.
21         * doc/xml/manual/io.xml: Update broken link.
22         * doc/html/*: Regenerate.
24 2017-03-23  Daniel Kruegler  <daniel.kruegler@gmail.com>
26         Implement LWG 2686, Why is std::hash specialized for error_code,
27         but not error_condition?
28         * include/std/system_error (hash<error_condition>): Define for C++17.
29         * testsuite/20_util/hash/operators/size_t.cc (hash<error_condition>):
30         Instantiate test for error_condition.
31         * testsuite/20_util/hash/requirements/explicit_instantiation.cc
32         (hash<error_condition>): Instantiate hash<error_condition>.
34         * include/bits/c++config (_GLIBCXX17_INLINE): Define.
35         * include/bits/regex_constants.h (All std::regex_constants constants):
36         Add _GLIBCXX17_INLINE as per P0607R0.
37         * include/bits/std_mutex.h (defer_lock, try_to_lock, adopt_lock):
38         Likewise.
39         * include/bits/stl_pair.h (piecewise_construct): Likewise.
40         * include/bits/uses_allocator.h (allocator_arg, uses_allocator_v)
41         (__is_uses_allocator_constructible_v)
42         (__is_nothrow_uses_allocator_constructible_v): Likewise.
43         * include/std/chrono (treat_as_floating_point_v): Likewise.
44         * include/std/functional (is_bind_expression_v, is_placeholder_v):
45         Likewise.
46         * include/std/optional (nullopt): Likewise.
47         * include/std/ratio (ratio_equal_v, ratio_not_equal_v, ratio_less_v)
48         ratio_less_equal_v, ratio_greater_v, ratio_greater_equal_v): Likewise.
49         * include/std/system_error (is_error_code_enum_v)
50         (is_error_condition_enum_v): Likewise.
51         * include/std/tuple (tuple_size_v, ignore): Likewise.
52         (ignore): Declare ignore constexpr as per LWG 2773, declare assignment
53         constexpr as per LWG 2933.
54         * include/std/type_traits (All variable templates): Add
55         _GLIBCXX17_INLINE as per P0607R0.
56         * include/std/variant (variant_size_v, variant_npos, __index_of_v)
57         (__tuple_count_v, __exactly_once): Likewise.
58         * testsuite/18_support/headers/new/synopsis.cc
59         (hardware_destructive_interference_size)
60         (hardware_constructive_interference_size): Likewise for commented-out
61         variables.
62         * testsuite/20_util/tuple/creation_functions/constexpr.cc: Add new
63         test function for constexpr std::ignore (LWG 2773).
64         * testsuite/20_util/tuple/creation_functions/constexpr_cpp14.cc: New
65         test for LWG 2933.
67 2017-03-22  Jonathan Wakely  <jwakely@redhat.com>
69         * include/bits/shared_ptr.h (shared_ptr, weak_ptr): Add deduction
70         guides for C++17.
71         * include/bits/std_function.h (function): Likewise.
72         * include/bits/stl_pair.h (pair): Likewise.
73         * include/debug/array (__gnu_debug::array): Likewise.
74         * include/std/array (array): Likewise.
75         * include/std/functional (make_default_searcher)
76         (make_boyer_moore_searcher, make_boyer_moore_horspool_searcher):
77         Remove generator functions.
78         * include/std/tuple (tuple): Add deduction guides.
79         * include/std/valarray (valarray): Likewise.
80         * testsuite/20_util/function_objects/searchers.cc: Adjust to use
81         class template argument deduction instead of generator functions.
82         * testsuite/20_util/function/cons/deduction.cc: New test.
83         * testsuite/20_util/optional/cons/deduction_guide.cc: Rename to ...
84         * testsuite/20_util/optional/cons/deduction.cc: ... here.
85         * testsuite/20_util/pair/cons/deduction.cc: New test.
86         * testsuite/20_util/shared_ptr/cons/deduction.cc: New test.
87         * testsuite/20_util/tuple/cons/deduction.cc: New test.
88         * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error.
89         * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: New test.
90         * testsuite/20_util/weak_ptr/cons/deduction.cc: New test.
91         * testsuite/23_containers/array/cons/deduction.cc: New test.
92         * testsuite/23_containers/array/cons/deduction_neg.cc: New test.
93         * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc:
94         Adjust dg-error.
95         * testsuite/23_containers/array/tuple_interface/get_neg.cc: Likewise.
96         * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
97         Likewise.
98         * testsuite/26_numerics/valarray/deduction.cc: New test.
99         * testsuite/30_threads/lock_guard/cons/deduction.cc: New test.
100         * testsuite/30_threads/scoped_lock/cons/deduction.cc: New test.
101         * testsuite/30_threads/unique_lock/cons/deduction.cc: New test.
103 2017-03-20  François Dumont  <fdumont@gcc.gnu.org>
105         * include/bits/stl_deque.h (deque): Access allocator value_type only if
106         concept checks are enabled.
107         * include/bits/stl_stack.h (stack): Likewise.
108         * include/bits/stl_vector.h (vector): Likewise.
109         * include/bits/stl_list.h (list): Likewise and check
110         _SGIAssignableConcept only in C++03.
111         * include/bits/stl_map.h (map): Likewise.
112         * include/bits/stl_set.h (set): Likewise.
113         * include/bits/stl_multimap.h (multimap): Likewise.
114         * include/bits/stl_multiset.h (multiset): Likewise.
115         * include/bits/stl_queue.h (queue, priority_queue): Likewise.
117 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
119         * doc/xml/manual/appendix_contributing.xml: Convert link to
120         ansi.org to https.
121         Update link to the C++ standard at ansi.org.
123         * doc/xml/faq.xml: Remove information redundant with the above;
124         instead add a reference.
126 2017-03-17  Jonathan Wakely  <jwakely@redhat.com>
128         * src/c++11/codecvt.cc (range): Add non-type template parameter and
129         define oerloaded operators for reading and writing code units.
130         (range<Elem, false>): Define partial specialization for accessing
131         wide characters in potentially unaligned byte ranges.
132         (ucs2_span(const char16_t*, const char16_t*, ...))
133         (ucs4_span(const char16_t*, const char16_t*, ...)): Change parameters
134         to range<const char16_t, false> in order to avoid unaligned reads.
135         (__codecvt_utf16_base<char16_t>::do_out)
136         (__codecvt_utf16_base<char32_t>::do_out)
137         (__codecvt_utf16_base<wchar_t>::do_out): Use range specialization for
138         unaligned data to avoid unaligned writes.
139         (__codecvt_utf16_base<char16_t>::do_in)
140         (__codecvt_utf16_base<char32_t>::do_in)
141         (__codecvt_utf16_base<wchar_t>::do_in): Likewise for writes. Return
142         error if there are unprocessable trailing bytes.
143         (__codecvt_utf16_base<char16_t>::do_length)
144         (__codecvt_utf16_base<char32_t>::do_length)
145         (__codecvt_utf16_base<wchar_t>::do_length): Pass arguments of type
146         range<const char16_t, false> to span functions.
147         * testsuite/22_locale/codecvt/codecvt_utf16/misaligned.cc: New test.
149 2017-03-16  Jonathan Wakely  <jwakely@redhat.com>
151         PR libstdc++/79980
152         * src/c++11/codecvt.cc (to_integer(codecvt_mode)): Fix target type.
154         PR libstdc++/80041
155         * src/c++11/codecvt.cc (__codecvt_utf16_base<wchar_t>::do_out)
156         (__codecvt_utf16_base<wchar_t>::do_in): Convert char arguments to
157         char16_t to work with UTF-16 instead of UTF-8.
158         * testsuite/22_locale/codecvt/codecvt_utf16/80041.cc: New test.
160         * src/c++11/codecvt.cc (codecvt<char16_t, char, mbstate_t>)
161         (codecvt<char32_t, char, mbstate_t>, __codecvt_utf8_base<char16_t>)
162         (__codecvt_utf8_base<char32_t>, __codecvt_utf8_base<wchar_t>)
163         (__codecvt_utf16_base<char16_t>, __codecvt_utf16_base<char32_t>)
164         (__codecvt_utf16_base<wchar_t>, __codecvt_utf8_utf16_base<char16_t>)
165         (__codecvt_utf8_utf16_base<char32_t>)
166         (__codecvt_utf8_utf16_base<wchar_t>): Fix do_encoding() and
167         do_max_length() return values.
168         * testsuite/22_locale/codecvt/codecvt_utf16/members.cc: New test.
169         * testsuite/22_locale/codecvt/codecvt_utf8/members.cc: New test.
170         * testsuite/22_locale/codecvt/codecvt_utf8_utf16/members.cc: New test.
172         PR libstdc++/79980
173         * include/bits/locale_conv.h (__do_str_codecvt): Set __count on
174         error path.
175         * src/c++11/codecvt.cc (operator&=, operator|=, operator~): Overloads
176         for manipulating codecvt_mode values.
177         (read_utf16_bom): Compare input to BOM constants instead of integral
178         constants that depend on endianness.  Take mode parameter by
179         reference and adjust it, to distinguish between no BOM present and
180         UTF-16BE BOM present.
181         (ucs4_in, ucs2_span, ucs4_span): Adjust calls to read_utf16_bom.
182         (surrogates): New enumeration type.
183         (utf16_in, utf16_out): Add surrogates parameter to choose between
184         UTF-16 and UCS2 behaviour.
185         (utf16_span, ucs2_span): Use std::min not std::max.
186         (ucs2_out): Use std::min not std::max.  Disallow surrogate pairs.
187         (ucs2_in): Likewise. Adjust calls to read_utf16_bom.
188         * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc: New test.
189         * testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: New test.
191         PR libstdc++/79511
192         * src/c++11/codecvt.cc (write_utf16_code_point): Don't write 0xffff
193         as a surrogate pair.
194         (__codecvt_utf8_utf16_base<char32_t>::do_in): Use native endianness
195         for internal representation.
196         (__codecvt_utf8_utf16_base<wchar_t>::do_in): Likewise.
197         * testsuite/22_locale/codecvt/codecvt_utf8_utf16/79511.cc: New test.
199         PR libstdc++/80064
200         * include/bits/stl_heap.h (__is_heap, push_heap, __adjust_heap)
201         (pop_heap, make_heap, sort_heap, is_heap_until, is_heap): Cope with
202         invalid instantiations using function types for _Compare argument.
203         * testsuite/25_algorithms/make_heap/80064.cc: New test.
205         PR libstdc++/67440
206         * python/libstdcxx/v6/printers.py (find_type): Avoid gdb.Type.name
207         for GDB 7.6 compatibility, use gdb.Type.unqualified instead.
209 2017-03-15  Ville Voutilainen  <ville.voutilainen@gmail.com>
211         Implement LWG 2857, {variant,optional,any}::emplace should
212         return the constructed value.
213         * include/std/any (emplace(_Args&&...)): Change the return type and
214         return a reference to the constructed value.
215         (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
216         * include/std/optional (emplace(_Args&&...)): Likewise.
217         (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
218         * include/std/variant (emplace<_Tp>(_Args&&...)): Likewise.
219         (emplace<_Tp>(initializer_list<_Up>, _Args&&...)): Likewise.
220         (emplace<_Np>(_Args&&...)): Likewise.
221         (emplace<_Np>(initializer_list<_Up>, _Args&&...)): Likewise.
222         * testsuite/20_util/any/assign/emplace.cc: Add tests for
223         checking the return value of emplace.
224         * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
225         * testsuite/20_util/optional/assignment/6.cc: Add tests for
226         checking the return value of emplace.
227         * testsuite/20_util/variant/run.cc: Likewise.
229 2017-03-15  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
231         PR libstdc++/62045
232         * include/ext/pb_ds/qdetail/binary_heap_/binary_heap_.hpp
233         (is_heap): Remove.
234         (push_heap): Remove the wrong checking using is_heap.
235         (make_heap): Remove the assertion using is_heap.
236         * include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
237         (modify): Ditto.
238         (resize_for_insert_if_needed): Add PB_DS_ASSERT_VALID after
239         calling make_heap.
241 2017-03-15  Jonathan Wakely  <jwakely@redhat.com>
243         PR libstdc++/62045
244         * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
245         New test.
246         * testsuite/ext/pb_ds/regression/priority_queues.cc: Fix copy&paste
247         error in comment.
249 2017-03-15  Jonathan Wakely  <jwakely@redhat.com>
251         * acinclude.m4 (GLIBCXX_CHECK_S_ISREG_OR_S_IFREG): Fix typo in
252         comment.
253         * config.h.in: Regenerate.
254         * configure: Regenerate.
255         * doc/Makefile.in: Regenerate.
257 2017-03-14  Jonathan Wakely  <jwakely@redhat.com>
259         PR libstdc++/79162
260         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
261         (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Replace
262         with a constrained template.
263         [!_GLIBCXX_USE_CXX11_ABI]
264         (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Likewise.
265         * testsuite/21_strings/basic_string/cons/char/79162.cc: New test.
266         * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: New test.
268 2017-03-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
270         PR libstdc++/80034
271         * include/bits/list.tcc (merge(list&&)): Use const for the size_t
272         in the catch-block.
273         (merge(list&&, _StrictWeakOrdering)): Likewise.
274         * testsuite/23_containers/list/operations/80034.cc: New.
276 2017-03-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
278         Implement LWG 2806, Base class of bad_optional_access.
279         * include/std/optional (bad_optional_access):
280         Derive from std::exception.
281         (bad_optional_access::bad_optional_access): Adjust.
282         (bad_optional_access::what): New.
283         (__throw_bad_optional_access(const char*)):
284         Remove the parameter and adjust calls.
285         * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
286         * testsuite/20_util/optional/typedefs.cc: Likewise.
288 2017-03-12  Ville Voutilainen  <ville.voutilainen@gmail.com>
290         Implement LWG 2934, optional<const T> doesn't compare with T.
291         * include/std/optional
292         (operator==(const optional<_Tp>&, const optional<_Tp>&)):
293         Turn into operator==(const optional<_Tp>&, const optional<_Up>&).
294         (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
295         Turn into operator!=(const optional<_Tp>&, const optional<_Up>&).
296         (operator<(const optional<_Tp>&, const optional<_Tp>&)):
297         Turn into operator<(const optional<_Tp>&, const optional<_Up>&.
298         (operator>(const optional<_Tp>&, const optional<_Tp>&)):
299         Turn into operator>(const optional<_Tp>&, const optional<_Up>&.
300         (operator<=(const optional<_Tp>&, const optional<_Tp>&)):
301         Turn into operator<=(const optional<_Tp>&, const optional<_Up>&).
302         (operator>=(const optional<_Tp>&, const optional<_Tp>&)):
303         Turn into operator>=(const optional<_Tp>&, const optional<_Up>&).
304         (operator==(const optional<_Tp>&, const _Tp&)):
305         Turn into operator==(const optional<_Tp>&, const _Up&).
306         (operator==(const _Tp&, const optional<_Tp>&)):
307         Turn into operator==(const _Up&, const optional<_Tp>&).
308         (operator!=(const optional<_Tp>&, const _Tp&)):
309         Turn into operator!=(const optional<_Tp>&, const _Up&).
310         (operator!=(const _Tp&, const optional<_Tp>&)):
311         Turn into operator!=(const _Up&, const optional<_Tp>&).
312         (operator<(const optional<_Tp>&, const _Tp&)):
313         Turn into operator<(const optional<_Tp>&, const _Up&).
314         (operator<(const _Tp&, const optional<_Tp>&)):
315         Turn into operator<(const _Up&, const optional<_Tp>&).
316         (operator>(const optional<_Tp>&, const _Tp&)):
317         Turn into operator>(const optional<_Tp>&, const _Up&).
318         (operator>(const _Tp&, const optional<_Tp>&)):
319         Turn into operator>(const _Up&, const optional<_Tp>&).
320         (operator<=(const optional<_Tp>&, const _Tp&)):
321         Turn into operator<=(const optional<_Tp>&, const _Up&).
322         (operator<=(const _Tp&, const optional<_Tp>&)):
323         Turn into operator<=(const _Up&, const optional<_Tp>&).
324         (operator>=(const optional<_Tp>&, const _Tp&)):
325         Turn into operator>=(const optional<_Tp>&, const _Up&).
326         (operator>=(const _Tp&, const optional<_Tp>&)):
327         Turn into operator>=(const _Up&, const optional<_Tp>&).
328         * testsuite/20_util/optional/relops/7.cc: New.
330 2017-03-10  Jonathan Wakely  <jwakely@redhat.com>
332         * testsuite/17_intro/names.cc: Undefine macros that clash with
333         identifiers in AIX system headers.
335         * include/bits/invoke.h (__invoke): Use __invoke_result instead of
336         result_of, and __is_nothrow_invocable instead of
337         __is_nothrow_callable.
338         * include/bits/shared_ptr_base.h (__shared_ptr): Use __is_invocable
339         instead of __is_callable.
340         * include/std/functional (invoke): use invoke_result_t instead of
341         result_of_t and is_nothrow_invocable instead of is_nothrow_callable.
342         (_Not_fn): Use __invoke_result instead of result_of.
343         * include/std/type_traits (__result_of_memobj, __result_of_memfun):
344         Remove partial specializations for reference_wrapper types.
345         (__result_of_impl): Use __inv_unwrap to strip reference_wrapper.
346         (__invoke_result): Define replacement for result_of and then use it to
347         define result_of.
348         (__is_callable_impl, __is_callable, __is_nothrow_callable): Replace
349         with __is_invocable_impl, __is_invocable, and __is_nothrow_invocable
350         respectively.
351         (invoke_result, invoke_result_t): Define for C++17.
352         (is_callable, is_nothrow_callable): Replace with is_invocable,
353         is_invocable_r, is_nothrow_invocable, and is_nothrow_invocable_r.
354         (is_callable_v, is_nothrow_callable_v): Replace with is_invocable_v,
355         is_invocable_r_v, is_nothrow_invocable_v, and is_nothrow_invocable_r_v.
356         * include/std/variant (hash<variant<T...>>): Use is_nothrow_invocable_v
357         instead of is_nothrow_callable_v.
358         * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
359         main function.
360         * testsuite/20_util/function_objects/not_fn/1.cc: Use is_invocable
361         instead of is_callable.
362         * testsuite/20_util/is_callable/*: Rename directory and adjust tests
363         to use new traits.
364         * testsuite/20_util/is_nothrow_callable/*: Likewise.
365         * testsuite/20_util/optional/hash.cc: Use is_invocable_v instead of
366         is_callable.
367         * testsuite/20_util/variant/hash.cc: Likewise.
369 2017-03-10  George Lander  <george.lander@arm.com>
371         * acinclude.m4 (glibcxx_cv_obsolete_isnan): Define
372         _GLIBCXX_INCLUDE_NEXT_C_HEADERS before including math.h.
373         * configure: Regenerate.
375 2017-03-09  Jonathan Wakely  <jwakely@redhat.com>
377         * include/std/functional (_Not_fn): Define macro to simplify
378         repetitive function definitions.
380         * doc/xml/manual/status_cxx2017.xml: Document std::byte support.
381         * include/c_global/cstddef (std::byte): Define for C++17.
382         * testsuite/18_support/byte/global_neg.cc: New test.
383         * testsuite/18_support/byte/ops.cc: New test.
384         * testsuite/18_support/byte/requirements.cc: New test.
386 2017-03-05  Jonathan Wakely  <jwakely@redhat.com>
388         * doc/xml/manual/status_cxx2017.xml: Document P0156R2 status.
389         * doc/html/*: Regenerate.
390         * include/std/mutex (scoped_lock): Implement new C++17 template.
391         * testsuite/30_threads/scoped_lock/cons/1.cc: New test.
392         * testsuite/30_threads/scoped_lock/requirements/
393         explicit_instantiation.cc: New test.
394         * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: New test.
396 2017-03-02  Gerald Pfeifer  <gerald@pfeifer.com>
397             François Dumont  <frs.dumont@gmail.com>
398             Jonathan Wakely  <jwakely@redhat.com>
400         * doc/xml/manual/debug_mode.xml: Update and simplify note
401         on link- and run-time coexistence.
403 2017-03-02  Jonathan Wakely  <jwakely@redhat.com>
405         * testsuite/17_intro/headers/names.cc: Rename to ...
406         * testsuite/17_intro/names.cc: ... here.
408         PR libstdc++/79789
409         * include/bits/hashtable_policy.h (__clp2): Use reserved names for
410         parameters and local variables.
411         * include/bits/ios_base.h (make_error_code, make_error_condition):
412         Likewise.
413         * include/bits/list.tcc (list::sort): Likewise.
414         * include/bits/mask_array.h (mask_array): Likewise.
415         * include/bits/regex.h (regex_token_iterator): Likewise.
416         * include/bits/slice_array.h (slice_array): Likewise.
417         * include/bits/stl_algo.h (__sample): Likewise.
418         * include/std/memory (undeclare_no_pointers): Likewise.
419         * include/std/type_traits (is_callable_v, is_nothrow_callable_v):
420         Likewise.
421         * libsupc++/exception_ptr.h (__dest_thunk): Likewise.
422         * testsuite/17_intro/headers/names.cc: New test.
424         PR libstdc++/79798
425         * include/std/functional (bind::_Res_type_impl): Fix incorrect use of
426         result_of that loses top-level cv-qualifiers.
427         * testsuite/20_util/bind/79798.cc: New test.
429 2017-03-01  Gerald Pfeifer  <gerald@pfeifer.com>
431         * doc/xml/manual/documentation_hacking.xml: Tweak link to
432         doxygen.org.
434 2017-02-23  Jonathan Wakely  <jwakely@redhat.com>
436         * include/experimental/iterator: Include <iterator>.
437         * testsuite/experimental/iterator/requirements.cc: Check for contents
438         of <iterator>.
440 2017-02-19  Dinka Ranns  <dinka.ranns@googlemail.com>
442         C++17 GB50 resolution
443         * include/std/chrono (duration::operator++()): Add
444         _GLIBCXX17_CONSTEXPR.
445         (duration::operator++(int)): Likewise.
446         (duration::operator--()): Likewise.
447         (duration::operator--(int)): Likewise.
448         (duration::operator+=(const duration&)): Likewise.
449         (duration::operator-=(const duration&)): Likewise.
450         (duration::operator*=(const rep&)): Likewise.
451         (duration::operator/=(const rep&)): Likewise.
452         (duration::operator%=(const rep&)): Likewise.
453         (duration::operator%=(const duration&)): Likewise.
454         (time_point::operator+=(const duration&)): Likewise.
455         (time_point::operator-=(const duration&)): Likewise.
456         * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: New test.
457         * testsuite/20_util/duration/literals/range.cc: Adjust dg-error.
458         * testsuite/20_util/time_point/arithmetic/constexpr.cc: New test.
460 2017-02-19  Gerald Pfeifer  <gerald@pfeifer.com>
462         * doc/xml/manual/debug.xml: Adjust link to ThreadSanitizer.
464 2017-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
466         * doc/xml/manual/io.xml: Update link to groups.google.com.
467         Tweak link description.
469 2017-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
471         * doc/xml/manual/profile_mode.xml: Fix link.
473 2017-02-16  Gerald Pfeifer  <gerald@pfeifer.com>
475         * doc/xml/manual/policy_data_structures.xml: Simplify and
476         standardize references to boost.org.
477         * doc/xml/manual/policy_data_structures_biblio.xml: Ditto.
478         * doc/xml/manual/shared_ptr.xml: Ditto.
480 2017-02-16  Jonathan Wakely  <jwakely@redhat.com>
482         PR libstdc++/60936
483         * src/c++11/snprintf_lite.cc (__concat_size_t): Calculate length
484         written to buffer, not length remaining in buffer.
486 2017-02-15  Tim Shen  <timshen@google.com>
488         PR libstdc++/78723
489         * include/std/variant (operator<(), operator>(), operator<=(),
490         operator>=(), operator==(), operator!=()): Implement P0393R3.
491         * testsuite/20_util/variant/compile.cc: Adjust tests.
492         * testsuite/20_util/variant/run.cc: Adjust tests.
494 2017-02-15  Tim Shen  <timshen@google.com>
496         PR libstdc++/79513
497         * include/std/variant (visit()): Forward variant types to the return
498         type detection code.
499         * testsuite/20_util/variant/compile.cc: Add test cases.
501 2017-02-13  H.J. Lu  <hongjiu.lu@intel.com>
503         PR libstdc++/79348
504         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
506 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
508         PR libstdc++/79348
509         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
510         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
511         * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Likewise.
512         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
513         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Likewise.
514         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Likewise.
515         * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Likewise.
516         * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Likewise.
517         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
519 2017-02-13  Jonathan Wakely  <jwakely@redhat.com>
521         PR libstdc++/79486
522         * include/std/future (__future_base::_Task_state::_M_run)
523         (__future_base::_Task_state::_M_run_delayed): Use lvalue types in
524         result_of expressions.
525         * testsuite/30_threads/packaged_task/79486.cc: New.
527 2017-02-11  Jonathan Wakely  <jwakely@redhat.com>
529         PR libstdc++/79467
530         * include/bits/shared_ptr_base.h (__shared_ptr(_Yp*, _Deleter))
531         (__shared_ptr(_Yp*, _Deleter, _Alloc)): Use lvalue types in
532         __is_callable check.
533         * testsuite/20_util/shared_ptr/cons/79467.cc: New.
535         * include/bits/atomic_base.h: Re-indent.
537 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
539         * doc/xml/manual/profile_mode.xml: Update a paper reference.
541 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
543         * src/c++11/snprintf_lite.cc (__err): Use https for bug reporting.
545 2017-02-08  Jonathan Wakely  <jwakely@redhat.com>
547         * doc/xml/manual/policy_data_structures.xml: Fix spelling of author's
548         name.
549         * doc/xml/manual/policy_data_structures_biblio.xml: Likewise. Remove
550         broken links to texts that are no longer online.
551         * doc/xml/manual/profile_mode.xml: Update links to CGO 2009 paper and
552         LCPC 2006 paper.
553         * doc/xml/manual/using.xml: Update links to memory model information.
554         * doc/xml/manual/using_exceptions.xml: Update link to "Appendix E:
555         Standard-Library Exception Safety".
556         * doc/html/*: Regenerate.
558 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
560         * doc/xml/manual/profile_mode.xml: Unbreak link to
561         "Optimizing Sorting with Machine Learning Algorithms".
563 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
565         * src/c++11/snprintf_lite.cc (__err): Update bug reporting URL.
567 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
569         * doc/xml/manual/abi.xml: Update link to "Sun Studio 11: C++
570         Migration Guide".
572 2017-02-07  Gerald Pfeifer  <gerald@pfeifer.com>
574         * doc/html/ext/lwg-active.html: Remove.
575         * doc/html/ext/lwg-closed.html: Ditto.
576         * doc/html/ext/lwg-defects.html: Ditto.
578         * doc/Makefile.am (xml_extradir): Remove.
579         (xml_extra): Ditto.
580         (stamp-html-docbook-lwg): Remove recipe...
581         (stamp-html-docbook-data): ...and its use here.
582         * doc/Makefile.in: Regenerate.
584         * doc/xml/manual/intro.xml: Shorten two paragraphs explaining
585         the relationship to the upstream working group.
586         Replace a local link to ../ext/lwg-active.html by the upstream one.
587         Replace all reference to ../ext/lwg-defects.html by a new entity
588         &DR; which refers to the upstream address.
590 2017-02-07  Gerald Pfeifer  <gerald@pfeifer.com>
592         * doc/xml/manual/status_cxx2017.xml: Fix link to N4284.
594 2017-02-06  Jonathan Wakely  <jwakely@redhat.com>
596         PR libstdc++/79323
597         * testsuite/20_util/duration/literals/range.cc: Prune extra output
598         at -O0.
600 2017-02-06  Gerald Pfeifer  <gerald@pfeifer.com>
602         * doc/xml/manual/documentation_hacking.xml: Update URL of the
603         DocBook Element Reference.  Use that term as link description
604         instead of "online".
605         epubcheck has moved to GitHub.
606         Remove obsolete link to DocBook Publishing Tools.
608 2017-02-03  Jonathan Wakely  <jwakely@redhat.com>
610         PR libstdc++/66145
611         * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Restore ABI override
612         so new ios::failure can be caught even when old ABI is the default.
613         * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
614         * testsuite/27_io/basic_istream/extractors_arithmetic/char/
615         exceptions_failbit.cc: Likewise.
616         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
617         exceptions_failbit.cc: Likewise.
618         * testsuite/27_io/basic_istream/extractors_other/char/
619         exceptions_null.cc: Likewise.
620         * testsuite/27_io/basic_istream/extractors_other/wchar_t/
621         exceptions_null.cc: Likewise.
622         * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
623         * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
624         * testsuite/27_io/basic_ostream/inserters_other/char/
625         exceptions_null.cc: Likewise.
626         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
627         exceptions_null.cc: Likewise.
628         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
630         PR libstdc++/60936
631         * src/c++11/Makefile.am: Add new files.
632         * src/c++11/Makefile.in: Regenerate.
633         * src/c++11/cow-string-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
634         (operator<<, operator>>, getline): Move explicit instantiations to ...
635         * src/c++11/cow-string-io-inst.cc: ... new file.
636         * src/c++11/cow-wstring-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
637         (operator<<, operator>>, getline): Move explicit instantiations to ...
638         * src/c++11/cow-wstring-io-inst.cc: ... new file.
639         * src/c++11/functexcept.cc (__throw_ios_failure, __throw_system_error)
640         (__throw_future_error, __throw_bad_function_call):
641         (__throw_regex_error): Move functions for C++11 exceptions to the
642         files that define the exception types.
643         * src/c++11/functional.cc (__throw_bad_function_call): Move here.
644         * src/c++11/future.cc (__throw_future_error): Likewise.
645         * src/c++11/ios.cc (__throw_ios_failure): Likewise.
646         * src/c++11/regex.cc (__throw_regex_error): Likewise.
647         * src/c++11/snprintf_lite.cc (__concat_size_t): Print decimal
648         representation directly instead of calling __int_to_char.
649         * src/c++11/sso_string.cc (__sso_string): New file for definition
650         of __sso_string type.
651         * src/c++11/string-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
652         explicit instantiations of narrow string I/O functions.
653         * src/c++11/system_error.cc (__throw_system_error): Move here.
654         (__sso_string): Move to new file.
655         * src/c++11/wstring-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
656         explicit instantiations of wide string I/O functions.
657         * src/c++98/misc-inst.cc [_GLIBCXX_USE_CXX11_ABI] (operator<<)
658         (operator>>, getline): Remove explicit instantiations from here.
660 2017-02-02  H.J. Lu  <hongjiu.lu@intel.com>
662         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
664 2017-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
666         * configure.host: Separate Solaris/SPARC and x86 baselines.
667         * config/abi/post/solaris2.10/baseline_symbols.txt: Move ...
668         * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: ... here.
669         * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Move ...
670         * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
671         ... here.
672         * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Move ...
673         * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: ... here.
674         * config/abi/post/i386-solaris2.10/baseline_symbols.txt: New file.
675         * config/abi/post/solaris2.11/baseline_symbols.txt: Move ...
676         * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: ... here.
677         * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Move ...
678         * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
679         ... here.
680         * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Move ...
681         * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: ... here.
682         * config/abi/post/i386-solaris2.11/baseline_symbols.txt: New file.
684         * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
685         * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
686         * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
687         * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
688         * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
689         * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
691 2017-02-01  Jonathan Wakely  <jwakely@redhat.com>
693         PR libstdc++/78346
694         * include/bits/predefined_ops.h (_Iter_equals_iter): Store iterator
695         not its referent.
696         (_Iter_comp_to_iter): Likewise.
697         * testsuite/25_algorithms/search/78346.cc: New test.
699         PR libstdc++/79254
700         * config/abi/pre/gnu.ver: Remove recently added symbols.
701         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
702         (basic_string::_M_copy_assign): Remove.
703         (basic_string::operator=(const basic_string&)): Don't dispatch to
704         _M_copy_assign. If source object is small just deallocate, otherwise
705         perform new allocation before making any changes.
706         * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
707         (basic_string::_M_copy_assign(const basic_string&, true_type)):
708         Remove.
709         * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
710         Test cases where the allocators are equal or the string is small.
711         * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
712         Likewise.
714 2017-01-30  Ville Voutilainen  <ville.voutilainen@gmail.com>
716         Implement LWG 2825, LWG 2756 breaks class template argument
717         deduction for optional.
718         * include/std/optional: Add a deduction guide.
719         * testsuite/20_util/optional/cons/deduction_guide.cc: New.
721 2017-01-27  Jonathan Wakely  <jwakely@redhat.com>
723         PR libstdc++/79254
724         * config/abi/pre/gnu.ver: Add new symbols.
725         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
726         (basic_string::_M_copy_assign): New overloaded functions to perform
727         copy assignment.
728         (basic_string::operator=(const basic_string&)): Dispatch to
729         _M_copy_assign.
730         * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
731         (basic_string::_M_copy_assign(const basic_string&, true_type)):
732         Define, performing rollback on exception.
733         * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
734         Test exception-safety guarantee.
735         * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
736         Likewise.
737         * testsuite/util/testsuite_allocator.h (uneq_allocator::swap): Make
738         std::swap visible.
740 2017-01-26  Jonathan Wakely  <jwakely@redhat.com>
742         PR libstdc++/70607
743         * include/tr1/complex (conj): Remove using-declaration and restore
744         overloads, reverting previous change.
746         * testsuite/23_containers/list/operations/78389.cc: Fix for C++11
747         mode.
748         * testsuite/23_containers/priority_queue/requirements/constructible.cc:
749         Mark as unsupported in C++98 mode.
750         * testsuite/23_containers/queue/requirements/constructible.cc:
751         Likewise.
752         * testsuite/23_containers/stack/requirements/constructible.cc:
753         Likewise.
754         * testsuite/25_algorithms/make_heap/movable.cc: Fix for C++11 mode.
756         PR libstdc++/79243
757         * include/bits/c++config (literals::string_view_literals::__7): Add.
758         Only declare versioned namespaces for the relevant C++ dialects.
759         * include/experimental/bits/erase_if.h (fundamentals_v2::__detail):
760         Add versioning macros.
761         * include/experimental/bits/lfts_config.h:
762         (fundamentals_v1::__detail::__7, fundamentals_v2::__detail::__7): Add.
763         * include/experimental/string_view (fundamentals_v2::__detail):
764         Add versioning macros.
765         (fundamentals_v2::__detail::__identity): Remove.
766         (fundamentals_v2::__detail::__idt): Use common_type instead of
767         __detail::__identity.
768         * include/std/string_view (__detail::__identity, __detail::__idt):
769         Likewise.
770         (literals::string_view_literals): Fix nesting of versioning macros.
772         PR libstdc++/79190
773         * libsupc++/del_opa.cc (operator delete(void*, std::align_val_t))
774         [!_GLIBCXX_HAVE_ALIGNED_ALLOC && !_GLIBCXX_HAVE_POSIX_MEMALIGN
775         && !_GLIBCXX_HAVE_MEMALIGN && !_GLIBCXX_HAVE__ALIGNED_MALLOC]:
776         Retrieve original pointer value allocated by malloc.
777         * libsupc++/new_opa.cc [!_GLIBCXX_HAVE_ALIGNED_ALLOC
778         && !_GLIBCXX_HAVE_POSIX_MEMALIGN && !_GLIBCXX_HAVE_MEMALIGN
779         && !_GLIBCXX_HAVE__ALIGNED_MALLOC] (aligned_alloc(size_t, size_t)):
780         Define, adjusting pointer value allocated by malloc and storing for
781         retrieval by operator delete.
783 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
785         * libsupc++/eh_atomics.h: Update copyright years.
786         * testsuite/20_util/unique_ptr/cons/default.cc: Update copyright years.
788 2017-01-25  Jonathan Wakely  <jwakely@redhat.com>
790         PR libstdc++/61791
791         PR libstdc++/70607
792         * include/std/complex (real(T), imag(T)): Add _GLIBCXX_CONSTEXPR.
793         (proj(T), conj(T)): Change return types per DR 1522.
794         * include/tr1/complex (conj): Remove overloads and use std::conj.
795         * testsuite/26_numerics/complex/dr781_dr1137.cc: Rename to...
796         * testsuite/26_numerics/complex/dr781.cc: ... this, and update.
797         * testsuite/26_numerics/complex/value_operations/constexpr2.cc: Test
798         real(T) and imag(T). Allow testing for C++11 too.
800 2017-01-24  Jonathan Wakely  <jwakely@redhat.com>
802         PR libstdc++/79206
803         * include/experimental/string_view (operator==): Check sizes first.
804         * include/std/string_view (operator==): Likewise.
806 2017-01-23  Jonathan Wakely  <jwakely@redhat.com>
808         * testsuite/experimental/array/make_array.cc: Restore <functional>
809         inclusion.
811 2017-01-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
813         * testsuite/29_atomics/atomic/69301.cc: Require atomic builtins.
815 2017-01-23  Jonathan Wakely  <jwakely@redhat.com>
817         PR libstdc++/79195
818         * include/experimental/array (__make_array_elem): New class template
819         and partial specialization.
820         (__is_reference_wrapper): Move into __make_array_elem specialization.
821         (make_array): Use __make_array_elem to determine element type and move
822         static assertion into specialization. Qualify std::forward call.
823         (to_array): Add exception specifiation.
824         * testsuite/experimental/array/make_array.cc: Test argument types
825         without a common type.
826         * testsuite/experimental/array/neg.cc: Adjust expected error message.
828 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
830         * doc/xml/manual/debug.xml: code.google.com uses https now.
832 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
834         * doc/xml/manual/test.xml: Fix link into gccint online manual.
836 2017-01-21  Ville Voutilainen  <ville.voutilainen@gmail.com>
838         Make poisoned hashes SFINAE away the call operator of the hash.
839         * include/bits/functional_hash.h
840         (__poison_hash::__enable_hash_call): New.
841         * include/std/optional (__optional_hash_call_base): New.
842         (hash<optional<_Tp>>): Derive from the new base,
843         move the hash function into that base.
844         * include/std/variant (__variant_hash_call_base_impl): New.
845         (__variant_hash_call_base): Likewise.
846         (hash<variant<_Types...>>): Derive from the new base,
847         move the hash function into that base.
848         * testsuite/20_util/optional/hash.cc: Add tests for is_callable.
849         * testsuite/20_util/variant/hash.cc: Likewise.
851 2017-01-20  Joe Seymour  <joe.s@somniumtech.com>
853         * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): Support uint20_t.
854         * configure: Regenerate.
856 2017-01-20  Jonathan Wakely  <jwakely@redhat.com>
858         PR libstdc++/69240
859         * include/bits/random.h (uniform_real_distribution::param_type)
860         (normal_distribution::param_type, lognormal_distribution::param_type)
861         (gamma_distribution::param_type, chi_squared_distribution::param_type)
862         (cauchy_distribution::param_type, fisher_f_distribution::param_type)
863         (student_t_distribution::param_type)
864         (bernoulli_distribution::param_type, binomial_distribution::param_type)
865         (geometric_distribution::param_type)
866         (negative_binomial_distribution::param_type)
867         (poisson_distribution::param_type)
868         (exponential_distribution::param_type)
869         (weibull_distribution::param_type)
870         (extreme_value_distribution::param_type)
871         (discrete_distribution::param_type)
872         (piecewise_constant_distribution::param_type)
873         (piecewise_linear_distribution::param_type): Define operator!=.
874         * include/bits/uniform_int_dist.h
875         (uniform_int_distribution::param_type): Likewise.
876         * include/ext/random (beta_distribution::param_type)
877         (rice_distribution::param_type, nakagami_distribution::param_type)
878         (pareto_distribution::param_type, k_distribution::param_type)
879         (arcsine_distribution::param_type, hoyt_distribution::param_type)
880         (triangular_distribution::param_type)
881         (von_mises_distribution::param_type)
882         (hypergeometric_distribution::param_type)
883         (logistic_distribution::param_type)
884         (uniform_on_sphere_distribution::param_type)
885         (uniform_inside_sphere_distribution::param_type): Likewise.
886         * testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc:
887         Test construction with param_type.
888         * testsuite/26_numerics/random/binomial_distribution/cons/parms.cc:
889         Likewise.
890         * testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc:
891         Likewise.
892         * testsuite/26_numerics/random/chi_squared_distribution/cons/parms.cc:
893         Likewise.
894         * testsuite/26_numerics/random/exponential_distribution/cons/parms.cc:
895         Likewise.
896         * testsuite/26_numerics/random/extreme_value_distribution/cons/
897         parms.cc: Likewise.
898         * testsuite/26_numerics/random/fisher_f_distribution/cons/parms.cc:
899         Likewise.
900         * testsuite/26_numerics/random/gamma_distribution/cons/parms.cc:
901         Likewise.
902         * testsuite/26_numerics/random/geometric_distribution/cons/parms.cc:
903         Likewise.
904         * testsuite/26_numerics/random/lognormal_distribution/cons/parms.cc:
905         Likewise.
906         * testsuite/26_numerics/random/negative_binomial_distribution/cons/
907         parms.cc: Likewise.
908         * testsuite/26_numerics/random/normal_distribution/cons/parms.cc:
909         Likewise.
910         * testsuite/26_numerics/random/poisson_distribution/cons/parms.cc:
911         Likewise.
912         * testsuite/26_numerics/random/student_t_distribution/cons/parms.cc:
913         Likewise.
914         * testsuite/26_numerics/random/uniform_int_distribution/cons/parms.cc:
915         Likewise.
916         * testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc:
917         Likewise.
918         * testsuite/26_numerics/random/weibull_distribution/cons/parms.cc:
919         Likewise.
920         * testsuite/ext/random/arcsine_distribution/cons/parms.cc: Likewise.
921         * testsuite/ext/random/beta_distribution/cons/parms.cc: Likewise.
922         * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
923         * testsuite/ext/random/hypergeometric_distribution/cons/parms.cc:
924         Likewise.
925         * testsuite/ext/random/k_distribution/cons/parms.cc: Likewise.
926         * testsuite/ext/random/logistic_distribution/cons/parms.cc: Likewise.
927         * testsuite/ext/random/nakagami_distribution/cons/parms.cc: Likewise.
928         * testsuite/ext/random/normal_mv_distribution/cons/parms.cc: Likewise.
929         * testsuite/ext/random/pareto_distribution/cons/parms.cc: Likewise.
930         * testsuite/ext/random/rice_distribution/cons/parms.cc: Likewise.
931         * testsuite/ext/random/triangular_distribution/cons/parms.cc:
932         Likewise.
933         * testsuite/ext/random/uniform_inside_sphere_distribution/cons/
934         parms.cc: Likewise.
935         * testsuite/ext/random/von_mises_distribution/cons/parms.cc: Likewise.
937         PR libstdc++/72792
938         * include/bits/alloc_traits.h (__allocator_traits_base::__diff_type)
939         (__allocator_traits_base::__size_type): Remove.
940         (allocator_traits::_Ptr): New class template to detect const and void
941         pointer types without instantiating pointer_traits::rebind
942         unnecessarily.
943         (allocator_traits::_Diff): Likewise for detecting difference_type.
944         (allocator_traits::_Size): New class template to detect size_type
945         without instantiating make_unsigned unnecessarily.
946         * include/bits/ptr_traits.h (pointer_traits::element_type): Use
947         __detected_or_t instead of __detected_or_t_.
948         * include/std/type_traits (__detected_or_t_): Remove.
949         * testsuite/20_util/allocator_traits/members/pointers.cc: New test.
951         PR libstdc++/72792
952         PR libstdc++/72793
953         * include/bits/alloc_traits.h (__allocator_traits_base::__rebind):
954         Replace with class template using void_t.
955         (__alloc_rebind): Define in terms of
956         __allocator_traits_base::__rebind.
957         (allocator_traits): Remove unconditional static_assert for
958         rebind_alloc.
959         * include/bits/ptr_traits.h (__replace_first_arg): Remove type member.
960         (pointer_traits::__rebind): Replace with class template using void_t.
961         (pointer_traits::rebind): Define in terms of __rebind.
962         (pointer_traits): Remove unconditional static_assert for rebind.
963         * testsuite/20_util/allocator_traits/members/rebind_alloc.cc: New test.
964         * testsuite/20_util/pointer_traits/rebind.cc: New test.
966         PR libstdc++/69321
967         * include/experimental/any (__any_caster): Avoid instantiating
968         manager function for types that can't be stored in any.
969         * include/std/any (__any_caster): Likewise.
970         * testsuite/20_util/any/misc/any_cast.cc: Test non-copyable type.
971         * testsuite/experimental/any/misc/any_cast.cc: Likewise.
973         PR libstdc++/64903
974         * include/bits/stl_algo.h (is_partitioned): Use increment instead of
975         std::advance.
977 2017-01-19  Jonathan Wakely  <jwakely@redhat.com>
979         PR libstdc++/79156
980         * include/bits/shared_ptr_base.h (__enable_shared_from_this_base):
981         Fix return type.
982         (__enable_shared_from_this): Declare __shared_ptr as a friend.
983         * testsuite/ext/shared_ptr/1.cc: New test.
985         PR libstdc++/64903
986         * include/bits/stl_algo.h (is_partitioned): Don't retest the partition
987         point.
988         * testsuite/25_algorithms/is_partitioned/2.cc: New test.
990         * doc/xml/manual/abi.xml: Fix typo.
991         * doc/html/manual/abi.html: Likewise.
993         PR libstdc++/67085
994         * include/bits/predefined_ops.h (_Iter_less_val, _Val_less_iter): Add
995         converting constructors from _Iter_less_iter.
996         (_Iter_comp_val, _Val_comp_iter): Add converting constructors from
997         _Iter_comp_iter.
998         (__iter_comp_val(_Iter_comp_iter<C>): Use converting constructor.
999         (__val_comp_iter(_Iter_comp_iter<C>): Likewise.
1000         * include/bits/stl_heap.h (__is_heap_until, __push_heap, __pop_heap)
1001         (__make_heap, __sort_heap): Change _Compare parameters to references.
1002         (__is_heap, push_heap, __adjust_heap, __pop_heap, pop_heap)
1003         (__make_heap, make_heap, sort_heap, is_heap_until): Pass comparison
1004         functions as lvalues.
1005         (is_heap): Call __is_heap_until directly to avoid copying __comp.
1006         * testsuite/23_containers/priority_queue/67085.cc: Adjust test to
1007         count copies during construction with empty sequence.
1009         PR libstdc++/67085
1010         * include/bits/stl_heap.h (__is_heap): Use _GLIBCXX_MOVE.
1011         (__make_heap, __sort_heap): Don't use _GLIBCXX_MOVE inside loops.
1012         * testsuite/23_containers/priority_queue/67085.cc: Adjust expected
1013         number of copies.
1014         * testsuite/25_algorithms/make_heap/movable.cc: New test.
1016         PR libstdc++/67085
1017         * include/bits/stl_heap.h (push_heap, __adjust_heap, __pop_heap)
1018         (pop_heap, __make_heap, make_heap, __sort_heap, sort_heap): Use
1019         _GLIBCXX_MOVE when passing comparison function to other functions.
1020         (is_heap_until, is_heap): Use std::move when passing comparison
1021         function.
1022         * testsuite/23_containers/priority_queue/67085.cc: New test.
1024         PR libstdc++/78905
1025         * doc/xml/manual/abi.xml (abi.versioning.history): Add markup to
1026         macro names, filenames, and literal values. Document _GLIBCXX_RELEASE.
1027         Document that the deprecated _GLIBCXX_VERSION macro was removed for
1028         the 4.0.0 release.
1029         * doc/html/*: Regenerate.
1030         * include/Makefile.am (_GLIBCXX_RELEASE): Set value.
1031         * include/Makefile.in: Regenerate.
1032         * include/bits/c++config (_GLIBCXX_RELEASE): Add #define.
1033         * testsuite/ext/profile/mutex_extensions_neg.cc: Use lineno of 0 in
1034         dg-error.
1036 2017-01-18  Jonathan Wakely  <jwakely@redhat.com>
1038         PR libstdc++/69301
1039         * include/std/atomic (atomic<T>::load, atomic<T>::exchange): Use
1040         aligned buffer instead of default-initialized variable.
1041         * testsuite/29_atomics/atomic/69301.cc: New test.
1042         * include/experimental/memory (observer_ptr::release): Use reserved
1043         name.
1044         * include/ext/pointer.h (_Pointer_adapter::operator++(int))
1045         (_Pointer_adapter::operator--(int)): Likewise.
1047         PR libstdc++/68925
1048         * include/experimental/random (randint): Use temporary instead of
1049         thread_local static.
1051 2017-01-17  Joshua Conner  <joshconner@google.com>
1053         * crossconfig.m4: Add fuchsia OS.
1054         * configure: Regenerate.
1056 2017-01-17  Jonathan Wakely  <jwakely@redhat.com>
1058         PR libstdc++/69699
1059         * doc/xml/manual/abi.xml (abi.versioning.history): Explain why the
1060         __GLIBCXX__ macro is not useful. Remove redundant date information
1061         and link to the GCC release timeline.
1062         (abi.versioning.active): Move partial sentence into the previous
1063         paragraph.
1064         * doc/html/*: Regenerate.
1066         PR libstdc++/79114
1067         * libsupc++/nested_exception.h (throw_with_nested): Use decay instead
1068         of remove_reference.
1069         * testsuite/18_support/nested_exception/79114.cc: New test.
1071 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
1073         PR other/79046
1074         * configure.ac: Add GCC_BASE_VER.
1075         * fragment.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
1076         get version from BASE-VER file.
1077         * po/Makefile.in: Regenerated.
1078         * libsupc++/Makefile.in: Regenerated.
1079         * testsuite/Makefile.in: Regenerated.
1080         * src/Makefile.in: Regenerated.
1081         * configure: Regenerated.
1082         * Makefile.in: Regenerated.
1083         * include/Makefile.in: Regenerated.
1084         * doc/Makefile.in: Regenerated.
1085         * python/Makefile.in: Regenerated.
1086         * src/c++11/Makefile.in: Regenerated.
1087         * src/c++98/Makefile.in: Regenerated.
1088         * src/filesystem/Makefile.in: Regenerated.
1090 2017-01-16  Jonathan Wakely  <jwakely@redhat.com>
1092         PR libstdc++/66145
1093         * src/c++11/functexcept.cc: Use new ABI for std::ios_base::failure
1094         exceptions.
1095         * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Don't override ABI
1096         for test, so new ios::failure can be caught.
1097         * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
1098         * testsuite/27_io/basic_istream/extractors_arithmetic/char/
1099         exceptions_failbit.cc: Likewise.
1100         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
1101         exceptions_failbit.cc: Likewise.
1102         * testsuite/27_io/basic_istream/extractors_other/char/
1103         exceptions_null.cc: Likewise.
1104         * testsuite/27_io/basic_istream/extractors_other/wchar_t/
1105         exceptions_null.cc: Likewise.
1106         * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
1107         * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
1108         * testsuite/27_io/basic_ostream/inserters_other/char/
1109         exceptions_null.cc: Likewise.
1110         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
1111         exceptions_null.cc: Likewise.
1112         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
1114         PR libstdc++/78702
1115         * include/bits/locale_classes.h (locale::facet::__shim): Change from
1116         private to protected.
1117         * src/c++11/cxx11-shim_facets.cc (__shim_accessor): Define helper to
1118         make locale::facet::__shim accessible.
1120 2017-01-16  Ville Voutilainen  <ville.voutilainen@gmail.com>
1122         PR libstdc++/78389
1123         * include/bits/list.tcc (merge(list&&)): Fix backwards size adjustments.
1124         (merge(list&&, _StrictWeakOrdering)): Likewise.
1125         * testsuite/23_containers/list/operations/78389.cc: Add
1126         better test for the sizes.
1128 2017-01-14  Jonathan Wakely  <jwakely@redhat.com>
1130         * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
1131         Skip test when -D_GLIBCXX_PROFILE mode is included in options.
1132         * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
1133         * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
1134         Likewise.
1135         * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
1136         * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise.
1137         * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise.
1138         * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
1139         * testsuite/23_containers/unordered_map/modifiers/extract.cc:
1140         Likewise.
1141         * testsuite/23_containers/unordered_multimap/modifiers/extract.cc::
1142         Likewise.
1143         * testsuite/23_containers/unordered_multiset/modifiers/extract.cc::
1144         Likewise.
1145         * testsuite/23_containers/unordered_set/modifiers/extract.cc:
1146         Likewise.
1147         * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
1148         Likewise.
1149         * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise.
1150         * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise.
1151         * testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise.
1152         * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise.
1153         * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise.
1154         * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
1155         * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
1156         * testsuite/libstdc++-prettyprinters/debug.cc: Likewise.
1157         * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise.
1158         * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
1159         * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
1160         * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
1161         * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
1163 2017-01-13  Jonathan Wakely  <jwakely@redhat.com>
1165         PR libstdc++/65411
1166         * config/io/basic_file_stdio.cc (__basic_file<char>::close()): Don't
1167         retry fclose on EINTR.
1169         * include/profile/base.h: Remove unused header that leads to header
1170         cycle in C++17 mode.
1172         PR libstdc++/79075
1173         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
1174         Make _If_sv private.
1175         [!_GLIBCXX_USE_CXX11_ABI] (basic_string): Add member functions taking
1176         basic_string_view arguments.
1178         PR libstdc++/79075
1179         * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Remove
1180         redundant option from cxxflags.
1181         (check_effective_target_cxx11-abi): Define.
1182         * testsuite/21_strings/basic_string/allocator/71964.cc: Use cxx11-abi
1183         effective target.
1184         * testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise.
1185         * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
1186         Likewise.
1187         * testsuite/21_strings/basic_string/allocator/char/minimal.cc:
1188         Likewise.
1189         * testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
1190         * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
1191         Likewise.
1192         * testsuite/21_strings/basic_string/allocator/char/noexcept.cc:
1193         Likewise.
1194         * testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
1195         * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
1196         Likewise.
1197         * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
1198         Likewise.
1199         * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
1200         Likewise.
1201         * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
1202         Likewise.
1203         * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
1204         Likewise.
1205         * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
1206         Likewise.
1207         * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
1208         Likewise.
1209         * testsuite/23_containers/list/61347.cc: Likewise.
1210         * testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
1211         * testsuite/27_io/ios_base/failure/cxx11.cc: Likewise.
1213 2017-01-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
1215         PR libstdc++/78389
1216         * include/bits/list.tcc (merge(list&&)):
1217         Adjust list sizes if the comparator throws.
1218         (merge(list&&, _StrictWeakOrdering)): Likewise.
1219         (sort()): Splice elements back from the scratch buffers
1220         if the comparator throws.
1221         (sort(_StrictWeakOrdering)): Likewise.
1222         * testsuite/23_containers/list/operations/78389.cc: New.
1224 2017-01-13  Jonathan Wakely  <jwakely@redhat.com>
1226         * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Mark
1227         XFAIL for C++17 until node reinsertion supports fancy pointers.
1229         PR libstdc++/78361
1230         * testsuite/20_util/add_pointer/value.cc: Test forming function
1231         pointers.
1233 2017-01-13  Michael Brune  <lucdanton@free.fr>
1235         PR libstdc++/78361
1236         * include/std/type_traits (__is_referenceable): Handle noexcept
1237         function types.
1239 2017-01-12  Jonathan Wakely  <jwakely@redhat.com>
1241         PR libstdc++/77528
1242         * include/bits/stl_queue.h (queue, priority_queue): Remove default
1243         member-initializers and define default constructors as templates with
1244         constraints.
1245         * include/bits/stl_stack.h (stack): Likewise.
1246         * testsuite/23_containers/priority_queue/requirements/constructible.cc:
1247         New.
1248         * testsuite/23_containers/priority_queue/requirements/
1249         explicit_instantiation/1.cc: Test more instantiations.
1250         * testsuite/23_containers/priority_queue/requirements/
1251         explicit_instantiation/1_c++98.cc: Likewise.
1252         * testsuite/23_containers/queue/requirements/constructible.cc: New.
1253         * testsuite/23_containers/stack/requirements/constructible.cc: New.
1255         PR libstdc++/66284
1256         * doc/xml/manual/intro.xml: Document LWG 2781 change.
1257         * doc/html/*: Regenerate.
1258         * include/std/functional (_Function_base::_Ref_manager): Remove.
1259         (_Function_handler): Remove partial specializations for
1260         reference_wrapper.
1261         (function::target): Remove special case for const qualification.
1262         * testsuite/20_util/function/6.cc: Adjust tests for target type.
1263         * testsuite/20_util/function/7.cc: Likewise.
1264         * testsuite/20_util/function/8.cc: Likewise.
1266 2017-01-11  Jonathan Wakely  <jwakely@redhat.com>
1268         PR libstdc++/78134
1269         * include/bits/stl_map.h (map::lower_bound, map::upper_bound)
1270         (map::equal_range): Fix return type of heterogeneous overloads.
1271         * include/bits/stl_multimap.h (multimap::lower_bound)
1272         (multimap::upper_bound, multimap::equal_range): Likewise.
1273         * include/bits/stl_multiset.h (multiset::lower_bound)
1274         (multiset::upper_bound, multiset::equal_range): Likewise.
1275         * include/bits/stl_set.h (set::lower_bound, set::upper_bound)
1276         (set::equal_range): Likewise.
1277         * testsuite/23_containers/map/operations/2.cc
1278         * testsuite/23_containers/multimap/operations/2.cc
1279         * testsuite/23_containers/multiset/operations/2.cc
1280         * testsuite/23_containers/set/operations/2.cc
1282         PR libstdc++/78273
1283         * include/bits/stl_map.h (map::count<_Kt>(const _Kt&)): Don't assume
1284         the heterogeneous comparison can only find one match.
1285         * include/bits/stl_set.h (set::count<_Kt>(const _Kt&)): Likewise.
1286         * testsuite/23_containers/map/operations/2.cc: Test count works with
1287         comparison function that just partitions rather than sorting.
1288         * testsuite/23_containers/set/operations/2.cc: Likewise.
1290 2017-01-11  Ville Voutilainen  <ville.voutilainen@gmail.com>
1292         Reduce the size of variant, it doesn't need an index of
1293         type size_t internally.
1294         * include/std/variant (parse_numbers.h): New include.
1295         (__select_index): New.
1296         (_Variant_storage<false, _Types...>::_M_reset_impl): Use
1297         _index_type for comparison with variant_npos.
1298         (_Variant_storage<false, _Types...>::__index_type): New.
1299         (_Variant_storage<false, _Types...>::_M_index): Change the
1300         type from size_t to __index_type.
1301         (_Variant_storage<true, _Types...>::__index_type): New.
1302         (_Variant_storage<true, _Types...>::_M_index): Change the
1303         type from size_t to __index_type.
1304         (_Variant_base::_M_valid): Use _Storage::__index_type
1305         for comparison with variant_npos.
1306         (variant::index): Use _Base::_Storage::__index_type
1307         for comparison with variant_npos.
1308         * testsuite/20_util/variant/index_type.cc: New.
1310 2017-01-10  Jonathan Wakely  <jwakely@redhat.com>
1312         * testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
1313         effective target selector to prevent running in C++17 mode.
1315         PR libstdc++/77528
1316         * include/bits/stl_queue.h (queue::c): Add default member initializer.
1317         (queue::queue()): Add constructor and define as defaulted.
1318         (queue::queue(_Sequence&&)): Remove default argument.
1319         (priority_queue::c, priority_queue::comp): Add default member
1320         initializers.
1321         (priority_queue::priority_queue()): Add constructor and define as
1322         defaulted.
1323         (priority_queue::priority_queue(const _Compare&, _Sequence&&)):
1324         Remove default argument for first parameter.
1325         * include/bits/stl_stack.h (stack::c): Add default member initializer.
1326         (stack::stack()): Add constructor and define as defaulted.
1327         (stack::stack(const _Sequence&)): Remove default argument.
1328         * testsuite/23_containers/priority_queue/requirements/
1329         explicit_instantiation/1.cc: Test explicit instantiation with
1330         non-DefaultConstructible sequence.
1331         * testsuite/23_containers/priority_queue/77528.cc: New test.
1332         * testsuite/23_containers/priority_queue/requirements/
1333         explicit_instantiation/1_c++0x.cc: Replace with 1_c++98.cc.
1334         * testsuite/23_containers/queue/77528.cc: New test.
1335         * testsuite/23_containers/queue/requirements/explicit_instantiation/
1336         1.cc: Test explicit instantiation with non-DefaultConstructible
1337         sequence.
1338         * testsuite/23_containers/queue/requirements/explicit_instantiation/
1339         1_c++0x.cc: Replace with 1_c++98.cc.
1340         * testsuite/23_containers/stack/77528.cc: New test.
1341         * testsuite/23_containers/stack/requirements/explicit_instantiation/
1342         1.cc: Test explicit instantiation with non-DefaultConstructible
1343         sequence.
1344         * testsuite/23_containers/stack/requirements/explicit_instantiation/
1345         1_c++0x.cc: Replace with 1_c++98.cc.
1347 2017-01-10  Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
1349         * include/bits/locale_facets_nonio.tcc
1350         (time_get::_M_extract_via_format): Avoid compilation errors with
1351         non-standard struct tm.
1353 2017-01-10  François Dumont  <fdumont@gcc.gnu.org>
1354             Jonathan Wakely  <jwakely@redhat.com>
1356         * python/libstdcxx/v6/printers.py (_versioned_namespace): Define.
1357         (is_specialization, strip_versioned_namespace): New helpers functions
1358         to work with symbols in the versioned namespace.
1359         (Printer.add_version): Add second name using versioned namespace.
1360         (add_one_template_type_printer, add_one_type_printer): Add second
1361         type printers using versioned namespace.
1362         (register_type_printers): Add template type printer for basic_string.
1363         (build_libstdcxx_dictionary): Remove dead code.
1364         * python/libstdcxx/v6/xmethods.py: Make all matchers look for
1365         versioned namespace.
1366         * testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected
1367         results.
1368         * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
1370 2017-01-09  Jonathan Wakely  <jwakely@redhat.com>
1372         PR libstdc++/79017
1373         * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Check for llrint and llround
1374         functions separately on darwin and if they're missing define
1375         _GLIBCXX_NO_C99_ROUNDING_FUNCS.
1376         * config.h.in: Regenerate.
1377         * configure: Regenerate.
1378         * include/c_global/cmath [_GLIBCXX_NO_C99_ROUNDING_FUNCS] (llrint)
1379         (llrintf, llrintl, llround, llroundf, llroundl): Do not define.
1381         * testsuite/30_threads/condition_variable/members/3.cc: Use new macro
1382         to detect correct thread_local destructors.
1383         * testsuite/util/testsuite_hooks.h (CORRECT_THREAD_LOCAL_DTORS):
1384         Define.
1386 2017-01-09  Jonathan Wakely  <jwakely@redhat.com>
1387             Aditya Kumar  <hiraditya@msn.com>
1389         PR libstdc++/66414
1390         * include/bits/basic_string.tcc
1391         (basic_string::find(const CharT*, size_type, size_type)): Optimize.
1393 2017-01-06  Jonathan Wakely  <jwakely@redhat.com>
1395         * testsuite/21_strings/basic_string/operations/find/char/6.cc: New.
1396         * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: New.
1398         * testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
1399         Include <cassert> header.
1401         PR libstdc++/78968
1402         * crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
1403         * configure: Regenerate.
1405 2017-01-06  Barrett Adair  <barrettellisadair@gmail.com>
1406             Jonathan Wakely  <jwakely@redhat.com>
1408         * include/std/variant (variant, swap): Replace __and_ usage with fold
1409         expressions.
1411 2017-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1413         PR go/78978
1414         * acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
1415         * configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
1416         GLIBCXX_CHECK_ASSEMBLER_HWCAP.
1417         * fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
1418         HWCAP_FLAGS.
1419         * aclocal.m4: Regenerate.
1420         * configure: Regenerate.
1421         * Makefile.in, doc/Makefile.in, include/Makefile.in,
1422         libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
1423         src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
1424         src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
1426 2017-01-06  Jonathan Wakely  <jwakely@redhat.com>
1428         * include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.
1430         PR libstdc++/78991
1431         * include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
1432         (_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
1433         (_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and
1434         move function objects.
1435         (__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter)
1436         (__iter_comp_val, __iter_comp_iter, __negate): Move function objects.
1437         * testsuite/25_algorithms/sort/78991.cc: New test.
1439 2017-01-05  Jonathan Wakely  <jwakely@redhat.com>
1441         * include/bits/std_function.h (function::_Signature_type): Remove.
1442         (function::function(_Functor)): Adjust.
1444 2017-01-05  Tim Shen  <timshen@google.com>
1446         PR libstdc++/78996
1447         * include/std/variant (__gen_vtable_impl): rename __unused to
1448         __dimensions to avoid naming conflict.
1450 2017-01-04  Jonathan Wakely  <jwakely@redhat.com>
1452         PR libstdc++/78968
1453         * config.h.in: Regenerate.
1454         * configure: Likewise.
1455         * configure.ac: Check for __cxa_thread_atexit.
1456         * libsupc++/atexit_thread.cc [_GLIBCXX_HAVE___CXA_THREAD_ATEXIT]:
1457         Don't define __cxa_thread_atexit if libc provides it.
1459 2017-01-04  Ville Voutilainen  <ville.voutilainen@gmail.com>
1461         Implement 2801, Default-constructibility of unique_ptr.
1462         * include/bits/unique_ptr.h (__uniq_ptr_impl::_DeleterConstraint): New.
1463         (unique_ptr::_DeleterConstraint): Likewise.
1464         (unique_ptr()): Constrain.
1465         (unique_ptr(pointer)): Likewise.
1466         (unique_ptr(nullptr_t)): Likewise.
1467         (unique_ptr<_Tp[], _Dp>::_DeleterConstraint): New.
1468         (unique_ptr<_Tp[], _Dp>::unique_ptr()): Constrain.
1469         (unique_ptr<_Tp[], _Dp>::unique_ptr(_Up)): Likewise.
1470         (unique_ptr<_Tp[], _Dp>::unique_ptr(nullptr_t)): Likewise.
1471         * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust.
1472         * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
1473         * testsuite/20_util/unique_ptr/cons/default.cc: New.
1474         * testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Adjust.
1476 2017-01-04  Pauli Nieminen  <suokkos@gmail.com>
1477             Jonathan Wakely  <jwakely@redhat.com>
1479         PR libstdc++/64735
1480         * acinclude.m4 (GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER): Define.
1481         * config.h.in: Regenerate.
1482         * config/abi/pre/gnu.ver [HAVE_EXCEPTION_PTR_SINCE_GCC46]
1483         (GLIBCXX_3.4.15, GLIBCXX_3.4.21, CXXABI_1.3.3, CXXABI_1.3.5): Make
1484         exports for exception_ptr, nested_exception, and future conditional.
1485         [HAVE_EXCEPTION_PTR_SINCE_GCC46] (GLIBCXX_3.4.23, CXXABI_1.3.11): Add
1486         exports for exception_ptr, nested_exception, and future conditional.
1487         * configure: Regenerate.
1488         * configure.ac: Use GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER.
1489         * include/std/future: Remove check for ATOMIC_INT_LOCK_FREE
1490         * libsupc++/eh_atomics.h: New file for internal use only.
1491         (__eh_atomic_inc, __eh_atomic_dec): New.
1492         * libsupc++/eh_ptr.cc (exception_ptr::_M_addref)
1493         (exception_ptr::_M_release) (__gxx_dependent_exception_cleanup)
1494         (rethrow_exception): Use eh_atomics.h reference counting helpers.
1495         * libsupc++/eh_throw.cc (__gxx_exception_cleanup): Likewise.
1496         * libsupc++/eh_tm.cc (free_any_cxa_exception): Likewise.
1497         * libsupc++/exception: Remove check for ATOMIC_INT_LOCK_FREE.
1498         * libsupc++/exception_ptr.h: Likewise.
1499         * libsupc++/guard.cc: Include header for ATOMIC_INT_LOCK_FREE macro.
1500         * libsupc++/nested_exception.cc: Remove check for
1501         ATOMIC_INT_LOCK_FREE.
1502         * libsupc++/nested_exception.h: Likewise.
1503         * src/c++11/future.cc: Likewise.
1504         * testsuite/18_support/exception_ptr/*: Remove atomic builtins checks.
1505         * testsuite/18_support/nested_exception/*: Likewise.
1506         * testsuite/30_threads/async/*: Likewise.
1507         * testsuite/30_threads/future/*: Likewise.
1508         * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
1509         * testsuite/30_threads/packaged_task/*: Likewise.
1510         * testsuite/30_threads/promise/*: Likewise.
1511         * testsuite/30_threads/shared_future/*: Likewise.
1513 2017-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
1515         * doc/xml/manual/documentation_hacking.xml: sourceforge.net now
1516         defaults to https; adjust reference.
1518 2017-01-03  Jonathan Wakely  <jwakely@redhat.com>
1520         PR libstdc++/78956
1521         * include/std/thread (thread(const thread&&)): Add deleted
1522         constructor.
1523         * testsuite/30_threads/thread/cons/lwg2097.cc: New test.
1525         * doc/xml/manual/spine.xml: Update copyright years.
1526         * doc/xml/manual/build_hacking.xml: Fix spelling of libbuilddir.
1527         * doc/xml/manual/test.xml: Likewise.
1528         * doc/html/*: Regenerate.
1530 2017-01-01  Gerald Pfeifer  <gerald@pfeifer.com>
1532         * doc/xml/faq.xml: Update address of C++ ABI link.
1533         * doc/xml/manual/abi.xml: Ditto.
1535 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
1537         Update copyright years.
1539 Copyright (C) 2017 Free Software Foundation, Inc.
1541 Copying and distribution of this file, with or without modification,
1542 are permitted in any medium without royalty provided the copyright
1543 notice and this notice are preserved.