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