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