1 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
3 * src/c++11/snprintf_lite.cc (__err): Update bug reporting URL.
5 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
7 * doc/xml/manual/abi.xml: Update link to "Sun Studio 11: C++
10 2017-02-07 Gerald Pfeifer <gerald@pfeifer.com>
12 * doc/html/ext/lwg-active.html: Remove.
13 * doc/html/ext/lwg-closed.html: Ditto.
14 * doc/html/ext/lwg-defects.html: Ditto.
16 * doc/Makefile.am (xml_extradir): Remove.
18 (stamp-html-docbook-lwg): Remove recipe...
19 (stamp-html-docbook-data): ...and its use here.
20 * doc/Makefile.in: Regenerate.
22 * doc/xml/manual/intro.xml: Shorten two paragraphs explaining
23 the relationship to the upstream working group.
24 Replace a local link to ../ext/lwg-active.html by the upstream one.
25 Replace all reference to ../ext/lwg-defects.html by a new entity
26 &DR; which refers to the upstream address.
28 2017-02-07 Gerald Pfeifer <gerald@pfeifer.com>
30 * doc/xml/manual/status_cxx2017.xml: Fix link to N4284.
32 2017-02-06 Jonathan Wakely <jwakely@redhat.com>
35 * testsuite/20_util/duration/literals/range.cc: Prune extra output
38 2017-02-06 Gerald Pfeifer <gerald@pfeifer.com>
40 * doc/xml/manual/documentation_hacking.xml: Update URL of the
41 DocBook Element Reference. Use that term as link description
43 epubcheck has moved to GitHub.
44 Remove obsolete link to DocBook Publishing Tools.
46 2017-02-03 Jonathan Wakely <jwakely@redhat.com>
49 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Restore ABI override
50 so new ios::failure can be caught even when old ABI is the default.
51 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
52 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
53 exceptions_failbit.cc: Likewise.
54 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
55 exceptions_failbit.cc: Likewise.
56 * testsuite/27_io/basic_istream/extractors_other/char/
57 exceptions_null.cc: Likewise.
58 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
59 exceptions_null.cc: Likewise.
60 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
61 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
62 * testsuite/27_io/basic_ostream/inserters_other/char/
63 exceptions_null.cc: Likewise.
64 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
65 exceptions_null.cc: Likewise.
66 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
69 * src/c++11/Makefile.am: Add new files.
70 * src/c++11/Makefile.in: Regenerate.
71 * src/c++11/cow-string-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
72 (operator<<, operator>>, getline): Move explicit instantiations to ...
73 * src/c++11/cow-string-io-inst.cc: ... new file.
74 * src/c++11/cow-wstring-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
75 (operator<<, operator>>, getline): Move explicit instantiations to ...
76 * src/c++11/cow-wstring-io-inst.cc: ... new file.
77 * src/c++11/functexcept.cc (__throw_ios_failure, __throw_system_error)
78 (__throw_future_error, __throw_bad_function_call):
79 (__throw_regex_error): Move functions for C++11 exceptions to the
80 files that define the exception types.
81 * src/c++11/functional.cc (__throw_bad_function_call): Move here.
82 * src/c++11/future.cc (__throw_future_error): Likewise.
83 * src/c++11/ios.cc (__throw_ios_failure): Likewise.
84 * src/c++11/regex.cc (__throw_regex_error): Likewise.
85 * src/c++11/snprintf_lite.cc (__concat_size_t): Print decimal
86 representation directly instead of calling __int_to_char.
87 * src/c++11/sso_string.cc (__sso_string): New file for definition
89 * src/c++11/string-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
90 explicit instantiations of narrow string I/O functions.
91 * src/c++11/system_error.cc (__throw_system_error): Move here.
92 (__sso_string): Move to new file.
93 * src/c++11/wstring-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
94 explicit instantiations of wide string I/O functions.
95 * src/c++98/misc-inst.cc [_GLIBCXX_USE_CXX11_ABI] (operator<<)
96 (operator>>, getline): Remove explicit instantiations from here.
98 2017-02-02 H.J. Lu <hongjiu.lu@intel.com>
100 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
102 2017-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
104 * configure.host: Separate Solaris/SPARC and x86 baselines.
105 * config/abi/post/solaris2.10/baseline_symbols.txt: Move ...
106 * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: ... here.
107 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Move ...
108 * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
110 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Move ...
111 * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: ... here.
112 * config/abi/post/i386-solaris2.10/baseline_symbols.txt: New file.
113 * config/abi/post/solaris2.11/baseline_symbols.txt: Move ...
114 * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: ... here.
115 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Move ...
116 * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
118 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Move ...
119 * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: ... here.
120 * config/abi/post/i386-solaris2.11/baseline_symbols.txt: New file.
122 * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
123 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
124 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
125 * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
126 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
127 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
129 2017-02-01 Jonathan Wakely <jwakely@redhat.com>
132 * include/bits/predefined_ops.h (_Iter_equals_iter): Store iterator
134 (_Iter_comp_to_iter): Likewise.
135 * testsuite/25_algorithms/search/78346.cc: New test.
138 * config/abi/pre/gnu.ver: Remove recently added symbols.
139 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
140 (basic_string::_M_copy_assign): Remove.
141 (basic_string::operator=(const basic_string&)): Don't dispatch to
142 _M_copy_assign. If source object is small just deallocate, otherwise
143 perform new allocation before making any changes.
144 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
145 (basic_string::_M_copy_assign(const basic_string&, true_type)):
147 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
148 Test cases where the allocators are equal or the string is small.
149 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
152 2017-01-30 Ville Voutilainen <ville.voutilainen@gmail.com>
154 Implement LWG 2825, LWG 2756 breaks class template argument
155 deduction for optional.
156 * include/std/optional: Add a deduction guide.
157 * testsuite/20_util/optional/cons/deduction_guide.cc: New.
159 2017-01-27 Jonathan Wakely <jwakely@redhat.com>
162 * config/abi/pre/gnu.ver: Add new symbols.
163 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
164 (basic_string::_M_copy_assign): New overloaded functions to perform
166 (basic_string::operator=(const basic_string&)): Dispatch to
168 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
169 (basic_string::_M_copy_assign(const basic_string&, true_type)):
170 Define, performing rollback on exception.
171 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
172 Test exception-safety guarantee.
173 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
175 * testsuite/util/testsuite_allocator.h (uneq_allocator::swap): Make
178 2017-01-26 Jonathan Wakely <jwakely@redhat.com>
181 * include/tr1/complex (conj): Remove using-declaration and restore
182 overloads, reverting previous change.
184 * testsuite/23_containers/list/operations/78389.cc: Fix for C++11
186 * testsuite/23_containers/priority_queue/requirements/constructible.cc:
187 Mark as unsupported in C++98 mode.
188 * testsuite/23_containers/queue/requirements/constructible.cc:
190 * testsuite/23_containers/stack/requirements/constructible.cc:
192 * testsuite/25_algorithms/make_heap/movable.cc: Fix for C++11 mode.
195 * include/bits/c++config (literals::string_view_literals::__7): Add.
196 Only declare versioned namespaces for the relevant C++ dialects.
197 * include/experimental/bits/erase_if.h (fundamentals_v2::__detail):
198 Add versioning macros.
199 * include/experimental/bits/lfts_config.h:
200 (fundamentals_v1::__detail::__7, fundamentals_v2::__detail::__7): Add.
201 * include/experimental/string_view (fundamentals_v2::__detail):
202 Add versioning macros.
203 (fundamentals_v2::__detail::__identity): Remove.
204 (fundamentals_v2::__detail::__idt): Use common_type instead of
205 __detail::__identity.
206 * include/std/string_view (__detail::__identity, __detail::__idt):
208 (literals::string_view_literals): Fix nesting of versioning macros.
211 * libsupc++/del_opa.cc (operator delete(void*, std::align_val_t))
212 [!_GLIBCXX_HAVE_ALIGNED_ALLOC && !_GLIBCXX_HAVE_POSIX_MEMALIGN
213 && !_GLIBCXX_HAVE_MEMALIGN && !_GLIBCXX_HAVE__ALIGNED_MALLOC]:
214 Retrieve original pointer value allocated by malloc.
215 * libsupc++/new_opa.cc [!_GLIBCXX_HAVE_ALIGNED_ALLOC
216 && !_GLIBCXX_HAVE_POSIX_MEMALIGN && !_GLIBCXX_HAVE_MEMALIGN
217 && !_GLIBCXX_HAVE__ALIGNED_MALLOC] (aligned_alloc(size_t, size_t)):
218 Define, adjusting pointer value allocated by malloc and storing for
219 retrieval by operator delete.
221 2017-01-26 Jakub Jelinek <jakub@redhat.com>
223 * libsupc++/eh_atomics.h: Update copyright years.
224 * testsuite/20_util/unique_ptr/cons/default.cc: Update copyright years.
226 2017-01-25 Jonathan Wakely <jwakely@redhat.com>
230 * include/std/complex (real(T), imag(T)): Add _GLIBCXX_CONSTEXPR.
231 (proj(T), conj(T)): Change return types per DR 1522.
232 * include/tr1/complex (conj): Remove overloads and use std::conj.
233 * testsuite/26_numerics/complex/dr781_dr1137.cc: Rename to...
234 * testsuite/26_numerics/complex/dr781.cc: ... this, and update.
235 * testsuite/26_numerics/complex/value_operations/constexpr2.cc: Test
236 real(T) and imag(T). Allow testing for C++11 too.
238 2017-01-24 Jonathan Wakely <jwakely@redhat.com>
241 * include/experimental/string_view (operator==): Check sizes first.
242 * include/std/string_view (operator==): Likewise.
244 2017-01-23 Jonathan Wakely <jwakely@redhat.com>
246 * testsuite/experimental/array/make_array.cc: Restore <functional>
249 2017-01-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
251 * testsuite/29_atomics/atomic/69301.cc: Require atomic builtins.
253 2017-01-23 Jonathan Wakely <jwakely@redhat.com>
256 * include/experimental/array (__make_array_elem): New class template
257 and partial specialization.
258 (__is_reference_wrapper): Move into __make_array_elem specialization.
259 (make_array): Use __make_array_elem to determine element type and move
260 static assertion into specialization. Qualify std::forward call.
261 (to_array): Add exception specifiation.
262 * testsuite/experimental/array/make_array.cc: Test argument types
263 without a common type.
264 * testsuite/experimental/array/neg.cc: Adjust expected error message.
266 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
268 * doc/xml/manual/debug.xml: code.google.com uses https now.
270 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
272 * doc/xml/manual/test.xml: Fix link into gccint online manual.
274 2017-01-21 Ville Voutilainen <ville.voutilainen@gmail.com>
276 Make poisoned hashes SFINAE away the call operator of the hash.
277 * include/bits/functional_hash.h
278 (__poison_hash::__enable_hash_call): New.
279 * include/std/optional (__optional_hash_call_base): New.
280 (hash<optional<_Tp>>): Derive from the new base,
281 move the hash function into that base.
282 * include/std/variant (__variant_hash_call_base_impl): New.
283 (__variant_hash_call_base): Likewise.
284 (hash<variant<_Types...>>): Derive from the new base,
285 move the hash function into that base.
286 * testsuite/20_util/optional/hash.cc: Add tests for is_callable.
287 * testsuite/20_util/variant/hash.cc: Likewise.
289 2017-01-20 Joe Seymour <joe.s@somniumtech.com>
291 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): Support uint20_t.
292 * configure: Regenerate.
294 2017-01-20 Jonathan Wakely <jwakely@redhat.com>
297 * include/bits/random.h (uniform_real_distribution::param_type)
298 (normal_distribution::param_type, lognormal_distribution::param_type)
299 (gamma_distribution::param_type, chi_squared_distribution::param_type)
300 (cauchy_distribution::param_type, fisher_f_distribution::param_type)
301 (student_t_distribution::param_type)
302 (bernoulli_distribution::param_type, binomial_distribution::param_type)
303 (geometric_distribution::param_type)
304 (negative_binomial_distribution::param_type)
305 (poisson_distribution::param_type)
306 (exponential_distribution::param_type)
307 (weibull_distribution::param_type)
308 (extreme_value_distribution::param_type)
309 (discrete_distribution::param_type)
310 (piecewise_constant_distribution::param_type)
311 (piecewise_linear_distribution::param_type): Define operator!=.
312 * include/bits/uniform_int_dist.h
313 (uniform_int_distribution::param_type): Likewise.
314 * include/ext/random (beta_distribution::param_type)
315 (rice_distribution::param_type, nakagami_distribution::param_type)
316 (pareto_distribution::param_type, k_distribution::param_type)
317 (arcsine_distribution::param_type, hoyt_distribution::param_type)
318 (triangular_distribution::param_type)
319 (von_mises_distribution::param_type)
320 (hypergeometric_distribution::param_type)
321 (logistic_distribution::param_type)
322 (uniform_on_sphere_distribution::param_type)
323 (uniform_inside_sphere_distribution::param_type): Likewise.
324 * testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc:
325 Test construction with param_type.
326 * testsuite/26_numerics/random/binomial_distribution/cons/parms.cc:
328 * testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc:
330 * testsuite/26_numerics/random/chi_squared_distribution/cons/parms.cc:
332 * testsuite/26_numerics/random/exponential_distribution/cons/parms.cc:
334 * testsuite/26_numerics/random/extreme_value_distribution/cons/
336 * testsuite/26_numerics/random/fisher_f_distribution/cons/parms.cc:
338 * testsuite/26_numerics/random/gamma_distribution/cons/parms.cc:
340 * testsuite/26_numerics/random/geometric_distribution/cons/parms.cc:
342 * testsuite/26_numerics/random/lognormal_distribution/cons/parms.cc:
344 * testsuite/26_numerics/random/negative_binomial_distribution/cons/
346 * testsuite/26_numerics/random/normal_distribution/cons/parms.cc:
348 * testsuite/26_numerics/random/poisson_distribution/cons/parms.cc:
350 * testsuite/26_numerics/random/student_t_distribution/cons/parms.cc:
352 * testsuite/26_numerics/random/uniform_int_distribution/cons/parms.cc:
354 * testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc:
356 * testsuite/26_numerics/random/weibull_distribution/cons/parms.cc:
358 * testsuite/ext/random/arcsine_distribution/cons/parms.cc: Likewise.
359 * testsuite/ext/random/beta_distribution/cons/parms.cc: Likewise.
360 * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
361 * testsuite/ext/random/hypergeometric_distribution/cons/parms.cc:
363 * testsuite/ext/random/k_distribution/cons/parms.cc: Likewise.
364 * testsuite/ext/random/logistic_distribution/cons/parms.cc: Likewise.
365 * testsuite/ext/random/nakagami_distribution/cons/parms.cc: Likewise.
366 * testsuite/ext/random/normal_mv_distribution/cons/parms.cc: Likewise.
367 * testsuite/ext/random/pareto_distribution/cons/parms.cc: Likewise.
368 * testsuite/ext/random/rice_distribution/cons/parms.cc: Likewise.
369 * testsuite/ext/random/triangular_distribution/cons/parms.cc:
371 * testsuite/ext/random/uniform_inside_sphere_distribution/cons/
373 * testsuite/ext/random/von_mises_distribution/cons/parms.cc: Likewise.
376 * include/bits/alloc_traits.h (__allocator_traits_base::__diff_type)
377 (__allocator_traits_base::__size_type): Remove.
378 (allocator_traits::_Ptr): New class template to detect const and void
379 pointer types without instantiating pointer_traits::rebind
381 (allocator_traits::_Diff): Likewise for detecting difference_type.
382 (allocator_traits::_Size): New class template to detect size_type
383 without instantiating make_unsigned unnecessarily.
384 * include/bits/ptr_traits.h (pointer_traits::element_type): Use
385 __detected_or_t instead of __detected_or_t_.
386 * include/std/type_traits (__detected_or_t_): Remove.
387 * testsuite/20_util/allocator_traits/members/pointers.cc: New test.
391 * include/bits/alloc_traits.h (__allocator_traits_base::__rebind):
392 Replace with class template using void_t.
393 (__alloc_rebind): Define in terms of
394 __allocator_traits_base::__rebind.
395 (allocator_traits): Remove unconditional static_assert for
397 * include/bits/ptr_traits.h (__replace_first_arg): Remove type member.
398 (pointer_traits::__rebind): Replace with class template using void_t.
399 (pointer_traits::rebind): Define in terms of __rebind.
400 (pointer_traits): Remove unconditional static_assert for rebind.
401 * testsuite/20_util/allocator_traits/members/rebind_alloc.cc: New test.
402 * testsuite/20_util/pointer_traits/rebind.cc: New test.
405 * include/experimental/any (__any_caster): Avoid instantiating
406 manager function for types that can't be stored in any.
407 * include/std/any (__any_caster): Likewise.
408 * testsuite/20_util/any/misc/any_cast.cc: Test non-copyable type.
409 * testsuite/experimental/any/misc/any_cast.cc: Likewise.
412 * include/bits/stl_algo.h (is_partitioned): Use increment instead of
415 2017-01-19 Jonathan Wakely <jwakely@redhat.com>
418 * include/bits/shared_ptr_base.h (__enable_shared_from_this_base):
420 (__enable_shared_from_this): Declare __shared_ptr as a friend.
421 * testsuite/ext/shared_ptr/1.cc: New test.
424 * include/bits/stl_algo.h (is_partitioned): Don't retest the partition
426 * testsuite/25_algorithms/is_partitioned/2.cc: New test.
428 * doc/xml/manual/abi.xml: Fix typo.
429 * doc/html/manual/abi.html: Likewise.
432 * include/bits/predefined_ops.h (_Iter_less_val, _Val_less_iter): Add
433 converting constructors from _Iter_less_iter.
434 (_Iter_comp_val, _Val_comp_iter): Add converting constructors from
436 (__iter_comp_val(_Iter_comp_iter<C>): Use converting constructor.
437 (__val_comp_iter(_Iter_comp_iter<C>): Likewise.
438 * include/bits/stl_heap.h (__is_heap_until, __push_heap, __pop_heap)
439 (__make_heap, __sort_heap): Change _Compare parameters to references.
440 (__is_heap, push_heap, __adjust_heap, __pop_heap, pop_heap)
441 (__make_heap, make_heap, sort_heap, is_heap_until): Pass comparison
442 functions as lvalues.
443 (is_heap): Call __is_heap_until directly to avoid copying __comp.
444 * testsuite/23_containers/priority_queue/67085.cc: Adjust test to
445 count copies during construction with empty sequence.
448 * include/bits/stl_heap.h (__is_heap): Use _GLIBCXX_MOVE.
449 (__make_heap, __sort_heap): Don't use _GLIBCXX_MOVE inside loops.
450 * testsuite/23_containers/priority_queue/67085.cc: Adjust expected
452 * testsuite/25_algorithms/make_heap/movable.cc: New test.
455 * include/bits/stl_heap.h (push_heap, __adjust_heap, __pop_heap)
456 (pop_heap, __make_heap, make_heap, __sort_heap, sort_heap): Use
457 _GLIBCXX_MOVE when passing comparison function to other functions.
458 (is_heap_until, is_heap): Use std::move when passing comparison
460 * testsuite/23_containers/priority_queue/67085.cc: New test.
463 * doc/xml/manual/abi.xml (abi.versioning.history): Add markup to
464 macro names, filenames, and literal values. Document _GLIBCXX_RELEASE.
465 Document that the deprecated _GLIBCXX_VERSION macro was removed for
467 * doc/html/*: Regenerate.
468 * include/Makefile.am (_GLIBCXX_RELEASE): Set value.
469 * include/Makefile.in: Regenerate.
470 * include/bits/c++config (_GLIBCXX_RELEASE): Add #define.
471 * testsuite/ext/profile/mutex_extensions_neg.cc: Use lineno of 0 in
474 2017-01-18 Jonathan Wakely <jwakely@redhat.com>
477 * include/std/atomic (atomic<T>::load, atomic<T>::exchange): Use
478 aligned buffer instead of default-initialized variable.
479 * testsuite/29_atomics/atomic/69301.cc: New test.
480 * include/experimental/memory (observer_ptr::release): Use reserved
482 * include/ext/pointer.h (_Pointer_adapter::operator++(int))
483 (_Pointer_adapter::operator--(int)): Likewise.
486 * include/experimental/random (randint): Use temporary instead of
489 2017-01-17 Joshua Conner <joshconner@google.com>
491 * crossconfig.m4: Add fuchsia OS.
492 * configure: Regenerate.
494 2017-01-17 Jonathan Wakely <jwakely@redhat.com>
497 * doc/xml/manual/abi.xml (abi.versioning.history): Explain why the
498 __GLIBCXX__ macro is not useful. Remove redundant date information
499 and link to the GCC release timeline.
500 (abi.versioning.active): Move partial sentence into the previous
502 * doc/html/*: Regenerate.
505 * libsupc++/nested_exception.h (throw_with_nested): Use decay instead
507 * testsuite/18_support/nested_exception/79114.cc: New test.
509 2017-01-17 Jakub Jelinek <jakub@redhat.com>
512 * configure.ac: Add GCC_BASE_VER.
513 * fragment.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
514 get version from BASE-VER file.
515 * po/Makefile.in: Regenerated.
516 * libsupc++/Makefile.in: Regenerated.
517 * testsuite/Makefile.in: Regenerated.
518 * src/Makefile.in: Regenerated.
519 * configure: Regenerated.
520 * Makefile.in: Regenerated.
521 * include/Makefile.in: Regenerated.
522 * doc/Makefile.in: Regenerated.
523 * python/Makefile.in: Regenerated.
524 * src/c++11/Makefile.in: Regenerated.
525 * src/c++98/Makefile.in: Regenerated.
526 * src/filesystem/Makefile.in: Regenerated.
528 2017-01-16 Jonathan Wakely <jwakely@redhat.com>
531 * src/c++11/functexcept.cc: Use new ABI for std::ios_base::failure
533 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Don't override ABI
534 for test, so new ios::failure can be caught.
535 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
536 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
537 exceptions_failbit.cc: Likewise.
538 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
539 exceptions_failbit.cc: Likewise.
540 * testsuite/27_io/basic_istream/extractors_other/char/
541 exceptions_null.cc: Likewise.
542 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
543 exceptions_null.cc: Likewise.
544 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
545 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
546 * testsuite/27_io/basic_ostream/inserters_other/char/
547 exceptions_null.cc: Likewise.
548 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
549 exceptions_null.cc: Likewise.
550 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
553 * include/bits/locale_classes.h (locale::facet::__shim): Change from
554 private to protected.
555 * src/c++11/cxx11-shim_facets.cc (__shim_accessor): Define helper to
556 make locale::facet::__shim accessible.
558 2017-01-16 Ville Voutilainen <ville.voutilainen@gmail.com>
561 * include/bits/list.tcc (merge(list&&)): Fix backwards size adjustments.
562 (merge(list&&, _StrictWeakOrdering)): Likewise.
563 * testsuite/23_containers/list/operations/78389.cc: Add
564 better test for the sizes.
566 2017-01-14 Jonathan Wakely <jwakely@redhat.com>
568 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
569 Skip test when -D_GLIBCXX_PROFILE mode is included in options.
570 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
571 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
573 * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
574 * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise.
575 * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise.
576 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
577 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
579 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc::
581 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc::
583 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
585 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
587 * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise.
588 * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise.
589 * testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise.
590 * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise.
591 * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise.
592 * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
593 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
594 * testsuite/libstdc++-prettyprinters/debug.cc: Likewise.
595 * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise.
596 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
597 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
598 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
599 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
601 2017-01-13 Jonathan Wakely <jwakely@redhat.com>
604 * config/io/basic_file_stdio.cc (__basic_file<char>::close()): Don't
605 retry fclose on EINTR.
607 * include/profile/base.h: Remove unused header that leads to header
611 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
613 [!_GLIBCXX_USE_CXX11_ABI] (basic_string): Add member functions taking
614 basic_string_view arguments.
617 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Remove
618 redundant option from cxxflags.
619 (check_effective_target_cxx11-abi): Define.
620 * testsuite/21_strings/basic_string/allocator/71964.cc: Use cxx11-abi
622 * testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise.
623 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
625 * testsuite/21_strings/basic_string/allocator/char/minimal.cc:
627 * testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
628 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
630 * testsuite/21_strings/basic_string/allocator/char/noexcept.cc:
632 * testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
633 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
635 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
637 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
639 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
641 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
643 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
645 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
647 * testsuite/23_containers/list/61347.cc: Likewise.
648 * testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
649 * testsuite/27_io/ios_base/failure/cxx11.cc: Likewise.
651 2017-01-13 Ville Voutilainen <ville.voutilainen@gmail.com>
654 * include/bits/list.tcc (merge(list&&)):
655 Adjust list sizes if the comparator throws.
656 (merge(list&&, _StrictWeakOrdering)): Likewise.
657 (sort()): Splice elements back from the scratch buffers
658 if the comparator throws.
659 (sort(_StrictWeakOrdering)): Likewise.
660 * testsuite/23_containers/list/operations/78389.cc: New.
662 2017-01-13 Jonathan Wakely <jwakely@redhat.com>
664 * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Mark
665 XFAIL for C++17 until node reinsertion supports fancy pointers.
668 * testsuite/20_util/add_pointer/value.cc: Test forming function
671 2017-01-13 Michael Brune <lucdanton@free.fr>
674 * include/std/type_traits (__is_referenceable): Handle noexcept
677 2017-01-12 Jonathan Wakely <jwakely@redhat.com>
680 * include/bits/stl_queue.h (queue, priority_queue): Remove default
681 member-initializers and define default constructors as templates with
683 * include/bits/stl_stack.h (stack): Likewise.
684 * testsuite/23_containers/priority_queue/requirements/constructible.cc:
686 * testsuite/23_containers/priority_queue/requirements/
687 explicit_instantiation/1.cc: Test more instantiations.
688 * testsuite/23_containers/priority_queue/requirements/
689 explicit_instantiation/1_c++98.cc: Likewise.
690 * testsuite/23_containers/queue/requirements/constructible.cc: New.
691 * testsuite/23_containers/stack/requirements/constructible.cc: New.
694 * doc/xml/manual/intro.xml: Document LWG 2781 change.
695 * doc/html/*: Regenerate.
696 * include/std/functional (_Function_base::_Ref_manager): Remove.
697 (_Function_handler): Remove partial specializations for
699 (function::target): Remove special case for const qualification.
700 * testsuite/20_util/function/6.cc: Adjust tests for target type.
701 * testsuite/20_util/function/7.cc: Likewise.
702 * testsuite/20_util/function/8.cc: Likewise.
704 2017-01-11 Jonathan Wakely <jwakely@redhat.com>
707 * include/bits/stl_map.h (map::lower_bound, map::upper_bound)
708 (map::equal_range): Fix return type of heterogeneous overloads.
709 * include/bits/stl_multimap.h (multimap::lower_bound)
710 (multimap::upper_bound, multimap::equal_range): Likewise.
711 * include/bits/stl_multiset.h (multiset::lower_bound)
712 (multiset::upper_bound, multiset::equal_range): Likewise.
713 * include/bits/stl_set.h (set::lower_bound, set::upper_bound)
714 (set::equal_range): Likewise.
715 * testsuite/23_containers/map/operations/2.cc
716 * testsuite/23_containers/multimap/operations/2.cc
717 * testsuite/23_containers/multiset/operations/2.cc
718 * testsuite/23_containers/set/operations/2.cc
721 * include/bits/stl_map.h (map::count<_Kt>(const _Kt&)): Don't assume
722 the heterogeneous comparison can only find one match.
723 * include/bits/stl_set.h (set::count<_Kt>(const _Kt&)): Likewise.
724 * testsuite/23_containers/map/operations/2.cc: Test count works with
725 comparison function that just partitions rather than sorting.
726 * testsuite/23_containers/set/operations/2.cc: Likewise.
728 2017-01-11 Ville Voutilainen <ville.voutilainen@gmail.com>
730 Reduce the size of variant, it doesn't need an index of
731 type size_t internally.
732 * include/std/variant (parse_numbers.h): New include.
733 (__select_index): New.
734 (_Variant_storage<false, _Types...>::_M_reset_impl): Use
735 _index_type for comparison with variant_npos.
736 (_Variant_storage<false, _Types...>::__index_type): New.
737 (_Variant_storage<false, _Types...>::_M_index): Change the
738 type from size_t to __index_type.
739 (_Variant_storage<true, _Types...>::__index_type): New.
740 (_Variant_storage<true, _Types...>::_M_index): Change the
741 type from size_t to __index_type.
742 (_Variant_base::_M_valid): Use _Storage::__index_type
743 for comparison with variant_npos.
744 (variant::index): Use _Base::_Storage::__index_type
745 for comparison with variant_npos.
746 * testsuite/20_util/variant/index_type.cc: New.
748 2017-01-10 Jonathan Wakely <jwakely@redhat.com>
750 * testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
751 effective target selector to prevent running in C++17 mode.
754 * include/bits/stl_queue.h (queue::c): Add default member initializer.
755 (queue::queue()): Add constructor and define as defaulted.
756 (queue::queue(_Sequence&&)): Remove default argument.
757 (priority_queue::c, priority_queue::comp): Add default member
759 (priority_queue::priority_queue()): Add constructor and define as
761 (priority_queue::priority_queue(const _Compare&, _Sequence&&)):
762 Remove default argument for first parameter.
763 * include/bits/stl_stack.h (stack::c): Add default member initializer.
764 (stack::stack()): Add constructor and define as defaulted.
765 (stack::stack(const _Sequence&)): Remove default argument.
766 * testsuite/23_containers/priority_queue/requirements/
767 explicit_instantiation/1.cc: Test explicit instantiation with
768 non-DefaultConstructible sequence.
769 * testsuite/23_containers/priority_queue/77528.cc: New test.
770 * testsuite/23_containers/priority_queue/requirements/
771 explicit_instantiation/1_c++0x.cc: Replace with 1_c++98.cc.
772 * testsuite/23_containers/queue/77528.cc: New test.
773 * testsuite/23_containers/queue/requirements/explicit_instantiation/
774 1.cc: Test explicit instantiation with non-DefaultConstructible
776 * testsuite/23_containers/queue/requirements/explicit_instantiation/
777 1_c++0x.cc: Replace with 1_c++98.cc.
778 * testsuite/23_containers/stack/77528.cc: New test.
779 * testsuite/23_containers/stack/requirements/explicit_instantiation/
780 1.cc: Test explicit instantiation with non-DefaultConstructible
782 * testsuite/23_containers/stack/requirements/explicit_instantiation/
783 1_c++0x.cc: Replace with 1_c++98.cc.
785 2017-01-10 Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
787 * include/bits/locale_facets_nonio.tcc
788 (time_get::_M_extract_via_format): Avoid compilation errors with
789 non-standard struct tm.
791 2017-01-10 François Dumont <fdumont@gcc.gnu.org>
792 Jonathan Wakely <jwakely@redhat.com>
794 * python/libstdcxx/v6/printers.py (_versioned_namespace): Define.
795 (is_specialization, strip_versioned_namespace): New helpers functions
796 to work with symbols in the versioned namespace.
797 (Printer.add_version): Add second name using versioned namespace.
798 (add_one_template_type_printer, add_one_type_printer): Add second
799 type printers using versioned namespace.
800 (register_type_printers): Add template type printer for basic_string.
801 (build_libstdcxx_dictionary): Remove dead code.
802 * python/libstdcxx/v6/xmethods.py: Make all matchers look for
804 * testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected
806 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
808 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
811 * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Check for llrint and llround
812 functions separately on darwin and if they're missing define
813 _GLIBCXX_NO_C99_ROUNDING_FUNCS.
814 * config.h.in: Regenerate.
815 * configure: Regenerate.
816 * include/c_global/cmath [_GLIBCXX_NO_C99_ROUNDING_FUNCS] (llrint)
817 (llrintf, llrintl, llround, llroundf, llroundl): Do not define.
819 * testsuite/30_threads/condition_variable/members/3.cc: Use new macro
820 to detect correct thread_local destructors.
821 * testsuite/util/testsuite_hooks.h (CORRECT_THREAD_LOCAL_DTORS):
824 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
825 Aditya Kumar <hiraditya@msn.com>
828 * include/bits/basic_string.tcc
829 (basic_string::find(const CharT*, size_type, size_type)): Optimize.
831 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
833 * testsuite/21_strings/basic_string/operations/find/char/6.cc: New.
834 * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: New.
836 * testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
837 Include <cassert> header.
840 * crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
841 * configure: Regenerate.
843 2017-01-06 Barrett Adair <barrettellisadair@gmail.com>
844 Jonathan Wakely <jwakely@redhat.com>
846 * include/std/variant (variant, swap): Replace __and_ usage with fold
849 2017-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
852 * acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
853 * configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
854 GLIBCXX_CHECK_ASSEMBLER_HWCAP.
855 * fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
857 * aclocal.m4: Regenerate.
858 * configure: Regenerate.
859 * Makefile.in, doc/Makefile.in, include/Makefile.in,
860 libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
861 src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
862 src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
864 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
866 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.
869 * include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
870 (_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
871 (_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and
872 move function objects.
873 (__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter)
874 (__iter_comp_val, __iter_comp_iter, __negate): Move function objects.
875 * testsuite/25_algorithms/sort/78991.cc: New test.
877 2017-01-05 Jonathan Wakely <jwakely@redhat.com>
879 * include/bits/std_function.h (function::_Signature_type): Remove.
880 (function::function(_Functor)): Adjust.
882 2017-01-05 Tim Shen <timshen@google.com>
885 * include/std/variant (__gen_vtable_impl): rename __unused to
886 __dimensions to avoid naming conflict.
888 2017-01-04 Jonathan Wakely <jwakely@redhat.com>
891 * config.h.in: Regenerate.
892 * configure: Likewise.
893 * configure.ac: Check for __cxa_thread_atexit.
894 * libsupc++/atexit_thread.cc [_GLIBCXX_HAVE___CXA_THREAD_ATEXIT]:
895 Don't define __cxa_thread_atexit if libc provides it.
897 2017-01-04 Ville Voutilainen <ville.voutilainen@gmail.com>
899 Implement 2801, Default-constructibility of unique_ptr.
900 * include/bits/unique_ptr.h (__uniq_ptr_impl::_DeleterConstraint): New.
901 (unique_ptr::_DeleterConstraint): Likewise.
902 (unique_ptr()): Constrain.
903 (unique_ptr(pointer)): Likewise.
904 (unique_ptr(nullptr_t)): Likewise.
905 (unique_ptr<_Tp[], _Dp>::_DeleterConstraint): New.
906 (unique_ptr<_Tp[], _Dp>::unique_ptr()): Constrain.
907 (unique_ptr<_Tp[], _Dp>::unique_ptr(_Up)): Likewise.
908 (unique_ptr<_Tp[], _Dp>::unique_ptr(nullptr_t)): Likewise.
909 * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust.
910 * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
911 * testsuite/20_util/unique_ptr/cons/default.cc: New.
912 * testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Adjust.
914 2017-01-04 Pauli Nieminen <suokkos@gmail.com>
915 Jonathan Wakely <jwakely@redhat.com>
918 * acinclude.m4 (GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER): Define.
919 * config.h.in: Regenerate.
920 * config/abi/pre/gnu.ver [HAVE_EXCEPTION_PTR_SINCE_GCC46]
921 (GLIBCXX_3.4.15, GLIBCXX_3.4.21, CXXABI_1.3.3, CXXABI_1.3.5): Make
922 exports for exception_ptr, nested_exception, and future conditional.
923 [HAVE_EXCEPTION_PTR_SINCE_GCC46] (GLIBCXX_3.4.23, CXXABI_1.3.11): Add
924 exports for exception_ptr, nested_exception, and future conditional.
925 * configure: Regenerate.
926 * configure.ac: Use GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER.
927 * include/std/future: Remove check for ATOMIC_INT_LOCK_FREE
928 * libsupc++/eh_atomics.h: New file for internal use only.
929 (__eh_atomic_inc, __eh_atomic_dec): New.
930 * libsupc++/eh_ptr.cc (exception_ptr::_M_addref)
931 (exception_ptr::_M_release) (__gxx_dependent_exception_cleanup)
932 (rethrow_exception): Use eh_atomics.h reference counting helpers.
933 * libsupc++/eh_throw.cc (__gxx_exception_cleanup): Likewise.
934 * libsupc++/eh_tm.cc (free_any_cxa_exception): Likewise.
935 * libsupc++/exception: Remove check for ATOMIC_INT_LOCK_FREE.
936 * libsupc++/exception_ptr.h: Likewise.
937 * libsupc++/guard.cc: Include header for ATOMIC_INT_LOCK_FREE macro.
938 * libsupc++/nested_exception.cc: Remove check for
939 ATOMIC_INT_LOCK_FREE.
940 * libsupc++/nested_exception.h: Likewise.
941 * src/c++11/future.cc: Likewise.
942 * testsuite/18_support/exception_ptr/*: Remove atomic builtins checks.
943 * testsuite/18_support/nested_exception/*: Likewise.
944 * testsuite/30_threads/async/*: Likewise.
945 * testsuite/30_threads/future/*: Likewise.
946 * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
947 * testsuite/30_threads/packaged_task/*: Likewise.
948 * testsuite/30_threads/promise/*: Likewise.
949 * testsuite/30_threads/shared_future/*: Likewise.
951 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
953 * doc/xml/manual/documentation_hacking.xml: sourceforge.net now
954 defaults to https; adjust reference.
956 2017-01-03 Jonathan Wakely <jwakely@redhat.com>
959 * include/std/thread (thread(const thread&&)): Add deleted
961 * testsuite/30_threads/thread/cons/lwg2097.cc: New test.
963 * doc/xml/manual/spine.xml: Update copyright years.
964 * doc/xml/manual/build_hacking.xml: Fix spelling of libbuilddir.
965 * doc/xml/manual/test.xml: Likewise.
966 * doc/html/*: Regenerate.
968 2017-01-01 Gerald Pfeifer <gerald@pfeifer.com>
970 * doc/xml/faq.xml: Update address of C++ ABI link.
971 * doc/xml/manual/abi.xml: Ditto.
973 2017-01-01 Jakub Jelinek <jakub@redhat.com>
975 Update copyright years.
977 Copyright (C) 2017 Free Software Foundation, Inc.
979 Copying and distribution of this file, with or without modification,
980 are permitted in any medium without royalty provided the copyright
981 notice and this notice are preserved.