PR libstdc++/62045 fix O(N) insertion in pd_ds binary heap
[official-gcc.git] / libstdc++-v3 / ChangeLog
blob59976bd4b74afdccb9aecb336704c0a44a2ccf9d
1 2017-03-15  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
3         PR libstdc++/62045
4         * include/ext/pb_ds/qdetail/binary_heap_/binary_heap_.hpp
5         (is_heap): Remove.
6         (push_heap): Remove the wrong checking using is_heap.
7         (make_heap): Remove the assertion using is_heap.
8         * include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
9         (modify): Ditto.
10         (resize_for_insert_if_needed): Add PB_DS_ASSERT_VALID after
11         calling make_heap.
13 2017-03-15  Jonathan Wakely  <jwakely@redhat.com>
15         PR libstdc++/62045
16         * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
17         New test.
18         * testsuite/ext/pb_ds/regression/priority_queues.cc: Fix copy&paste
19         error in comment.
21 2017-03-15  Jonathan Wakely  <jwakely@redhat.com>
23         * acinclude.m4 (GLIBCXX_CHECK_S_ISREG_OR_S_IFREG): Fix typo in
24         comment.
25         * config.h.in: Regenerate.
26         * configure: Regenerate.
27         * doc/Makefile.in: Regenerate.
29 2017-03-14  Jonathan Wakely  <jwakely@redhat.com>
31         PR libstdc++/79162
32         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
33         (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Replace
34         with a constrained template.
35         [!_GLIBCXX_USE_CXX11_ABI]
36         (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Likewise.
37         * testsuite/21_strings/basic_string/cons/char/79162.cc: New test.
38         * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: New test.
40 2017-03-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
42         PR libstdc++/80034
43         * include/bits/list.tcc (merge(list&&)): Use const for the size_t
44         in the catch-block.
45         (merge(list&&, _StrictWeakOrdering)): Likewise.
46         * testsuite/23_containers/list/operations/80034.cc: New.
48 2017-03-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
50         Implement LWG 2806, Base class of bad_optional_access.
51         * include/std/optional (bad_optional_access):
52         Derive from std::exception.
53         (bad_optional_access::bad_optional_access): Adjust.
54         (bad_optional_access::what): New.
55         (__throw_bad_optional_access(const char*)):
56         Remove the parameter and adjust calls.
57         * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
58         * testsuite/20_util/optional/typedefs.cc: Likewise.
60 2017-03-12  Ville Voutilainen  <ville.voutilainen@gmail.com>
62         Implement LWG 2934, optional<const T> doesn't compare with T.
63         * include/std/optional
64         (operator==(const optional<_Tp>&, const optional<_Tp>&)):
65         Turn into operator==(const optional<_Tp>&, const optional<_Up>&).
66         (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
67         Turn into operator!=(const optional<_Tp>&, const optional<_Up>&).
68         (operator<(const optional<_Tp>&, const optional<_Tp>&)):
69         Turn into operator<(const optional<_Tp>&, const optional<_Up>&.
70         (operator>(const optional<_Tp>&, const optional<_Tp>&)):
71         Turn into operator>(const optional<_Tp>&, const optional<_Up>&.
72         (operator<=(const optional<_Tp>&, const optional<_Tp>&)):
73         Turn into operator<=(const optional<_Tp>&, const optional<_Up>&).
74         (operator>=(const optional<_Tp>&, const optional<_Tp>&)):
75         Turn into operator>=(const optional<_Tp>&, const optional<_Up>&).
76         (operator==(const optional<_Tp>&, const _Tp&)):
77         Turn into operator==(const optional<_Tp>&, const _Up&).
78         (operator==(const _Tp&, const optional<_Tp>&)):
79         Turn into operator==(const _Up&, const optional<_Tp>&).
80         (operator!=(const optional<_Tp>&, const _Tp&)):
81         Turn into operator!=(const optional<_Tp>&, const _Up&).
82         (operator!=(const _Tp&, const optional<_Tp>&)):
83         Turn into operator!=(const _Up&, const optional<_Tp>&).
84         (operator<(const optional<_Tp>&, const _Tp&)):
85         Turn into operator<(const optional<_Tp>&, const _Up&).
86         (operator<(const _Tp&, const optional<_Tp>&)):
87         Turn into operator<(const _Up&, const optional<_Tp>&).
88         (operator>(const optional<_Tp>&, const _Tp&)):
89         Turn into operator>(const optional<_Tp>&, const _Up&).
90         (operator>(const _Tp&, const optional<_Tp>&)):
91         Turn into operator>(const _Up&, const optional<_Tp>&).
92         (operator<=(const optional<_Tp>&, const _Tp&)):
93         Turn into operator<=(const optional<_Tp>&, const _Up&).
94         (operator<=(const _Tp&, const optional<_Tp>&)):
95         Turn into operator<=(const _Up&, const optional<_Tp>&).
96         (operator>=(const optional<_Tp>&, const _Tp&)):
97         Turn into operator>=(const optional<_Tp>&, const _Up&).
98         (operator>=(const _Tp&, const optional<_Tp>&)):
99         Turn into operator>=(const _Up&, const optional<_Tp>&).
100         * testsuite/20_util/optional/relops/7.cc: New.
102 2017-03-10  Jonathan Wakely  <jwakely@redhat.com>
104         * testsuite/17_intro/names.cc: Undefine macros that clash with
105         identifiers in AIX system headers.
107         * include/bits/invoke.h (__invoke): Use __invoke_result instead of
108         result_of, and __is_nothrow_invocable instead of
109         __is_nothrow_callable.
110         * include/bits/shared_ptr_base.h (__shared_ptr): Use __is_invocable
111         instead of __is_callable.
112         * include/std/functional (invoke): use invoke_result_t instead of
113         result_of_t and is_nothrow_invocable instead of is_nothrow_callable.
114         (_Not_fn): Use __invoke_result instead of result_of.
115         * include/std/type_traits (__result_of_memobj, __result_of_memfun):
116         Remove partial specializations for reference_wrapper types.
117         (__result_of_impl): Use __inv_unwrap to strip reference_wrapper.
118         (__invoke_result): Define replacement for result_of and then use it to
119         define result_of.
120         (__is_callable_impl, __is_callable, __is_nothrow_callable): Replace
121         with __is_invocable_impl, __is_invocable, and __is_nothrow_invocable
122         respectively.
123         (invoke_result, invoke_result_t): Define for C++17.
124         (is_callable, is_nothrow_callable): Replace with is_invocable,
125         is_invocable_r, is_nothrow_invocable, and is_nothrow_invocable_r.
126         (is_callable_v, is_nothrow_callable_v): Replace with is_invocable_v,
127         is_invocable_r_v, is_nothrow_invocable_v, and is_nothrow_invocable_r_v.
128         * include/std/variant (hash<variant<T...>>): Use is_nothrow_invocable_v
129         instead of is_nothrow_callable_v.
130         * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
131         main function.
132         * testsuite/20_util/function_objects/not_fn/1.cc: Use is_invocable
133         instead of is_callable.
134         * testsuite/20_util/is_callable/*: Rename directory and adjust tests
135         to use new traits.
136         * testsuite/20_util/is_notjrow_callable/*: Likewise.
137         * testsuite/20_util/optional/hash.cc: Use is_invocable_v instead of
138         is_callable.
139         * testsuite/20_util/variant/hash.cc: Likewise.
141 2017-03-10  George Lander  <george.lander@arm.com>
143         * acinclude.m4 (glibcxx_cv_obsolete_isnan): Define
144         _GLIBCXX_INCLUDE_NEXT_C_HEADERS before including math.h.
145         * configure: Regenerate.
147 2017-03-09  Jonathan Wakely  <jwakely@redhat.com>
149         * include/std/functional (_Not_fn): Define macro to simplify
150         repetitive function definitions.
152         * doc/xml/manual/status_cxx2017.xml: Document std::byte support.
153         * include/c_global/cstddef (std::byte): Define for C++17.
154         * testsuite/18_support/byte/global_neg.cc: New test.
155         * testsuite/18_support/byte/ops.cc: New test.
156         * testsuite/18_support/byte/requirements.cc: New test.
158 2017-03-05  Jonathan Wakely  <jwakely@redhat.com>
160         * doc/xml/manual/status_cxx2017.xml: Document P0156R2 status.
161         * doc/html/*: Regenerate.
162         * include/std/mutex (scoped_lock): Implement new C++17 template.
163         * testsuite/30_threads/scoped_lock/cons/1.cc: New test.
164         * testsuite/30_threads/scoped_lock/requirements/
165         explicit_instantiation.cc: New test.
166         * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: New test.
168 2017-03-02  Gerald Pfeifer  <gerald@pfeifer.com>
169             François Dumont  <frs.dumont@gmail.com>
170             Jonathan Wakely  <jwakely@redhat.com>
172         * doc/xml/manual/debug_mode.xml: Update and simplify note
173         on link- and run-time coexistence.
175 2017-03-02  Jonathan Wakely  <jwakely@redhat.com>
177         * testsuite/17_intro/headers/names.cc: Rename to ...
178         * testsuite/17_intro/names.cc: ... here.
180         PR libstdc++/79789
181         * include/bits/hashtable_policy.h (__clp2): Use reserved names for
182         parameters and local variables.
183         * include/bits/ios_base.h (make_error_code, make_error_condition):
184         Likewise.
185         * include/bits/list.tcc (list::sort): Likewise.
186         * include/bits/mask_array.h (mask_array): Likewise.
187         * include/bits/regex.h (regex_token_iterator): Likewise.
188         * include/bits/slice_array.h (slice_array): Likewise.
189         * include/bits/stl_algo.h (__sample): Likewise.
190         * include/std/memory (undeclare_no_pointers): Likewise.
191         * include/std/type_traits (is_callable_v, is_nothrow_callable_v):
192         Likewise.
193         * libsupc++/exception_ptr.h (__dest_thunk): Likewise.
194         * testsuite/17_intro/headers/names.cc: New test.
196         PR libstdc++/79798
197         * include/std/functional (bind::_Res_type_impl): Fix incorrect use of
198         result_of that loses top-level cv-qualifiers.
199         * testsuite/20_util/bind/79798.cc: New test.
201 2017-03-01  Gerald Pfeifer  <gerald@pfeifer.com>
203         * doc/xml/manual/documentation_hacking.xml: Tweak link to
204         doxygen.org.
206 2017-02-23  Jonathan Wakely  <jwakely@redhat.com>
208         * include/experimental/iterator: Include <iterator>.
209         * testsuite/experimental/iterator/requirements.cc: Check for contents
210         of <iterator>.
212 2017-02-19  Dinka Ranns  <dinka.ranns@googlemail.com>
214         C++17 GB50 resolution
215         * include/std/chrono (duration::operator++()): Add
216         _GLIBCXX17_CONSTEXPR.
217         (duration::operator++(int)): Likewise.
218         (duration::operator--()): Likewise.
219         (duration::operator--(int)): Likewise.
220         (duration::operator+=(const duration&)): Likewise.
221         (duration::operator-=(const duration&)): Likewise.
222         (duration::operator*=(const rep&)): Likewise.
223         (duration::operator/=(const rep&)): Likewise.
224         (duration::operator%=(const rep&)): Likewise.
225         (duration::operator%=(const duration&)): Likewise.
226         (time_point::operator+=(const duration&)): Likewise.
227         (time_point::operator-=(const duration&)): Likewise.
228         * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: New test.
229         * testsuite/20_util/duration/literals/range.cc: Adjust dg-error.
230         * testsuite/20_util/time_point/arithmetic/constexpr.cc: New test.
232 2017-02-19  Gerald Pfeifer  <gerald@pfeifer.com>
234         * doc/xml/manual/debug.xml: Adjust link to ThreadSanitizer.
236 2017-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
238         * doc/xml/manual/io.xml: Update link to groups.google.com.
239         Tweak link description.
241 2017-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
242         
243         * doc/xml/manual/profile_mode.xml: Fix link.
245 2017-02-16  Gerald Pfeifer  <gerald@pfeifer.com>
247         * doc/xml/manual/policy_data_structures.xml: Simplify and
248         standardize references to boost.org.
249         * doc/xml/manual/policy_data_structures_biblio.xml: Ditto.
250         * doc/xml/manual/shared_ptr.xml: Ditto.
252 2017-02-16  Jonathan Wakely  <jwakely@redhat.com>
254         PR libstdc++/60936
255         * src/c++11/snprintf_lite.cc (__concat_size_t): Calculate length
256         written to buffer, not length remaining in buffer.
258 2017-02-15  Tim Shen  <timshen@google.com>
260         PR libstdc++/78723
261         * include/std/variant (operator<(), operator>(), operator<=(),
262         operator>=(), operator==(), operator!=()): Implement P0393R3.
263         * testsuite/20_util/variant/compile.cc: Adjust tests.
264         * testsuite/20_util/variant/run.cc: Adjust tests.
266 2017-02-15  Tim Shen  <timshen@google.com>
268         PR libstdc++/79513
269         * include/std/variant (visit()): Forward variant types to the return
270         type detection code.
271         * testsuite/20_util/variant/compile.cc: Add test cases.
273 2017-02-13  H.J. Lu  <hongjiu.lu@intel.com>
275         PR libstdc++/79348
276         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
278 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
280         PR libstdc++/79348
281         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
282         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
283         * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Likewise.
284         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
285         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Likewise.
286         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Likewise.
287         * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Likewise.
288         * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Likewise.
289         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
291 2017-02-13  Jonathan Wakely  <jwakely@redhat.com>
293         PR libstdc++/79486
294         * include/std/future (__future_base::_Task_state::_M_run)
295         (__future_base::_Task_state::_M_run_delayed): Use lvalue types in
296         result_of expressions.
297         * testsuite/30_threads/packaged_task/79486.cc: New.
299 2017-02-11  Jonathan Wakely  <jwakely@redhat.com>
301         PR libstdc++/79467
302         * include/bits/shared_ptr_base.h (__shared_ptr(_Yp*, _Deleter))
303         (__shared_ptr(_Yp*, _Deleter, _Alloc)): Use lvalue types in
304         __is_callable check.
305         * testsuite/20_util/shared_ptr/cons/79467.cc: New.
307         * include/bits/atomic_base.h: Re-indent.
309 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com> 
311         * doc/xml/manual/profile_mode.xml: Update a paper reference. 
313 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
315         * src/c++11/snprintf_lite.cc (__err): Use https for bug reporting.
317 2017-02-08  Jonathan Wakely  <jwakely@redhat.com>
319         * doc/xml/manual/policy_data_structures.xml: Fix spelling of author's
320         name.
321         * doc/xml/manual/policy_data_structures_biblio.xml: Likewise. Remove
322         broken links to texts that are no longer online.
323         * doc/xml/manual/profile_mode.xml: Update links to CGO 2009 paper and
324         LCPC 2006 paper.
325         * doc/xml/manual/using.xml: Update links to memory model information.
326         * doc/xml/manual/using_exceptions.xml: Update link to "Appendix E:
327         Standard-Library Exception Safety".
328         * doc/html/*: Regenerate.
330 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
331         
332         * doc/xml/manual/profile_mode.xml: Unbreak link to
333         "Optimizing Sorting with Machine Learning Algorithms".
335 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
336         
337         * src/c++11/snprintf_lite.cc (__err): Update bug reporting URL.
339 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
340         
341         * doc/xml/manual/abi.xml: Update link to "Sun Studio 11: C++
342         Migration Guide".
344 2017-02-07  Gerald Pfeifer  <gerald@pfeifer.com>
346         * doc/html/ext/lwg-active.html: Remove.
347         * doc/html/ext/lwg-closed.html: Ditto.
348         * doc/html/ext/lwg-defects.html: Ditto.
350         * doc/Makefile.am (xml_extradir): Remove.
351         (xml_extra): Ditto.
352         (stamp-html-docbook-lwg): Remove recipe...
353         (stamp-html-docbook-data): ...and its use here.
354         * doc/Makefile.in: Regenerate.
356         * doc/xml/manual/intro.xml: Shorten two paragraphs explaining
357         the relationship to the upstream working group.
358         Replace a local link to ../ext/lwg-active.html by the upstream one.
359         Replace all reference to ../ext/lwg-defects.html by a new entity
360         &DR; which refers to the upstream address.
362 2017-02-07  Gerald Pfeifer  <gerald@pfeifer.com>
364         * doc/xml/manual/status_cxx2017.xml: Fix link to N4284.
366 2017-02-06  Jonathan Wakely  <jwakely@redhat.com>
368         PR libstdc++/79323
369         * testsuite/20_util/duration/literals/range.cc: Prune extra output
370         at -O0.
372 2017-02-06  Gerald Pfeifer  <gerald@pfeifer.com>
374         * doc/xml/manual/documentation_hacking.xml: Update URL of the
375         DocBook Element Reference.  Use that term as link description
376         instead of "online".
377         epubcheck has moved to GitHub.
378         Remove obsolete link to DocBook Publishing Tools.
380 2017-02-03  Jonathan Wakely  <jwakely@redhat.com>
382         PR libstdc++/66145
383         * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Restore ABI override
384         so new ios::failure can be caught even when old ABI is the default.
385         * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
386         * testsuite/27_io/basic_istream/extractors_arithmetic/char/
387         exceptions_failbit.cc: Likewise.
388         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
389         exceptions_failbit.cc: Likewise.
390         * testsuite/27_io/basic_istream/extractors_other/char/
391         exceptions_null.cc: Likewise.
392         * testsuite/27_io/basic_istream/extractors_other/wchar_t/
393         exceptions_null.cc: Likewise.
394         * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
395         * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
396         * testsuite/27_io/basic_ostream/inserters_other/char/
397         exceptions_null.cc: Likewise.
398         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
399         exceptions_null.cc: Likewise.
400         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
402         PR libstdc++/60936
403         * src/c++11/Makefile.am: Add new files.
404         * src/c++11/Makefile.in: Regenerate.
405         * src/c++11/cow-string-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
406         (operator<<, operator>>, getline): Move explicit instantiations to ...
407         * src/c++11/cow-string-io-inst.cc: ... new file.
408         * src/c++11/cow-wstring-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
409         (operator<<, operator>>, getline): Move explicit instantiations to ...
410         * src/c++11/cow-wstring-io-inst.cc: ... new file.
411         * src/c++11/functexcept.cc (__throw_ios_failure, __throw_system_error)
412         (__throw_future_error, __throw_bad_function_call):
413         (__throw_regex_error): Move functions for C++11 exceptions to the
414         files that define the exception types.
415         * src/c++11/functional.cc (__throw_bad_function_call): Move here.
416         * src/c++11/future.cc (__throw_future_error): Likewise.
417         * src/c++11/ios.cc (__throw_ios_failure): Likewise.
418         * src/c++11/regex.cc (__throw_regex_error): Likewise.
419         * src/c++11/snprintf_lite.cc (__concat_size_t): Print decimal
420         representation directly instead of calling __int_to_char.
421         * src/c++11/sso_string.cc (__sso_string): New file for definition
422         of __sso_string type.
423         * src/c++11/string-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
424         explicit instantiations of narrow string I/O functions.
425         * src/c++11/system_error.cc (__throw_system_error): Move here.
426         (__sso_string): Move to new file.
427         * src/c++11/wstring-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
428         explicit instantiations of wide string I/O functions.
429         * src/c++98/misc-inst.cc [_GLIBCXX_USE_CXX11_ABI] (operator<<)
430         (operator>>, getline): Remove explicit instantiations from here.
432 2017-02-02  H.J. Lu  <hongjiu.lu@intel.com>
434         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
436 2017-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
438         * configure.host: Separate Solaris/SPARC and x86 baselines.
439         * config/abi/post/solaris2.10/baseline_symbols.txt: Move ...
440         * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: ... here.
441         * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Move ...
442         * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
443         ... here.
444         * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Move ...
445         * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: ... here.
446         * config/abi/post/i386-solaris2.10/baseline_symbols.txt: New file.
447         * config/abi/post/solaris2.11/baseline_symbols.txt: Move ...
448         * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: ... here.
449         * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Move ...
450         * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
451         ... here.
452         * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Move ...
453         * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: ... here.
454         * config/abi/post/i386-solaris2.11/baseline_symbols.txt: New file.
456         * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
457         * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
458         * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
459         * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
460         * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
461         * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
463 2017-02-01  Jonathan Wakely  <jwakely@redhat.com>
465         PR libstdc++/78346
466         * include/bits/predefined_ops.h (_Iter_equals_iter): Store iterator
467         not its referent.
468         (_Iter_comp_to_iter): Likewise.
469         * testsuite/25_algorithms/search/78346.cc: New test.
471         PR libstdc++/79254
472         * config/abi/pre/gnu.ver: Remove recently added symbols.
473         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
474         (basic_string::_M_copy_assign): Remove.
475         (basic_string::operator=(const basic_string&)): Don't dispatch to
476         _M_copy_assign. If source object is small just deallocate, otherwise
477         perform new allocation before making any changes.
478         * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
479         (basic_string::_M_copy_assign(const basic_string&, true_type)):
480         Remove.
481         * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
482         Test cases where the allocators are equal or the string is small.
483         * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
484         Likewise.
486 2017-01-30  Ville Voutilainen  <ville.voutilainen@gmail.com>
488         Implement LWG 2825, LWG 2756 breaks class template argument
489         deduction for optional.
490         * include/std/optional: Add a deduction guide.
491         * testsuite/20_util/optional/cons/deduction_guide.cc: New.
493 2017-01-27  Jonathan Wakely  <jwakely@redhat.com>
495         PR libstdc++/79254
496         * config/abi/pre/gnu.ver: Add new symbols.
497         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
498         (basic_string::_M_copy_assign): New overloaded functions to perform
499         copy assignment.
500         (basic_string::operator=(const basic_string&)): Dispatch to
501         _M_copy_assign.
502         * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
503         (basic_string::_M_copy_assign(const basic_string&, true_type)):
504         Define, performing rollback on exception.
505         * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
506         Test exception-safety guarantee.
507         * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
508         Likewise.
509         * testsuite/util/testsuite_allocator.h (uneq_allocator::swap): Make
510         std::swap visible.
512 2017-01-26  Jonathan Wakely  <jwakely@redhat.com>
514         PR libstdc++/70607
515         * include/tr1/complex (conj): Remove using-declaration and restore
516         overloads, reverting previous change.
518         * testsuite/23_containers/list/operations/78389.cc: Fix for C++11
519         mode.
520         * testsuite/23_containers/priority_queue/requirements/constructible.cc:
521         Mark as unsupported in C++98 mode.
522         * testsuite/23_containers/queue/requirements/constructible.cc:
523         Likewise.
524         * testsuite/23_containers/stack/requirements/constructible.cc:
525         Likewise.
526         * testsuite/25_algorithms/make_heap/movable.cc: Fix for C++11 mode.
528         PR libstdc++/79243
529         * include/bits/c++config (literals::string_view_literals::__7): Add.
530         Only declare versioned namespaces for the relevant C++ dialects.
531         * include/experimental/bits/erase_if.h (fundamentals_v2::__detail):
532         Add versioning macros.
533         * include/experimental/bits/lfts_config.h:
534         (fundamentals_v1::__detail::__7, fundamentals_v2::__detail::__7): Add.
535         * include/experimental/string_view (fundamentals_v2::__detail):
536         Add versioning macros.
537         (fundamentals_v2::__detail::__identity): Remove.
538         (fundamentals_v2::__detail::__idt): Use common_type instead of
539         __detail::__identity.
540         * include/std/string_view (__detail::__identity, __detail::__idt):
541         Likewise.
542         (literals::string_view_literals): Fix nesting of versioning macros.
544         PR libstdc++/79190
545         * libsupc++/del_opa.cc (operator delete(void*, std::align_val_t))
546         [!_GLIBCXX_HAVE_ALIGNED_ALLOC && !_GLIBCXX_HAVE_POSIX_MEMALIGN
547         && !_GLIBCXX_HAVE_MEMALIGN && !_GLIBCXX_HAVE__ALIGNED_MALLOC]:
548         Retrieve original pointer value allocated by malloc.
549         * libsupc++/new_opa.cc [!_GLIBCXX_HAVE_ALIGNED_ALLOC
550         && !_GLIBCXX_HAVE_POSIX_MEMALIGN && !_GLIBCXX_HAVE_MEMALIGN
551         && !_GLIBCXX_HAVE__ALIGNED_MALLOC] (aligned_alloc(size_t, size_t)):
552         Define, adjusting pointer value allocated by malloc and storing for
553         retrieval by operator delete.
555 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
557         * libsupc++/eh_atomics.h: Update copyright years.
558         * testsuite/20_util/unique_ptr/cons/default.cc: Update copyright years.
560 2017-01-25  Jonathan Wakely  <jwakely@redhat.com>
562         PR libstdc++/61791
563         PR libstdc++/70607
564         * include/std/complex (real(T), imag(T)): Add _GLIBCXX_CONSTEXPR.
565         (proj(T), conj(T)): Change return types per DR 1522.
566         * include/tr1/complex (conj): Remove overloads and use std::conj.
567         * testsuite/26_numerics/complex/dr781_dr1137.cc: Rename to...
568         * testsuite/26_numerics/complex/dr781.cc: ... this, and update.
569         * testsuite/26_numerics/complex/value_operations/constexpr2.cc: Test
570         real(T) and imag(T). Allow testing for C++11 too.
572 2017-01-24  Jonathan Wakely  <jwakely@redhat.com>
574         PR libstdc++/79206
575         * include/experimental/string_view (operator==): Check sizes first.
576         * include/std/string_view (operator==): Likewise.
578 2017-01-23  Jonathan Wakely  <jwakely@redhat.com>
580         * testsuite/experimental/array/make_array.cc: Restore <functional>
581         inclusion.
583 2017-01-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
585         * testsuite/29_atomics/atomic/69301.cc: Require atomic builtins.
587 2017-01-23  Jonathan Wakely  <jwakely@redhat.com>
589         PR libstdc++/79195
590         * include/experimental/array (__make_array_elem): New class template
591         and partial specialization.
592         (__is_reference_wrapper): Move into __make_array_elem specialization.
593         (make_array): Use __make_array_elem to determine element type and move
594         static assertion into specialization. Qualify std::forward call.
595         (to_array): Add exception specifiation.
596         * testsuite/experimental/array/make_array.cc: Test argument types
597         without a common type.
598         * testsuite/experimental/array/neg.cc: Adjust expected error message.
600 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
602         * doc/xml/manual/debug.xml: code.google.com uses https now.
604 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
605         
606         * doc/xml/manual/test.xml: Fix link into gccint online manual.
608 2017-01-21  Ville Voutilainen  <ville.voutilainen@gmail.com>
610         Make poisoned hashes SFINAE away the call operator of the hash.
611         * include/bits/functional_hash.h
612         (__poison_hash::__enable_hash_call): New.
613         * include/std/optional (__optional_hash_call_base): New.
614         (hash<optional<_Tp>>): Derive from the new base,
615         move the hash function into that base.
616         * include/std/variant (__variant_hash_call_base_impl): New.
617         (__variant_hash_call_base): Likewise.
618         (hash<variant<_Types...>>): Derive from the new base,
619         move the hash function into that base.
620         * testsuite/20_util/optional/hash.cc: Add tests for is_callable.
621         * testsuite/20_util/variant/hash.cc: Likewise.
623 2017-01-20  Joe Seymour  <joe.s@somniumtech.com>
625         * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): Support uint20_t.
626         * configure: Regenerate.
628 2017-01-20  Jonathan Wakely  <jwakely@redhat.com>
630         PR libstdc++/69240
631         * include/bits/random.h (uniform_real_distribution::param_type)
632         (normal_distribution::param_type, lognormal_distribution::param_type)
633         (gamma_distribution::param_type, chi_squared_distribution::param_type)
634         (cauchy_distribution::param_type, fisher_f_distribution::param_type)
635         (student_t_distribution::param_type)
636         (bernoulli_distribution::param_type, binomial_distribution::param_type)
637         (geometric_distribution::param_type)
638         (negative_binomial_distribution::param_type)
639         (poisson_distribution::param_type)
640         (exponential_distribution::param_type)
641         (weibull_distribution::param_type)
642         (extreme_value_distribution::param_type)
643         (discrete_distribution::param_type)
644         (piecewise_constant_distribution::param_type)
645         (piecewise_linear_distribution::param_type): Define operator!=.
646         * include/bits/uniform_int_dist.h
647         (uniform_int_distribution::param_type): Likewise.
648         * include/ext/random (beta_distribution::param_type)
649         (rice_distribution::param_type, nakagami_distribution::param_type)
650         (pareto_distribution::param_type, k_distribution::param_type)
651         (arcsine_distribution::param_type, hoyt_distribution::param_type)
652         (triangular_distribution::param_type)
653         (von_mises_distribution::param_type)
654         (hypergeometric_distribution::param_type)
655         (logistic_distribution::param_type)
656         (uniform_on_sphere_distribution::param_type)
657         (uniform_inside_sphere_distribution::param_type): Likewise.
658         * testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc:
659         Test construction with param_type.
660         * testsuite/26_numerics/random/binomial_distribution/cons/parms.cc:
661         Likewise.
662         * testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc:
663         Likewise.
664         * testsuite/26_numerics/random/chi_squared_distribution/cons/parms.cc:
665         Likewise.
666         * testsuite/26_numerics/random/exponential_distribution/cons/parms.cc:
667         Likewise.
668         * testsuite/26_numerics/random/extreme_value_distribution/cons/
669         parms.cc: Likewise.
670         * testsuite/26_numerics/random/fisher_f_distribution/cons/parms.cc:
671         Likewise.
672         * testsuite/26_numerics/random/gamma_distribution/cons/parms.cc:
673         Likewise.
674         * testsuite/26_numerics/random/geometric_distribution/cons/parms.cc:
675         Likewise.
676         * testsuite/26_numerics/random/lognormal_distribution/cons/parms.cc:
677         Likewise.
678         * testsuite/26_numerics/random/negative_binomial_distribution/cons/
679         parms.cc: Likewise.
680         * testsuite/26_numerics/random/normal_distribution/cons/parms.cc:
681         Likewise.
682         * testsuite/26_numerics/random/poisson_distribution/cons/parms.cc:
683         Likewise.
684         * testsuite/26_numerics/random/student_t_distribution/cons/parms.cc:
685         Likewise.
686         * testsuite/26_numerics/random/uniform_int_distribution/cons/parms.cc:
687         Likewise.
688         * testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc:
689         Likewise.
690         * testsuite/26_numerics/random/weibull_distribution/cons/parms.cc:
691         Likewise.
692         * testsuite/ext/random/arcsine_distribution/cons/parms.cc: Likewise.
693         * testsuite/ext/random/beta_distribution/cons/parms.cc: Likewise.
694         * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
695         * testsuite/ext/random/hypergeometric_distribution/cons/parms.cc:
696         Likewise.
697         * testsuite/ext/random/k_distribution/cons/parms.cc: Likewise.
698         * testsuite/ext/random/logistic_distribution/cons/parms.cc: Likewise.
699         * testsuite/ext/random/nakagami_distribution/cons/parms.cc: Likewise.
700         * testsuite/ext/random/normal_mv_distribution/cons/parms.cc: Likewise.
701         * testsuite/ext/random/pareto_distribution/cons/parms.cc: Likewise.
702         * testsuite/ext/random/rice_distribution/cons/parms.cc: Likewise.
703         * testsuite/ext/random/triangular_distribution/cons/parms.cc:
704         Likewise.
705         * testsuite/ext/random/uniform_inside_sphere_distribution/cons/
706         parms.cc: Likewise.
707         * testsuite/ext/random/von_mises_distribution/cons/parms.cc: Likewise.
709         PR libstdc++/72792
710         * include/bits/alloc_traits.h (__allocator_traits_base::__diff_type)
711         (__allocator_traits_base::__size_type): Remove.
712         (allocator_traits::_Ptr): New class template to detect const and void
713         pointer types without instantiating pointer_traits::rebind
714         unnecessarily.
715         (allocator_traits::_Diff): Likewise for detecting difference_type.
716         (allocator_traits::_Size): New class template to detect size_type
717         without instantiating make_unsigned unnecessarily.
718         * include/bits/ptr_traits.h (pointer_traits::element_type): Use
719         __detected_or_t instead of __detected_or_t_.
720         * include/std/type_traits (__detected_or_t_): Remove.
721         * testsuite/20_util/allocator_traits/members/pointers.cc: New test.
723         PR libstdc++/72792
724         PR libstdc++/72793
725         * include/bits/alloc_traits.h (__allocator_traits_base::__rebind):
726         Replace with class template using void_t.
727         (__alloc_rebind): Define in terms of
728         __allocator_traits_base::__rebind.
729         (allocator_traits): Remove unconditional static_assert for
730         rebind_alloc.
731         * include/bits/ptr_traits.h (__replace_first_arg): Remove type member.
732         (pointer_traits::__rebind): Replace with class template using void_t.
733         (pointer_traits::rebind): Define in terms of __rebind.
734         (pointer_traits): Remove unconditional static_assert for rebind.
735         * testsuite/20_util/allocator_traits/members/rebind_alloc.cc: New test.
736         * testsuite/20_util/pointer_traits/rebind.cc: New test.
738         PR libstdc++/69321
739         * include/experimental/any (__any_caster): Avoid instantiating
740         manager function for types that can't be stored in any.
741         * include/std/any (__any_caster): Likewise.
742         * testsuite/20_util/any/misc/any_cast.cc: Test non-copyable type.
743         * testsuite/experimental/any/misc/any_cast.cc: Likewise.
745         PR libstdc++/64903
746         * include/bits/stl_algo.h (is_partitioned): Use increment instead of
747         std::advance.
749 2017-01-19  Jonathan Wakely  <jwakely@redhat.com>
751         PR libstdc++/79156
752         * include/bits/shared_ptr_base.h (__enable_shared_from_this_base):
753         Fix return type.
754         (__enable_shared_from_this): Declare __shared_ptr as a friend.
755         * testsuite/ext/shared_ptr/1.cc: New test.
757         PR libstdc++/64903
758         * include/bits/stl_algo.h (is_partitioned): Don't retest the partition
759         point.
760         * testsuite/25_algorithms/is_partitioned/2.cc: New test.
762         * doc/xml/manual/abi.xml: Fix typo.
763         * doc/html/manual/abi.html: Likewise.
765         PR libstdc++/67085
766         * include/bits/predefined_ops.h (_Iter_less_val, _Val_less_iter): Add
767         converting constructors from _Iter_less_iter.
768         (_Iter_comp_val, _Val_comp_iter): Add converting constructors from
769         _Iter_comp_iter.
770         (__iter_comp_val(_Iter_comp_iter<C>): Use converting constructor.
771         (__val_comp_iter(_Iter_comp_iter<C>): Likewise.
772         * include/bits/stl_heap.h (__is_heap_until, __push_heap, __pop_heap)
773         (__make_heap, __sort_heap): Change _Compare parameters to references.
774         (__is_heap, push_heap, __adjust_heap, __pop_heap, pop_heap)
775         (__make_heap, make_heap, sort_heap, is_heap_until): Pass comparison
776         functions as lvalues.
777         (is_heap): Call __is_heap_until directly to avoid copying __comp.
778         * testsuite/23_containers/priority_queue/67085.cc: Adjust test to
779         count copies during construction with empty sequence.
781         PR libstdc++/67085
782         * include/bits/stl_heap.h (__is_heap): Use _GLIBCXX_MOVE.
783         (__make_heap, __sort_heap): Don't use _GLIBCXX_MOVE inside loops.
784         * testsuite/23_containers/priority_queue/67085.cc: Adjust expected
785         number of copies.
786         * testsuite/25_algorithms/make_heap/movable.cc: New test.
788         PR libstdc++/67085
789         * include/bits/stl_heap.h (push_heap, __adjust_heap, __pop_heap)
790         (pop_heap, __make_heap, make_heap, __sort_heap, sort_heap): Use
791         _GLIBCXX_MOVE when passing comparison function to other functions.
792         (is_heap_until, is_heap): Use std::move when passing comparison
793         function.
794         * testsuite/23_containers/priority_queue/67085.cc: New test.
796         PR libstdc++/78905
797         * doc/xml/manual/abi.xml (abi.versioning.history): Add markup to
798         macro names, filenames, and literal values. Document _GLIBCXX_RELEASE.
799         Document that the deprecated _GLIBCXX_VERSION macro was removed for
800         the 4.0.0 release.
801         * doc/html/*: Regenerate.
802         * include/Makefile.am (_GLIBCXX_RELEASE): Set value.
803         * include/Makefile.in: Regenerate.
804         * include/bits/c++config (_GLIBCXX_RELEASE): Add #define.
805         * testsuite/ext/profile/mutex_extensions_neg.cc: Use lineno of 0 in
806         dg-error.
808 2017-01-18  Jonathan Wakely  <jwakely@redhat.com>
810         PR libstdc++/69301
811         * include/std/atomic (atomic<T>::load, atomic<T>::exchange): Use
812         aligned buffer instead of default-initialized variable.
813         * testsuite/29_atomics/atomic/69301.cc: New test.
814         * include/experimental/memory (observer_ptr::release): Use reserved
815         name.
816         * include/ext/pointer.h (_Pointer_adapter::operator++(int))
817         (_Pointer_adapter::operator--(int)): Likewise.
819         PR libstdc++/68925
820         * include/experimental/random (randint): Use temporary instead of
821         thread_local static.
823 2017-01-17  Joshua Conner  <joshconner@google.com>
825         * crossconfig.m4: Add fuchsia OS.
826         * configure: Regenerate. 
828 2017-01-17  Jonathan Wakely  <jwakely@redhat.com>
830         PR libstdc++/69699
831         * doc/xml/manual/abi.xml (abi.versioning.history): Explain why the
832         __GLIBCXX__ macro is not useful. Remove redundant date information
833         and link to the GCC release timeline.
834         (abi.versioning.active): Move partial sentence into the previous
835         paragraph.
836         * doc/html/*: Regenerate.
838         PR libstdc++/79114
839         * libsupc++/nested_exception.h (throw_with_nested): Use decay instead
840         of remove_reference.
841         * testsuite/18_support/nested_exception/79114.cc: New test.
843 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
845         PR other/79046
846         * configure.ac: Add GCC_BASE_VER.
847         * fragment.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
848         get version from BASE-VER file.
849         * po/Makefile.in: Regenerated.
850         * libsupc++/Makefile.in: Regenerated.
851         * testsuite/Makefile.in: Regenerated.
852         * src/Makefile.in: Regenerated.
853         * configure: Regenerated.
854         * Makefile.in: Regenerated.
855         * include/Makefile.in: Regenerated.
856         * doc/Makefile.in: Regenerated.
857         * python/Makefile.in: Regenerated.
858         * src/c++11/Makefile.in: Regenerated.
859         * src/c++98/Makefile.in: Regenerated.
860         * src/filesystem/Makefile.in: Regenerated.
862 2017-01-16  Jonathan Wakely  <jwakely@redhat.com>
864         PR libstdc++/66145
865         * src/c++11/functexcept.cc: Use new ABI for std::ios_base::failure
866         exceptions.
867         * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Don't override ABI
868         for test, so new ios::failure can be caught.
869         * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
870         * testsuite/27_io/basic_istream/extractors_arithmetic/char/
871         exceptions_failbit.cc: Likewise.
872         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
873         exceptions_failbit.cc: Likewise.
874         * testsuite/27_io/basic_istream/extractors_other/char/
875         exceptions_null.cc: Likewise.
876         * testsuite/27_io/basic_istream/extractors_other/wchar_t/
877         exceptions_null.cc: Likewise.
878         * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
879         * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
880         * testsuite/27_io/basic_ostream/inserters_other/char/
881         exceptions_null.cc: Likewise.
882         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
883         exceptions_null.cc: Likewise.
884         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
886         PR libstdc++/78702
887         * include/bits/locale_classes.h (locale::facet::__shim): Change from
888         private to protected.
889         * src/c++11/cxx11-shim_facets.cc (__shim_accessor): Define helper to
890         make locale::facet::__shim accessible.
892 2017-01-16  Ville Voutilainen  <ville.voutilainen@gmail.com>
894         PR libstdc++/78389
895         * include/bits/list.tcc (merge(list&&)): Fix backwards size adjustments.
896         (merge(list&&, _StrictWeakOrdering)): Likewise.
897         * testsuite/23_containers/list/operations/78389.cc: Add
898         better test for the sizes.
900 2017-01-14  Jonathan Wakely  <jwakely@redhat.com>
902         * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
903         Skip test when -D_GLIBCXX_PROFILE mode is included in options.
904         * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
905         * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
906         Likewise.
907         * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
908         * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise.
909         * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise.
910         * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
911         * testsuite/23_containers/unordered_map/modifiers/extract.cc:
912         Likewise.
913         * testsuite/23_containers/unordered_multimap/modifiers/extract.cc::
914         Likewise.
915         * testsuite/23_containers/unordered_multiset/modifiers/extract.cc::
916         Likewise.
917         * testsuite/23_containers/unordered_set/modifiers/extract.cc:
918         Likewise.
919         * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
920         Likewise.
921         * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise.
922         * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise.
923         * testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise.
924         * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise.
925         * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise.
926         * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
927         * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
928         * testsuite/libstdc++-prettyprinters/debug.cc: Likewise.
929         * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise.
930         * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
931         * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
932         * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
933         * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
935 2017-01-13  Jonathan Wakely  <jwakely@redhat.com>
937         PR libstdc++/65411
938         * config/io/basic_file_stdio.cc (__basic_file<char>::close()): Don't
939         retry fclose on EINTR.
941         * include/profile/base.h: Remove unused header that leads to header
942         cycle in C++17 mode.
944         PR libstdc++/79075
945         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
946         Make _If_sv private.
947         [!_GLIBCXX_USE_CXX11_ABI] (basic_string): Add member functions taking
948         basic_string_view arguments.
950         PR libstdc++/79075
951         * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Remove
952         redundant option from cxxflags.
953         (check_effective_target_cxx11-abi): Define.
954         * testsuite/21_strings/basic_string/allocator/71964.cc: Use cxx11-abi
955         effective target.
956         * testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise.
957         * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
958         Likewise.
959         * testsuite/21_strings/basic_string/allocator/char/minimal.cc:
960         Likewise.
961         * testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
962         * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
963         Likewise.
964         * testsuite/21_strings/basic_string/allocator/char/noexcept.cc:
965         Likewise.
966         * testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
967         * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
968         Likewise.
969         * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
970         Likewise.
971         * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
972         Likewise.
973         * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
974         Likewise.
975         * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
976         Likewise.
977         * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
978         Likewise.
979         * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
980         Likewise.
981         * testsuite/23_containers/list/61347.cc: Likewise.
982         * testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
983         * testsuite/27_io/ios_base/failure/cxx11.cc: Likewise.
985 2017-01-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
987         PR libstdc++/78389
988         * include/bits/list.tcc (merge(list&&)):
989         Adjust list sizes if the comparator throws.
990         (merge(list&&, _StrictWeakOrdering)): Likewise.
991         (sort()): Splice elements back from the scratch buffers
992         if the comparator throws.
993         (sort(_StrictWeakOrdering)): Likewise.
994         * testsuite/23_containers/list/operations/78389.cc: New.
996 2017-01-13  Jonathan Wakely  <jwakely@redhat.com>
998         * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Mark
999         XFAIL for C++17 until node reinsertion supports fancy pointers.
1001         PR libstdc++/78361
1002         * testsuite/20_util/add_pointer/value.cc: Test forming function
1003         pointers.
1005 2017-01-13  Michael Brune  <lucdanton@free.fr>
1007         PR libstdc++/78361
1008         * include/std/type_traits (__is_referenceable): Handle noexcept
1009         function types.
1011 2017-01-12  Jonathan Wakely  <jwakely@redhat.com>
1013         PR libstdc++/77528
1014         * include/bits/stl_queue.h (queue, priority_queue): Remove default
1015         member-initializers and define default constructors as templates with
1016         constraints.
1017         * include/bits/stl_stack.h (stack): Likewise.
1018         * testsuite/23_containers/priority_queue/requirements/constructible.cc:
1019         New.
1020         * testsuite/23_containers/priority_queue/requirements/
1021         explicit_instantiation/1.cc: Test more instantiations.
1022         * testsuite/23_containers/priority_queue/requirements/
1023         explicit_instantiation/1_c++98.cc: Likewise.
1024         * testsuite/23_containers/queue/requirements/constructible.cc: New.
1025         * testsuite/23_containers/stack/requirements/constructible.cc: New.
1027         PR libstdc++/66284
1028         * doc/xml/manual/intro.xml: Document LWG 2781 change.
1029         * doc/html/*: Regenerate.
1030         * include/std/functional (_Function_base::_Ref_manager): Remove.
1031         (_Function_handler): Remove partial specializations for
1032         reference_wrapper.
1033         (function::target): Remove special case for const qualification.
1034         * testsuite/20_util/function/6.cc: Adjust tests for target type.
1035         * testsuite/20_util/function/7.cc: Likewise.
1036         * testsuite/20_util/function/8.cc: Likewise.
1038 2017-01-11  Jonathan Wakely  <jwakely@redhat.com>
1040         PR libstdc++/78134
1041         * include/bits/stl_map.h (map::lower_bound, map::upper_bound)
1042         (map::equal_range): Fix return type of heterogeneous overloads.
1043         * include/bits/stl_multimap.h (multimap::lower_bound)
1044         (multimap::upper_bound, multimap::equal_range): Likewise.
1045         * include/bits/stl_multiset.h (multiset::lower_bound)
1046         (multiset::upper_bound, multiset::equal_range): Likewise.
1047         * include/bits/stl_set.h (set::lower_bound, set::upper_bound)
1048         (set::equal_range): Likewise.
1049         * testsuite/23_containers/map/operations/2.cc
1050         * testsuite/23_containers/multimap/operations/2.cc
1051         * testsuite/23_containers/multiset/operations/2.cc
1052         * testsuite/23_containers/set/operations/2.cc
1054         PR libstdc++/78273
1055         * include/bits/stl_map.h (map::count<_Kt>(const _Kt&)): Don't assume
1056         the heterogeneous comparison can only find one match.
1057         * include/bits/stl_set.h (set::count<_Kt>(const _Kt&)): Likewise.
1058         * testsuite/23_containers/map/operations/2.cc: Test count works with
1059         comparison function that just partitions rather than sorting.
1060         * testsuite/23_containers/set/operations/2.cc: Likewise.
1062 2017-01-11  Ville Voutilainen  <ville.voutilainen@gmail.com>
1064         Reduce the size of variant, it doesn't need an index of
1065         type size_t internally.
1066         * include/std/variant (parse_numbers.h): New include.
1067         (__select_index): New.
1068         (_Variant_storage<false, _Types...>::_M_reset_impl): Use
1069         _index_type for comparison with variant_npos.
1070         (_Variant_storage<false, _Types...>::__index_type): New.
1071         (_Variant_storage<false, _Types...>::_M_index): Change the
1072         type from size_t to __index_type.
1073         (_Variant_storage<true, _Types...>::__index_type): New.
1074         (_Variant_storage<true, _Types...>::_M_index): Change the
1075         type from size_t to __index_type.
1076         (_Variant_base::_M_valid): Use _Storage::__index_type
1077         for comparison with variant_npos.
1078         (variant::index): Use _Base::_Storage::__index_type
1079         for comparison with variant_npos.
1080         * testsuite/20_util/variant/index_type.cc: New.
1082 2017-01-10  Jonathan Wakely  <jwakely@redhat.com>
1084         * testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
1085         effective target selector to prevent running in C++17 mode.
1087         PR libstdc++/77528
1088         * include/bits/stl_queue.h (queue::c): Add default member initializer.
1089         (queue::queue()): Add constructor and define as defaulted.
1090         (queue::queue(_Sequence&&)): Remove default argument.
1091         (priority_queue::c, priority_queue::comp): Add default member
1092         initializers.
1093         (priority_queue::priority_queue()): Add constructor and define as
1094         defaulted.
1095         (priority_queue::priority_queue(const _Compare&, _Sequence&&)):
1096         Remove default argument for first parameter.
1097         * include/bits/stl_stack.h (stack::c): Add default member initializer.
1098         (stack::stack()): Add constructor and define as defaulted.
1099         (stack::stack(const _Sequence&)): Remove default argument.
1100         * testsuite/23_containers/priority_queue/requirements/
1101         explicit_instantiation/1.cc: Test explicit instantiation with
1102         non-DefaultConstructible sequence.
1103         * testsuite/23_containers/priority_queue/77528.cc: New test.
1104         * testsuite/23_containers/priority_queue/requirements/
1105         explicit_instantiation/1_c++0x.cc: Replace with 1_c++98.cc.
1106         * testsuite/23_containers/queue/77528.cc: New test.
1107         * testsuite/23_containers/queue/requirements/explicit_instantiation/
1108         1.cc: Test explicit instantiation with non-DefaultConstructible
1109         sequence.
1110         * testsuite/23_containers/queue/requirements/explicit_instantiation/
1111         1_c++0x.cc: Replace with 1_c++98.cc.
1112         * testsuite/23_containers/stack/77528.cc: New test.
1113         * testsuite/23_containers/stack/requirements/explicit_instantiation/
1114         1.cc: Test explicit instantiation with non-DefaultConstructible
1115         sequence.
1116         * testsuite/23_containers/stack/requirements/explicit_instantiation/
1117         1_c++0x.cc: Replace with 1_c++98.cc.
1119 2017-01-10  Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
1121         * include/bits/locale_facets_nonio.tcc
1122         (time_get::_M_extract_via_format): Avoid compilation errors with
1123         non-standard struct tm.
1125 2017-01-10  François Dumont  <fdumont@gcc.gnu.org>
1126             Jonathan Wakely  <jwakely@redhat.com>
1128         * python/libstdcxx/v6/printers.py (_versioned_namespace): Define.
1129         (is_specialization, strip_versioned_namespace): New helpers functions
1130         to work with symbols in the versioned namespace.
1131         (Printer.add_version): Add second name using versioned namespace.
1132         (add_one_template_type_printer, add_one_type_printer): Add second
1133         type printers using versioned namespace.
1134         (register_type_printers): Add template type printer for basic_string.
1135         (build_libstdcxx_dictionary): Remove dead code.
1136         * python/libstdcxx/v6/xmethods.py: Make all matchers look for
1137         versioned namespace.
1138         * testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected
1139         results.
1140         * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
1142 2017-01-09  Jonathan Wakely  <jwakely@redhat.com>
1144         PR libstdc++/79017
1145         * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Check for llrint and llround
1146         functions separately on darwin and if they're missing define
1147         _GLIBCXX_NO_C99_ROUNDING_FUNCS.
1148         * config.h.in: Regenerate.
1149         * configure: Regenerate.
1150         * include/c_global/cmath [_GLIBCXX_NO_C99_ROUNDING_FUNCS] (llrint)
1151         (llrintf, llrintl, llround, llroundf, llroundl): Do not define.
1153         * testsuite/30_threads/condition_variable/members/3.cc: Use new macro
1154         to detect correct thread_local destructors.
1155         * testsuite/util/testsuite_hooks.h (CORRECT_THREAD_LOCAL_DTORS):
1156         Define.
1158 2017-01-09  Jonathan Wakely  <jwakely@redhat.com>
1159             Aditya Kumar  <hiraditya@msn.com>
1161         PR libstdc++/66414
1162         * include/bits/basic_string.tcc
1163         (basic_string::find(const CharT*, size_type, size_type)): Optimize.
1165 2017-01-06  Jonathan Wakely  <jwakely@redhat.com>
1167         * testsuite/21_strings/basic_string/operations/find/char/6.cc: New.
1168         * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: New.
1170         * testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
1171         Include <cassert> header.
1173         PR libstdc++/78968
1174         * crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
1175         * configure: Regenerate.
1177 2017-01-06  Barrett Adair  <barrettellisadair@gmail.com>
1178             Jonathan Wakely  <jwakely@redhat.com>
1180         * include/std/variant (variant, swap): Replace __and_ usage with fold
1181         expressions.
1183 2017-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1185         PR go/78978
1186         * acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
1187         * configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
1188         GLIBCXX_CHECK_ASSEMBLER_HWCAP.
1189         * fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
1190         HWCAP_FLAGS.
1191         * aclocal.m4: Regenerate.
1192         * configure: Regenerate.
1193         * Makefile.in, doc/Makefile.in, include/Makefile.in,
1194         libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
1195         src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
1196         src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
1198 2017-01-06  Jonathan Wakely  <jwakely@redhat.com>
1200         * include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.
1202         PR libstdc++/78991
1203         * include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
1204         (_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
1205         (_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and
1206         move function objects.
1207         (__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter)
1208         (__iter_comp_val, __iter_comp_iter, __negate): Move function objects.
1209         * testsuite/25_algorithms/sort/78991.cc: New test.
1211 2017-01-05  Jonathan Wakely  <jwakely@redhat.com>
1213         * include/bits/std_function.h (function::_Signature_type): Remove.
1214         (function::function(_Functor)): Adjust.
1216 2017-01-05  Tim Shen  <timshen@google.com>
1218         PR libstdc++/78996
1219         * include/std/variant (__gen_vtable_impl): rename __unused to
1220         __dimensions to avoid naming conflict.
1222 2017-01-04  Jonathan Wakely  <jwakely@redhat.com>
1224         PR libstdc++/78968
1225         * config.h.in: Regenerate.
1226         * configure: Likewise.
1227         * configure.ac: Check for __cxa_thread_atexit.
1228         * libsupc++/atexit_thread.cc [_GLIBCXX_HAVE___CXA_THREAD_ATEXIT]:
1229         Don't define __cxa_thread_atexit if libc provides it.
1231 2017-01-04  Ville Voutilainen  <ville.voutilainen@gmail.com>
1233         Implement 2801, Default-constructibility of unique_ptr.
1234         * include/bits/unique_ptr.h (__uniq_ptr_impl::_DeleterConstraint): New.
1235         (unique_ptr::_DeleterConstraint): Likewise.
1236         (unique_ptr()): Constrain.
1237         (unique_ptr(pointer)): Likewise.
1238         (unique_ptr(nullptr_t)): Likewise.
1239         (unique_ptr<_Tp[], _Dp>::_DeleterConstraint): New.
1240         (unique_ptr<_Tp[], _Dp>::unique_ptr()): Constrain.
1241         (unique_ptr<_Tp[], _Dp>::unique_ptr(_Up)): Likewise.
1242         (unique_ptr<_Tp[], _Dp>::unique_ptr(nullptr_t)): Likewise.
1243         * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust.
1244         * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
1245         * testsuite/20_util/unique_ptr/cons/default.cc: New.
1246         * testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Adjust.
1248 2017-01-04  Pauli Nieminen  <suokkos@gmail.com>
1249             Jonathan Wakely  <jwakely@redhat.com>
1251         PR libstdc++/64735
1252         * acinclude.m4 (GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER): Define.
1253         * config.h.in: Regenerate.
1254         * config/abi/pre/gnu.ver [HAVE_EXCEPTION_PTR_SINCE_GCC46]
1255         (GLIBCXX_3.4.15, GLIBCXX_3.4.21, CXXABI_1.3.3, CXXABI_1.3.5): Make
1256         exports for exception_ptr, nested_exception, and future conditional.
1257         [HAVE_EXCEPTION_PTR_SINCE_GCC46] (GLIBCXX_3.4.23, CXXABI_1.3.11): Add
1258         exports for exception_ptr, nested_exception, and future conditional.
1259         * configure: Regenerate.
1260         * configure.ac: Use GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER.
1261         * include/std/future: Remove check for ATOMIC_INT_LOCK_FREE
1262         * libsupc++/eh_atomics.h: New file for internal use only.
1263         (__eh_atomic_inc, __eh_atomic_dec): New.
1264         * libsupc++/eh_ptr.cc (exception_ptr::_M_addref)
1265         (exception_ptr::_M_release) (__gxx_dependent_exception_cleanup)
1266         (rethrow_exception): Use eh_atomics.h reference counting helpers.
1267         * libsupc++/eh_throw.cc (__gxx_exception_cleanup): Likewise.
1268         * libsupc++/eh_tm.cc (free_any_cxa_exception): Likewise.
1269         * libsupc++/exception: Remove check for ATOMIC_INT_LOCK_FREE.
1270         * libsupc++/exception_ptr.h: Likewise.
1271         * libsupc++/guard.cc: Include header for ATOMIC_INT_LOCK_FREE macro.
1272         * libsupc++/nested_exception.cc: Remove check for
1273         ATOMIC_INT_LOCK_FREE.
1274         * libsupc++/nested_exception.h: Likewise.
1275         * src/c++11/future.cc: Likewise.
1276         * testsuite/18_support/exception_ptr/*: Remove atomic builtins checks.
1277         * testsuite/18_support/nested_exception/*: Likewise.
1278         * testsuite/30_threads/async/*: Likewise.
1279         * testsuite/30_threads/future/*: Likewise.
1280         * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
1281         * testsuite/30_threads/packaged_task/*: Likewise.
1282         * testsuite/30_threads/promise/*: Likewise.
1283         * testsuite/30_threads/shared_future/*: Likewise.
1285 2017-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
1287         * doc/xml/manual/documentation_hacking.xml: sourceforge.net now
1288         defaults to https; adjust reference.
1290 2017-01-03  Jonathan Wakely  <jwakely@redhat.com>
1292         PR libstdc++/78956
1293         * include/std/thread (thread(const thread&&)): Add deleted
1294         constructor.
1295         * testsuite/30_threads/thread/cons/lwg2097.cc: New test.
1297         * doc/xml/manual/spine.xml: Update copyright years.
1298         * doc/xml/manual/build_hacking.xml: Fix spelling of libbuilddir.
1299         * doc/xml/manual/test.xml: Likewise.
1300         * doc/html/*: Regenerate.
1302 2017-01-01  Gerald Pfeifer  <gerald@pfeifer.com>
1304         * doc/xml/faq.xml: Update address of C++ ABI link.
1305         * doc/xml/manual/abi.xml: Ditto.
1306         
1307 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
1309         Update copyright years.
1311 Copyright (C) 2017 Free Software Foundation, Inc.
1313 Copying and distribution of this file, with or without modification,
1314 are permitted in any medium without royalty provided the copyright
1315 notice and this notice are preserved.