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
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
19 (__is_callable_impl, __is_callable, __is_nothrow_callable): Replace
20 with __is_invocable_impl, __is_invocable, and __is_nothrow_invocable
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
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
35 * testsuite/20_util/is_notjrow_callable/*: Likewise.
36 * testsuite/20_util/optional/hash.cc: Use is_invocable_v instead of
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.
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):
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):
92 * libsupc++/exception_ptr.h (__dest_thunk): Likewise.
93 * testsuite/17_intro/headers/names.cc: New test.
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
105 2017-02-23 Jonathan Wakely <jwakely@redhat.com>
107 * include/experimental/iterator: Include <iterator>.
108 * testsuite/experimental/iterator/requirements.cc: Check for contents
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>
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>
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>
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>
168 * include/std/variant (visit()): Forward variant types to the return
170 * testsuite/20_util/variant/compile.cc: Add test cases.
172 2017-02-13 H.J. Lu <hongjiu.lu@intel.com>
175 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
177 2017-02-13 Jakub Jelinek <jakub@redhat.com>
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>
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>
201 * include/bits/shared_ptr_base.h (__shared_ptr(_Yp*, _Deleter))
202 (__shared_ptr(_Yp*, _Deleter, _Alloc)): Use lvalue types in
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
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
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>
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>
236 * src/c++11/snprintf_lite.cc (__err): Update bug reporting URL.
238 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
240 * doc/xml/manual/abi.xml: Update link to "Sun Studio 11: C++
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.
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>
268 * testsuite/20_util/duration/literals/range.cc: Prune extra output
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
276 epubcheck has moved to GitHub.
277 Remove obsolete link to DocBook Publishing Tools.
279 2017-02-03 Jonathan Wakely <jwakely@redhat.com>
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.
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:
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:
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>
365 * include/bits/predefined_ops.h (_Iter_equals_iter): Store iterator
367 (_Iter_comp_to_iter): Likewise.
368 * testsuite/25_algorithms/search/78346.cc: New test.
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)):
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:
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>
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
399 (basic_string::operator=(const basic_string&)): Dispatch to
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:
408 * testsuite/util/testsuite_allocator.h (uneq_allocator::swap): Make
411 2017-01-26 Jonathan Wakely <jwakely@redhat.com>
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
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:
423 * testsuite/23_containers/stack/requirements/constructible.cc:
425 * testsuite/25_algorithms/make_heap/movable.cc: Fix for C++11 mode.
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):
441 (literals::string_view_literals): Fix nesting of versioning macros.
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>
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>
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>
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>
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>
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>
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:
561 * testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc:
563 * testsuite/26_numerics/random/chi_squared_distribution/cons/parms.cc:
565 * testsuite/26_numerics/random/exponential_distribution/cons/parms.cc:
567 * testsuite/26_numerics/random/extreme_value_distribution/cons/
569 * testsuite/26_numerics/random/fisher_f_distribution/cons/parms.cc:
571 * testsuite/26_numerics/random/gamma_distribution/cons/parms.cc:
573 * testsuite/26_numerics/random/geometric_distribution/cons/parms.cc:
575 * testsuite/26_numerics/random/lognormal_distribution/cons/parms.cc:
577 * testsuite/26_numerics/random/negative_binomial_distribution/cons/
579 * testsuite/26_numerics/random/normal_distribution/cons/parms.cc:
581 * testsuite/26_numerics/random/poisson_distribution/cons/parms.cc:
583 * testsuite/26_numerics/random/student_t_distribution/cons/parms.cc:
585 * testsuite/26_numerics/random/uniform_int_distribution/cons/parms.cc:
587 * testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc:
589 * testsuite/26_numerics/random/weibull_distribution/cons/parms.cc:
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:
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:
604 * testsuite/ext/random/uniform_inside_sphere_distribution/cons/
606 * testsuite/ext/random/von_mises_distribution/cons/parms.cc: Likewise.
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
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.
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
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.
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.
645 * include/bits/stl_algo.h (is_partitioned): Use increment instead of
648 2017-01-19 Jonathan Wakely <jwakely@redhat.com>
651 * include/bits/shared_ptr_base.h (__enable_shared_from_this_base):
653 (__enable_shared_from_this): Declare __shared_ptr as a friend.
654 * testsuite/ext/shared_ptr/1.cc: New test.
657 * include/bits/stl_algo.h (is_partitioned): Don't retest the partition
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.
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
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.
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
685 * testsuite/25_algorithms/make_heap/movable.cc: New test.
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
693 * testsuite/23_containers/priority_queue/67085.cc: New test.
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
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
707 2017-01-18 Jonathan Wakely <jwakely@redhat.com>
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
715 * include/ext/pointer.h (_Pointer_adapter::operator++(int))
716 (_Pointer_adapter::operator--(int)): Likewise.
719 * include/experimental/random (randint): Use temporary instead of
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>
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
735 * doc/html/*: Regenerate.
738 * libsupc++/nested_exception.h (throw_with_nested): Use decay instead
740 * testsuite/18_support/nested_exception/79114.cc: New test.
742 2017-01-17 Jakub Jelinek <jakub@redhat.com>
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>
764 * src/c++11/functexcept.cc: Use new ABI for std::ios_base::failure
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.
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>
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:
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:
812 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc::
814 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc::
816 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
818 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
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>
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
844 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
846 [!_GLIBCXX_USE_CXX11_ABI] (basic_string): Add member functions taking
847 basic_string_view arguments.
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
855 * testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise.
856 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
858 * testsuite/21_strings/basic_string/allocator/char/minimal.cc:
860 * testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
861 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
863 * testsuite/21_strings/basic_string/allocator/char/noexcept.cc:
865 * testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
866 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
868 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
870 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
872 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
874 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
876 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
878 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
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>
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.
901 * testsuite/20_util/add_pointer/value.cc: Test forming function
904 2017-01-13 Michael Brune <lucdanton@free.fr>
907 * include/std/type_traits (__is_referenceable): Handle noexcept
910 2017-01-12 Jonathan Wakely <jwakely@redhat.com>
913 * include/bits/stl_queue.h (queue, priority_queue): Remove default
914 member-initializers and define default constructors as templates with
916 * include/bits/stl_stack.h (stack): Likewise.
917 * testsuite/23_containers/priority_queue/requirements/constructible.cc:
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.
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
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>
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
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.
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
992 (priority_queue::priority_queue()): Add constructor and define as
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
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
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
1039 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
1041 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
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):
1057 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
1058 Aditya Kumar <hiraditya@msn.com>
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.
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
1082 2017-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
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
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.
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>
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>
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>
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>
1192 * include/std/thread (thread(const thread&&)): Add deleted
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.
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.