1 2017-03-15 Ville Voutilainen <ville.voutilainen@gmail.com>
3 Implement LWG 2857, {variant,optional,any}::emplace should
4 return the constructed value.
5 * include/std/any (emplace(_Args&&...)): Change the return type and
6 return a reference to the constructed value.
7 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
8 * include/std/optional (emplace(_Args&&...)): Likewise.
9 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
10 * include/std/variant (emplace<_Tp>(_Args&&...)): Likewise.
11 (emplace<_Tp>(initializer_list<_Up>, _Args&&...)): Likewise.
12 (emplace<_Np>(_Args&&...)): Likewise.
13 (emplace<_Np>(initializer_list<_Up>, _Args&&...)): Likewise.
14 * testsuite/20_util/any/assign/emplace.cc: Add tests for
15 checking the return value of emplace.
16 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
17 * testsuite/20_util/optional/assignment/6.cc: Add tests for
18 checking the return value of emplace.
19 * testsuite/20_util/variant/run.cc: Likewise.
21 2017-03-15 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
24 * include/ext/pb_ds/qdetail/binary_heap_/binary_heap_.hpp
26 (push_heap): Remove the wrong checking using is_heap.
27 (make_heap): Remove the assertion using is_heap.
28 * include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
30 (resize_for_insert_if_needed): Add PB_DS_ASSERT_VALID after
33 2017-03-15 Jonathan Wakely <jwakely@redhat.com>
36 * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
38 * testsuite/ext/pb_ds/regression/priority_queues.cc: Fix copy&paste
41 2017-03-15 Jonathan Wakely <jwakely@redhat.com>
43 * acinclude.m4 (GLIBCXX_CHECK_S_ISREG_OR_S_IFREG): Fix typo in
45 * config.h.in: Regenerate.
46 * configure: Regenerate.
47 * doc/Makefile.in: Regenerate.
49 2017-03-14 Jonathan Wakely <jwakely@redhat.com>
52 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
53 (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Replace
54 with a constrained template.
55 [!_GLIBCXX_USE_CXX11_ABI]
56 (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Likewise.
57 * testsuite/21_strings/basic_string/cons/char/79162.cc: New test.
58 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: New test.
60 2017-03-13 Ville Voutilainen <ville.voutilainen@gmail.com>
63 * include/bits/list.tcc (merge(list&&)): Use const for the size_t
65 (merge(list&&, _StrictWeakOrdering)): Likewise.
66 * testsuite/23_containers/list/operations/80034.cc: New.
68 2017-03-13 Ville Voutilainen <ville.voutilainen@gmail.com>
70 Implement LWG 2806, Base class of bad_optional_access.
71 * include/std/optional (bad_optional_access):
72 Derive from std::exception.
73 (bad_optional_access::bad_optional_access): Adjust.
74 (bad_optional_access::what): New.
75 (__throw_bad_optional_access(const char*)):
76 Remove the parameter and adjust calls.
77 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
78 * testsuite/20_util/optional/typedefs.cc: Likewise.
80 2017-03-12 Ville Voutilainen <ville.voutilainen@gmail.com>
82 Implement LWG 2934, optional<const T> doesn't compare with T.
83 * include/std/optional
84 (operator==(const optional<_Tp>&, const optional<_Tp>&)):
85 Turn into operator==(const optional<_Tp>&, const optional<_Up>&).
86 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
87 Turn into operator!=(const optional<_Tp>&, const optional<_Up>&).
88 (operator<(const optional<_Tp>&, const optional<_Tp>&)):
89 Turn into operator<(const optional<_Tp>&, const optional<_Up>&.
90 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
91 Turn into operator>(const optional<_Tp>&, const optional<_Up>&.
92 (operator<=(const optional<_Tp>&, const optional<_Tp>&)):
93 Turn into operator<=(const optional<_Tp>&, const optional<_Up>&).
94 (operator>=(const optional<_Tp>&, const optional<_Tp>&)):
95 Turn into operator>=(const optional<_Tp>&, const optional<_Up>&).
96 (operator==(const optional<_Tp>&, const _Tp&)):
97 Turn into operator==(const optional<_Tp>&, const _Up&).
98 (operator==(const _Tp&, const optional<_Tp>&)):
99 Turn into operator==(const _Up&, const optional<_Tp>&).
100 (operator!=(const optional<_Tp>&, const _Tp&)):
101 Turn into operator!=(const optional<_Tp>&, const _Up&).
102 (operator!=(const _Tp&, const optional<_Tp>&)):
103 Turn into operator!=(const _Up&, const optional<_Tp>&).
104 (operator<(const optional<_Tp>&, const _Tp&)):
105 Turn into operator<(const optional<_Tp>&, const _Up&).
106 (operator<(const _Tp&, const optional<_Tp>&)):
107 Turn into operator<(const _Up&, const optional<_Tp>&).
108 (operator>(const optional<_Tp>&, const _Tp&)):
109 Turn into operator>(const optional<_Tp>&, const _Up&).
110 (operator>(const _Tp&, const optional<_Tp>&)):
111 Turn into operator>(const _Up&, const optional<_Tp>&).
112 (operator<=(const optional<_Tp>&, const _Tp&)):
113 Turn into operator<=(const optional<_Tp>&, const _Up&).
114 (operator<=(const _Tp&, const optional<_Tp>&)):
115 Turn into operator<=(const _Up&, const optional<_Tp>&).
116 (operator>=(const optional<_Tp>&, const _Tp&)):
117 Turn into operator>=(const optional<_Tp>&, const _Up&).
118 (operator>=(const _Tp&, const optional<_Tp>&)):
119 Turn into operator>=(const _Up&, const optional<_Tp>&).
120 * testsuite/20_util/optional/relops/7.cc: New.
122 2017-03-10 Jonathan Wakely <jwakely@redhat.com>
124 * testsuite/17_intro/names.cc: Undefine macros that clash with
125 identifiers in AIX system headers.
127 * include/bits/invoke.h (__invoke): Use __invoke_result instead of
128 result_of, and __is_nothrow_invocable instead of
129 __is_nothrow_callable.
130 * include/bits/shared_ptr_base.h (__shared_ptr): Use __is_invocable
131 instead of __is_callable.
132 * include/std/functional (invoke): use invoke_result_t instead of
133 result_of_t and is_nothrow_invocable instead of is_nothrow_callable.
134 (_Not_fn): Use __invoke_result instead of result_of.
135 * include/std/type_traits (__result_of_memobj, __result_of_memfun):
136 Remove partial specializations for reference_wrapper types.
137 (__result_of_impl): Use __inv_unwrap to strip reference_wrapper.
138 (__invoke_result): Define replacement for result_of and then use it to
140 (__is_callable_impl, __is_callable, __is_nothrow_callable): Replace
141 with __is_invocable_impl, __is_invocable, and __is_nothrow_invocable
143 (invoke_result, invoke_result_t): Define for C++17.
144 (is_callable, is_nothrow_callable): Replace with is_invocable,
145 is_invocable_r, is_nothrow_invocable, and is_nothrow_invocable_r.
146 (is_callable_v, is_nothrow_callable_v): Replace with is_invocable_v,
147 is_invocable_r_v, is_nothrow_invocable_v, and is_nothrow_invocable_r_v.
148 * include/std/variant (hash<variant<T...>>): Use is_nothrow_invocable_v
149 instead of is_nothrow_callable_v.
150 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
152 * testsuite/20_util/function_objects/not_fn/1.cc: Use is_invocable
153 instead of is_callable.
154 * testsuite/20_util/is_callable/*: Rename directory and adjust tests
156 * testsuite/20_util/is_notjrow_callable/*: Likewise.
157 * testsuite/20_util/optional/hash.cc: Use is_invocable_v instead of
159 * testsuite/20_util/variant/hash.cc: Likewise.
161 2017-03-10 George Lander <george.lander@arm.com>
163 * acinclude.m4 (glibcxx_cv_obsolete_isnan): Define
164 _GLIBCXX_INCLUDE_NEXT_C_HEADERS before including math.h.
165 * configure: Regenerate.
167 2017-03-09 Jonathan Wakely <jwakely@redhat.com>
169 * include/std/functional (_Not_fn): Define macro to simplify
170 repetitive function definitions.
172 * doc/xml/manual/status_cxx2017.xml: Document std::byte support.
173 * include/c_global/cstddef (std::byte): Define for C++17.
174 * testsuite/18_support/byte/global_neg.cc: New test.
175 * testsuite/18_support/byte/ops.cc: New test.
176 * testsuite/18_support/byte/requirements.cc: New test.
178 2017-03-05 Jonathan Wakely <jwakely@redhat.com>
180 * doc/xml/manual/status_cxx2017.xml: Document P0156R2 status.
181 * doc/html/*: Regenerate.
182 * include/std/mutex (scoped_lock): Implement new C++17 template.
183 * testsuite/30_threads/scoped_lock/cons/1.cc: New test.
184 * testsuite/30_threads/scoped_lock/requirements/
185 explicit_instantiation.cc: New test.
186 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: New test.
188 2017-03-02 Gerald Pfeifer <gerald@pfeifer.com>
189 François Dumont <frs.dumont@gmail.com>
190 Jonathan Wakely <jwakely@redhat.com>
192 * doc/xml/manual/debug_mode.xml: Update and simplify note
193 on link- and run-time coexistence.
195 2017-03-02 Jonathan Wakely <jwakely@redhat.com>
197 * testsuite/17_intro/headers/names.cc: Rename to ...
198 * testsuite/17_intro/names.cc: ... here.
201 * include/bits/hashtable_policy.h (__clp2): Use reserved names for
202 parameters and local variables.
203 * include/bits/ios_base.h (make_error_code, make_error_condition):
205 * include/bits/list.tcc (list::sort): Likewise.
206 * include/bits/mask_array.h (mask_array): Likewise.
207 * include/bits/regex.h (regex_token_iterator): Likewise.
208 * include/bits/slice_array.h (slice_array): Likewise.
209 * include/bits/stl_algo.h (__sample): Likewise.
210 * include/std/memory (undeclare_no_pointers): Likewise.
211 * include/std/type_traits (is_callable_v, is_nothrow_callable_v):
213 * libsupc++/exception_ptr.h (__dest_thunk): Likewise.
214 * testsuite/17_intro/headers/names.cc: New test.
217 * include/std/functional (bind::_Res_type_impl): Fix incorrect use of
218 result_of that loses top-level cv-qualifiers.
219 * testsuite/20_util/bind/79798.cc: New test.
221 2017-03-01 Gerald Pfeifer <gerald@pfeifer.com>
223 * doc/xml/manual/documentation_hacking.xml: Tweak link to
226 2017-02-23 Jonathan Wakely <jwakely@redhat.com>
228 * include/experimental/iterator: Include <iterator>.
229 * testsuite/experimental/iterator/requirements.cc: Check for contents
232 2017-02-19 Dinka Ranns <dinka.ranns@googlemail.com>
234 C++17 GB50 resolution
235 * include/std/chrono (duration::operator++()): Add
236 _GLIBCXX17_CONSTEXPR.
237 (duration::operator++(int)): Likewise.
238 (duration::operator--()): Likewise.
239 (duration::operator--(int)): Likewise.
240 (duration::operator+=(const duration&)): Likewise.
241 (duration::operator-=(const duration&)): Likewise.
242 (duration::operator*=(const rep&)): Likewise.
243 (duration::operator/=(const rep&)): Likewise.
244 (duration::operator%=(const rep&)): Likewise.
245 (duration::operator%=(const duration&)): Likewise.
246 (time_point::operator+=(const duration&)): Likewise.
247 (time_point::operator-=(const duration&)): Likewise.
248 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: New test.
249 * testsuite/20_util/duration/literals/range.cc: Adjust dg-error.
250 * testsuite/20_util/time_point/arithmetic/constexpr.cc: New test.
252 2017-02-19 Gerald Pfeifer <gerald@pfeifer.com>
254 * doc/xml/manual/debug.xml: Adjust link to ThreadSanitizer.
256 2017-02-18 Gerald Pfeifer <gerald@pfeifer.com>
258 * doc/xml/manual/io.xml: Update link to groups.google.com.
259 Tweak link description.
261 2017-02-18 Gerald Pfeifer <gerald@pfeifer.com>
263 * doc/xml/manual/profile_mode.xml: Fix link.
265 2017-02-16 Gerald Pfeifer <gerald@pfeifer.com>
267 * doc/xml/manual/policy_data_structures.xml: Simplify and
268 standardize references to boost.org.
269 * doc/xml/manual/policy_data_structures_biblio.xml: Ditto.
270 * doc/xml/manual/shared_ptr.xml: Ditto.
272 2017-02-16 Jonathan Wakely <jwakely@redhat.com>
275 * src/c++11/snprintf_lite.cc (__concat_size_t): Calculate length
276 written to buffer, not length remaining in buffer.
278 2017-02-15 Tim Shen <timshen@google.com>
281 * include/std/variant (operator<(), operator>(), operator<=(),
282 operator>=(), operator==(), operator!=()): Implement P0393R3.
283 * testsuite/20_util/variant/compile.cc: Adjust tests.
284 * testsuite/20_util/variant/run.cc: Adjust tests.
286 2017-02-15 Tim Shen <timshen@google.com>
289 * include/std/variant (visit()): Forward variant types to the return
291 * testsuite/20_util/variant/compile.cc: Add test cases.
293 2017-02-13 H.J. Lu <hongjiu.lu@intel.com>
296 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
298 2017-02-13 Jakub Jelinek <jakub@redhat.com>
301 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
302 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
303 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Likewise.
304 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
305 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Likewise.
306 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Likewise.
307 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Likewise.
308 * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Likewise.
309 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
311 2017-02-13 Jonathan Wakely <jwakely@redhat.com>
314 * include/std/future (__future_base::_Task_state::_M_run)
315 (__future_base::_Task_state::_M_run_delayed): Use lvalue types in
316 result_of expressions.
317 * testsuite/30_threads/packaged_task/79486.cc: New.
319 2017-02-11 Jonathan Wakely <jwakely@redhat.com>
322 * include/bits/shared_ptr_base.h (__shared_ptr(_Yp*, _Deleter))
323 (__shared_ptr(_Yp*, _Deleter, _Alloc)): Use lvalue types in
325 * testsuite/20_util/shared_ptr/cons/79467.cc: New.
327 * include/bits/atomic_base.h: Re-indent.
329 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
331 * doc/xml/manual/profile_mode.xml: Update a paper reference.
333 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
335 * src/c++11/snprintf_lite.cc (__err): Use https for bug reporting.
337 2017-02-08 Jonathan Wakely <jwakely@redhat.com>
339 * doc/xml/manual/policy_data_structures.xml: Fix spelling of author's
341 * doc/xml/manual/policy_data_structures_biblio.xml: Likewise. Remove
342 broken links to texts that are no longer online.
343 * doc/xml/manual/profile_mode.xml: Update links to CGO 2009 paper and
345 * doc/xml/manual/using.xml: Update links to memory model information.
346 * doc/xml/manual/using_exceptions.xml: Update link to "Appendix E:
347 Standard-Library Exception Safety".
348 * doc/html/*: Regenerate.
350 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
352 * doc/xml/manual/profile_mode.xml: Unbreak link to
353 "Optimizing Sorting with Machine Learning Algorithms".
355 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
357 * src/c++11/snprintf_lite.cc (__err): Update bug reporting URL.
359 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
361 * doc/xml/manual/abi.xml: Update link to "Sun Studio 11: C++
364 2017-02-07 Gerald Pfeifer <gerald@pfeifer.com>
366 * doc/html/ext/lwg-active.html: Remove.
367 * doc/html/ext/lwg-closed.html: Ditto.
368 * doc/html/ext/lwg-defects.html: Ditto.
370 * doc/Makefile.am (xml_extradir): Remove.
372 (stamp-html-docbook-lwg): Remove recipe...
373 (stamp-html-docbook-data): ...and its use here.
374 * doc/Makefile.in: Regenerate.
376 * doc/xml/manual/intro.xml: Shorten two paragraphs explaining
377 the relationship to the upstream working group.
378 Replace a local link to ../ext/lwg-active.html by the upstream one.
379 Replace all reference to ../ext/lwg-defects.html by a new entity
380 &DR; which refers to the upstream address.
382 2017-02-07 Gerald Pfeifer <gerald@pfeifer.com>
384 * doc/xml/manual/status_cxx2017.xml: Fix link to N4284.
386 2017-02-06 Jonathan Wakely <jwakely@redhat.com>
389 * testsuite/20_util/duration/literals/range.cc: Prune extra output
392 2017-02-06 Gerald Pfeifer <gerald@pfeifer.com>
394 * doc/xml/manual/documentation_hacking.xml: Update URL of the
395 DocBook Element Reference. Use that term as link description
397 epubcheck has moved to GitHub.
398 Remove obsolete link to DocBook Publishing Tools.
400 2017-02-03 Jonathan Wakely <jwakely@redhat.com>
403 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Restore ABI override
404 so new ios::failure can be caught even when old ABI is the default.
405 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
406 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
407 exceptions_failbit.cc: Likewise.
408 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
409 exceptions_failbit.cc: Likewise.
410 * testsuite/27_io/basic_istream/extractors_other/char/
411 exceptions_null.cc: Likewise.
412 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
413 exceptions_null.cc: Likewise.
414 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
415 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
416 * testsuite/27_io/basic_ostream/inserters_other/char/
417 exceptions_null.cc: Likewise.
418 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
419 exceptions_null.cc: Likewise.
420 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
423 * src/c++11/Makefile.am: Add new files.
424 * src/c++11/Makefile.in: Regenerate.
425 * src/c++11/cow-string-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
426 (operator<<, operator>>, getline): Move explicit instantiations to ...
427 * src/c++11/cow-string-io-inst.cc: ... new file.
428 * src/c++11/cow-wstring-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
429 (operator<<, operator>>, getline): Move explicit instantiations to ...
430 * src/c++11/cow-wstring-io-inst.cc: ... new file.
431 * src/c++11/functexcept.cc (__throw_ios_failure, __throw_system_error)
432 (__throw_future_error, __throw_bad_function_call):
433 (__throw_regex_error): Move functions for C++11 exceptions to the
434 files that define the exception types.
435 * src/c++11/functional.cc (__throw_bad_function_call): Move here.
436 * src/c++11/future.cc (__throw_future_error): Likewise.
437 * src/c++11/ios.cc (__throw_ios_failure): Likewise.
438 * src/c++11/regex.cc (__throw_regex_error): Likewise.
439 * src/c++11/snprintf_lite.cc (__concat_size_t): Print decimal
440 representation directly instead of calling __int_to_char.
441 * src/c++11/sso_string.cc (__sso_string): New file for definition
442 of __sso_string type.
443 * src/c++11/string-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
444 explicit instantiations of narrow string I/O functions.
445 * src/c++11/system_error.cc (__throw_system_error): Move here.
446 (__sso_string): Move to new file.
447 * src/c++11/wstring-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
448 explicit instantiations of wide string I/O functions.
449 * src/c++98/misc-inst.cc [_GLIBCXX_USE_CXX11_ABI] (operator<<)
450 (operator>>, getline): Remove explicit instantiations from here.
452 2017-02-02 H.J. Lu <hongjiu.lu@intel.com>
454 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
456 2017-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
458 * configure.host: Separate Solaris/SPARC and x86 baselines.
459 * config/abi/post/solaris2.10/baseline_symbols.txt: Move ...
460 * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: ... here.
461 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Move ...
462 * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
464 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Move ...
465 * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: ... here.
466 * config/abi/post/i386-solaris2.10/baseline_symbols.txt: New file.
467 * config/abi/post/solaris2.11/baseline_symbols.txt: Move ...
468 * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: ... here.
469 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Move ...
470 * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
472 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Move ...
473 * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: ... here.
474 * config/abi/post/i386-solaris2.11/baseline_symbols.txt: New file.
476 * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
477 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
478 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
479 * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
480 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
481 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
483 2017-02-01 Jonathan Wakely <jwakely@redhat.com>
486 * include/bits/predefined_ops.h (_Iter_equals_iter): Store iterator
488 (_Iter_comp_to_iter): Likewise.
489 * testsuite/25_algorithms/search/78346.cc: New test.
492 * config/abi/pre/gnu.ver: Remove recently added symbols.
493 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
494 (basic_string::_M_copy_assign): Remove.
495 (basic_string::operator=(const basic_string&)): Don't dispatch to
496 _M_copy_assign. If source object is small just deallocate, otherwise
497 perform new allocation before making any changes.
498 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
499 (basic_string::_M_copy_assign(const basic_string&, true_type)):
501 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
502 Test cases where the allocators are equal or the string is small.
503 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
506 2017-01-30 Ville Voutilainen <ville.voutilainen@gmail.com>
508 Implement LWG 2825, LWG 2756 breaks class template argument
509 deduction for optional.
510 * include/std/optional: Add a deduction guide.
511 * testsuite/20_util/optional/cons/deduction_guide.cc: New.
513 2017-01-27 Jonathan Wakely <jwakely@redhat.com>
516 * config/abi/pre/gnu.ver: Add new symbols.
517 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
518 (basic_string::_M_copy_assign): New overloaded functions to perform
520 (basic_string::operator=(const basic_string&)): Dispatch to
522 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
523 (basic_string::_M_copy_assign(const basic_string&, true_type)):
524 Define, performing rollback on exception.
525 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
526 Test exception-safety guarantee.
527 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
529 * testsuite/util/testsuite_allocator.h (uneq_allocator::swap): Make
532 2017-01-26 Jonathan Wakely <jwakely@redhat.com>
535 * include/tr1/complex (conj): Remove using-declaration and restore
536 overloads, reverting previous change.
538 * testsuite/23_containers/list/operations/78389.cc: Fix for C++11
540 * testsuite/23_containers/priority_queue/requirements/constructible.cc:
541 Mark as unsupported in C++98 mode.
542 * testsuite/23_containers/queue/requirements/constructible.cc:
544 * testsuite/23_containers/stack/requirements/constructible.cc:
546 * testsuite/25_algorithms/make_heap/movable.cc: Fix for C++11 mode.
549 * include/bits/c++config (literals::string_view_literals::__7): Add.
550 Only declare versioned namespaces for the relevant C++ dialects.
551 * include/experimental/bits/erase_if.h (fundamentals_v2::__detail):
552 Add versioning macros.
553 * include/experimental/bits/lfts_config.h:
554 (fundamentals_v1::__detail::__7, fundamentals_v2::__detail::__7): Add.
555 * include/experimental/string_view (fundamentals_v2::__detail):
556 Add versioning macros.
557 (fundamentals_v2::__detail::__identity): Remove.
558 (fundamentals_v2::__detail::__idt): Use common_type instead of
559 __detail::__identity.
560 * include/std/string_view (__detail::__identity, __detail::__idt):
562 (literals::string_view_literals): Fix nesting of versioning macros.
565 * libsupc++/del_opa.cc (operator delete(void*, std::align_val_t))
566 [!_GLIBCXX_HAVE_ALIGNED_ALLOC && !_GLIBCXX_HAVE_POSIX_MEMALIGN
567 && !_GLIBCXX_HAVE_MEMALIGN && !_GLIBCXX_HAVE__ALIGNED_MALLOC]:
568 Retrieve original pointer value allocated by malloc.
569 * libsupc++/new_opa.cc [!_GLIBCXX_HAVE_ALIGNED_ALLOC
570 && !_GLIBCXX_HAVE_POSIX_MEMALIGN && !_GLIBCXX_HAVE_MEMALIGN
571 && !_GLIBCXX_HAVE__ALIGNED_MALLOC] (aligned_alloc(size_t, size_t)):
572 Define, adjusting pointer value allocated by malloc and storing for
573 retrieval by operator delete.
575 2017-01-26 Jakub Jelinek <jakub@redhat.com>
577 * libsupc++/eh_atomics.h: Update copyright years.
578 * testsuite/20_util/unique_ptr/cons/default.cc: Update copyright years.
580 2017-01-25 Jonathan Wakely <jwakely@redhat.com>
584 * include/std/complex (real(T), imag(T)): Add _GLIBCXX_CONSTEXPR.
585 (proj(T), conj(T)): Change return types per DR 1522.
586 * include/tr1/complex (conj): Remove overloads and use std::conj.
587 * testsuite/26_numerics/complex/dr781_dr1137.cc: Rename to...
588 * testsuite/26_numerics/complex/dr781.cc: ... this, and update.
589 * testsuite/26_numerics/complex/value_operations/constexpr2.cc: Test
590 real(T) and imag(T). Allow testing for C++11 too.
592 2017-01-24 Jonathan Wakely <jwakely@redhat.com>
595 * include/experimental/string_view (operator==): Check sizes first.
596 * include/std/string_view (operator==): Likewise.
598 2017-01-23 Jonathan Wakely <jwakely@redhat.com>
600 * testsuite/experimental/array/make_array.cc: Restore <functional>
603 2017-01-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
605 * testsuite/29_atomics/atomic/69301.cc: Require atomic builtins.
607 2017-01-23 Jonathan Wakely <jwakely@redhat.com>
610 * include/experimental/array (__make_array_elem): New class template
611 and partial specialization.
612 (__is_reference_wrapper): Move into __make_array_elem specialization.
613 (make_array): Use __make_array_elem to determine element type and move
614 static assertion into specialization. Qualify std::forward call.
615 (to_array): Add exception specifiation.
616 * testsuite/experimental/array/make_array.cc: Test argument types
617 without a common type.
618 * testsuite/experimental/array/neg.cc: Adjust expected error message.
620 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
622 * doc/xml/manual/debug.xml: code.google.com uses https now.
624 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
626 * doc/xml/manual/test.xml: Fix link into gccint online manual.
628 2017-01-21 Ville Voutilainen <ville.voutilainen@gmail.com>
630 Make poisoned hashes SFINAE away the call operator of the hash.
631 * include/bits/functional_hash.h
632 (__poison_hash::__enable_hash_call): New.
633 * include/std/optional (__optional_hash_call_base): New.
634 (hash<optional<_Tp>>): Derive from the new base,
635 move the hash function into that base.
636 * include/std/variant (__variant_hash_call_base_impl): New.
637 (__variant_hash_call_base): Likewise.
638 (hash<variant<_Types...>>): Derive from the new base,
639 move the hash function into that base.
640 * testsuite/20_util/optional/hash.cc: Add tests for is_callable.
641 * testsuite/20_util/variant/hash.cc: Likewise.
643 2017-01-20 Joe Seymour <joe.s@somniumtech.com>
645 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): Support uint20_t.
646 * configure: Regenerate.
648 2017-01-20 Jonathan Wakely <jwakely@redhat.com>
651 * include/bits/random.h (uniform_real_distribution::param_type)
652 (normal_distribution::param_type, lognormal_distribution::param_type)
653 (gamma_distribution::param_type, chi_squared_distribution::param_type)
654 (cauchy_distribution::param_type, fisher_f_distribution::param_type)
655 (student_t_distribution::param_type)
656 (bernoulli_distribution::param_type, binomial_distribution::param_type)
657 (geometric_distribution::param_type)
658 (negative_binomial_distribution::param_type)
659 (poisson_distribution::param_type)
660 (exponential_distribution::param_type)
661 (weibull_distribution::param_type)
662 (extreme_value_distribution::param_type)
663 (discrete_distribution::param_type)
664 (piecewise_constant_distribution::param_type)
665 (piecewise_linear_distribution::param_type): Define operator!=.
666 * include/bits/uniform_int_dist.h
667 (uniform_int_distribution::param_type): Likewise.
668 * include/ext/random (beta_distribution::param_type)
669 (rice_distribution::param_type, nakagami_distribution::param_type)
670 (pareto_distribution::param_type, k_distribution::param_type)
671 (arcsine_distribution::param_type, hoyt_distribution::param_type)
672 (triangular_distribution::param_type)
673 (von_mises_distribution::param_type)
674 (hypergeometric_distribution::param_type)
675 (logistic_distribution::param_type)
676 (uniform_on_sphere_distribution::param_type)
677 (uniform_inside_sphere_distribution::param_type): Likewise.
678 * testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc:
679 Test construction with param_type.
680 * testsuite/26_numerics/random/binomial_distribution/cons/parms.cc:
682 * testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc:
684 * testsuite/26_numerics/random/chi_squared_distribution/cons/parms.cc:
686 * testsuite/26_numerics/random/exponential_distribution/cons/parms.cc:
688 * testsuite/26_numerics/random/extreme_value_distribution/cons/
690 * testsuite/26_numerics/random/fisher_f_distribution/cons/parms.cc:
692 * testsuite/26_numerics/random/gamma_distribution/cons/parms.cc:
694 * testsuite/26_numerics/random/geometric_distribution/cons/parms.cc:
696 * testsuite/26_numerics/random/lognormal_distribution/cons/parms.cc:
698 * testsuite/26_numerics/random/negative_binomial_distribution/cons/
700 * testsuite/26_numerics/random/normal_distribution/cons/parms.cc:
702 * testsuite/26_numerics/random/poisson_distribution/cons/parms.cc:
704 * testsuite/26_numerics/random/student_t_distribution/cons/parms.cc:
706 * testsuite/26_numerics/random/uniform_int_distribution/cons/parms.cc:
708 * testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc:
710 * testsuite/26_numerics/random/weibull_distribution/cons/parms.cc:
712 * testsuite/ext/random/arcsine_distribution/cons/parms.cc: Likewise.
713 * testsuite/ext/random/beta_distribution/cons/parms.cc: Likewise.
714 * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
715 * testsuite/ext/random/hypergeometric_distribution/cons/parms.cc:
717 * testsuite/ext/random/k_distribution/cons/parms.cc: Likewise.
718 * testsuite/ext/random/logistic_distribution/cons/parms.cc: Likewise.
719 * testsuite/ext/random/nakagami_distribution/cons/parms.cc: Likewise.
720 * testsuite/ext/random/normal_mv_distribution/cons/parms.cc: Likewise.
721 * testsuite/ext/random/pareto_distribution/cons/parms.cc: Likewise.
722 * testsuite/ext/random/rice_distribution/cons/parms.cc: Likewise.
723 * testsuite/ext/random/triangular_distribution/cons/parms.cc:
725 * testsuite/ext/random/uniform_inside_sphere_distribution/cons/
727 * testsuite/ext/random/von_mises_distribution/cons/parms.cc: Likewise.
730 * include/bits/alloc_traits.h (__allocator_traits_base::__diff_type)
731 (__allocator_traits_base::__size_type): Remove.
732 (allocator_traits::_Ptr): New class template to detect const and void
733 pointer types without instantiating pointer_traits::rebind
735 (allocator_traits::_Diff): Likewise for detecting difference_type.
736 (allocator_traits::_Size): New class template to detect size_type
737 without instantiating make_unsigned unnecessarily.
738 * include/bits/ptr_traits.h (pointer_traits::element_type): Use
739 __detected_or_t instead of __detected_or_t_.
740 * include/std/type_traits (__detected_or_t_): Remove.
741 * testsuite/20_util/allocator_traits/members/pointers.cc: New test.
745 * include/bits/alloc_traits.h (__allocator_traits_base::__rebind):
746 Replace with class template using void_t.
747 (__alloc_rebind): Define in terms of
748 __allocator_traits_base::__rebind.
749 (allocator_traits): Remove unconditional static_assert for
751 * include/bits/ptr_traits.h (__replace_first_arg): Remove type member.
752 (pointer_traits::__rebind): Replace with class template using void_t.
753 (pointer_traits::rebind): Define in terms of __rebind.
754 (pointer_traits): Remove unconditional static_assert for rebind.
755 * testsuite/20_util/allocator_traits/members/rebind_alloc.cc: New test.
756 * testsuite/20_util/pointer_traits/rebind.cc: New test.
759 * include/experimental/any (__any_caster): Avoid instantiating
760 manager function for types that can't be stored in any.
761 * include/std/any (__any_caster): Likewise.
762 * testsuite/20_util/any/misc/any_cast.cc: Test non-copyable type.
763 * testsuite/experimental/any/misc/any_cast.cc: Likewise.
766 * include/bits/stl_algo.h (is_partitioned): Use increment instead of
769 2017-01-19 Jonathan Wakely <jwakely@redhat.com>
772 * include/bits/shared_ptr_base.h (__enable_shared_from_this_base):
774 (__enable_shared_from_this): Declare __shared_ptr as a friend.
775 * testsuite/ext/shared_ptr/1.cc: New test.
778 * include/bits/stl_algo.h (is_partitioned): Don't retest the partition
780 * testsuite/25_algorithms/is_partitioned/2.cc: New test.
782 * doc/xml/manual/abi.xml: Fix typo.
783 * doc/html/manual/abi.html: Likewise.
786 * include/bits/predefined_ops.h (_Iter_less_val, _Val_less_iter): Add
787 converting constructors from _Iter_less_iter.
788 (_Iter_comp_val, _Val_comp_iter): Add converting constructors from
790 (__iter_comp_val(_Iter_comp_iter<C>): Use converting constructor.
791 (__val_comp_iter(_Iter_comp_iter<C>): Likewise.
792 * include/bits/stl_heap.h (__is_heap_until, __push_heap, __pop_heap)
793 (__make_heap, __sort_heap): Change _Compare parameters to references.
794 (__is_heap, push_heap, __adjust_heap, __pop_heap, pop_heap)
795 (__make_heap, make_heap, sort_heap, is_heap_until): Pass comparison
796 functions as lvalues.
797 (is_heap): Call __is_heap_until directly to avoid copying __comp.
798 * testsuite/23_containers/priority_queue/67085.cc: Adjust test to
799 count copies during construction with empty sequence.
802 * include/bits/stl_heap.h (__is_heap): Use _GLIBCXX_MOVE.
803 (__make_heap, __sort_heap): Don't use _GLIBCXX_MOVE inside loops.
804 * testsuite/23_containers/priority_queue/67085.cc: Adjust expected
806 * testsuite/25_algorithms/make_heap/movable.cc: New test.
809 * include/bits/stl_heap.h (push_heap, __adjust_heap, __pop_heap)
810 (pop_heap, __make_heap, make_heap, __sort_heap, sort_heap): Use
811 _GLIBCXX_MOVE when passing comparison function to other functions.
812 (is_heap_until, is_heap): Use std::move when passing comparison
814 * testsuite/23_containers/priority_queue/67085.cc: New test.
817 * doc/xml/manual/abi.xml (abi.versioning.history): Add markup to
818 macro names, filenames, and literal values. Document _GLIBCXX_RELEASE.
819 Document that the deprecated _GLIBCXX_VERSION macro was removed for
821 * doc/html/*: Regenerate.
822 * include/Makefile.am (_GLIBCXX_RELEASE): Set value.
823 * include/Makefile.in: Regenerate.
824 * include/bits/c++config (_GLIBCXX_RELEASE): Add #define.
825 * testsuite/ext/profile/mutex_extensions_neg.cc: Use lineno of 0 in
828 2017-01-18 Jonathan Wakely <jwakely@redhat.com>
831 * include/std/atomic (atomic<T>::load, atomic<T>::exchange): Use
832 aligned buffer instead of default-initialized variable.
833 * testsuite/29_atomics/atomic/69301.cc: New test.
834 * include/experimental/memory (observer_ptr::release): Use reserved
836 * include/ext/pointer.h (_Pointer_adapter::operator++(int))
837 (_Pointer_adapter::operator--(int)): Likewise.
840 * include/experimental/random (randint): Use temporary instead of
843 2017-01-17 Joshua Conner <joshconner@google.com>
845 * crossconfig.m4: Add fuchsia OS.
846 * configure: Regenerate.
848 2017-01-17 Jonathan Wakely <jwakely@redhat.com>
851 * doc/xml/manual/abi.xml (abi.versioning.history): Explain why the
852 __GLIBCXX__ macro is not useful. Remove redundant date information
853 and link to the GCC release timeline.
854 (abi.versioning.active): Move partial sentence into the previous
856 * doc/html/*: Regenerate.
859 * libsupc++/nested_exception.h (throw_with_nested): Use decay instead
861 * testsuite/18_support/nested_exception/79114.cc: New test.
863 2017-01-17 Jakub Jelinek <jakub@redhat.com>
866 * configure.ac: Add GCC_BASE_VER.
867 * fragment.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
868 get version from BASE-VER file.
869 * po/Makefile.in: Regenerated.
870 * libsupc++/Makefile.in: Regenerated.
871 * testsuite/Makefile.in: Regenerated.
872 * src/Makefile.in: Regenerated.
873 * configure: Regenerated.
874 * Makefile.in: Regenerated.
875 * include/Makefile.in: Regenerated.
876 * doc/Makefile.in: Regenerated.
877 * python/Makefile.in: Regenerated.
878 * src/c++11/Makefile.in: Regenerated.
879 * src/c++98/Makefile.in: Regenerated.
880 * src/filesystem/Makefile.in: Regenerated.
882 2017-01-16 Jonathan Wakely <jwakely@redhat.com>
885 * src/c++11/functexcept.cc: Use new ABI for std::ios_base::failure
887 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Don't override ABI
888 for test, so new ios::failure can be caught.
889 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
890 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
891 exceptions_failbit.cc: Likewise.
892 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
893 exceptions_failbit.cc: Likewise.
894 * testsuite/27_io/basic_istream/extractors_other/char/
895 exceptions_null.cc: Likewise.
896 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
897 exceptions_null.cc: Likewise.
898 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
899 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
900 * testsuite/27_io/basic_ostream/inserters_other/char/
901 exceptions_null.cc: Likewise.
902 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
903 exceptions_null.cc: Likewise.
904 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
907 * include/bits/locale_classes.h (locale::facet::__shim): Change from
908 private to protected.
909 * src/c++11/cxx11-shim_facets.cc (__shim_accessor): Define helper to
910 make locale::facet::__shim accessible.
912 2017-01-16 Ville Voutilainen <ville.voutilainen@gmail.com>
915 * include/bits/list.tcc (merge(list&&)): Fix backwards size adjustments.
916 (merge(list&&, _StrictWeakOrdering)): Likewise.
917 * testsuite/23_containers/list/operations/78389.cc: Add
918 better test for the sizes.
920 2017-01-14 Jonathan Wakely <jwakely@redhat.com>
922 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
923 Skip test when -D_GLIBCXX_PROFILE mode is included in options.
924 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
925 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
927 * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
928 * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise.
929 * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise.
930 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
931 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
933 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc::
935 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc::
937 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
939 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
941 * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise.
942 * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise.
943 * testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise.
944 * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise.
945 * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise.
946 * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
947 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
948 * testsuite/libstdc++-prettyprinters/debug.cc: Likewise.
949 * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise.
950 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
951 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
952 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
953 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
955 2017-01-13 Jonathan Wakely <jwakely@redhat.com>
958 * config/io/basic_file_stdio.cc (__basic_file<char>::close()): Don't
959 retry fclose on EINTR.
961 * include/profile/base.h: Remove unused header that leads to header
965 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
967 [!_GLIBCXX_USE_CXX11_ABI] (basic_string): Add member functions taking
968 basic_string_view arguments.
971 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Remove
972 redundant option from cxxflags.
973 (check_effective_target_cxx11-abi): Define.
974 * testsuite/21_strings/basic_string/allocator/71964.cc: Use cxx11-abi
976 * testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise.
977 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
979 * testsuite/21_strings/basic_string/allocator/char/minimal.cc:
981 * testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
982 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
984 * testsuite/21_strings/basic_string/allocator/char/noexcept.cc:
986 * testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
987 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
989 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
991 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
993 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
995 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
997 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
999 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
1001 * testsuite/23_containers/list/61347.cc: Likewise.
1002 * testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
1003 * testsuite/27_io/ios_base/failure/cxx11.cc: Likewise.
1005 2017-01-13 Ville Voutilainen <ville.voutilainen@gmail.com>
1008 * include/bits/list.tcc (merge(list&&)):
1009 Adjust list sizes if the comparator throws.
1010 (merge(list&&, _StrictWeakOrdering)): Likewise.
1011 (sort()): Splice elements back from the scratch buffers
1012 if the comparator throws.
1013 (sort(_StrictWeakOrdering)): Likewise.
1014 * testsuite/23_containers/list/operations/78389.cc: New.
1016 2017-01-13 Jonathan Wakely <jwakely@redhat.com>
1018 * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Mark
1019 XFAIL for C++17 until node reinsertion supports fancy pointers.
1022 * testsuite/20_util/add_pointer/value.cc: Test forming function
1025 2017-01-13 Michael Brune <lucdanton@free.fr>
1028 * include/std/type_traits (__is_referenceable): Handle noexcept
1031 2017-01-12 Jonathan Wakely <jwakely@redhat.com>
1034 * include/bits/stl_queue.h (queue, priority_queue): Remove default
1035 member-initializers and define default constructors as templates with
1037 * include/bits/stl_stack.h (stack): Likewise.
1038 * testsuite/23_containers/priority_queue/requirements/constructible.cc:
1040 * testsuite/23_containers/priority_queue/requirements/
1041 explicit_instantiation/1.cc: Test more instantiations.
1042 * testsuite/23_containers/priority_queue/requirements/
1043 explicit_instantiation/1_c++98.cc: Likewise.
1044 * testsuite/23_containers/queue/requirements/constructible.cc: New.
1045 * testsuite/23_containers/stack/requirements/constructible.cc: New.
1048 * doc/xml/manual/intro.xml: Document LWG 2781 change.
1049 * doc/html/*: Regenerate.
1050 * include/std/functional (_Function_base::_Ref_manager): Remove.
1051 (_Function_handler): Remove partial specializations for
1053 (function::target): Remove special case for const qualification.
1054 * testsuite/20_util/function/6.cc: Adjust tests for target type.
1055 * testsuite/20_util/function/7.cc: Likewise.
1056 * testsuite/20_util/function/8.cc: Likewise.
1058 2017-01-11 Jonathan Wakely <jwakely@redhat.com>
1061 * include/bits/stl_map.h (map::lower_bound, map::upper_bound)
1062 (map::equal_range): Fix return type of heterogeneous overloads.
1063 * include/bits/stl_multimap.h (multimap::lower_bound)
1064 (multimap::upper_bound, multimap::equal_range): Likewise.
1065 * include/bits/stl_multiset.h (multiset::lower_bound)
1066 (multiset::upper_bound, multiset::equal_range): Likewise.
1067 * include/bits/stl_set.h (set::lower_bound, set::upper_bound)
1068 (set::equal_range): Likewise.
1069 * testsuite/23_containers/map/operations/2.cc
1070 * testsuite/23_containers/multimap/operations/2.cc
1071 * testsuite/23_containers/multiset/operations/2.cc
1072 * testsuite/23_containers/set/operations/2.cc
1075 * include/bits/stl_map.h (map::count<_Kt>(const _Kt&)): Don't assume
1076 the heterogeneous comparison can only find one match.
1077 * include/bits/stl_set.h (set::count<_Kt>(const _Kt&)): Likewise.
1078 * testsuite/23_containers/map/operations/2.cc: Test count works with
1079 comparison function that just partitions rather than sorting.
1080 * testsuite/23_containers/set/operations/2.cc: Likewise.
1082 2017-01-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1084 Reduce the size of variant, it doesn't need an index of
1085 type size_t internally.
1086 * include/std/variant (parse_numbers.h): New include.
1087 (__select_index): New.
1088 (_Variant_storage<false, _Types...>::_M_reset_impl): Use
1089 _index_type for comparison with variant_npos.
1090 (_Variant_storage<false, _Types...>::__index_type): New.
1091 (_Variant_storage<false, _Types...>::_M_index): Change the
1092 type from size_t to __index_type.
1093 (_Variant_storage<true, _Types...>::__index_type): New.
1094 (_Variant_storage<true, _Types...>::_M_index): Change the
1095 type from size_t to __index_type.
1096 (_Variant_base::_M_valid): Use _Storage::__index_type
1097 for comparison with variant_npos.
1098 (variant::index): Use _Base::_Storage::__index_type
1099 for comparison with variant_npos.
1100 * testsuite/20_util/variant/index_type.cc: New.
1102 2017-01-10 Jonathan Wakely <jwakely@redhat.com>
1104 * testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
1105 effective target selector to prevent running in C++17 mode.
1108 * include/bits/stl_queue.h (queue::c): Add default member initializer.
1109 (queue::queue()): Add constructor and define as defaulted.
1110 (queue::queue(_Sequence&&)): Remove default argument.
1111 (priority_queue::c, priority_queue::comp): Add default member
1113 (priority_queue::priority_queue()): Add constructor and define as
1115 (priority_queue::priority_queue(const _Compare&, _Sequence&&)):
1116 Remove default argument for first parameter.
1117 * include/bits/stl_stack.h (stack::c): Add default member initializer.
1118 (stack::stack()): Add constructor and define as defaulted.
1119 (stack::stack(const _Sequence&)): Remove default argument.
1120 * testsuite/23_containers/priority_queue/requirements/
1121 explicit_instantiation/1.cc: Test explicit instantiation with
1122 non-DefaultConstructible sequence.
1123 * testsuite/23_containers/priority_queue/77528.cc: New test.
1124 * testsuite/23_containers/priority_queue/requirements/
1125 explicit_instantiation/1_c++0x.cc: Replace with 1_c++98.cc.
1126 * testsuite/23_containers/queue/77528.cc: New test.
1127 * testsuite/23_containers/queue/requirements/explicit_instantiation/
1128 1.cc: Test explicit instantiation with non-DefaultConstructible
1130 * testsuite/23_containers/queue/requirements/explicit_instantiation/
1131 1_c++0x.cc: Replace with 1_c++98.cc.
1132 * testsuite/23_containers/stack/77528.cc: New test.
1133 * testsuite/23_containers/stack/requirements/explicit_instantiation/
1134 1.cc: Test explicit instantiation with non-DefaultConstructible
1136 * testsuite/23_containers/stack/requirements/explicit_instantiation/
1137 1_c++0x.cc: Replace with 1_c++98.cc.
1139 2017-01-10 Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
1141 * include/bits/locale_facets_nonio.tcc
1142 (time_get::_M_extract_via_format): Avoid compilation errors with
1143 non-standard struct tm.
1145 2017-01-10 François Dumont <fdumont@gcc.gnu.org>
1146 Jonathan Wakely <jwakely@redhat.com>
1148 * python/libstdcxx/v6/printers.py (_versioned_namespace): Define.
1149 (is_specialization, strip_versioned_namespace): New helpers functions
1150 to work with symbols in the versioned namespace.
1151 (Printer.add_version): Add second name using versioned namespace.
1152 (add_one_template_type_printer, add_one_type_printer): Add second
1153 type printers using versioned namespace.
1154 (register_type_printers): Add template type printer for basic_string.
1155 (build_libstdcxx_dictionary): Remove dead code.
1156 * python/libstdcxx/v6/xmethods.py: Make all matchers look for
1157 versioned namespace.
1158 * testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected
1160 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
1162 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
1165 * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Check for llrint and llround
1166 functions separately on darwin and if they're missing define
1167 _GLIBCXX_NO_C99_ROUNDING_FUNCS.
1168 * config.h.in: Regenerate.
1169 * configure: Regenerate.
1170 * include/c_global/cmath [_GLIBCXX_NO_C99_ROUNDING_FUNCS] (llrint)
1171 (llrintf, llrintl, llround, llroundf, llroundl): Do not define.
1173 * testsuite/30_threads/condition_variable/members/3.cc: Use new macro
1174 to detect correct thread_local destructors.
1175 * testsuite/util/testsuite_hooks.h (CORRECT_THREAD_LOCAL_DTORS):
1178 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
1179 Aditya Kumar <hiraditya@msn.com>
1182 * include/bits/basic_string.tcc
1183 (basic_string::find(const CharT*, size_type, size_type)): Optimize.
1185 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
1187 * testsuite/21_strings/basic_string/operations/find/char/6.cc: New.
1188 * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: New.
1190 * testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
1191 Include <cassert> header.
1194 * crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
1195 * configure: Regenerate.
1197 2017-01-06 Barrett Adair <barrettellisadair@gmail.com>
1198 Jonathan Wakely <jwakely@redhat.com>
1200 * include/std/variant (variant, swap): Replace __and_ usage with fold
1203 2017-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1206 * acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
1207 * configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
1208 GLIBCXX_CHECK_ASSEMBLER_HWCAP.
1209 * fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
1211 * aclocal.m4: Regenerate.
1212 * configure: Regenerate.
1213 * Makefile.in, doc/Makefile.in, include/Makefile.in,
1214 libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
1215 src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
1216 src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
1218 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
1220 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.
1223 * include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
1224 (_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
1225 (_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and
1226 move function objects.
1227 (__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter)
1228 (__iter_comp_val, __iter_comp_iter, __negate): Move function objects.
1229 * testsuite/25_algorithms/sort/78991.cc: New test.
1231 2017-01-05 Jonathan Wakely <jwakely@redhat.com>
1233 * include/bits/std_function.h (function::_Signature_type): Remove.
1234 (function::function(_Functor)): Adjust.
1236 2017-01-05 Tim Shen <timshen@google.com>
1239 * include/std/variant (__gen_vtable_impl): rename __unused to
1240 __dimensions to avoid naming conflict.
1242 2017-01-04 Jonathan Wakely <jwakely@redhat.com>
1245 * config.h.in: Regenerate.
1246 * configure: Likewise.
1247 * configure.ac: Check for __cxa_thread_atexit.
1248 * libsupc++/atexit_thread.cc [_GLIBCXX_HAVE___CXA_THREAD_ATEXIT]:
1249 Don't define __cxa_thread_atexit if libc provides it.
1251 2017-01-04 Ville Voutilainen <ville.voutilainen@gmail.com>
1253 Implement 2801, Default-constructibility of unique_ptr.
1254 * include/bits/unique_ptr.h (__uniq_ptr_impl::_DeleterConstraint): New.
1255 (unique_ptr::_DeleterConstraint): Likewise.
1256 (unique_ptr()): Constrain.
1257 (unique_ptr(pointer)): Likewise.
1258 (unique_ptr(nullptr_t)): Likewise.
1259 (unique_ptr<_Tp[], _Dp>::_DeleterConstraint): New.
1260 (unique_ptr<_Tp[], _Dp>::unique_ptr()): Constrain.
1261 (unique_ptr<_Tp[], _Dp>::unique_ptr(_Up)): Likewise.
1262 (unique_ptr<_Tp[], _Dp>::unique_ptr(nullptr_t)): Likewise.
1263 * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust.
1264 * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
1265 * testsuite/20_util/unique_ptr/cons/default.cc: New.
1266 * testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Adjust.
1268 2017-01-04 Pauli Nieminen <suokkos@gmail.com>
1269 Jonathan Wakely <jwakely@redhat.com>
1272 * acinclude.m4 (GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER): Define.
1273 * config.h.in: Regenerate.
1274 * config/abi/pre/gnu.ver [HAVE_EXCEPTION_PTR_SINCE_GCC46]
1275 (GLIBCXX_3.4.15, GLIBCXX_3.4.21, CXXABI_1.3.3, CXXABI_1.3.5): Make
1276 exports for exception_ptr, nested_exception, and future conditional.
1277 [HAVE_EXCEPTION_PTR_SINCE_GCC46] (GLIBCXX_3.4.23, CXXABI_1.3.11): Add
1278 exports for exception_ptr, nested_exception, and future conditional.
1279 * configure: Regenerate.
1280 * configure.ac: Use GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER.
1281 * include/std/future: Remove check for ATOMIC_INT_LOCK_FREE
1282 * libsupc++/eh_atomics.h: New file for internal use only.
1283 (__eh_atomic_inc, __eh_atomic_dec): New.
1284 * libsupc++/eh_ptr.cc (exception_ptr::_M_addref)
1285 (exception_ptr::_M_release) (__gxx_dependent_exception_cleanup)
1286 (rethrow_exception): Use eh_atomics.h reference counting helpers.
1287 * libsupc++/eh_throw.cc (__gxx_exception_cleanup): Likewise.
1288 * libsupc++/eh_tm.cc (free_any_cxa_exception): Likewise.
1289 * libsupc++/exception: Remove check for ATOMIC_INT_LOCK_FREE.
1290 * libsupc++/exception_ptr.h: Likewise.
1291 * libsupc++/guard.cc: Include header for ATOMIC_INT_LOCK_FREE macro.
1292 * libsupc++/nested_exception.cc: Remove check for
1293 ATOMIC_INT_LOCK_FREE.
1294 * libsupc++/nested_exception.h: Likewise.
1295 * src/c++11/future.cc: Likewise.
1296 * testsuite/18_support/exception_ptr/*: Remove atomic builtins checks.
1297 * testsuite/18_support/nested_exception/*: Likewise.
1298 * testsuite/30_threads/async/*: Likewise.
1299 * testsuite/30_threads/future/*: Likewise.
1300 * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
1301 * testsuite/30_threads/packaged_task/*: Likewise.
1302 * testsuite/30_threads/promise/*: Likewise.
1303 * testsuite/30_threads/shared_future/*: Likewise.
1305 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
1307 * doc/xml/manual/documentation_hacking.xml: sourceforge.net now
1308 defaults to https; adjust reference.
1310 2017-01-03 Jonathan Wakely <jwakely@redhat.com>
1313 * include/std/thread (thread(const thread&&)): Add deleted
1315 * testsuite/30_threads/thread/cons/lwg2097.cc: New test.
1317 * doc/xml/manual/spine.xml: Update copyright years.
1318 * doc/xml/manual/build_hacking.xml: Fix spelling of libbuilddir.
1319 * doc/xml/manual/test.xml: Likewise.
1320 * doc/html/*: Regenerate.
1322 2017-01-01 Gerald Pfeifer <gerald@pfeifer.com>
1324 * doc/xml/faq.xml: Update address of C++ ABI link.
1325 * doc/xml/manual/abi.xml: Ditto.
1327 2017-01-01 Jakub Jelinek <jakub@redhat.com>
1329 Update copyright years.
1331 Copyright (C) 2017 Free Software Foundation, Inc.
1333 Copying and distribution of this file, with or without modification,
1334 are permitted in any medium without royalty provided the copyright
1335 notice and this notice are preserved.