1 2017-01-17 Jonathan Wakely <jwakely@redhat.com>
4 * libsupc++/nested_exception.h (throw_with_nested): Use decay instead
6 * testsuite/18_support/nested_exception/79114.cc: New test.
8 2017-01-17 Jakub Jelinek <jakub@redhat.com>
11 * configure.ac: Add GCC_BASE_VER.
12 * fragment.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
13 get version from BASE-VER file.
14 * po/Makefile.in: Regenerated.
15 * libsupc++/Makefile.in: Regenerated.
16 * testsuite/Makefile.in: Regenerated.
17 * src/Makefile.in: Regenerated.
18 * configure: Regenerated.
19 * Makefile.in: Regenerated.
20 * include/Makefile.in: Regenerated.
21 * doc/Makefile.in: Regenerated.
22 * python/Makefile.in: Regenerated.
23 * src/c++11/Makefile.in: Regenerated.
24 * src/c++98/Makefile.in: Regenerated.
25 * src/filesystem/Makefile.in: Regenerated.
27 2017-01-16 Jonathan Wakely <jwakely@redhat.com>
30 * src/c++11/functexcept.cc: Use new ABI for std::ios_base::failure
32 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Don't override ABI
33 for test, so new ios::failure can be caught.
34 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
35 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
36 exceptions_failbit.cc: Likewise.
37 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
38 exceptions_failbit.cc: Likewise.
39 * testsuite/27_io/basic_istream/extractors_other/char/
40 exceptions_null.cc: Likewise.
41 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
42 exceptions_null.cc: Likewise.
43 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
44 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
45 * testsuite/27_io/basic_ostream/inserters_other/char/
46 exceptions_null.cc: Likewise.
47 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
48 exceptions_null.cc: Likewise.
49 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
52 * include/bits/locale_classes.h (locale::facet::__shim): Change from
54 * src/c++11/cxx11-shim_facets.cc (__shim_accessor): Define helper to
55 make locale::facet::__shim accessible.
57 2017-01-16 Ville Voutilainen <ville.voutilainen@gmail.com>
60 * include/bits/list.tcc (merge(list&&)): Fix backwards size adjustments.
61 (merge(list&&, _StrictWeakOrdering)): Likewise.
62 * testsuite/23_containers/list/operations/78389.cc: Add
63 better test for the sizes.
65 2017-01-14 Jonathan Wakely <jwakely@redhat.com>
67 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
68 Skip test when -D_GLIBCXX_PROFILE mode is included in options.
69 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
70 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
72 * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
73 * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise.
74 * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise.
75 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
76 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
78 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc::
80 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc::
82 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
84 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
86 * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise.
87 * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise.
88 * testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise.
89 * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise.
90 * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise.
91 * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
92 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
93 * testsuite/libstdc++-prettyprinters/debug.cc: Likewise.
94 * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise.
95 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
96 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
97 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
98 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
100 2017-01-13 Jonathan Wakely <jwakely@redhat.com>
103 * config/io/basic_file_stdio.cc (__basic_file<char>::close()): Don't
104 retry fclose on EINTR.
106 * include/profile/base.h: Remove unused header that leads to header
110 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
112 [!_GLIBCXX_USE_CXX11_ABI] (basic_string): Add member functions taking
113 basic_string_view arguments.
116 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Remove
117 redundant option from cxxflags.
118 (check_effective_target_cxx11-abi): Define.
119 * testsuite/21_strings/basic_string/allocator/71964.cc: Use cxx11-abi
121 * testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise.
122 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
124 * testsuite/21_strings/basic_string/allocator/char/minimal.cc:
126 * testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
127 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
129 * testsuite/21_strings/basic_string/allocator/char/noexcept.cc:
131 * testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
132 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
134 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
136 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
138 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
140 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
142 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
144 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
146 * testsuite/23_containers/list/61347.cc: Likewise.
147 * testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
148 * testsuite/27_io/ios_base/failure/cxx11.cc: Likewise.
150 2017-01-13 Ville Voutilainen <ville.voutilainen@gmail.com>
153 * include/bits/list.tcc (merge(list&&)):
154 Adjust list sizes if the comparator throws.
155 (merge(list&&, _StrictWeakOrdering)): Likewise.
156 (sort()): Splice elements back from the scratch buffers
157 if the comparator throws.
158 (sort(_StrictWeakOrdering)): Likewise.
159 * testsuite/23_containers/list/operations/78389.cc: New.
161 2017-01-13 Jonathan Wakely <jwakely@redhat.com>
163 * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Mark
164 XFAIL for C++17 until node reinsertion supports fancy pointers.
167 * testsuite/20_util/add_pointer/value.cc: Test forming function
170 2017-01-13 Michael Brune <lucdanton@free.fr>
173 * include/std/type_traits (__is_referenceable): Handle noexcept
176 2017-01-12 Jonathan Wakely <jwakely@redhat.com>
179 * include/bits/stl_queue.h (queue, priority_queue): Remove default
180 member-initializers and define default constructors as templates with
182 * include/bits/stl_stack.h (stack): Likewise.
183 * testsuite/23_containers/priority_queue/requirements/constructible.cc:
185 * testsuite/23_containers/priority_queue/requirements/
186 explicit_instantiation/1.cc: Test more instantiations.
187 * testsuite/23_containers/priority_queue/requirements/
188 explicit_instantiation/1_c++98.cc: Likewise.
189 * testsuite/23_containers/queue/requirements/constructible.cc: New.
190 * testsuite/23_containers/stack/requirements/constructible.cc: New.
193 * doc/xml/manual/intro.xml: Document LWG 2781 change.
194 * doc/html/*: Regenerate.
195 * include/std/functional (_Function_base::_Ref_manager): Remove.
196 (_Function_handler): Remove partial specializations for
198 (function::target): Remove special case for const qualification.
199 * testsuite/20_util/function/6.cc: Adjust tests for target type.
200 * testsuite/20_util/function/7.cc: Likewise.
201 * testsuite/20_util/function/8.cc: Likewise.
203 2017-01-11 Jonathan Wakely <jwakely@redhat.com>
206 * include/bits/stl_map.h (map::lower_bound, map::upper_bound)
207 (map::equal_range): Fix return type of heterogeneous overloads.
208 * include/bits/stl_multimap.h (multimap::lower_bound)
209 (multimap::upper_bound, multimap::equal_range): Likewise.
210 * include/bits/stl_multiset.h (multiset::lower_bound)
211 (multiset::upper_bound, multiset::equal_range): Likewise.
212 * include/bits/stl_set.h (set::lower_bound, set::upper_bound)
213 (set::equal_range): Likewise.
214 * testsuite/23_containers/map/operations/2.cc
215 * testsuite/23_containers/multimap/operations/2.cc
216 * testsuite/23_containers/multiset/operations/2.cc
217 * testsuite/23_containers/set/operations/2.cc
220 * include/bits/stl_map.h (map::count<_Kt>(const _Kt&)): Don't assume
221 the heterogeneous comparison can only find one match.
222 * include/bits/stl_set.h (set::count<_Kt>(const _Kt&)): Likewise.
223 * testsuite/23_containers/map/operations/2.cc: Test count works with
224 comparison function that just partitions rather than sorting.
225 * testsuite/23_containers/set/operations/2.cc: Likewise.
227 2017-01-11 Ville Voutilainen <ville.voutilainen@gmail.com>
229 Reduce the size of variant, it doesn't need an index of
230 type size_t internally.
231 * include/std/variant (parse_numbers.h): New include.
232 (__select_index): New.
233 (_Variant_storage<false, _Types...>::_M_reset_impl): Use
234 _index_type for comparison with variant_npos.
235 (_Variant_storage<false, _Types...>::__index_type): New.
236 (_Variant_storage<false, _Types...>::_M_index): Change the
237 type from size_t to __index_type.
238 (_Variant_storage<true, _Types...>::__index_type): New.
239 (_Variant_storage<true, _Types...>::_M_index): Change the
240 type from size_t to __index_type.
241 (_Variant_base::_M_valid): Use _Storage::__index_type
242 for comparison with variant_npos.
243 (variant::index): Use _Base::_Storage::__index_type
244 for comparison with variant_npos.
245 * testsuite/20_util/variant/index_type.cc: New.
247 2017-01-10 Jonathan Wakely <jwakely@redhat.com>
249 * testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
250 effective target selector to prevent running in C++17 mode.
253 * include/bits/stl_queue.h (queue::c): Add default member initializer.
254 (queue::queue()): Add constructor and define as defaulted.
255 (queue::queue(_Sequence&&)): Remove default argument.
256 (priority_queue::c, priority_queue::comp): Add default member
258 (priority_queue::priority_queue()): Add constructor and define as
260 (priority_queue::priority_queue(const _Compare&, _Sequence&&)):
261 Remove default argument for first parameter.
262 * include/bits/stl_stack.h (stack::c): Add default member initializer.
263 (stack::stack()): Add constructor and define as defaulted.
264 (stack::stack(const _Sequence&)): Remove default argument.
265 * testsuite/23_containers/priority_queue/requirements/
266 explicit_instantiation/1.cc: Test explicit instantiation with
267 non-DefaultConstructible sequence.
268 * testsuite/23_containers/priority_queue/77528.cc: New test.
269 * testsuite/23_containers/priority_queue/requirements/
270 explicit_instantiation/1_c++0x.cc: Replace with 1_c++98.cc.
271 * testsuite/23_containers/queue/77528.cc: New test.
272 * testsuite/23_containers/queue/requirements/explicit_instantiation/
273 1.cc: Test explicit instantiation with non-DefaultConstructible
275 * testsuite/23_containers/queue/requirements/explicit_instantiation/
276 1_c++0x.cc: Replace with 1_c++98.cc.
277 * testsuite/23_containers/stack/77528.cc: New test.
278 * testsuite/23_containers/stack/requirements/explicit_instantiation/
279 1.cc: Test explicit instantiation with non-DefaultConstructible
281 * testsuite/23_containers/stack/requirements/explicit_instantiation/
282 1_c++0x.cc: Replace with 1_c++98.cc.
284 2017-01-10 Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
286 * include/bits/locale_facets_nonio.tcc
287 (time_get::_M_extract_via_format): Avoid compilation errors with
288 non-standard struct tm.
290 2017-01-10 François Dumont <fdumont@gcc.gnu.org>
291 Jonathan Wakely <jwakely@redhat.com>
293 * python/libstdcxx/v6/printers.py (_versioned_namespace): Define.
294 (is_specialization, strip_versioned_namespace): New helpers functions
295 to work with symbols in the versioned namespace.
296 (Printer.add_version): Add second name using versioned namespace.
297 (add_one_template_type_printer, add_one_type_printer): Add second
298 type printers using versioned namespace.
299 (register_type_printers): Add template type printer for basic_string.
300 (build_libstdcxx_dictionary): Remove dead code.
301 * python/libstdcxx/v6/xmethods.py: Make all matchers look for
303 * testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected
305 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
307 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
310 * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Check for llrint and llround
311 functions separately on darwin and if they're missing define
312 _GLIBCXX_NO_C99_ROUNDING_FUNCS.
313 * config.h.in: Regenerate.
314 * configure: Regenerate.
315 * include/c_global/cmath [_GLIBCXX_NO_C99_ROUNDING_FUNCS] (llrint)
316 (llrintf, llrintl, llround, llroundf, llroundl): Do not define.
318 * testsuite/30_threads/condition_variable/members/3.cc: Use new macro
319 to detect correct thread_local destructors.
320 * testsuite/util/testsuite_hooks.h (CORRECT_THREAD_LOCAL_DTORS):
323 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
324 Aditya Kumar <hiraditya@msn.com>
327 * include/bits/basic_string.tcc
328 (basic_string::find(const CharT*, size_type, size_type)): Optimize.
330 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
332 * testsuite/21_strings/basic_string/operations/find/char/6.cc: New.
333 * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: New.
335 * testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
336 Include <cassert> header.
339 * crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
340 * configure: Regenerate.
342 2017-01-06 Barrett Adair <barrettellisadair@gmail.com>
343 Jonathan Wakely <jwakely@redhat.com>
345 * include/std/variant (variant, swap): Replace __and_ usage with fold
348 2017-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
351 * acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
352 * configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
353 GLIBCXX_CHECK_ASSEMBLER_HWCAP.
354 * fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
356 * aclocal.m4: Regenerate.
357 * configure: Regenerate.
358 * Makefile.in, doc/Makefile.in, include/Makefile.in,
359 libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
360 src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
361 src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
363 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
365 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.
368 * include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
369 (_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
370 (_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and
371 move function objects.
372 (__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter)
373 (__iter_comp_val, __iter_comp_iter, __negate): Move function objects.
374 * testsuite/25_algorithms/sort/78991.cc: New test.
376 2017-01-05 Jonathan Wakely <jwakely@redhat.com>
378 * include/bits/std_function.h (function::_Signature_type): Remove.
379 (function::function(_Functor)): Adjust.
381 2017-01-05 Tim Shen <timshen@google.com>
384 * include/std/variant (__gen_vtable_impl): rename __unused to
385 __dimensions to avoid naming conflict.
387 2017-01-04 Jonathan Wakely <jwakely@redhat.com>
390 * config.h.in: Regenerate.
391 * configure: Likewise.
392 * configure.ac: Check for __cxa_thread_atexit.
393 * libsupc++/atexit_thread.cc [_GLIBCXX_HAVE___CXA_THREAD_ATEXIT]:
394 Don't define __cxa_thread_atexit if libc provides it.
396 2017-01-04 Ville Voutilainen <ville.voutilainen@gmail.com>
398 Implement 2801, Default-constructibility of unique_ptr.
399 * include/bits/unique_ptr.h (__uniq_ptr_impl::_DeleterConstraint): New.
400 (unique_ptr::_DeleterConstraint): Likewise.
401 (unique_ptr()): Constrain.
402 (unique_ptr(pointer)): Likewise.
403 (unique_ptr(nullptr_t)): Likewise.
404 (unique_ptr<_Tp[], _Dp>::_DeleterConstraint): New.
405 (unique_ptr<_Tp[], _Dp>::unique_ptr()): Constrain.
406 (unique_ptr<_Tp[], _Dp>::unique_ptr(_Up)): Likewise.
407 (unique_ptr<_Tp[], _Dp>::unique_ptr(nullptr_t)): Likewise.
408 * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust.
409 * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
410 * testsuite/20_util/unique_ptr/cons/default.cc: New.
411 * testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Adjust.
413 2017-01-04 Pauli Nieminen <suokkos@gmail.com>
414 Jonathan Wakely <jwakely@redhat.com>
417 * acinclude.m4 (GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER): Define.
418 * config.h.in: Regenerate.
419 * config/abi/pre/gnu.ver [HAVE_EXCEPTION_PTR_SINCE_GCC46]
420 (GLIBCXX_3.4.15, GLIBCXX_3.4.21, CXXABI_1.3.3, CXXABI_1.3.5): Make
421 exports for exception_ptr, nested_exception, and future conditional.
422 [HAVE_EXCEPTION_PTR_SINCE_GCC46] (GLIBCXX_3.4.23, CXXABI_1.3.11): Add
423 exports for exception_ptr, nested_exception, and future conditional.
424 * configure: Regenerate.
425 * configure.ac: Use GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER.
426 * include/std/future: Remove check for ATOMIC_INT_LOCK_FREE
427 * libsupc++/eh_atomics.h: New file for internal use only.
428 (__eh_atomic_inc, __eh_atomic_dec): New.
429 * libsupc++/eh_ptr.cc (exception_ptr::_M_addref)
430 (exception_ptr::_M_release) (__gxx_dependent_exception_cleanup)
431 (rethrow_exception): Use eh_atomics.h reference counting helpers.
432 * libsupc++/eh_throw.cc (__gxx_exception_cleanup): Likewise.
433 * libsupc++/eh_tm.cc (free_any_cxa_exception): Likewise.
434 * libsupc++/exception: Remove check for ATOMIC_INT_LOCK_FREE.
435 * libsupc++/exception_ptr.h: Likewise.
436 * libsupc++/guard.cc: Include header for ATOMIC_INT_LOCK_FREE macro.
437 * libsupc++/nested_exception.cc: Remove check for
438 ATOMIC_INT_LOCK_FREE.
439 * libsupc++/nested_exception.h: Likewise.
440 * src/c++11/future.cc: Likewise.
441 * testsuite/18_support/exception_ptr/*: Remove atomic builtins checks.
442 * testsuite/18_support/nested_exception/*: Likewise.
443 * testsuite/30_threads/async/*: Likewise.
444 * testsuite/30_threads/future/*: Likewise.
445 * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
446 * testsuite/30_threads/packaged_task/*: Likewise.
447 * testsuite/30_threads/promise/*: Likewise.
448 * testsuite/30_threads/shared_future/*: Likewise.
450 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
452 * doc/xml/manual/documentation_hacking.xml: sourceforge.net now
453 defaults to https; adjust reference.
455 2017-01-03 Jonathan Wakely <jwakely@redhat.com>
458 * include/std/thread (thread(const thread&&)): Add deleted
460 * testsuite/30_threads/thread/cons/lwg2097.cc: New test.
462 * doc/xml/manual/spine.xml: Update copyright years.
463 * doc/xml/manual/build_hacking.xml: Fix spelling of libbuilddir.
464 * doc/xml/manual/test.xml: Likewise.
465 * doc/html/*: Regenerate.
467 2017-01-01 Gerald Pfeifer <gerald@pfeifer.com>
469 * doc/xml/faq.xml: Update address of C++ ABI link.
470 * doc/xml/manual/abi.xml: Ditto.
472 2017-01-01 Jakub Jelinek <jakub@redhat.com>
474 Update copyright years.
476 Copyright (C) 2017 Free Software Foundation, Inc.
478 Copying and distribution of this file, with or without modification,
479 are permitted in any medium without royalty provided the copyright
480 notice and this notice are preserved.