1 2017-03-16 Jonathan Wakely <jwakely@redhat.com>
4 * src/c++11/codecvt.cc (__codecvt_utf16_base<wchar_t>::do_out)
5 (__codecvt_utf16_base<wchar_t>::do_in): Convert char arguments to
6 char16_t to work with UTF-16 instead of UTF-8.
7 * testsuite/22_locale/codecvt/codecvt_utf16/80041.cc: New test.
9 * src/c++11/codecvt.cc (codecvt<char16_t, char, mbstate_t>)
10 (codecvt<char32_t, char, mbstate_t>, __codecvt_utf8_base<char16_t>)
11 (__codecvt_utf8_base<char32_t>, __codecvt_utf8_base<wchar_t>)
12 (__codecvt_utf16_base<char16_t>, __codecvt_utf16_base<char32_t>)
13 (__codecvt_utf16_base<wchar_t>, __codecvt_utf8_utf16_base<char16_t>)
14 (__codecvt_utf8_utf16_base<char32_t>)
15 (__codecvt_utf8_utf16_base<wchar_t>): Fix do_encoding() and
16 do_max_length() return values.
17 * testsuite/22_locale/codecvt/codecvt_utf16/members.cc: New test.
18 * testsuite/22_locale/codecvt/codecvt_utf8/members.cc: New test.
19 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/members.cc: New test.
22 * include/bits/locale_conv.h (__do_str_codecvt): Set __count on
24 * src/c++11/codecvt.cc (operator&=, operator|=, operator~): Overloads
25 for manipulating codecvt_mode values.
26 (read_utf16_bom): Compare input to BOM constants instead of integral
27 constants that depend on endianness. Take mode parameter by
28 reference and adjust it, to distinguish between no BOM present and
30 (ucs4_in, ucs2_span, ucs4_span): Adjust calls to read_utf16_bom.
31 (surrogates): New enumeration type.
32 (utf16_in, utf16_out): Add surrogates parameter to choose between
33 UTF-16 and UCS2 behaviour.
34 (utf16_span, ucs2_span): Use std::min not std::max.
35 (ucs2_out): Use std::min not std::max. Disallow surrogate pairs.
36 (ucs2_in): Likewise. Adjust calls to read_utf16_bom.
37 * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc: New test.
38 * testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: New test.
41 * src/c++11/codecvt.cc (write_utf16_code_point): Don't write 0xffff
43 (__codecvt_utf8_utf16_base<char32_t>::do_in): Use native endianness
44 for internal representation.
45 (__codecvt_utf8_utf16_base<wchar_t>::do_in): Likewise.
46 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/79511.cc: New test.
49 * include/bits/stl_heap.h (__is_heap, push_heap, __adjust_heap)
50 (pop_heap, make_heap, sort_heap, is_heap_until, is_heap): Cope with
51 invalid instantiations using function types for _Compare argument.
52 * testsuite/25_algorithms/make_heap/80064.cc: New test.
55 * python/libstdcxx/v6/printers.py (find_type): Avoid gdb.Type.name
56 for GDB 7.6 compatibility, use gdb.Type.unqualified instead.
58 2017-03-15 Ville Voutilainen <ville.voutilainen@gmail.com>
60 Implement LWG 2857, {variant,optional,any}::emplace should
61 return the constructed value.
62 * include/std/any (emplace(_Args&&...)): Change the return type and
63 return a reference to the constructed value.
64 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
65 * include/std/optional (emplace(_Args&&...)): Likewise.
66 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
67 * include/std/variant (emplace<_Tp>(_Args&&...)): Likewise.
68 (emplace<_Tp>(initializer_list<_Up>, _Args&&...)): Likewise.
69 (emplace<_Np>(_Args&&...)): Likewise.
70 (emplace<_Np>(initializer_list<_Up>, _Args&&...)): Likewise.
71 * testsuite/20_util/any/assign/emplace.cc: Add tests for
72 checking the return value of emplace.
73 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
74 * testsuite/20_util/optional/assignment/6.cc: Add tests for
75 checking the return value of emplace.
76 * testsuite/20_util/variant/run.cc: Likewise.
78 2017-03-15 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
81 * include/ext/pb_ds/qdetail/binary_heap_/binary_heap_.hpp
83 (push_heap): Remove the wrong checking using is_heap.
84 (make_heap): Remove the assertion using is_heap.
85 * include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
87 (resize_for_insert_if_needed): Add PB_DS_ASSERT_VALID after
90 2017-03-15 Jonathan Wakely <jwakely@redhat.com>
93 * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
95 * testsuite/ext/pb_ds/regression/priority_queues.cc: Fix copy&paste
98 2017-03-15 Jonathan Wakely <jwakely@redhat.com>
100 * acinclude.m4 (GLIBCXX_CHECK_S_ISREG_OR_S_IFREG): Fix typo in
102 * config.h.in: Regenerate.
103 * configure: Regenerate.
104 * doc/Makefile.in: Regenerate.
106 2017-03-14 Jonathan Wakely <jwakely@redhat.com>
109 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
110 (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Replace
111 with a constrained template.
112 [!_GLIBCXX_USE_CXX11_ABI]
113 (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Likewise.
114 * testsuite/21_strings/basic_string/cons/char/79162.cc: New test.
115 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: New test.
117 2017-03-13 Ville Voutilainen <ville.voutilainen@gmail.com>
120 * include/bits/list.tcc (merge(list&&)): Use const for the size_t
122 (merge(list&&, _StrictWeakOrdering)): Likewise.
123 * testsuite/23_containers/list/operations/80034.cc: New.
125 2017-03-13 Ville Voutilainen <ville.voutilainen@gmail.com>
127 Implement LWG 2806, Base class of bad_optional_access.
128 * include/std/optional (bad_optional_access):
129 Derive from std::exception.
130 (bad_optional_access::bad_optional_access): Adjust.
131 (bad_optional_access::what): New.
132 (__throw_bad_optional_access(const char*)):
133 Remove the parameter and adjust calls.
134 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
135 * testsuite/20_util/optional/typedefs.cc: Likewise.
137 2017-03-12 Ville Voutilainen <ville.voutilainen@gmail.com>
139 Implement LWG 2934, optional<const T> doesn't compare with T.
140 * include/std/optional
141 (operator==(const optional<_Tp>&, const optional<_Tp>&)):
142 Turn into operator==(const optional<_Tp>&, const optional<_Up>&).
143 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
144 Turn into operator!=(const optional<_Tp>&, const optional<_Up>&).
145 (operator<(const optional<_Tp>&, const optional<_Tp>&)):
146 Turn into operator<(const optional<_Tp>&, const optional<_Up>&.
147 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
148 Turn into operator>(const optional<_Tp>&, const optional<_Up>&.
149 (operator<=(const optional<_Tp>&, const optional<_Tp>&)):
150 Turn into operator<=(const optional<_Tp>&, const optional<_Up>&).
151 (operator>=(const optional<_Tp>&, const optional<_Tp>&)):
152 Turn into operator>=(const optional<_Tp>&, const optional<_Up>&).
153 (operator==(const optional<_Tp>&, const _Tp&)):
154 Turn into operator==(const optional<_Tp>&, const _Up&).
155 (operator==(const _Tp&, const optional<_Tp>&)):
156 Turn into operator==(const _Up&, const optional<_Tp>&).
157 (operator!=(const optional<_Tp>&, const _Tp&)):
158 Turn into operator!=(const optional<_Tp>&, const _Up&).
159 (operator!=(const _Tp&, const optional<_Tp>&)):
160 Turn into operator!=(const _Up&, const optional<_Tp>&).
161 (operator<(const optional<_Tp>&, const _Tp&)):
162 Turn into operator<(const optional<_Tp>&, const _Up&).
163 (operator<(const _Tp&, const optional<_Tp>&)):
164 Turn into operator<(const _Up&, const optional<_Tp>&).
165 (operator>(const optional<_Tp>&, const _Tp&)):
166 Turn into operator>(const optional<_Tp>&, const _Up&).
167 (operator>(const _Tp&, const optional<_Tp>&)):
168 Turn into operator>(const _Up&, const optional<_Tp>&).
169 (operator<=(const optional<_Tp>&, const _Tp&)):
170 Turn into operator<=(const optional<_Tp>&, const _Up&).
171 (operator<=(const _Tp&, const optional<_Tp>&)):
172 Turn into operator<=(const _Up&, const optional<_Tp>&).
173 (operator>=(const optional<_Tp>&, const _Tp&)):
174 Turn into operator>=(const optional<_Tp>&, const _Up&).
175 (operator>=(const _Tp&, const optional<_Tp>&)):
176 Turn into operator>=(const _Up&, const optional<_Tp>&).
177 * testsuite/20_util/optional/relops/7.cc: New.
179 2017-03-10 Jonathan Wakely <jwakely@redhat.com>
181 * testsuite/17_intro/names.cc: Undefine macros that clash with
182 identifiers in AIX system headers.
184 * include/bits/invoke.h (__invoke): Use __invoke_result instead of
185 result_of, and __is_nothrow_invocable instead of
186 __is_nothrow_callable.
187 * include/bits/shared_ptr_base.h (__shared_ptr): Use __is_invocable
188 instead of __is_callable.
189 * include/std/functional (invoke): use invoke_result_t instead of
190 result_of_t and is_nothrow_invocable instead of is_nothrow_callable.
191 (_Not_fn): Use __invoke_result instead of result_of.
192 * include/std/type_traits (__result_of_memobj, __result_of_memfun):
193 Remove partial specializations for reference_wrapper types.
194 (__result_of_impl): Use __inv_unwrap to strip reference_wrapper.
195 (__invoke_result): Define replacement for result_of and then use it to
197 (__is_callable_impl, __is_callable, __is_nothrow_callable): Replace
198 with __is_invocable_impl, __is_invocable, and __is_nothrow_invocable
200 (invoke_result, invoke_result_t): Define for C++17.
201 (is_callable, is_nothrow_callable): Replace with is_invocable,
202 is_invocable_r, is_nothrow_invocable, and is_nothrow_invocable_r.
203 (is_callable_v, is_nothrow_callable_v): Replace with is_invocable_v,
204 is_invocable_r_v, is_nothrow_invocable_v, and is_nothrow_invocable_r_v.
205 * include/std/variant (hash<variant<T...>>): Use is_nothrow_invocable_v
206 instead of is_nothrow_callable_v.
207 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
209 * testsuite/20_util/function_objects/not_fn/1.cc: Use is_invocable
210 instead of is_callable.
211 * testsuite/20_util/is_callable/*: Rename directory and adjust tests
213 * testsuite/20_util/is_nothrow_callable/*: Likewise.
214 * testsuite/20_util/optional/hash.cc: Use is_invocable_v instead of
216 * testsuite/20_util/variant/hash.cc: Likewise.
218 2017-03-10 George Lander <george.lander@arm.com>
220 * acinclude.m4 (glibcxx_cv_obsolete_isnan): Define
221 _GLIBCXX_INCLUDE_NEXT_C_HEADERS before including math.h.
222 * configure: Regenerate.
224 2017-03-09 Jonathan Wakely <jwakely@redhat.com>
226 * include/std/functional (_Not_fn): Define macro to simplify
227 repetitive function definitions.
229 * doc/xml/manual/status_cxx2017.xml: Document std::byte support.
230 * include/c_global/cstddef (std::byte): Define for C++17.
231 * testsuite/18_support/byte/global_neg.cc: New test.
232 * testsuite/18_support/byte/ops.cc: New test.
233 * testsuite/18_support/byte/requirements.cc: New test.
235 2017-03-05 Jonathan Wakely <jwakely@redhat.com>
237 * doc/xml/manual/status_cxx2017.xml: Document P0156R2 status.
238 * doc/html/*: Regenerate.
239 * include/std/mutex (scoped_lock): Implement new C++17 template.
240 * testsuite/30_threads/scoped_lock/cons/1.cc: New test.
241 * testsuite/30_threads/scoped_lock/requirements/
242 explicit_instantiation.cc: New test.
243 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: New test.
245 2017-03-02 Gerald Pfeifer <gerald@pfeifer.com>
246 François Dumont <frs.dumont@gmail.com>
247 Jonathan Wakely <jwakely@redhat.com>
249 * doc/xml/manual/debug_mode.xml: Update and simplify note
250 on link- and run-time coexistence.
252 2017-03-02 Jonathan Wakely <jwakely@redhat.com>
254 * testsuite/17_intro/headers/names.cc: Rename to ...
255 * testsuite/17_intro/names.cc: ... here.
258 * include/bits/hashtable_policy.h (__clp2): Use reserved names for
259 parameters and local variables.
260 * include/bits/ios_base.h (make_error_code, make_error_condition):
262 * include/bits/list.tcc (list::sort): Likewise.
263 * include/bits/mask_array.h (mask_array): Likewise.
264 * include/bits/regex.h (regex_token_iterator): Likewise.
265 * include/bits/slice_array.h (slice_array): Likewise.
266 * include/bits/stl_algo.h (__sample): Likewise.
267 * include/std/memory (undeclare_no_pointers): Likewise.
268 * include/std/type_traits (is_callable_v, is_nothrow_callable_v):
270 * libsupc++/exception_ptr.h (__dest_thunk): Likewise.
271 * testsuite/17_intro/headers/names.cc: New test.
274 * include/std/functional (bind::_Res_type_impl): Fix incorrect use of
275 result_of that loses top-level cv-qualifiers.
276 * testsuite/20_util/bind/79798.cc: New test.
278 2017-03-01 Gerald Pfeifer <gerald@pfeifer.com>
280 * doc/xml/manual/documentation_hacking.xml: Tweak link to
283 2017-02-23 Jonathan Wakely <jwakely@redhat.com>
285 * include/experimental/iterator: Include <iterator>.
286 * testsuite/experimental/iterator/requirements.cc: Check for contents
289 2017-02-19 Dinka Ranns <dinka.ranns@googlemail.com>
291 C++17 GB50 resolution
292 * include/std/chrono (duration::operator++()): Add
293 _GLIBCXX17_CONSTEXPR.
294 (duration::operator++(int)): Likewise.
295 (duration::operator--()): Likewise.
296 (duration::operator--(int)): Likewise.
297 (duration::operator+=(const duration&)): Likewise.
298 (duration::operator-=(const duration&)): Likewise.
299 (duration::operator*=(const rep&)): Likewise.
300 (duration::operator/=(const rep&)): Likewise.
301 (duration::operator%=(const rep&)): Likewise.
302 (duration::operator%=(const duration&)): Likewise.
303 (time_point::operator+=(const duration&)): Likewise.
304 (time_point::operator-=(const duration&)): Likewise.
305 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: New test.
306 * testsuite/20_util/duration/literals/range.cc: Adjust dg-error.
307 * testsuite/20_util/time_point/arithmetic/constexpr.cc: New test.
309 2017-02-19 Gerald Pfeifer <gerald@pfeifer.com>
311 * doc/xml/manual/debug.xml: Adjust link to ThreadSanitizer.
313 2017-02-18 Gerald Pfeifer <gerald@pfeifer.com>
315 * doc/xml/manual/io.xml: Update link to groups.google.com.
316 Tweak link description.
318 2017-02-18 Gerald Pfeifer <gerald@pfeifer.com>
320 * doc/xml/manual/profile_mode.xml: Fix link.
322 2017-02-16 Gerald Pfeifer <gerald@pfeifer.com>
324 * doc/xml/manual/policy_data_structures.xml: Simplify and
325 standardize references to boost.org.
326 * doc/xml/manual/policy_data_structures_biblio.xml: Ditto.
327 * doc/xml/manual/shared_ptr.xml: Ditto.
329 2017-02-16 Jonathan Wakely <jwakely@redhat.com>
332 * src/c++11/snprintf_lite.cc (__concat_size_t): Calculate length
333 written to buffer, not length remaining in buffer.
335 2017-02-15 Tim Shen <timshen@google.com>
338 * include/std/variant (operator<(), operator>(), operator<=(),
339 operator>=(), operator==(), operator!=()): Implement P0393R3.
340 * testsuite/20_util/variant/compile.cc: Adjust tests.
341 * testsuite/20_util/variant/run.cc: Adjust tests.
343 2017-02-15 Tim Shen <timshen@google.com>
346 * include/std/variant (visit()): Forward variant types to the return
348 * testsuite/20_util/variant/compile.cc: Add test cases.
350 2017-02-13 H.J. Lu <hongjiu.lu@intel.com>
353 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
355 2017-02-13 Jakub Jelinek <jakub@redhat.com>
358 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
359 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
360 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Likewise.
361 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
362 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Likewise.
363 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Likewise.
364 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Likewise.
365 * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Likewise.
366 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
368 2017-02-13 Jonathan Wakely <jwakely@redhat.com>
371 * include/std/future (__future_base::_Task_state::_M_run)
372 (__future_base::_Task_state::_M_run_delayed): Use lvalue types in
373 result_of expressions.
374 * testsuite/30_threads/packaged_task/79486.cc: New.
376 2017-02-11 Jonathan Wakely <jwakely@redhat.com>
379 * include/bits/shared_ptr_base.h (__shared_ptr(_Yp*, _Deleter))
380 (__shared_ptr(_Yp*, _Deleter, _Alloc)): Use lvalue types in
382 * testsuite/20_util/shared_ptr/cons/79467.cc: New.
384 * include/bits/atomic_base.h: Re-indent.
386 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
388 * doc/xml/manual/profile_mode.xml: Update a paper reference.
390 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
392 * src/c++11/snprintf_lite.cc (__err): Use https for bug reporting.
394 2017-02-08 Jonathan Wakely <jwakely@redhat.com>
396 * doc/xml/manual/policy_data_structures.xml: Fix spelling of author's
398 * doc/xml/manual/policy_data_structures_biblio.xml: Likewise. Remove
399 broken links to texts that are no longer online.
400 * doc/xml/manual/profile_mode.xml: Update links to CGO 2009 paper and
402 * doc/xml/manual/using.xml: Update links to memory model information.
403 * doc/xml/manual/using_exceptions.xml: Update link to "Appendix E:
404 Standard-Library Exception Safety".
405 * doc/html/*: Regenerate.
407 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
409 * doc/xml/manual/profile_mode.xml: Unbreak link to
410 "Optimizing Sorting with Machine Learning Algorithms".
412 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
414 * src/c++11/snprintf_lite.cc (__err): Update bug reporting URL.
416 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
418 * doc/xml/manual/abi.xml: Update link to "Sun Studio 11: C++
421 2017-02-07 Gerald Pfeifer <gerald@pfeifer.com>
423 * doc/html/ext/lwg-active.html: Remove.
424 * doc/html/ext/lwg-closed.html: Ditto.
425 * doc/html/ext/lwg-defects.html: Ditto.
427 * doc/Makefile.am (xml_extradir): Remove.
429 (stamp-html-docbook-lwg): Remove recipe...
430 (stamp-html-docbook-data): ...and its use here.
431 * doc/Makefile.in: Regenerate.
433 * doc/xml/manual/intro.xml: Shorten two paragraphs explaining
434 the relationship to the upstream working group.
435 Replace a local link to ../ext/lwg-active.html by the upstream one.
436 Replace all reference to ../ext/lwg-defects.html by a new entity
437 &DR; which refers to the upstream address.
439 2017-02-07 Gerald Pfeifer <gerald@pfeifer.com>
441 * doc/xml/manual/status_cxx2017.xml: Fix link to N4284.
443 2017-02-06 Jonathan Wakely <jwakely@redhat.com>
446 * testsuite/20_util/duration/literals/range.cc: Prune extra output
449 2017-02-06 Gerald Pfeifer <gerald@pfeifer.com>
451 * doc/xml/manual/documentation_hacking.xml: Update URL of the
452 DocBook Element Reference. Use that term as link description
454 epubcheck has moved to GitHub.
455 Remove obsolete link to DocBook Publishing Tools.
457 2017-02-03 Jonathan Wakely <jwakely@redhat.com>
460 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Restore ABI override
461 so new ios::failure can be caught even when old ABI is the default.
462 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
463 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
464 exceptions_failbit.cc: Likewise.
465 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
466 exceptions_failbit.cc: Likewise.
467 * testsuite/27_io/basic_istream/extractors_other/char/
468 exceptions_null.cc: Likewise.
469 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
470 exceptions_null.cc: Likewise.
471 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
472 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
473 * testsuite/27_io/basic_ostream/inserters_other/char/
474 exceptions_null.cc: Likewise.
475 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
476 exceptions_null.cc: Likewise.
477 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
480 * src/c++11/Makefile.am: Add new files.
481 * src/c++11/Makefile.in: Regenerate.
482 * src/c++11/cow-string-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
483 (operator<<, operator>>, getline): Move explicit instantiations to ...
484 * src/c++11/cow-string-io-inst.cc: ... new file.
485 * src/c++11/cow-wstring-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
486 (operator<<, operator>>, getline): Move explicit instantiations to ...
487 * src/c++11/cow-wstring-io-inst.cc: ... new file.
488 * src/c++11/functexcept.cc (__throw_ios_failure, __throw_system_error)
489 (__throw_future_error, __throw_bad_function_call):
490 (__throw_regex_error): Move functions for C++11 exceptions to the
491 files that define the exception types.
492 * src/c++11/functional.cc (__throw_bad_function_call): Move here.
493 * src/c++11/future.cc (__throw_future_error): Likewise.
494 * src/c++11/ios.cc (__throw_ios_failure): Likewise.
495 * src/c++11/regex.cc (__throw_regex_error): Likewise.
496 * src/c++11/snprintf_lite.cc (__concat_size_t): Print decimal
497 representation directly instead of calling __int_to_char.
498 * src/c++11/sso_string.cc (__sso_string): New file for definition
499 of __sso_string type.
500 * src/c++11/string-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
501 explicit instantiations of narrow string I/O functions.
502 * src/c++11/system_error.cc (__throw_system_error): Move here.
503 (__sso_string): Move to new file.
504 * src/c++11/wstring-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
505 explicit instantiations of wide string I/O functions.
506 * src/c++98/misc-inst.cc [_GLIBCXX_USE_CXX11_ABI] (operator<<)
507 (operator>>, getline): Remove explicit instantiations from here.
509 2017-02-02 H.J. Lu <hongjiu.lu@intel.com>
511 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
513 2017-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
515 * configure.host: Separate Solaris/SPARC and x86 baselines.
516 * config/abi/post/solaris2.10/baseline_symbols.txt: Move ...
517 * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: ... here.
518 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Move ...
519 * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
521 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Move ...
522 * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: ... here.
523 * config/abi/post/i386-solaris2.10/baseline_symbols.txt: New file.
524 * config/abi/post/solaris2.11/baseline_symbols.txt: Move ...
525 * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: ... here.
526 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Move ...
527 * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
529 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Move ...
530 * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: ... here.
531 * config/abi/post/i386-solaris2.11/baseline_symbols.txt: New file.
533 * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
534 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
535 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
536 * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
537 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
538 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
540 2017-02-01 Jonathan Wakely <jwakely@redhat.com>
543 * include/bits/predefined_ops.h (_Iter_equals_iter): Store iterator
545 (_Iter_comp_to_iter): Likewise.
546 * testsuite/25_algorithms/search/78346.cc: New test.
549 * config/abi/pre/gnu.ver: Remove recently added symbols.
550 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
551 (basic_string::_M_copy_assign): Remove.
552 (basic_string::operator=(const basic_string&)): Don't dispatch to
553 _M_copy_assign. If source object is small just deallocate, otherwise
554 perform new allocation before making any changes.
555 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
556 (basic_string::_M_copy_assign(const basic_string&, true_type)):
558 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
559 Test cases where the allocators are equal or the string is small.
560 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
563 2017-01-30 Ville Voutilainen <ville.voutilainen@gmail.com>
565 Implement LWG 2825, LWG 2756 breaks class template argument
566 deduction for optional.
567 * include/std/optional: Add a deduction guide.
568 * testsuite/20_util/optional/cons/deduction_guide.cc: New.
570 2017-01-27 Jonathan Wakely <jwakely@redhat.com>
573 * config/abi/pre/gnu.ver: Add new symbols.
574 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
575 (basic_string::_M_copy_assign): New overloaded functions to perform
577 (basic_string::operator=(const basic_string&)): Dispatch to
579 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
580 (basic_string::_M_copy_assign(const basic_string&, true_type)):
581 Define, performing rollback on exception.
582 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
583 Test exception-safety guarantee.
584 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
586 * testsuite/util/testsuite_allocator.h (uneq_allocator::swap): Make
589 2017-01-26 Jonathan Wakely <jwakely@redhat.com>
592 * include/tr1/complex (conj): Remove using-declaration and restore
593 overloads, reverting previous change.
595 * testsuite/23_containers/list/operations/78389.cc: Fix for C++11
597 * testsuite/23_containers/priority_queue/requirements/constructible.cc:
598 Mark as unsupported in C++98 mode.
599 * testsuite/23_containers/queue/requirements/constructible.cc:
601 * testsuite/23_containers/stack/requirements/constructible.cc:
603 * testsuite/25_algorithms/make_heap/movable.cc: Fix for C++11 mode.
606 * include/bits/c++config (literals::string_view_literals::__7): Add.
607 Only declare versioned namespaces for the relevant C++ dialects.
608 * include/experimental/bits/erase_if.h (fundamentals_v2::__detail):
609 Add versioning macros.
610 * include/experimental/bits/lfts_config.h:
611 (fundamentals_v1::__detail::__7, fundamentals_v2::__detail::__7): Add.
612 * include/experimental/string_view (fundamentals_v2::__detail):
613 Add versioning macros.
614 (fundamentals_v2::__detail::__identity): Remove.
615 (fundamentals_v2::__detail::__idt): Use common_type instead of
616 __detail::__identity.
617 * include/std/string_view (__detail::__identity, __detail::__idt):
619 (literals::string_view_literals): Fix nesting of versioning macros.
622 * libsupc++/del_opa.cc (operator delete(void*, std::align_val_t))
623 [!_GLIBCXX_HAVE_ALIGNED_ALLOC && !_GLIBCXX_HAVE_POSIX_MEMALIGN
624 && !_GLIBCXX_HAVE_MEMALIGN && !_GLIBCXX_HAVE__ALIGNED_MALLOC]:
625 Retrieve original pointer value allocated by malloc.
626 * libsupc++/new_opa.cc [!_GLIBCXX_HAVE_ALIGNED_ALLOC
627 && !_GLIBCXX_HAVE_POSIX_MEMALIGN && !_GLIBCXX_HAVE_MEMALIGN
628 && !_GLIBCXX_HAVE__ALIGNED_MALLOC] (aligned_alloc(size_t, size_t)):
629 Define, adjusting pointer value allocated by malloc and storing for
630 retrieval by operator delete.
632 2017-01-26 Jakub Jelinek <jakub@redhat.com>
634 * libsupc++/eh_atomics.h: Update copyright years.
635 * testsuite/20_util/unique_ptr/cons/default.cc: Update copyright years.
637 2017-01-25 Jonathan Wakely <jwakely@redhat.com>
641 * include/std/complex (real(T), imag(T)): Add _GLIBCXX_CONSTEXPR.
642 (proj(T), conj(T)): Change return types per DR 1522.
643 * include/tr1/complex (conj): Remove overloads and use std::conj.
644 * testsuite/26_numerics/complex/dr781_dr1137.cc: Rename to...
645 * testsuite/26_numerics/complex/dr781.cc: ... this, and update.
646 * testsuite/26_numerics/complex/value_operations/constexpr2.cc: Test
647 real(T) and imag(T). Allow testing for C++11 too.
649 2017-01-24 Jonathan Wakely <jwakely@redhat.com>
652 * include/experimental/string_view (operator==): Check sizes first.
653 * include/std/string_view (operator==): Likewise.
655 2017-01-23 Jonathan Wakely <jwakely@redhat.com>
657 * testsuite/experimental/array/make_array.cc: Restore <functional>
660 2017-01-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
662 * testsuite/29_atomics/atomic/69301.cc: Require atomic builtins.
664 2017-01-23 Jonathan Wakely <jwakely@redhat.com>
667 * include/experimental/array (__make_array_elem): New class template
668 and partial specialization.
669 (__is_reference_wrapper): Move into __make_array_elem specialization.
670 (make_array): Use __make_array_elem to determine element type and move
671 static assertion into specialization. Qualify std::forward call.
672 (to_array): Add exception specifiation.
673 * testsuite/experimental/array/make_array.cc: Test argument types
674 without a common type.
675 * testsuite/experimental/array/neg.cc: Adjust expected error message.
677 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
679 * doc/xml/manual/debug.xml: code.google.com uses https now.
681 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
683 * doc/xml/manual/test.xml: Fix link into gccint online manual.
685 2017-01-21 Ville Voutilainen <ville.voutilainen@gmail.com>
687 Make poisoned hashes SFINAE away the call operator of the hash.
688 * include/bits/functional_hash.h
689 (__poison_hash::__enable_hash_call): New.
690 * include/std/optional (__optional_hash_call_base): New.
691 (hash<optional<_Tp>>): Derive from the new base,
692 move the hash function into that base.
693 * include/std/variant (__variant_hash_call_base_impl): New.
694 (__variant_hash_call_base): Likewise.
695 (hash<variant<_Types...>>): Derive from the new base,
696 move the hash function into that base.
697 * testsuite/20_util/optional/hash.cc: Add tests for is_callable.
698 * testsuite/20_util/variant/hash.cc: Likewise.
700 2017-01-20 Joe Seymour <joe.s@somniumtech.com>
702 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): Support uint20_t.
703 * configure: Regenerate.
705 2017-01-20 Jonathan Wakely <jwakely@redhat.com>
708 * include/bits/random.h (uniform_real_distribution::param_type)
709 (normal_distribution::param_type, lognormal_distribution::param_type)
710 (gamma_distribution::param_type, chi_squared_distribution::param_type)
711 (cauchy_distribution::param_type, fisher_f_distribution::param_type)
712 (student_t_distribution::param_type)
713 (bernoulli_distribution::param_type, binomial_distribution::param_type)
714 (geometric_distribution::param_type)
715 (negative_binomial_distribution::param_type)
716 (poisson_distribution::param_type)
717 (exponential_distribution::param_type)
718 (weibull_distribution::param_type)
719 (extreme_value_distribution::param_type)
720 (discrete_distribution::param_type)
721 (piecewise_constant_distribution::param_type)
722 (piecewise_linear_distribution::param_type): Define operator!=.
723 * include/bits/uniform_int_dist.h
724 (uniform_int_distribution::param_type): Likewise.
725 * include/ext/random (beta_distribution::param_type)
726 (rice_distribution::param_type, nakagami_distribution::param_type)
727 (pareto_distribution::param_type, k_distribution::param_type)
728 (arcsine_distribution::param_type, hoyt_distribution::param_type)
729 (triangular_distribution::param_type)
730 (von_mises_distribution::param_type)
731 (hypergeometric_distribution::param_type)
732 (logistic_distribution::param_type)
733 (uniform_on_sphere_distribution::param_type)
734 (uniform_inside_sphere_distribution::param_type): Likewise.
735 * testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc:
736 Test construction with param_type.
737 * testsuite/26_numerics/random/binomial_distribution/cons/parms.cc:
739 * testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc:
741 * testsuite/26_numerics/random/chi_squared_distribution/cons/parms.cc:
743 * testsuite/26_numerics/random/exponential_distribution/cons/parms.cc:
745 * testsuite/26_numerics/random/extreme_value_distribution/cons/
747 * testsuite/26_numerics/random/fisher_f_distribution/cons/parms.cc:
749 * testsuite/26_numerics/random/gamma_distribution/cons/parms.cc:
751 * testsuite/26_numerics/random/geometric_distribution/cons/parms.cc:
753 * testsuite/26_numerics/random/lognormal_distribution/cons/parms.cc:
755 * testsuite/26_numerics/random/negative_binomial_distribution/cons/
757 * testsuite/26_numerics/random/normal_distribution/cons/parms.cc:
759 * testsuite/26_numerics/random/poisson_distribution/cons/parms.cc:
761 * testsuite/26_numerics/random/student_t_distribution/cons/parms.cc:
763 * testsuite/26_numerics/random/uniform_int_distribution/cons/parms.cc:
765 * testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc:
767 * testsuite/26_numerics/random/weibull_distribution/cons/parms.cc:
769 * testsuite/ext/random/arcsine_distribution/cons/parms.cc: Likewise.
770 * testsuite/ext/random/beta_distribution/cons/parms.cc: Likewise.
771 * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
772 * testsuite/ext/random/hypergeometric_distribution/cons/parms.cc:
774 * testsuite/ext/random/k_distribution/cons/parms.cc: Likewise.
775 * testsuite/ext/random/logistic_distribution/cons/parms.cc: Likewise.
776 * testsuite/ext/random/nakagami_distribution/cons/parms.cc: Likewise.
777 * testsuite/ext/random/normal_mv_distribution/cons/parms.cc: Likewise.
778 * testsuite/ext/random/pareto_distribution/cons/parms.cc: Likewise.
779 * testsuite/ext/random/rice_distribution/cons/parms.cc: Likewise.
780 * testsuite/ext/random/triangular_distribution/cons/parms.cc:
782 * testsuite/ext/random/uniform_inside_sphere_distribution/cons/
784 * testsuite/ext/random/von_mises_distribution/cons/parms.cc: Likewise.
787 * include/bits/alloc_traits.h (__allocator_traits_base::__diff_type)
788 (__allocator_traits_base::__size_type): Remove.
789 (allocator_traits::_Ptr): New class template to detect const and void
790 pointer types without instantiating pointer_traits::rebind
792 (allocator_traits::_Diff): Likewise for detecting difference_type.
793 (allocator_traits::_Size): New class template to detect size_type
794 without instantiating make_unsigned unnecessarily.
795 * include/bits/ptr_traits.h (pointer_traits::element_type): Use
796 __detected_or_t instead of __detected_or_t_.
797 * include/std/type_traits (__detected_or_t_): Remove.
798 * testsuite/20_util/allocator_traits/members/pointers.cc: New test.
802 * include/bits/alloc_traits.h (__allocator_traits_base::__rebind):
803 Replace with class template using void_t.
804 (__alloc_rebind): Define in terms of
805 __allocator_traits_base::__rebind.
806 (allocator_traits): Remove unconditional static_assert for
808 * include/bits/ptr_traits.h (__replace_first_arg): Remove type member.
809 (pointer_traits::__rebind): Replace with class template using void_t.
810 (pointer_traits::rebind): Define in terms of __rebind.
811 (pointer_traits): Remove unconditional static_assert for rebind.
812 * testsuite/20_util/allocator_traits/members/rebind_alloc.cc: New test.
813 * testsuite/20_util/pointer_traits/rebind.cc: New test.
816 * include/experimental/any (__any_caster): Avoid instantiating
817 manager function for types that can't be stored in any.
818 * include/std/any (__any_caster): Likewise.
819 * testsuite/20_util/any/misc/any_cast.cc: Test non-copyable type.
820 * testsuite/experimental/any/misc/any_cast.cc: Likewise.
823 * include/bits/stl_algo.h (is_partitioned): Use increment instead of
826 2017-01-19 Jonathan Wakely <jwakely@redhat.com>
829 * include/bits/shared_ptr_base.h (__enable_shared_from_this_base):
831 (__enable_shared_from_this): Declare __shared_ptr as a friend.
832 * testsuite/ext/shared_ptr/1.cc: New test.
835 * include/bits/stl_algo.h (is_partitioned): Don't retest the partition
837 * testsuite/25_algorithms/is_partitioned/2.cc: New test.
839 * doc/xml/manual/abi.xml: Fix typo.
840 * doc/html/manual/abi.html: Likewise.
843 * include/bits/predefined_ops.h (_Iter_less_val, _Val_less_iter): Add
844 converting constructors from _Iter_less_iter.
845 (_Iter_comp_val, _Val_comp_iter): Add converting constructors from
847 (__iter_comp_val(_Iter_comp_iter<C>): Use converting constructor.
848 (__val_comp_iter(_Iter_comp_iter<C>): Likewise.
849 * include/bits/stl_heap.h (__is_heap_until, __push_heap, __pop_heap)
850 (__make_heap, __sort_heap): Change _Compare parameters to references.
851 (__is_heap, push_heap, __adjust_heap, __pop_heap, pop_heap)
852 (__make_heap, make_heap, sort_heap, is_heap_until): Pass comparison
853 functions as lvalues.
854 (is_heap): Call __is_heap_until directly to avoid copying __comp.
855 * testsuite/23_containers/priority_queue/67085.cc: Adjust test to
856 count copies during construction with empty sequence.
859 * include/bits/stl_heap.h (__is_heap): Use _GLIBCXX_MOVE.
860 (__make_heap, __sort_heap): Don't use _GLIBCXX_MOVE inside loops.
861 * testsuite/23_containers/priority_queue/67085.cc: Adjust expected
863 * testsuite/25_algorithms/make_heap/movable.cc: New test.
866 * include/bits/stl_heap.h (push_heap, __adjust_heap, __pop_heap)
867 (pop_heap, __make_heap, make_heap, __sort_heap, sort_heap): Use
868 _GLIBCXX_MOVE when passing comparison function to other functions.
869 (is_heap_until, is_heap): Use std::move when passing comparison
871 * testsuite/23_containers/priority_queue/67085.cc: New test.
874 * doc/xml/manual/abi.xml (abi.versioning.history): Add markup to
875 macro names, filenames, and literal values. Document _GLIBCXX_RELEASE.
876 Document that the deprecated _GLIBCXX_VERSION macro was removed for
878 * doc/html/*: Regenerate.
879 * include/Makefile.am (_GLIBCXX_RELEASE): Set value.
880 * include/Makefile.in: Regenerate.
881 * include/bits/c++config (_GLIBCXX_RELEASE): Add #define.
882 * testsuite/ext/profile/mutex_extensions_neg.cc: Use lineno of 0 in
885 2017-01-18 Jonathan Wakely <jwakely@redhat.com>
888 * include/std/atomic (atomic<T>::load, atomic<T>::exchange): Use
889 aligned buffer instead of default-initialized variable.
890 * testsuite/29_atomics/atomic/69301.cc: New test.
891 * include/experimental/memory (observer_ptr::release): Use reserved
893 * include/ext/pointer.h (_Pointer_adapter::operator++(int))
894 (_Pointer_adapter::operator--(int)): Likewise.
897 * include/experimental/random (randint): Use temporary instead of
900 2017-01-17 Joshua Conner <joshconner@google.com>
902 * crossconfig.m4: Add fuchsia OS.
903 * configure: Regenerate.
905 2017-01-17 Jonathan Wakely <jwakely@redhat.com>
908 * doc/xml/manual/abi.xml (abi.versioning.history): Explain why the
909 __GLIBCXX__ macro is not useful. Remove redundant date information
910 and link to the GCC release timeline.
911 (abi.versioning.active): Move partial sentence into the previous
913 * doc/html/*: Regenerate.
916 * libsupc++/nested_exception.h (throw_with_nested): Use decay instead
918 * testsuite/18_support/nested_exception/79114.cc: New test.
920 2017-01-17 Jakub Jelinek <jakub@redhat.com>
923 * configure.ac: Add GCC_BASE_VER.
924 * fragment.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
925 get version from BASE-VER file.
926 * po/Makefile.in: Regenerated.
927 * libsupc++/Makefile.in: Regenerated.
928 * testsuite/Makefile.in: Regenerated.
929 * src/Makefile.in: Regenerated.
930 * configure: Regenerated.
931 * Makefile.in: Regenerated.
932 * include/Makefile.in: Regenerated.
933 * doc/Makefile.in: Regenerated.
934 * python/Makefile.in: Regenerated.
935 * src/c++11/Makefile.in: Regenerated.
936 * src/c++98/Makefile.in: Regenerated.
937 * src/filesystem/Makefile.in: Regenerated.
939 2017-01-16 Jonathan Wakely <jwakely@redhat.com>
942 * src/c++11/functexcept.cc: Use new ABI for std::ios_base::failure
944 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Don't override ABI
945 for test, so new ios::failure can be caught.
946 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
947 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
948 exceptions_failbit.cc: Likewise.
949 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
950 exceptions_failbit.cc: Likewise.
951 * testsuite/27_io/basic_istream/extractors_other/char/
952 exceptions_null.cc: Likewise.
953 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
954 exceptions_null.cc: Likewise.
955 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
956 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
957 * testsuite/27_io/basic_ostream/inserters_other/char/
958 exceptions_null.cc: Likewise.
959 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
960 exceptions_null.cc: Likewise.
961 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
964 * include/bits/locale_classes.h (locale::facet::__shim): Change from
965 private to protected.
966 * src/c++11/cxx11-shim_facets.cc (__shim_accessor): Define helper to
967 make locale::facet::__shim accessible.
969 2017-01-16 Ville Voutilainen <ville.voutilainen@gmail.com>
972 * include/bits/list.tcc (merge(list&&)): Fix backwards size adjustments.
973 (merge(list&&, _StrictWeakOrdering)): Likewise.
974 * testsuite/23_containers/list/operations/78389.cc: Add
975 better test for the sizes.
977 2017-01-14 Jonathan Wakely <jwakely@redhat.com>
979 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
980 Skip test when -D_GLIBCXX_PROFILE mode is included in options.
981 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
982 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
984 * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
985 * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise.
986 * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise.
987 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
988 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
990 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc::
992 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc::
994 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
996 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
998 * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise.
999 * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise.
1000 * testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise.
1001 * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise.
1002 * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise.
1003 * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
1004 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
1005 * testsuite/libstdc++-prettyprinters/debug.cc: Likewise.
1006 * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise.
1007 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
1008 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
1009 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
1010 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
1012 2017-01-13 Jonathan Wakely <jwakely@redhat.com>
1015 * config/io/basic_file_stdio.cc (__basic_file<char>::close()): Don't
1016 retry fclose on EINTR.
1018 * include/profile/base.h: Remove unused header that leads to header
1019 cycle in C++17 mode.
1022 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
1023 Make _If_sv private.
1024 [!_GLIBCXX_USE_CXX11_ABI] (basic_string): Add member functions taking
1025 basic_string_view arguments.
1028 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Remove
1029 redundant option from cxxflags.
1030 (check_effective_target_cxx11-abi): Define.
1031 * testsuite/21_strings/basic_string/allocator/71964.cc: Use cxx11-abi
1033 * testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise.
1034 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
1036 * testsuite/21_strings/basic_string/allocator/char/minimal.cc:
1038 * testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
1039 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
1041 * testsuite/21_strings/basic_string/allocator/char/noexcept.cc:
1043 * testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
1044 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
1046 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
1048 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
1050 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
1052 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
1054 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
1056 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
1058 * testsuite/23_containers/list/61347.cc: Likewise.
1059 * testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
1060 * testsuite/27_io/ios_base/failure/cxx11.cc: Likewise.
1062 2017-01-13 Ville Voutilainen <ville.voutilainen@gmail.com>
1065 * include/bits/list.tcc (merge(list&&)):
1066 Adjust list sizes if the comparator throws.
1067 (merge(list&&, _StrictWeakOrdering)): Likewise.
1068 (sort()): Splice elements back from the scratch buffers
1069 if the comparator throws.
1070 (sort(_StrictWeakOrdering)): Likewise.
1071 * testsuite/23_containers/list/operations/78389.cc: New.
1073 2017-01-13 Jonathan Wakely <jwakely@redhat.com>
1075 * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Mark
1076 XFAIL for C++17 until node reinsertion supports fancy pointers.
1079 * testsuite/20_util/add_pointer/value.cc: Test forming function
1082 2017-01-13 Michael Brune <lucdanton@free.fr>
1085 * include/std/type_traits (__is_referenceable): Handle noexcept
1088 2017-01-12 Jonathan Wakely <jwakely@redhat.com>
1091 * include/bits/stl_queue.h (queue, priority_queue): Remove default
1092 member-initializers and define default constructors as templates with
1094 * include/bits/stl_stack.h (stack): Likewise.
1095 * testsuite/23_containers/priority_queue/requirements/constructible.cc:
1097 * testsuite/23_containers/priority_queue/requirements/
1098 explicit_instantiation/1.cc: Test more instantiations.
1099 * testsuite/23_containers/priority_queue/requirements/
1100 explicit_instantiation/1_c++98.cc: Likewise.
1101 * testsuite/23_containers/queue/requirements/constructible.cc: New.
1102 * testsuite/23_containers/stack/requirements/constructible.cc: New.
1105 * doc/xml/manual/intro.xml: Document LWG 2781 change.
1106 * doc/html/*: Regenerate.
1107 * include/std/functional (_Function_base::_Ref_manager): Remove.
1108 (_Function_handler): Remove partial specializations for
1110 (function::target): Remove special case for const qualification.
1111 * testsuite/20_util/function/6.cc: Adjust tests for target type.
1112 * testsuite/20_util/function/7.cc: Likewise.
1113 * testsuite/20_util/function/8.cc: Likewise.
1115 2017-01-11 Jonathan Wakely <jwakely@redhat.com>
1118 * include/bits/stl_map.h (map::lower_bound, map::upper_bound)
1119 (map::equal_range): Fix return type of heterogeneous overloads.
1120 * include/bits/stl_multimap.h (multimap::lower_bound)
1121 (multimap::upper_bound, multimap::equal_range): Likewise.
1122 * include/bits/stl_multiset.h (multiset::lower_bound)
1123 (multiset::upper_bound, multiset::equal_range): Likewise.
1124 * include/bits/stl_set.h (set::lower_bound, set::upper_bound)
1125 (set::equal_range): Likewise.
1126 * testsuite/23_containers/map/operations/2.cc
1127 * testsuite/23_containers/multimap/operations/2.cc
1128 * testsuite/23_containers/multiset/operations/2.cc
1129 * testsuite/23_containers/set/operations/2.cc
1132 * include/bits/stl_map.h (map::count<_Kt>(const _Kt&)): Don't assume
1133 the heterogeneous comparison can only find one match.
1134 * include/bits/stl_set.h (set::count<_Kt>(const _Kt&)): Likewise.
1135 * testsuite/23_containers/map/operations/2.cc: Test count works with
1136 comparison function that just partitions rather than sorting.
1137 * testsuite/23_containers/set/operations/2.cc: Likewise.
1139 2017-01-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1141 Reduce the size of variant, it doesn't need an index of
1142 type size_t internally.
1143 * include/std/variant (parse_numbers.h): New include.
1144 (__select_index): New.
1145 (_Variant_storage<false, _Types...>::_M_reset_impl): Use
1146 _index_type for comparison with variant_npos.
1147 (_Variant_storage<false, _Types...>::__index_type): New.
1148 (_Variant_storage<false, _Types...>::_M_index): Change the
1149 type from size_t to __index_type.
1150 (_Variant_storage<true, _Types...>::__index_type): New.
1151 (_Variant_storage<true, _Types...>::_M_index): Change the
1152 type from size_t to __index_type.
1153 (_Variant_base::_M_valid): Use _Storage::__index_type
1154 for comparison with variant_npos.
1155 (variant::index): Use _Base::_Storage::__index_type
1156 for comparison with variant_npos.
1157 * testsuite/20_util/variant/index_type.cc: New.
1159 2017-01-10 Jonathan Wakely <jwakely@redhat.com>
1161 * testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
1162 effective target selector to prevent running in C++17 mode.
1165 * include/bits/stl_queue.h (queue::c): Add default member initializer.
1166 (queue::queue()): Add constructor and define as defaulted.
1167 (queue::queue(_Sequence&&)): Remove default argument.
1168 (priority_queue::c, priority_queue::comp): Add default member
1170 (priority_queue::priority_queue()): Add constructor and define as
1172 (priority_queue::priority_queue(const _Compare&, _Sequence&&)):
1173 Remove default argument for first parameter.
1174 * include/bits/stl_stack.h (stack::c): Add default member initializer.
1175 (stack::stack()): Add constructor and define as defaulted.
1176 (stack::stack(const _Sequence&)): Remove default argument.
1177 * testsuite/23_containers/priority_queue/requirements/
1178 explicit_instantiation/1.cc: Test explicit instantiation with
1179 non-DefaultConstructible sequence.
1180 * testsuite/23_containers/priority_queue/77528.cc: New test.
1181 * testsuite/23_containers/priority_queue/requirements/
1182 explicit_instantiation/1_c++0x.cc: Replace with 1_c++98.cc.
1183 * testsuite/23_containers/queue/77528.cc: New test.
1184 * testsuite/23_containers/queue/requirements/explicit_instantiation/
1185 1.cc: Test explicit instantiation with non-DefaultConstructible
1187 * testsuite/23_containers/queue/requirements/explicit_instantiation/
1188 1_c++0x.cc: Replace with 1_c++98.cc.
1189 * testsuite/23_containers/stack/77528.cc: New test.
1190 * testsuite/23_containers/stack/requirements/explicit_instantiation/
1191 1.cc: Test explicit instantiation with non-DefaultConstructible
1193 * testsuite/23_containers/stack/requirements/explicit_instantiation/
1194 1_c++0x.cc: Replace with 1_c++98.cc.
1196 2017-01-10 Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
1198 * include/bits/locale_facets_nonio.tcc
1199 (time_get::_M_extract_via_format): Avoid compilation errors with
1200 non-standard struct tm.
1202 2017-01-10 François Dumont <fdumont@gcc.gnu.org>
1203 Jonathan Wakely <jwakely@redhat.com>
1205 * python/libstdcxx/v6/printers.py (_versioned_namespace): Define.
1206 (is_specialization, strip_versioned_namespace): New helpers functions
1207 to work with symbols in the versioned namespace.
1208 (Printer.add_version): Add second name using versioned namespace.
1209 (add_one_template_type_printer, add_one_type_printer): Add second
1210 type printers using versioned namespace.
1211 (register_type_printers): Add template type printer for basic_string.
1212 (build_libstdcxx_dictionary): Remove dead code.
1213 * python/libstdcxx/v6/xmethods.py: Make all matchers look for
1214 versioned namespace.
1215 * testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected
1217 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
1219 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
1222 * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Check for llrint and llround
1223 functions separately on darwin and if they're missing define
1224 _GLIBCXX_NO_C99_ROUNDING_FUNCS.
1225 * config.h.in: Regenerate.
1226 * configure: Regenerate.
1227 * include/c_global/cmath [_GLIBCXX_NO_C99_ROUNDING_FUNCS] (llrint)
1228 (llrintf, llrintl, llround, llroundf, llroundl): Do not define.
1230 * testsuite/30_threads/condition_variable/members/3.cc: Use new macro
1231 to detect correct thread_local destructors.
1232 * testsuite/util/testsuite_hooks.h (CORRECT_THREAD_LOCAL_DTORS):
1235 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
1236 Aditya Kumar <hiraditya@msn.com>
1239 * include/bits/basic_string.tcc
1240 (basic_string::find(const CharT*, size_type, size_type)): Optimize.
1242 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
1244 * testsuite/21_strings/basic_string/operations/find/char/6.cc: New.
1245 * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: New.
1247 * testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
1248 Include <cassert> header.
1251 * crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
1252 * configure: Regenerate.
1254 2017-01-06 Barrett Adair <barrettellisadair@gmail.com>
1255 Jonathan Wakely <jwakely@redhat.com>
1257 * include/std/variant (variant, swap): Replace __and_ usage with fold
1260 2017-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1263 * acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
1264 * configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
1265 GLIBCXX_CHECK_ASSEMBLER_HWCAP.
1266 * fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
1268 * aclocal.m4: Regenerate.
1269 * configure: Regenerate.
1270 * Makefile.in, doc/Makefile.in, include/Makefile.in,
1271 libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
1272 src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
1273 src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
1275 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
1277 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.
1280 * include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
1281 (_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
1282 (_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and
1283 move function objects.
1284 (__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter)
1285 (__iter_comp_val, __iter_comp_iter, __negate): Move function objects.
1286 * testsuite/25_algorithms/sort/78991.cc: New test.
1288 2017-01-05 Jonathan Wakely <jwakely@redhat.com>
1290 * include/bits/std_function.h (function::_Signature_type): Remove.
1291 (function::function(_Functor)): Adjust.
1293 2017-01-05 Tim Shen <timshen@google.com>
1296 * include/std/variant (__gen_vtable_impl): rename __unused to
1297 __dimensions to avoid naming conflict.
1299 2017-01-04 Jonathan Wakely <jwakely@redhat.com>
1302 * config.h.in: Regenerate.
1303 * configure: Likewise.
1304 * configure.ac: Check for __cxa_thread_atexit.
1305 * libsupc++/atexit_thread.cc [_GLIBCXX_HAVE___CXA_THREAD_ATEXIT]:
1306 Don't define __cxa_thread_atexit if libc provides it.
1308 2017-01-04 Ville Voutilainen <ville.voutilainen@gmail.com>
1310 Implement 2801, Default-constructibility of unique_ptr.
1311 * include/bits/unique_ptr.h (__uniq_ptr_impl::_DeleterConstraint): New.
1312 (unique_ptr::_DeleterConstraint): Likewise.
1313 (unique_ptr()): Constrain.
1314 (unique_ptr(pointer)): Likewise.
1315 (unique_ptr(nullptr_t)): Likewise.
1316 (unique_ptr<_Tp[], _Dp>::_DeleterConstraint): New.
1317 (unique_ptr<_Tp[], _Dp>::unique_ptr()): Constrain.
1318 (unique_ptr<_Tp[], _Dp>::unique_ptr(_Up)): Likewise.
1319 (unique_ptr<_Tp[], _Dp>::unique_ptr(nullptr_t)): Likewise.
1320 * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust.
1321 * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
1322 * testsuite/20_util/unique_ptr/cons/default.cc: New.
1323 * testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Adjust.
1325 2017-01-04 Pauli Nieminen <suokkos@gmail.com>
1326 Jonathan Wakely <jwakely@redhat.com>
1329 * acinclude.m4 (GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER): Define.
1330 * config.h.in: Regenerate.
1331 * config/abi/pre/gnu.ver [HAVE_EXCEPTION_PTR_SINCE_GCC46]
1332 (GLIBCXX_3.4.15, GLIBCXX_3.4.21, CXXABI_1.3.3, CXXABI_1.3.5): Make
1333 exports for exception_ptr, nested_exception, and future conditional.
1334 [HAVE_EXCEPTION_PTR_SINCE_GCC46] (GLIBCXX_3.4.23, CXXABI_1.3.11): Add
1335 exports for exception_ptr, nested_exception, and future conditional.
1336 * configure: Regenerate.
1337 * configure.ac: Use GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER.
1338 * include/std/future: Remove check for ATOMIC_INT_LOCK_FREE
1339 * libsupc++/eh_atomics.h: New file for internal use only.
1340 (__eh_atomic_inc, __eh_atomic_dec): New.
1341 * libsupc++/eh_ptr.cc (exception_ptr::_M_addref)
1342 (exception_ptr::_M_release) (__gxx_dependent_exception_cleanup)
1343 (rethrow_exception): Use eh_atomics.h reference counting helpers.
1344 * libsupc++/eh_throw.cc (__gxx_exception_cleanup): Likewise.
1345 * libsupc++/eh_tm.cc (free_any_cxa_exception): Likewise.
1346 * libsupc++/exception: Remove check for ATOMIC_INT_LOCK_FREE.
1347 * libsupc++/exception_ptr.h: Likewise.
1348 * libsupc++/guard.cc: Include header for ATOMIC_INT_LOCK_FREE macro.
1349 * libsupc++/nested_exception.cc: Remove check for
1350 ATOMIC_INT_LOCK_FREE.
1351 * libsupc++/nested_exception.h: Likewise.
1352 * src/c++11/future.cc: Likewise.
1353 * testsuite/18_support/exception_ptr/*: Remove atomic builtins checks.
1354 * testsuite/18_support/nested_exception/*: Likewise.
1355 * testsuite/30_threads/async/*: Likewise.
1356 * testsuite/30_threads/future/*: Likewise.
1357 * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
1358 * testsuite/30_threads/packaged_task/*: Likewise.
1359 * testsuite/30_threads/promise/*: Likewise.
1360 * testsuite/30_threads/shared_future/*: Likewise.
1362 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
1364 * doc/xml/manual/documentation_hacking.xml: sourceforge.net now
1365 defaults to https; adjust reference.
1367 2017-01-03 Jonathan Wakely <jwakely@redhat.com>
1370 * include/std/thread (thread(const thread&&)): Add deleted
1372 * testsuite/30_threads/thread/cons/lwg2097.cc: New test.
1374 * doc/xml/manual/spine.xml: Update copyright years.
1375 * doc/xml/manual/build_hacking.xml: Fix spelling of libbuilddir.
1376 * doc/xml/manual/test.xml: Likewise.
1377 * doc/html/*: Regenerate.
1379 2017-01-01 Gerald Pfeifer <gerald@pfeifer.com>
1381 * doc/xml/faq.xml: Update address of C++ ABI link.
1382 * doc/xml/manual/abi.xml: Ditto.
1384 2017-01-01 Jakub Jelinek <jakub@redhat.com>
1386 Update copyright years.
1388 Copyright (C) 2017 Free Software Foundation, Inc.
1390 Copying and distribution of this file, with or without modification,
1391 are permitted in any medium without royalty provided the copyright
1392 notice and this notice are preserved.