1 2017-06-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3 * testsuite: Add dg-require-effective-target pthread to -pthread
5 Remove explicit target lists from dg-do and dg-options.
7 * testsuite/30_threads/async/forced_unwind.cc: Remove explit
8 target list from dg-options.
9 * testsuite/30_threads/packaged_task/forced_unwind.cc: Likewise.
11 * 30_threads/shared_mutex/cons/1.cc: Likewise.
12 Pass -pthread for all targets.
13 * 30_threads/shared_mutex/try_lock/1.cc: Likewise.
14 * 30_threads/shared_mutex/try_lock/2.cc: Likewise.
15 * 30_threads/shared_mutex/unlock/1.cc: Likewise.
17 * testsuite/30_threads/this_thread/57060.cc: Require c++11 via
18 dg-require-effective-target.
20 2017-06-14 Jonathan Wakely <jwakely@redhat.com>
22 * doc/xml/manual/test.xml: Correct instructions on running tests.
23 * testsuite/21_strings/basic_string/cons/char/deduction.cc: Adjust to
24 pass when -D_GLIBCXX_USE_CXX11_ABI=0 added to RUNTESTFLAGS.
25 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
27 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Likewise.
28 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
29 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
30 exceptions_failbit.cc: Likewise.
31 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
32 exceptions_failbit.cc: Likewise.
33 * testsuite/27_io/basic_istream/extractors_other/char/
34 exceptions_null.cc: Likewise.
35 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
36 exceptions_null.cc: Likewise.
37 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
38 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
39 * testsuite/27_io/basic_ostream/inserters_other/char/
40 exceptions_null.cc: Likewise.
41 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
42 exceptions_null.cc: Likewise.
43 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
45 2017-06-12 Pedro Alves <palves@redhat.com>
47 * doc/xml/manual/status_cxx2017.xml: Update C++17 constexpr
49 * doc/html/*: Regenerate.
51 * include/bits/char_traits.h (_GLIBCXX_ALWAYS_INLINE): Define if
53 (__cpp_lib_constexpr_char_traits): Uncomment.
54 (__constant_string_p, __constant_char_array_p): New.
55 (std::char_traits<char>, std::char_traits<wchar_t>): Add
56 _GLIBCXX17_CONSTEXPR on compare, length and find and use
57 __constant_string_p, __constant_char_array_p and
58 __builtin_constant_p to defer to __gnu_cxx::char_traits at compile
61 * testsuite/21_strings/char_traits/requirements/
62 constexpr_functions_c++17.cc: Uncomment
63 __cpp_lib_constexpr_char_traits tests. Uncomment
64 test_compare<char>, test_length<char>, test_find<char>,
65 test_compare<wchar_t>, test_length<wchar_t> and test_find<wchar_t>
68 2017-06-12 François Dumont <fdumont@gcc.gnu.org>
70 * include/bits/stl_tree.h (_Rb_tree_impl()): Restore _Node_allocator
72 * testsuite/util/testsuite_allocator.h
73 (__gnu_test::default_init_allocator<>) New.
74 * testsuite/23_containers/set/allocator/default_init.cc: New.
75 * testsuite/23_containers/map/allocator/default_init.cc: New.
77 2017-06-12 Jonathan Wakely <jwakely@redhat.com>
80 * src/c++11/thread.cc (execute_native_thread_routine): Remove
81 try-block so that exceptions propagate out of the thread and terminate
82 is called by the exception-handling runtime.
83 (execute_native_thread_routine_compat): Likewise.
84 * testsuite/30_threads/thread/cons/terminate.cc: New.
86 2017-06-09 Jonathan Wakely <jwakely@redhat.com>
88 * doc/xml/manual/intro.xml: Document LWG 2802, 2873 and 2942 changes.
89 * include/bits/shared_ptr.h (shared_ptr): Use rvalues for deleters
91 * include/bits/shared_ptr_base.h (_Sp_ebo_helper, _Sp_counted_deleter
92 (_Sp_counted_deleter::_Impl, __shared_count, __shared_ptr): Likewise.
93 * testsuite/20_util/shared_ptr/cons/lwg2802.cc: New.
95 * include/bits/forward_list.h (forward_list): Add deduction guide.
96 * include/bits/stl_deque.h (deque): Likewise.
97 * include/bits/stl_list.h (list): Likewise.
98 * include/bits/stl_vector.h (vector): Likewise.
99 * testsuite/23_containers/deque/cons/deduction.cc: New.
100 * testsuite/23_containers/forward_list/cons/deduction.cc: New.
101 * testsuite/23_containers/list/cons/deduction.cc: New.
102 * testsuite/23_containers/vector/cons/deduction.cc: New.
104 2017-06-08 Jonathan Wakely <jwakely@redhat.com>
107 * include/bits/std_function.h (function::function(function&&))
108 (function::operator=(funtion&&)): Add noexcept.
109 * testsuite/20_util/function/assign/move.cc: Check for noexcept.
110 * testsuite/20_util/function/cons/move.cc: Likewise.
112 2017-06-07 Jonathan Wakely <jwakely@redhat.com>
114 * include/bits/regex.h (basic_regex): Add deduction guide from P0433.
115 * testsuite/28_regex/basic_regex/ctors/deduction.cc: New.
118 * include/bits/regex.h (basic_regex): Adjust call to __compile_nfa
119 so iterator type is deduced.
120 * include/bits/regex_compiler.h (__compile_nfa): Reorder template
121 parameters to allow iterator type to be deduced.
122 * testsuite/28_regex/basic_regex/ctors/basic/iter.cc: New.
124 * include/bits/alloc_traits.h (__is_allocator, _RequireAllocator):
125 New trait and alias for detecting Allocator-like types.
126 * include/bits/basic_string.h (basic_string): Add deduction guide
128 * include/ext/alloc_traits.h (__gnu_cxx::__alloc_traits): Add template
129 parameter with default template argument that causes substitution
130 failures for types that cannot be allocators.
131 * testsuite/21_strings/basic_string/cons/char/deduction.cc: New.
132 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc: New.
134 2017-06-02 Jonathan Wakely <jwakely@redhat.com>
137 * include/std/variant (__erased_ctor, __erased_assign, __erased_swap)
138 (__erased_hash): Remove constexpr specifier and qualify calls to
140 (__erased_dtor): Remove constexpr specifier and use _Destroy.
142 2017-06-05 Jonathan Wakely <jwakely@redhat.com>
144 * include/bits/stl_iterator_base_funcs.h
145 (__advance<_RandomAccessIterator, _Distance>): Optimize for next/prev
146 cases where incrementing or decrementing a single step.
148 * include/bits/shared_ptr_base.h (__shared_ptr::owner_before)
149 (__weak_ptr::owner_before, _Sp_owner_less::operator()): Add noexcept
150 specifiers as per LWG 2873 and LWG 2942.
151 * testsuite/20_util/owner_less/noexcept.cc: New.
152 * testsuite/20_util/shared_ptr/observers/owner_before.cc: Test
154 * testsuite/20_util/weak_ptr/observers/owner_before.cc: Likewise.
156 2017-06-03 Andreas Schwab <schwab@linux-m68k.org>
158 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
160 2017-06-03 Eric Botcazou <ebotcazou@adacore.com>
162 * src/filesystem/dir.cc (fs::_Dir::advance): Use std::exchange.
164 2017-06-02 Jonathan Wakely <jwakely@redhat.com>
167 * doc/xml/manual/status_cxx2011.xml: Document to_int_type behaviour.
168 * include/bits/char_traits.h (char_traits<char16_t>::to_int_type):
169 Transform eof value to U+FFFD.
170 * testsuite/21_strings/char_traits/requirements/char16_t/eof.cc: New.
171 * testsuite/27_io/basic_streambuf/sgetc/char16_t/80624.cc: New.
172 * testsuite/27_io/basic_streambuf/sputc/char16_t/80624.cc: New.
174 * libsupc++/Makefile.am: Remove custom targets for files that need to
175 be compiled as C++11 or C++14.
176 * libsupc++/Makefile.in: Regenerate.
177 * libsupc++/del_ops.cc: Use pragma to disable -Wsized-deallocation
179 * libsupc++/del_opvs.cc: Likewise.
181 2017-06-02 Richard Biener <rguenther@suse.de>
182 Markus Eisenmann <meisenmann.lba@fh-salzburg.ac.at>
185 * libsupc++/eh_alloc.cc (pool::free): Keep list properly
186 sorted and add missing freelist item merging cases.
188 2017-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
190 (GLIBCXX_CROSSCONFIG): Handle *-solaris* like *-linux* etc.
191 Remove *-solaris* section.
192 * configure: Regenerate.
194 2017-05-31 Jonathan Wakely <jwakely@redhat.com>
197 * include/bits/stl_bvector.h (vector<bool>::_M_initialize): Avoid
198 null pointer dereference when size is zero.
199 * testsuite/23_containers/vector/bool/80893.cc: New.
200 * testsuite/util/testsuite_allocator.h (PointerBase::PointerBase):
201 Add non-explicit constructor from nullptr.
202 (PointerBase::derived() const): Add const-qualified overload.
204 2017-05-20 Tim Shen <timshen@google.com>
207 * include/std/variant(variant::variant): SFINAE on is_same first.
208 * testsuite/20_util/variant/any.cc: test case.
210 2017-05-24 Jonathan Wakely <jwakely@redhat.com>
212 * src/c++11/random.cc (random_device::_M_getentropy): Use __CHAR_BIT__
213 instead of fixed number of bits.
215 2017-05-24 Andreas Schwab <schwab@suse.de>
217 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
218 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
220 2017-05-23 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
221 Jonathan Wakely <jwakely@redhat.com>
224 * acinclude.m4: Bump libtool_VERSION.
225 * config/abi/pre/gnu.ver: Create GLIBCXX_3.4.24 with new symbol.
226 * config.h.in: Regenerate.
227 * configure: Regenerate.
228 * configure.ac: Add test for <linux/random.h>.
229 * doc/xml/manual/abi.xml: Document new library version.
230 * include/bits/random.h (random_device::entropy)
231 [_GLIBCXX_USE_RANDOM_TR1]: Add call to new _M_getentropy member.
232 (random_device::_M_getentropy): Declare.
233 * src/c++11/random.cc (random_device::_M_getentropy): Define.
234 * testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.24 to known
235 versions, and make it the latest version.
237 2017-05-23 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
240 * include/bits/locale_facets.tcc (num_get::_M_extract_int): Add
241 explicit conversion to avoid signed overflow.
243 2017-05-19 Jonathan Wakely <jwakely@redhat.com>
246 * include/bits/stl_algo.h (search): Add new overload for C++17.
247 * testsuite/25_algorithms/search/searcher.cc: New.
249 2017-05-18 Jonathan Wakely <jwakely@redhat.com>
252 * include/std/functional (_Mem_fn_traits_base): Add specializations
253 for noexcept member function types.
254 * testsuite/20_util/function_objects/mem_fn/80478.cc: New test.
256 2017-05-18 Jonathan Wakely <jwakely@redhat.com>
258 * doc/xml/manual/policy_data_structures.xml: Fix typo.
259 * doc/xml/manual/test_policy_data_structures.xml: Likewise.
260 * doc/html/*: Regenerate.
262 * doc/xml/manual/abi.xml: Document latest library versions.
263 * doc/xml/manual/build_hacking.xml: Document requirement to update
264 abi.xml when bumping library versions.
265 * doc/html/*: Regenerate.
267 2017-05-17 Jonathan Wakely <jwakely@redhat.com>
269 * include/bits/refwrap.h: Fix Doxygen warning.
270 * include/bits/specfun.h: Likewise.
271 * include/bits/std_function.h: Likewise.
272 * include/bits/stl_algo.h (set_union, set_intersection)
273 (set_difference, set_symmetric_difference): Add Doxygen @param tags
274 for output iterator parameters.
275 * include/bits/stl_iterator.h (inserter): Add Doxygen @param tag for
277 * include/std/mutex (try_lock, lock): Change Mutex to Lockable in
280 2017-05-17 Ville Voutilainen <ville.voutilainen@gmail.com>
282 Implement new C++ intrinsics __is_assignable and __is_constructible.
283 * include/std/type_traits (__do_is_static_castable_impl): Remove.
284 (__is_static_castable_impl, __is_static_castable_safe): Likewise.
285 (__is_static_castable, __do_is_direct_constructible_impl): Likewise.
286 (__is_direct_constructible_impl): Likewise.
287 (__is_direct_constructible_new_safe): Likewise.
288 (__is_base_to_derived_ref, __is_lvalue_to_rvalue_ref): Likewise.
289 (__is_direct_constructible_ref_cast): Likewise.
290 (__is_direct_constructible_new, __is_direct_constructible): Likewise.
291 (__do_is_nary_constructible_impl): Likewise.
292 (__is_nary_constructible_impl, __is_nary_constructible): Likewise.
293 (__is_constructible_impl): Likewise.
294 (is_constructible): Call the intrinsic.
295 (__is_assignable_helper): Remove.
296 (is_assignable): Call the intrinsic.
297 (is_trivially_constructible): Likewise.
298 (__is_trivially_copy_constructible_impl): New.
299 (is_trivially_copy_constructible): Use it.
300 (__is_trivially_move_constructible_impl): New.
301 (is_trivially_move_constructible): Use it.
302 (is_trivially_assignable): Call the intrinsic.
303 (__is_trivially_copy_assignable_impl): New.
304 (is_trivially_copy_assignable): Use it.
305 (__is_trivially_move_assignable_impl): New.
306 (is_trivially_move_assignable): Use it.
307 (testsuite/20_util/declval/requirements/1_neg.cc): Adjust.
308 (testsuite/20_util/is_trivially_copy_assignable/value.cc):
310 (testsuite/20_util/is_trivially_copy_constructible/value.cc): Likewise.
311 (testsuite/20_util/is_trivially_move_assignable/value.cc): Likewise.
312 (testsuite/20_util/is_trivially_move_constructible/value.cc): Likewise.
313 (testsuite/20_util/make_signed/requirements/typedefs_neg.cc): Adjust.
314 (testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc):
317 2017-05-16 Jonathan Wakely <jwakely@redhat.com>
319 * testsuite/experimental/source_location/1.cc: Change expected result
320 for source_location::current() used in default member initializer.
322 * doc/xml/manual/status_cxx2017.xml: Update status table.
323 * doc/html/*: Regenerate.
324 * include/Makefile.am: Add new header.
325 * include/Makefile.in: Regenerate.
326 * include/experimental/source_location: New header implementing N4519.
327 * testsuite/experimental/source_location/1.cc: New test.
330 * include/bits/shared_ptr_base.h [!__cpp_rtti] (type_info): Declare
331 outside versioned namespace.
333 * configure: Regenerate.
335 2017-05-16 Marc Glisse <marc.glisse@inria.fr>
337 * include/std/optional (_Optional_base::_M_get): Check precondition.
338 * testsuite/20_util/optional/cons/value_neg.cc: Update line numbers.
340 2017-05-16 Jonathan Wakely <jwakely@redhat.com>
342 * doc/xml/manual/appendix_contributing.xml: Link to test docs and
343 note higher DejaGnu version requirement.
344 * doc/html/*: Regenerate.
346 * doc/xml/manual/appendix_contributing.xml: Link to the list of bad
348 * doc/html/*: Regenerate.
350 2017-05-15 Jonathan Wakely <jwakely@redhat.com>
353 * include/bits/node_handle.h (_Node_insert_return): Reorder members.
354 (tuple_size, tuple_element): Remove partial specializations.
355 * include/bits/stl_tree.h (_Rb_tree::insert_return_type): Use
356 const_iterator for std::set.
357 * testsuite/23_containers/map/modifiers/extract.cc: New.
358 * testsuite/23_containers/set/modifiers/extract.cc: New.
359 * testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
360 * testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
362 2017-05-12 Jonathan Wakely <jwakely@redhat.com>
365 * include/std/utility (tuple_size<cv T>): Only define partial
366 specializations when tuple_size<T>::value is valid.
367 * testsuite/20_util/tuple/78939.cc: New.
368 * testsuite/20_util/tuple/cv_tuple_size_neg.cc: New.
370 2017-05-11 François Dumont <fdumont@gcc.gnu.org>
372 * include/bits/stl_tree.h [_GLIBCXX_INLINE_VERSION]
373 (_Rb_tree_impl<>): Remove _Is_pod_comparator
376 * include/debug/formatter.h [_GLIBCXX_INLINE_VERSION]
377 (__gnu_debug::_Error_formatter::_Parameter::_M_print_field): Remove.
378 (__gnu_debug::_Error_formatter::_Parameter::_M_print_description):
380 (__gnu_debug::_Error_formatter::_M_format_word): Remove.
381 (__gnu_debug::_Error_formatter::_M_print_word): Remove.
382 (__gnu_debug::_Error_formatter::_M_print_string): Remove.
383 (__gnu_debug::_Error_formatter::_M_get_max_length): Remove.
384 * src/c++11/debug.cc: Adapt.
385 * config/abi/pre/gnu-versioned-namespace.ver: Adapt.
387 2017-05-11 Jonathan Wakely <jwakely@redhat.com>
389 * doc/xml/manual/allocator.xml: Fix ViewCVS URLs.
390 * doc/xml/manual/mt_allocator.xml: Likewise.
391 * doc/html/*: Regenerate.
394 * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Define
395 function to get unique fake std::type_info reference.
396 (_Sp_counted_ptr_inplace::_M_get_deleter) [!__cpp_rtti]: Compare to
397 _S_ti() fake reference.
398 (__shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...)): Share
399 single implementation with or without RTTI enable.
400 [!__cpp_rtti]: Pass fake reference to _M_get_deleter.
401 * testsuite/20_util/shared_ptr/creation/alloc.cc: Change expected
402 allocation and deallocation counts.
403 * testsuite/20_util/shared_ptr/creation/single_allocation.cc: New.
404 * testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc:
407 2017-05-10 François Dumont <fdumont@gcc.gnu.org>
409 Bump version namespace.
410 * config/abi/pre/gnu-versioned-namespace.ver: Bump version namespace
411 from __7 to __8. Bump GLIBCXX_7.0 to GLIBCXX_8.0.
412 * acinclude.m4 (libtool_VERSION): Bump to 8:0:0.
413 * include/bits/c++config: Adapt.
414 * include/bits/regex.h: Adapt.
415 * include/experimental/bits/fs_fwd.h: Adapt.
416 * include/experimental/bits/lfts_config.h: Adapt.
417 * include/std/variant: Adapt.
418 * python/libstdcxx/v6/printers.py: Adapt.
419 * testsuite/libstdc++-prettyprinters/48362.cc: Adapt.
421 * include/bits/stl_algobase.h (std::__iter_swap<false>): Remove
424 2017-05-09 Jason Merrill <jason@redhat.com>
426 * testsuite/24_iterators/container_access.cc (test03): Make il3 static.
428 2017-05-08 Jonathan Wakely <jwakely@redhat.com>
430 * include/std/optional: Use a separate static_assert per condition.
431 * testsuite/20_util/optional/cons/value_neg.cc: Update dg-error line
434 * doc/xml/manual/mt_allocator.xml: Clarify deallocation behaviour.
435 * doc/html/*: Regenerate.
437 2017-05-02 Hugo Beauzée-Luyssen <hugo@beauzee.fr>
440 * config/os/mingw32-w64/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
442 2017-04-29 François Dumont <fdumont@gcc.gnu.org>
444 * testsuite/libstdc++-prettyprinters/48362.cc: Replace a regexp-test
447 2017-04-28 Jonathan Wakely <jwakely@redhat.com>
450 * include/bits/stl_construct.h (_Destroy, _Destroy_n): Add static
451 assertions to ensure type is destructible.
452 (destroy_at, destroy, destroy_n): Move from stl_uninitialized.h.
453 * include/bits/stl_uninitialized.h (destroy_at, destroy, destroy_n):
454 Move to stl_construct.h.
455 * testsuite/20_util/specialized_algorithms/memory_management_tools/
456 destroy_neg.cc: New test.
457 * testsuite/23_containers/vector/cons/destructible_neg.cc: New test.
459 * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
460 superfluous "" in dg-error.
462 2017-04-28 Tom de Vries <tom@codesourcery.com>
464 * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
465 superfluous '{ target *-*-* }' in dg-(error|warning|message|bogus).
467 2017-04-27 Jonathan Wakely <jwakely@redhat.com>
469 * include/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
470 (PB_DS_CLASS_C_DEC::end()): Remove redundant const in cast type.
471 * testsuite/util/testsuite_rng.h (twister_rand_gen::get_prob()):
474 2017-04-26 Jonathan Wakely <jwakely@redhat.com>
476 * testsuite/23_containers/deque/allocator/move_assign-2.cc: Improve
477 comment. Ensure first test works because allocator type propagates and
478 not because is_always_equal is true.
479 * testsuite/23_containers/vector/52591.cc: Likewise. Restore original
480 testcase that instantiates the move-assignment operator.
482 2017-04-24 Jonathan Wakely <jwakely@redhat.com>
485 * include/bits/random.tcc (gamma_distribution::operator()): Fix magic
486 number used in loop condition.
489 * include/bits/refwrap.h (ref, cref): Qualify calls.
490 * testsuite/20_util/reference_wrapper/80504.cc: New test.
493 * include/experimental/optional (optional::swap): Fix exception
496 2017-04-21 Jonathan Wakely <jwakely@redhat.com>
499 * include/std/future (_State_baseV2::_Setter::operator()): Remove
500 _S_check calls that are done after the pointer to the shared state is
501 already dereferenced.
502 (_State_baseV2::_Setter<_Res, void>): Define specialization for void
503 as partial specialization so it can be defined within the definition
505 (_State_baseV2::__setter): Call _S_check.
506 (_State_baseV2::__setter(promise<void>*)): Add overload for use by
507 promise<void>::set_value and promise<void>::set_value_at_thread_exit.
508 (promise<T>, promise<T&>, promise<void>): Make _State a friend.
509 (_State_baseV2::_Setter<void, void>): Remove explicit specialization.
510 (promise<void>::set_value, promise<void>::set_value_at_thread_exit):
511 Use new __setter overload.
512 * testsuite/30_threads/promise/members/at_thread_exit2.cc: New test.
513 * testsuite/30_threads/promise/members/set_exception.cc: Test
514 promise<T&> and promise<void> specializations.
515 * testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
516 Test for no_state error condition.
517 * testsuite/30_threads/promise/members/set_value2.cc: Likewise.
519 * include/backward/auto_ptr.h: Ignore deprecated warnings from use
521 * include/bits/shared_ptr.h: Likewise.
522 * include/bits/shared_ptr_base.h: Likewise.
523 * include/bits/unique_ptr.h: Likewise.
524 * libstdc++-v3/testsuite/20_util/default_delete/48631_neg.cc: Adjust
526 * libstdc++-v3/testsuite/20_util/default_delete/void_neg.cc: Likewise.
527 * libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc:
529 * libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc:
532 2017-04-20 Edward Smith-Rowland <3dw4rd@verizon.net>
534 PR libstdc++/68397 std::tr1::expint fails ... long double arguments.
535 * include/tr1/exp_integral.tcc: Increase iteration limits.
536 * testsuite/tr1/5_numerical_facilities/special_functions/15_expint/
537 pr68397.cc: New test.
538 * testsuite/special_functions/14_expint/pr68397.cc: New test.
540 2017-04-20 Jonathan Wakely <jwakely@redhat.com>
543 * include/std/atomic [!_GLIBCXX_USE_C99_STDINT_TR1] (atomic_int8_t)
544 (atomic_uint8_t, atomic_int16_t, atomic_uint16_t, atomic_int32_t,
545 (atomic_uint32_t, atomic_int64_t, atomic_uint64_t)
546 (atomic_int_least8_t, atomic_uint_least8_t, atomic_int_least16_t)
547 (atomic_uint_least16_t, atomic_int_least32_t, atomic_uint_least32_t)
548 (atomic_int_least64_t, atomic_uint_least64_t, atomic_int_fast8_t)
549 (atomic_uint_fast8_t, atomic_int_fast16_t, atomic_uint_fast16_t)
550 (atomic_int_fast32_t, atomic_uint_fast32_t, atomic_int_fast64_t)
551 (atomic_uint_fast64_t, atomic_intmax_t, atomic_uintmax_t): Don't
554 2017-04-19 Jonathan Wakely <jwakely@redhat.com>
556 * doc/xml/manual/abi.xml: Rephrase one of the references to the
558 * doc/xml/manual/test.xml: Document DejaGnu 1.5.3 requirement.
559 * doc/html/*: Regenerate.
561 * libsupc++/new: Update comment on #endif directive.
564 * include/experimental/bits/fs_dir.h (directory_iterator)
565 (recursive_directory_iterator): Remove noexcept from defaulted
569 * include/std/type_traits (is_aggregate): Change __has_builtin checks.
570 * libsupc++/new (launder): Likewise.
572 2017-04-18 Jonathan Wakely <jwakely@redhat.com>
574 * include/std/functional (default_searcher, __boyer_moore_array_base)
575 (__is_std_equal_to, __boyer_moore_base_t, boyer_moore_searcher)
576 (boyer_moore_horspool_searcher): Remove redundant namespace
578 (default_searcher::operator()): Construct return value early and
579 advance second member in-place.
580 (boyer_moore_horspool_searcher::operator()): Increment random access
581 iterator directly instead of using std::next.
582 (boyer_moore_searcher::operator()): Fix return value.
583 * testsuite/20_util/function_objects/searchers.cc: Check both parts
586 2017-04-12 Gerald Pfeifer <gerald@pfeifer.com>
588 * doc/xml/faq.xml: Update reference link to C++ ABI for Itanium.
589 * doc/xml/manual/abi.xml. Ditto (thrice).
591 2017-04-03 Jonathan Wakely <jwakely@redhat.com>
593 * doc/xml/manual/status_cxx2017.xml: Remove duplicate table entry.
594 * doc/html/*: Regenerate.
596 * testsuite/20_util/reference_wrapper/invoke.cc: Uncomment tests
599 * include/bits/ios_base.h: Correct comment.
600 * testsuite/util/testsuite_hooks.h: Likewise.
602 * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
603 * doc/xml/manual/appendix_contributing.xml (contrib.organization): Add
604 directories for debug, parallel and profile headers.
605 * doc/html/*: Regenerate.
607 * include/bits/char_traits.h (__gnu_cxx::char_traits): Add
608 _GLIBCXX14_CONSTEXPR on assign, compare, find, and length.
609 (std::char_traits<char>, std::char_traits<wchar_t>): Add
610 _GLIBCXX17_CONSTEXPR on assign.
611 (std::char_traits<char16_t>, std::char_traits<char32_t>): Add
612 _GLIBCXX17_CONSTEXPR on assign, compare, find, and length.
613 * testsuite/21_strings/char_traits/requirements/
614 constexpr_functions_c++17.cc: New test.
616 2017-04-03 Ville Voutilainen <ville.voutilainen@gmail.com>
619 * include/bits/stl_pair.h (__nonesuch_no_braces): New.
620 (operator=(typename conditional<
621 __and_<is_copy_assignable<_T1>,
622 is_copy_assignable<_T2>>::value,
623 const pair&, const __nonesuch&>::type)): Change __nonesuch
624 to __nonesuch_no_braces.
625 (operator=(typename conditional<
626 __not_<__and_<is_copy_assignable<_T1>,
627 is_copy_assignable<_T2>>>::value,
628 const pair&, const __nonesuch&>::type)): Likewise.
629 (operator=(typename conditional<
630 __and_<is_move_assignable<_T1>,
631 is_move_assignable<_T2>>::value,
632 pair&&, __nonesuch&&>::type)): Likewise.
633 * testsuite/20_util/pair/79141.cc: New.
635 2017-04-03 Ville Voutilainen <ville.voutilainen@gmail.com>
637 Implement std::is_aggregate.
638 * include/std/type_traits (is_aggregate, is_aggregate_v): New.
639 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
641 * testsuite/20_util/is_aggregate/requirements/typedefs.cc: Likewise.
642 * testsuite/20_util/is_aggregate/value.cc: Likewise.
644 2017-03-29 Ville Voutilainen <ville.voutilainen@gmail.com>
646 Adjust optional's pretty printer for LWG 2900.
647 * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter.__init__):
648 Look at the nested payload in case of non-experimental optional.
650 2017-03-29 Ville Voutilainen <ville.voutilainen@gmail.com>
652 Implement LWG 2900, The copy and move constructors
653 of optional are not constexpr.
654 * include/std/optional (_Optional_payload): New.
655 (_Optional_base): Remove the bool parameter.
656 (_Optional_base<_Tp, false>): Remove.
657 (_Optional_base()): Adjust.
658 (_Optional_base(nullopt_t)): Likewise.
659 (_Optional_base(in_place_t, _Args&&...)): Likewise.
660 (_Optional_base(in_place_t, initializer_list<_Up>, _Args&&...)):
662 (_Optional_base(const _Optional_base&)): Likewise.
663 (_Optional_base(_Optional_base&&)): Likewise.
664 (operator=(const _Optional_base&)): Likewise.
665 (operator=(_Optional_base&&)): Likewise.
666 (~_Optional_base()): Remove.
667 (_M_is_engaged()): Adjust.
668 (_M_get()): Likewise.
669 (_M_construct(_Args&&...)): Likewise.
670 (_M_destruct()): Likewise.
671 (_M_reset()): Likewise.
672 (_Optional_base::_Empty_byte): Remove.
673 (_Optional_base::_M_empty): Remove.
674 (_Optional_base::_M_payload): Adjust.
675 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
676 * testsuite/20_util/optional/constexpr/cons/value.cc: Add tests.
678 2017-03-28 Jonathan Wakely <jwakely@redhat.com>
681 * include/bits/random.tcc (generate_canonical): Use std::nextafter
682 or numeric_limits::epsilon() to reduce out-of-range values.
683 * testsuite/26_numerics/random/uniform_real_distribution/operators/
684 64351.cc: Verify complexity requirement is met.
686 * doc/xml/manual/abi.xml: Add xml:id anchor.
687 * doc/xml/manual/using.xml (manual.intro.using.macros): Document
688 _GLIBCXX_RELEASE. Link to new anchor for __GLIBCXX__ notes.
689 (concurrency.io.structure): Add markup.
690 * doc/html/*: Regenerate.
693 * include/bits/shared_ptr_base.h
694 (__shared_ptr::_M_enable_shared_from_this_with): Change parameters to
695 non-const and then use remove_cv to get unqualified type.
696 * testsuite/20_util/enable_shared_from_this/members/const.cc: Don't
697 cast away constness on object created const.
698 * testsuite/20_util/shared_ptr/cons/80229.cc: New test.
700 2017-03-26 Markus Trippelsdorf <markus@trippelsdorf.de>
703 * include/bits/stl_tree.h:
704 (_Rb_tree_header::_M_move_data(_Rb_tree_header&)): Also save _M_color.
706 2017-03-23 Jonathan Wakely <jwakely@redhat.com>
708 * testsuite/23_containers/array/tuple_interface/
709 tuple_element_debug_neg.cc: Adjust dg-error.
710 * testsuite/23_containers/list/operations/78389.cc: Fix less-than to
711 define a valid strict weak ordering.
712 * testsuite/23_containers/priority_queue/67085.cc: Disable test for
713 Debug Mode, due to debug checks making extra copies of predicate.
714 * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
717 * doc/xml/faq.xml: Add link.
718 * doc/xml/manual/backwards_compatibility.xml: Remove outdated
719 information on pre-ISO headers. Replace broken link to C++ FAQ Lite.
720 * doc/xml/manual/io.xml: Update broken link.
721 * doc/html/*: Regenerate.
723 2017-03-23 Daniel Kruegler <daniel.kruegler@gmail.com>
725 Implement LWG 2686, Why is std::hash specialized for error_code,
726 but not error_condition?
727 * include/std/system_error (hash<error_condition>): Define for C++17.
728 * testsuite/20_util/hash/operators/size_t.cc (hash<error_condition>):
729 Instantiate test for error_condition.
730 * testsuite/20_util/hash/requirements/explicit_instantiation.cc
731 (hash<error_condition>): Instantiate hash<error_condition>.
733 * include/bits/c++config (_GLIBCXX17_INLINE): Define.
734 * include/bits/regex_constants.h (All std::regex_constants constants):
735 Add _GLIBCXX17_INLINE as per P0607R0.
736 * include/bits/std_mutex.h (defer_lock, try_to_lock, adopt_lock):
738 * include/bits/stl_pair.h (piecewise_construct): Likewise.
739 * include/bits/uses_allocator.h (allocator_arg, uses_allocator_v)
740 (__is_uses_allocator_constructible_v)
741 (__is_nothrow_uses_allocator_constructible_v): Likewise.
742 * include/std/chrono (treat_as_floating_point_v): Likewise.
743 * include/std/functional (is_bind_expression_v, is_placeholder_v):
745 * include/std/optional (nullopt): Likewise.
746 * include/std/ratio (ratio_equal_v, ratio_not_equal_v, ratio_less_v)
747 ratio_less_equal_v, ratio_greater_v, ratio_greater_equal_v): Likewise.
748 * include/std/system_error (is_error_code_enum_v)
749 (is_error_condition_enum_v): Likewise.
750 * include/std/tuple (tuple_size_v, ignore): Likewise.
751 (ignore): Declare ignore constexpr as per LWG 2773, declare assignment
752 constexpr as per LWG 2933.
753 * include/std/type_traits (All variable templates): Add
754 _GLIBCXX17_INLINE as per P0607R0.
755 * include/std/variant (variant_size_v, variant_npos, __index_of_v)
756 (__tuple_count_v, __exactly_once): Likewise.
757 * testsuite/18_support/headers/new/synopsis.cc
758 (hardware_destructive_interference_size)
759 (hardware_constructive_interference_size): Likewise for commented-out
761 * testsuite/20_util/tuple/creation_functions/constexpr.cc: Add new
762 test function for constexpr std::ignore (LWG 2773).
763 * testsuite/20_util/tuple/creation_functions/constexpr_cpp14.cc: New
766 2017-03-22 Jonathan Wakely <jwakely@redhat.com>
768 * include/bits/shared_ptr.h (shared_ptr, weak_ptr): Add deduction
770 * include/bits/std_function.h (function): Likewise.
771 * include/bits/stl_pair.h (pair): Likewise.
772 * include/debug/array (__gnu_debug::array): Likewise.
773 * include/std/array (array): Likewise.
774 * include/std/functional (make_default_searcher)
775 (make_boyer_moore_searcher, make_boyer_moore_horspool_searcher):
776 Remove generator functions.
777 * include/std/tuple (tuple): Add deduction guides.
778 * include/std/valarray (valarray): Likewise.
779 * testsuite/20_util/function_objects/searchers.cc: Adjust to use
780 class template argument deduction instead of generator functions.
781 * testsuite/20_util/function/cons/deduction.cc: New test.
782 * testsuite/20_util/optional/cons/deduction_guide.cc: Rename to ...
783 * testsuite/20_util/optional/cons/deduction.cc: ... here.
784 * testsuite/20_util/pair/cons/deduction.cc: New test.
785 * testsuite/20_util/shared_ptr/cons/deduction.cc: New test.
786 * testsuite/20_util/tuple/cons/deduction.cc: New test.
787 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error.
788 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: New test.
789 * testsuite/20_util/weak_ptr/cons/deduction.cc: New test.
790 * testsuite/23_containers/array/cons/deduction.cc: New test.
791 * testsuite/23_containers/array/cons/deduction_neg.cc: New test.
792 * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc:
794 * testsuite/23_containers/array/tuple_interface/get_neg.cc: Likewise.
795 * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
797 * testsuite/26_numerics/valarray/deduction.cc: New test.
798 * testsuite/30_threads/lock_guard/cons/deduction.cc: New test.
799 * testsuite/30_threads/scoped_lock/cons/deduction.cc: New test.
800 * testsuite/30_threads/unique_lock/cons/deduction.cc: New test.
802 2017-03-20 François Dumont <fdumont@gcc.gnu.org>
804 * include/bits/stl_deque.h (deque): Access allocator value_type only if
805 concept checks are enabled.
806 * include/bits/stl_stack.h (stack): Likewise.
807 * include/bits/stl_vector.h (vector): Likewise.
808 * include/bits/stl_list.h (list): Likewise and check
809 _SGIAssignableConcept only in C++03.
810 * include/bits/stl_map.h (map): Likewise.
811 * include/bits/stl_set.h (set): Likewise.
812 * include/bits/stl_multimap.h (multimap): Likewise.
813 * include/bits/stl_multiset.h (multiset): Likewise.
814 * include/bits/stl_queue.h (queue, priority_queue): Likewise.
816 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
818 * doc/xml/manual/appendix_contributing.xml: Convert link to
820 Update link to the C++ standard at ansi.org.
822 * doc/xml/faq.xml: Remove information redundant with the above;
823 instead add a reference.
825 2017-03-17 Jonathan Wakely <jwakely@redhat.com>
827 * src/c++11/codecvt.cc (range): Add non-type template parameter and
828 define oerloaded operators for reading and writing code units.
829 (range<Elem, false>): Define partial specialization for accessing
830 wide characters in potentially unaligned byte ranges.
831 (ucs2_span(const char16_t*, const char16_t*, ...))
832 (ucs4_span(const char16_t*, const char16_t*, ...)): Change parameters
833 to range<const char16_t, false> in order to avoid unaligned reads.
834 (__codecvt_utf16_base<char16_t>::do_out)
835 (__codecvt_utf16_base<char32_t>::do_out)
836 (__codecvt_utf16_base<wchar_t>::do_out): Use range specialization for
837 unaligned data to avoid unaligned writes.
838 (__codecvt_utf16_base<char16_t>::do_in)
839 (__codecvt_utf16_base<char32_t>::do_in)
840 (__codecvt_utf16_base<wchar_t>::do_in): Likewise for writes. Return
841 error if there are unprocessable trailing bytes.
842 (__codecvt_utf16_base<char16_t>::do_length)
843 (__codecvt_utf16_base<char32_t>::do_length)
844 (__codecvt_utf16_base<wchar_t>::do_length): Pass arguments of type
845 range<const char16_t, false> to span functions.
846 * testsuite/22_locale/codecvt/codecvt_utf16/misaligned.cc: New test.
848 2017-03-16 Jonathan Wakely <jwakely@redhat.com>
851 * src/c++11/codecvt.cc (to_integer(codecvt_mode)): Fix target type.
854 * src/c++11/codecvt.cc (__codecvt_utf16_base<wchar_t>::do_out)
855 (__codecvt_utf16_base<wchar_t>::do_in): Convert char arguments to
856 char16_t to work with UTF-16 instead of UTF-8.
857 * testsuite/22_locale/codecvt/codecvt_utf16/80041.cc: New test.
859 * src/c++11/codecvt.cc (codecvt<char16_t, char, mbstate_t>)
860 (codecvt<char32_t, char, mbstate_t>, __codecvt_utf8_base<char16_t>)
861 (__codecvt_utf8_base<char32_t>, __codecvt_utf8_base<wchar_t>)
862 (__codecvt_utf16_base<char16_t>, __codecvt_utf16_base<char32_t>)
863 (__codecvt_utf16_base<wchar_t>, __codecvt_utf8_utf16_base<char16_t>)
864 (__codecvt_utf8_utf16_base<char32_t>)
865 (__codecvt_utf8_utf16_base<wchar_t>): Fix do_encoding() and
866 do_max_length() return values.
867 * testsuite/22_locale/codecvt/codecvt_utf16/members.cc: New test.
868 * testsuite/22_locale/codecvt/codecvt_utf8/members.cc: New test.
869 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/members.cc: New test.
872 * include/bits/locale_conv.h (__do_str_codecvt): Set __count on
874 * src/c++11/codecvt.cc (operator&=, operator|=, operator~): Overloads
875 for manipulating codecvt_mode values.
876 (read_utf16_bom): Compare input to BOM constants instead of integral
877 constants that depend on endianness. Take mode parameter by
878 reference and adjust it, to distinguish between no BOM present and
879 UTF-16BE BOM present.
880 (ucs4_in, ucs2_span, ucs4_span): Adjust calls to read_utf16_bom.
881 (surrogates): New enumeration type.
882 (utf16_in, utf16_out): Add surrogates parameter to choose between
883 UTF-16 and UCS2 behaviour.
884 (utf16_span, ucs2_span): Use std::min not std::max.
885 (ucs2_out): Use std::min not std::max. Disallow surrogate pairs.
886 (ucs2_in): Likewise. Adjust calls to read_utf16_bom.
887 * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc: New test.
888 * testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: New test.
891 * src/c++11/codecvt.cc (write_utf16_code_point): Don't write 0xffff
893 (__codecvt_utf8_utf16_base<char32_t>::do_in): Use native endianness
894 for internal representation.
895 (__codecvt_utf8_utf16_base<wchar_t>::do_in): Likewise.
896 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/79511.cc: New test.
899 * include/bits/stl_heap.h (__is_heap, push_heap, __adjust_heap)
900 (pop_heap, make_heap, sort_heap, is_heap_until, is_heap): Cope with
901 invalid instantiations using function types for _Compare argument.
902 * testsuite/25_algorithms/make_heap/80064.cc: New test.
905 * python/libstdcxx/v6/printers.py (find_type): Avoid gdb.Type.name
906 for GDB 7.6 compatibility, use gdb.Type.unqualified instead.
908 2017-03-15 Ville Voutilainen <ville.voutilainen@gmail.com>
910 Implement LWG 2857, {variant,optional,any}::emplace should
911 return the constructed value.
912 * include/std/any (emplace(_Args&&...)): Change the return type and
913 return a reference to the constructed value.
914 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
915 * include/std/optional (emplace(_Args&&...)): Likewise.
916 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
917 * include/std/variant (emplace<_Tp>(_Args&&...)): Likewise.
918 (emplace<_Tp>(initializer_list<_Up>, _Args&&...)): Likewise.
919 (emplace<_Np>(_Args&&...)): Likewise.
920 (emplace<_Np>(initializer_list<_Up>, _Args&&...)): Likewise.
921 * testsuite/20_util/any/assign/emplace.cc: Add tests for
922 checking the return value of emplace.
923 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
924 * testsuite/20_util/optional/assignment/6.cc: Add tests for
925 checking the return value of emplace.
926 * testsuite/20_util/variant/run.cc: Likewise.
928 2017-03-15 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
931 * include/ext/pb_ds/qdetail/binary_heap_/binary_heap_.hpp
933 (push_heap): Remove the wrong checking using is_heap.
934 (make_heap): Remove the assertion using is_heap.
935 * include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
937 (resize_for_insert_if_needed): Add PB_DS_ASSERT_VALID after
940 2017-03-15 Jonathan Wakely <jwakely@redhat.com>
943 * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
945 * testsuite/ext/pb_ds/regression/priority_queues.cc: Fix copy&paste
948 2017-03-15 Jonathan Wakely <jwakely@redhat.com>
950 * acinclude.m4 (GLIBCXX_CHECK_S_ISREG_OR_S_IFREG): Fix typo in
952 * config.h.in: Regenerate.
953 * configure: Regenerate.
954 * doc/Makefile.in: Regenerate.
956 2017-03-14 Jonathan Wakely <jwakely@redhat.com>
959 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
960 (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Replace
961 with a constrained template.
962 [!_GLIBCXX_USE_CXX11_ABI]
963 (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Likewise.
964 * testsuite/21_strings/basic_string/cons/char/79162.cc: New test.
965 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: New test.
967 2017-03-13 Ville Voutilainen <ville.voutilainen@gmail.com>
970 * include/bits/list.tcc (merge(list&&)): Use const for the size_t
972 (merge(list&&, _StrictWeakOrdering)): Likewise.
973 * testsuite/23_containers/list/operations/80034.cc: New.
975 2017-03-13 Ville Voutilainen <ville.voutilainen@gmail.com>
977 Implement LWG 2806, Base class of bad_optional_access.
978 * include/std/optional (bad_optional_access):
979 Derive from std::exception.
980 (bad_optional_access::bad_optional_access): Adjust.
981 (bad_optional_access::what): New.
982 (__throw_bad_optional_access(const char*)):
983 Remove the parameter and adjust calls.
984 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
985 * testsuite/20_util/optional/typedefs.cc: Likewise.
987 2017-03-12 Ville Voutilainen <ville.voutilainen@gmail.com>
989 Implement LWG 2934, optional<const T> doesn't compare with T.
990 * include/std/optional
991 (operator==(const optional<_Tp>&, const optional<_Tp>&)):
992 Turn into operator==(const optional<_Tp>&, const optional<_Up>&).
993 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
994 Turn into operator!=(const optional<_Tp>&, const optional<_Up>&).
995 (operator<(const optional<_Tp>&, const optional<_Tp>&)):
996 Turn into operator<(const optional<_Tp>&, const optional<_Up>&.
997 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
998 Turn into operator>(const optional<_Tp>&, const optional<_Up>&.
999 (operator<=(const optional<_Tp>&, const optional<_Tp>&)):
1000 Turn into operator<=(const optional<_Tp>&, const optional<_Up>&).
1001 (operator>=(const optional<_Tp>&, const optional<_Tp>&)):
1002 Turn into operator>=(const optional<_Tp>&, const optional<_Up>&).
1003 (operator==(const optional<_Tp>&, const _Tp&)):
1004 Turn into operator==(const optional<_Tp>&, const _Up&).
1005 (operator==(const _Tp&, const optional<_Tp>&)):
1006 Turn into operator==(const _Up&, const optional<_Tp>&).
1007 (operator!=(const optional<_Tp>&, const _Tp&)):
1008 Turn into operator!=(const optional<_Tp>&, const _Up&).
1009 (operator!=(const _Tp&, const optional<_Tp>&)):
1010 Turn into operator!=(const _Up&, const optional<_Tp>&).
1011 (operator<(const optional<_Tp>&, const _Tp&)):
1012 Turn into operator<(const optional<_Tp>&, const _Up&).
1013 (operator<(const _Tp&, const optional<_Tp>&)):
1014 Turn into operator<(const _Up&, const optional<_Tp>&).
1015 (operator>(const optional<_Tp>&, const _Tp&)):
1016 Turn into operator>(const optional<_Tp>&, const _Up&).
1017 (operator>(const _Tp&, const optional<_Tp>&)):
1018 Turn into operator>(const _Up&, const optional<_Tp>&).
1019 (operator<=(const optional<_Tp>&, const _Tp&)):
1020 Turn into operator<=(const optional<_Tp>&, const _Up&).
1021 (operator<=(const _Tp&, const optional<_Tp>&)):
1022 Turn into operator<=(const _Up&, const optional<_Tp>&).
1023 (operator>=(const optional<_Tp>&, const _Tp&)):
1024 Turn into operator>=(const optional<_Tp>&, const _Up&).
1025 (operator>=(const _Tp&, const optional<_Tp>&)):
1026 Turn into operator>=(const _Up&, const optional<_Tp>&).
1027 * testsuite/20_util/optional/relops/7.cc: New.
1029 2017-03-10 Jonathan Wakely <jwakely@redhat.com>
1031 * testsuite/17_intro/names.cc: Undefine macros that clash with
1032 identifiers in AIX system headers.
1034 * include/bits/invoke.h (__invoke): Use __invoke_result instead of
1035 result_of, and __is_nothrow_invocable instead of
1036 __is_nothrow_callable.
1037 * include/bits/shared_ptr_base.h (__shared_ptr): Use __is_invocable
1038 instead of __is_callable.
1039 * include/std/functional (invoke): use invoke_result_t instead of
1040 result_of_t and is_nothrow_invocable instead of is_nothrow_callable.
1041 (_Not_fn): Use __invoke_result instead of result_of.
1042 * include/std/type_traits (__result_of_memobj, __result_of_memfun):
1043 Remove partial specializations for reference_wrapper types.
1044 (__result_of_impl): Use __inv_unwrap to strip reference_wrapper.
1045 (__invoke_result): Define replacement for result_of and then use it to
1047 (__is_callable_impl, __is_callable, __is_nothrow_callable): Replace
1048 with __is_invocable_impl, __is_invocable, and __is_nothrow_invocable
1050 (invoke_result, invoke_result_t): Define for C++17.
1051 (is_callable, is_nothrow_callable): Replace with is_invocable,
1052 is_invocable_r, is_nothrow_invocable, and is_nothrow_invocable_r.
1053 (is_callable_v, is_nothrow_callable_v): Replace with is_invocable_v,
1054 is_invocable_r_v, is_nothrow_invocable_v, and is_nothrow_invocable_r_v.
1055 * include/std/variant (hash<variant<T...>>): Use is_nothrow_invocable_v
1056 instead of is_nothrow_callable_v.
1057 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
1059 * testsuite/20_util/function_objects/not_fn/1.cc: Use is_invocable
1060 instead of is_callable.
1061 * testsuite/20_util/is_callable/*: Rename directory and adjust tests
1063 * testsuite/20_util/is_nothrow_callable/*: Likewise.
1064 * testsuite/20_util/optional/hash.cc: Use is_invocable_v instead of
1066 * testsuite/20_util/variant/hash.cc: Likewise.
1068 2017-03-10 George Lander <george.lander@arm.com>
1070 * acinclude.m4 (glibcxx_cv_obsolete_isnan): Define
1071 _GLIBCXX_INCLUDE_NEXT_C_HEADERS before including math.h.
1072 * configure: Regenerate.
1074 2017-03-09 Jonathan Wakely <jwakely@redhat.com>
1076 * include/std/functional (_Not_fn): Define macro to simplify
1077 repetitive function definitions.
1079 * doc/xml/manual/status_cxx2017.xml: Document std::byte support.
1080 * include/c_global/cstddef (std::byte): Define for C++17.
1081 * testsuite/18_support/byte/global_neg.cc: New test.
1082 * testsuite/18_support/byte/ops.cc: New test.
1083 * testsuite/18_support/byte/requirements.cc: New test.
1085 2017-03-05 Jonathan Wakely <jwakely@redhat.com>
1087 * doc/xml/manual/status_cxx2017.xml: Document P0156R2 status.
1088 * doc/html/*: Regenerate.
1089 * include/std/mutex (scoped_lock): Implement new C++17 template.
1090 * testsuite/30_threads/scoped_lock/cons/1.cc: New test.
1091 * testsuite/30_threads/scoped_lock/requirements/
1092 explicit_instantiation.cc: New test.
1093 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: New test.
1095 2017-03-02 Gerald Pfeifer <gerald@pfeifer.com>
1096 François Dumont <frs.dumont@gmail.com>
1097 Jonathan Wakely <jwakely@redhat.com>
1099 * doc/xml/manual/debug_mode.xml: Update and simplify note
1100 on link- and run-time coexistence.
1102 2017-03-02 Jonathan Wakely <jwakely@redhat.com>
1104 * testsuite/17_intro/headers/names.cc: Rename to ...
1105 * testsuite/17_intro/names.cc: ... here.
1108 * include/bits/hashtable_policy.h (__clp2): Use reserved names for
1109 parameters and local variables.
1110 * include/bits/ios_base.h (make_error_code, make_error_condition):
1112 * include/bits/list.tcc (list::sort): Likewise.
1113 * include/bits/mask_array.h (mask_array): Likewise.
1114 * include/bits/regex.h (regex_token_iterator): Likewise.
1115 * include/bits/slice_array.h (slice_array): Likewise.
1116 * include/bits/stl_algo.h (__sample): Likewise.
1117 * include/std/memory (undeclare_no_pointers): Likewise.
1118 * include/std/type_traits (is_callable_v, is_nothrow_callable_v):
1120 * libsupc++/exception_ptr.h (__dest_thunk): Likewise.
1121 * testsuite/17_intro/headers/names.cc: New test.
1124 * include/std/functional (bind::_Res_type_impl): Fix incorrect use of
1125 result_of that loses top-level cv-qualifiers.
1126 * testsuite/20_util/bind/79798.cc: New test.
1128 2017-03-01 Gerald Pfeifer <gerald@pfeifer.com>
1130 * doc/xml/manual/documentation_hacking.xml: Tweak link to
1133 2017-02-23 Jonathan Wakely <jwakely@redhat.com>
1135 * include/experimental/iterator: Include <iterator>.
1136 * testsuite/experimental/iterator/requirements.cc: Check for contents
1139 2017-02-19 Dinka Ranns <dinka.ranns@googlemail.com>
1141 C++17 GB50 resolution
1142 * include/std/chrono (duration::operator++()): Add
1143 _GLIBCXX17_CONSTEXPR.
1144 (duration::operator++(int)): Likewise.
1145 (duration::operator--()): Likewise.
1146 (duration::operator--(int)): Likewise.
1147 (duration::operator+=(const duration&)): Likewise.
1148 (duration::operator-=(const duration&)): Likewise.
1149 (duration::operator*=(const rep&)): Likewise.
1150 (duration::operator/=(const rep&)): Likewise.
1151 (duration::operator%=(const rep&)): Likewise.
1152 (duration::operator%=(const duration&)): Likewise.
1153 (time_point::operator+=(const duration&)): Likewise.
1154 (time_point::operator-=(const duration&)): Likewise.
1155 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: New test.
1156 * testsuite/20_util/duration/literals/range.cc: Adjust dg-error.
1157 * testsuite/20_util/time_point/arithmetic/constexpr.cc: New test.
1159 2017-02-19 Gerald Pfeifer <gerald@pfeifer.com>
1161 * doc/xml/manual/debug.xml: Adjust link to ThreadSanitizer.
1163 2017-02-18 Gerald Pfeifer <gerald@pfeifer.com>
1165 * doc/xml/manual/io.xml: Update link to groups.google.com.
1166 Tweak link description.
1168 2017-02-18 Gerald Pfeifer <gerald@pfeifer.com>
1170 * doc/xml/manual/profile_mode.xml: Fix link.
1172 2017-02-16 Gerald Pfeifer <gerald@pfeifer.com>
1174 * doc/xml/manual/policy_data_structures.xml: Simplify and
1175 standardize references to boost.org.
1176 * doc/xml/manual/policy_data_structures_biblio.xml: Ditto.
1177 * doc/xml/manual/shared_ptr.xml: Ditto.
1179 2017-02-16 Jonathan Wakely <jwakely@redhat.com>
1182 * src/c++11/snprintf_lite.cc (__concat_size_t): Calculate length
1183 written to buffer, not length remaining in buffer.
1185 2017-02-15 Tim Shen <timshen@google.com>
1188 * include/std/variant (operator<(), operator>(), operator<=(),
1189 operator>=(), operator==(), operator!=()): Implement P0393R3.
1190 * testsuite/20_util/variant/compile.cc: Adjust tests.
1191 * testsuite/20_util/variant/run.cc: Adjust tests.
1193 2017-02-15 Tim Shen <timshen@google.com>
1196 * include/std/variant (visit()): Forward variant types to the return
1197 type detection code.
1198 * testsuite/20_util/variant/compile.cc: Add test cases.
1200 2017-02-13 H.J. Lu <hongjiu.lu@intel.com>
1203 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
1205 2017-02-13 Jakub Jelinek <jakub@redhat.com>
1208 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
1209 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
1210 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Likewise.
1211 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
1212 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Likewise.
1213 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Likewise.
1214 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Likewise.
1215 * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Likewise.
1216 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
1218 2017-02-13 Jonathan Wakely <jwakely@redhat.com>
1221 * include/std/future (__future_base::_Task_state::_M_run)
1222 (__future_base::_Task_state::_M_run_delayed): Use lvalue types in
1223 result_of expressions.
1224 * testsuite/30_threads/packaged_task/79486.cc: New.
1226 2017-02-11 Jonathan Wakely <jwakely@redhat.com>
1229 * include/bits/shared_ptr_base.h (__shared_ptr(_Yp*, _Deleter))
1230 (__shared_ptr(_Yp*, _Deleter, _Alloc)): Use lvalue types in
1231 __is_callable check.
1232 * testsuite/20_util/shared_ptr/cons/79467.cc: New.
1234 * include/bits/atomic_base.h: Re-indent.
1236 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
1238 * doc/xml/manual/profile_mode.xml: Update a paper reference.
1240 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
1242 * src/c++11/snprintf_lite.cc (__err): Use https for bug reporting.
1244 2017-02-08 Jonathan Wakely <jwakely@redhat.com>
1246 * doc/xml/manual/policy_data_structures.xml: Fix spelling of author's
1248 * doc/xml/manual/policy_data_structures_biblio.xml: Likewise. Remove
1249 broken links to texts that are no longer online.
1250 * doc/xml/manual/profile_mode.xml: Update links to CGO 2009 paper and
1252 * doc/xml/manual/using.xml: Update links to memory model information.
1253 * doc/xml/manual/using_exceptions.xml: Update link to "Appendix E:
1254 Standard-Library Exception Safety".
1255 * doc/html/*: Regenerate.
1257 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
1259 * doc/xml/manual/profile_mode.xml: Unbreak link to
1260 "Optimizing Sorting with Machine Learning Algorithms".
1262 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
1264 * src/c++11/snprintf_lite.cc (__err): Update bug reporting URL.
1266 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
1268 * doc/xml/manual/abi.xml: Update link to "Sun Studio 11: C++
1271 2017-02-07 Gerald Pfeifer <gerald@pfeifer.com>
1273 * doc/html/ext/lwg-active.html: Remove.
1274 * doc/html/ext/lwg-closed.html: Ditto.
1275 * doc/html/ext/lwg-defects.html: Ditto.
1277 * doc/Makefile.am (xml_extradir): Remove.
1279 (stamp-html-docbook-lwg): Remove recipe...
1280 (stamp-html-docbook-data): ...and its use here.
1281 * doc/Makefile.in: Regenerate.
1283 * doc/xml/manual/intro.xml: Shorten two paragraphs explaining
1284 the relationship to the upstream working group.
1285 Replace a local link to ../ext/lwg-active.html by the upstream one.
1286 Replace all reference to ../ext/lwg-defects.html by a new entity
1287 &DR; which refers to the upstream address.
1289 2017-02-07 Gerald Pfeifer <gerald@pfeifer.com>
1291 * doc/xml/manual/status_cxx2017.xml: Fix link to N4284.
1293 2017-02-06 Jonathan Wakely <jwakely@redhat.com>
1296 * testsuite/20_util/duration/literals/range.cc: Prune extra output
1299 2017-02-06 Gerald Pfeifer <gerald@pfeifer.com>
1301 * doc/xml/manual/documentation_hacking.xml: Update URL of the
1302 DocBook Element Reference. Use that term as link description
1303 instead of "online".
1304 epubcheck has moved to GitHub.
1305 Remove obsolete link to DocBook Publishing Tools.
1307 2017-02-03 Jonathan Wakely <jwakely@redhat.com>
1310 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Restore ABI override
1311 so new ios::failure can be caught even when old ABI is the default.
1312 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
1313 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
1314 exceptions_failbit.cc: Likewise.
1315 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
1316 exceptions_failbit.cc: Likewise.
1317 * testsuite/27_io/basic_istream/extractors_other/char/
1318 exceptions_null.cc: Likewise.
1319 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
1320 exceptions_null.cc: Likewise.
1321 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
1322 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
1323 * testsuite/27_io/basic_ostream/inserters_other/char/
1324 exceptions_null.cc: Likewise.
1325 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
1326 exceptions_null.cc: Likewise.
1327 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
1330 * src/c++11/Makefile.am: Add new files.
1331 * src/c++11/Makefile.in: Regenerate.
1332 * src/c++11/cow-string-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
1333 (operator<<, operator>>, getline): Move explicit instantiations to ...
1334 * src/c++11/cow-string-io-inst.cc: ... new file.
1335 * src/c++11/cow-wstring-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
1336 (operator<<, operator>>, getline): Move explicit instantiations to ...
1337 * src/c++11/cow-wstring-io-inst.cc: ... new file.
1338 * src/c++11/functexcept.cc (__throw_ios_failure, __throw_system_error)
1339 (__throw_future_error, __throw_bad_function_call):
1340 (__throw_regex_error): Move functions for C++11 exceptions to the
1341 files that define the exception types.
1342 * src/c++11/functional.cc (__throw_bad_function_call): Move here.
1343 * src/c++11/future.cc (__throw_future_error): Likewise.
1344 * src/c++11/ios.cc (__throw_ios_failure): Likewise.
1345 * src/c++11/regex.cc (__throw_regex_error): Likewise.
1346 * src/c++11/snprintf_lite.cc (__concat_size_t): Print decimal
1347 representation directly instead of calling __int_to_char.
1348 * src/c++11/sso_string.cc (__sso_string): New file for definition
1349 of __sso_string type.
1350 * src/c++11/string-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
1351 explicit instantiations of narrow string I/O functions.
1352 * src/c++11/system_error.cc (__throw_system_error): Move here.
1353 (__sso_string): Move to new file.
1354 * src/c++11/wstring-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
1355 explicit instantiations of wide string I/O functions.
1356 * src/c++98/misc-inst.cc [_GLIBCXX_USE_CXX11_ABI] (operator<<)
1357 (operator>>, getline): Remove explicit instantiations from here.
1359 2017-02-02 H.J. Lu <hongjiu.lu@intel.com>
1361 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
1363 2017-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1365 * configure.host: Separate Solaris/SPARC and x86 baselines.
1366 * config/abi/post/solaris2.10/baseline_symbols.txt: Move ...
1367 * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: ... here.
1368 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Move ...
1369 * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
1371 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Move ...
1372 * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: ... here.
1373 * config/abi/post/i386-solaris2.10/baseline_symbols.txt: New file.
1374 * config/abi/post/solaris2.11/baseline_symbols.txt: Move ...
1375 * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: ... here.
1376 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Move ...
1377 * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
1379 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Move ...
1380 * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: ... here.
1381 * config/abi/post/i386-solaris2.11/baseline_symbols.txt: New file.
1383 * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
1384 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
1385 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
1386 * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
1387 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
1388 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
1390 2017-02-01 Jonathan Wakely <jwakely@redhat.com>
1393 * include/bits/predefined_ops.h (_Iter_equals_iter): Store iterator
1395 (_Iter_comp_to_iter): Likewise.
1396 * testsuite/25_algorithms/search/78346.cc: New test.
1399 * config/abi/pre/gnu.ver: Remove recently added symbols.
1400 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1401 (basic_string::_M_copy_assign): Remove.
1402 (basic_string::operator=(const basic_string&)): Don't dispatch to
1403 _M_copy_assign. If source object is small just deallocate, otherwise
1404 perform new allocation before making any changes.
1405 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
1406 (basic_string::_M_copy_assign(const basic_string&, true_type)):
1408 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
1409 Test cases where the allocators are equal or the string is small.
1410 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
1413 2017-01-30 Ville Voutilainen <ville.voutilainen@gmail.com>
1415 Implement LWG 2825, LWG 2756 breaks class template argument
1416 deduction for optional.
1417 * include/std/optional: Add a deduction guide.
1418 * testsuite/20_util/optional/cons/deduction_guide.cc: New.
1420 2017-01-27 Jonathan Wakely <jwakely@redhat.com>
1423 * config/abi/pre/gnu.ver: Add new symbols.
1424 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1425 (basic_string::_M_copy_assign): New overloaded functions to perform
1427 (basic_string::operator=(const basic_string&)): Dispatch to
1429 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
1430 (basic_string::_M_copy_assign(const basic_string&, true_type)):
1431 Define, performing rollback on exception.
1432 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
1433 Test exception-safety guarantee.
1434 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
1436 * testsuite/util/testsuite_allocator.h (uneq_allocator::swap): Make
1439 2017-01-26 Jonathan Wakely <jwakely@redhat.com>
1442 * include/tr1/complex (conj): Remove using-declaration and restore
1443 overloads, reverting previous change.
1445 * testsuite/23_containers/list/operations/78389.cc: Fix for C++11
1447 * testsuite/23_containers/priority_queue/requirements/constructible.cc:
1448 Mark as unsupported in C++98 mode.
1449 * testsuite/23_containers/queue/requirements/constructible.cc:
1451 * testsuite/23_containers/stack/requirements/constructible.cc:
1453 * testsuite/25_algorithms/make_heap/movable.cc: Fix for C++11 mode.
1456 * include/bits/c++config (literals::string_view_literals::__7): Add.
1457 Only declare versioned namespaces for the relevant C++ dialects.
1458 * include/experimental/bits/erase_if.h (fundamentals_v2::__detail):
1459 Add versioning macros.
1460 * include/experimental/bits/lfts_config.h:
1461 (fundamentals_v1::__detail::__7, fundamentals_v2::__detail::__7): Add.
1462 * include/experimental/string_view (fundamentals_v2::__detail):
1463 Add versioning macros.
1464 (fundamentals_v2::__detail::__identity): Remove.
1465 (fundamentals_v2::__detail::__idt): Use common_type instead of
1466 __detail::__identity.
1467 * include/std/string_view (__detail::__identity, __detail::__idt):
1469 (literals::string_view_literals): Fix nesting of versioning macros.
1472 * libsupc++/del_opa.cc (operator delete(void*, std::align_val_t))
1473 [!_GLIBCXX_HAVE_ALIGNED_ALLOC && !_GLIBCXX_HAVE_POSIX_MEMALIGN
1474 && !_GLIBCXX_HAVE_MEMALIGN && !_GLIBCXX_HAVE__ALIGNED_MALLOC]:
1475 Retrieve original pointer value allocated by malloc.
1476 * libsupc++/new_opa.cc [!_GLIBCXX_HAVE_ALIGNED_ALLOC
1477 && !_GLIBCXX_HAVE_POSIX_MEMALIGN && !_GLIBCXX_HAVE_MEMALIGN
1478 && !_GLIBCXX_HAVE__ALIGNED_MALLOC] (aligned_alloc(size_t, size_t)):
1479 Define, adjusting pointer value allocated by malloc and storing for
1480 retrieval by operator delete.
1482 2017-01-26 Jakub Jelinek <jakub@redhat.com>
1484 * libsupc++/eh_atomics.h: Update copyright years.
1485 * testsuite/20_util/unique_ptr/cons/default.cc: Update copyright years.
1487 2017-01-25 Jonathan Wakely <jwakely@redhat.com>
1491 * include/std/complex (real(T), imag(T)): Add _GLIBCXX_CONSTEXPR.
1492 (proj(T), conj(T)): Change return types per DR 1522.
1493 * include/tr1/complex (conj): Remove overloads and use std::conj.
1494 * testsuite/26_numerics/complex/dr781_dr1137.cc: Rename to...
1495 * testsuite/26_numerics/complex/dr781.cc: ... this, and update.
1496 * testsuite/26_numerics/complex/value_operations/constexpr2.cc: Test
1497 real(T) and imag(T). Allow testing for C++11 too.
1499 2017-01-24 Jonathan Wakely <jwakely@redhat.com>
1502 * include/experimental/string_view (operator==): Check sizes first.
1503 * include/std/string_view (operator==): Likewise.
1505 2017-01-23 Jonathan Wakely <jwakely@redhat.com>
1507 * testsuite/experimental/array/make_array.cc: Restore <functional>
1510 2017-01-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
1512 * testsuite/29_atomics/atomic/69301.cc: Require atomic builtins.
1514 2017-01-23 Jonathan Wakely <jwakely@redhat.com>
1517 * include/experimental/array (__make_array_elem): New class template
1518 and partial specialization.
1519 (__is_reference_wrapper): Move into __make_array_elem specialization.
1520 (make_array): Use __make_array_elem to determine element type and move
1521 static assertion into specialization. Qualify std::forward call.
1522 (to_array): Add exception specifiation.
1523 * testsuite/experimental/array/make_array.cc: Test argument types
1524 without a common type.
1525 * testsuite/experimental/array/neg.cc: Adjust expected error message.
1527 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
1529 * doc/xml/manual/debug.xml: code.google.com uses https now.
1531 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
1533 * doc/xml/manual/test.xml: Fix link into gccint online manual.
1535 2017-01-21 Ville Voutilainen <ville.voutilainen@gmail.com>
1537 Make poisoned hashes SFINAE away the call operator of the hash.
1538 * include/bits/functional_hash.h
1539 (__poison_hash::__enable_hash_call): New.
1540 * include/std/optional (__optional_hash_call_base): New.
1541 (hash<optional<_Tp>>): Derive from the new base,
1542 move the hash function into that base.
1543 * include/std/variant (__variant_hash_call_base_impl): New.
1544 (__variant_hash_call_base): Likewise.
1545 (hash<variant<_Types...>>): Derive from the new base,
1546 move the hash function into that base.
1547 * testsuite/20_util/optional/hash.cc: Add tests for is_callable.
1548 * testsuite/20_util/variant/hash.cc: Likewise.
1550 2017-01-20 Joe Seymour <joe.s@somniumtech.com>
1552 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): Support uint20_t.
1553 * configure: Regenerate.
1555 2017-01-20 Jonathan Wakely <jwakely@redhat.com>
1558 * include/bits/random.h (uniform_real_distribution::param_type)
1559 (normal_distribution::param_type, lognormal_distribution::param_type)
1560 (gamma_distribution::param_type, chi_squared_distribution::param_type)
1561 (cauchy_distribution::param_type, fisher_f_distribution::param_type)
1562 (student_t_distribution::param_type)
1563 (bernoulli_distribution::param_type, binomial_distribution::param_type)
1564 (geometric_distribution::param_type)
1565 (negative_binomial_distribution::param_type)
1566 (poisson_distribution::param_type)
1567 (exponential_distribution::param_type)
1568 (weibull_distribution::param_type)
1569 (extreme_value_distribution::param_type)
1570 (discrete_distribution::param_type)
1571 (piecewise_constant_distribution::param_type)
1572 (piecewise_linear_distribution::param_type): Define operator!=.
1573 * include/bits/uniform_int_dist.h
1574 (uniform_int_distribution::param_type): Likewise.
1575 * include/ext/random (beta_distribution::param_type)
1576 (rice_distribution::param_type, nakagami_distribution::param_type)
1577 (pareto_distribution::param_type, k_distribution::param_type)
1578 (arcsine_distribution::param_type, hoyt_distribution::param_type)
1579 (triangular_distribution::param_type)
1580 (von_mises_distribution::param_type)
1581 (hypergeometric_distribution::param_type)
1582 (logistic_distribution::param_type)
1583 (uniform_on_sphere_distribution::param_type)
1584 (uniform_inside_sphere_distribution::param_type): Likewise.
1585 * testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc:
1586 Test construction with param_type.
1587 * testsuite/26_numerics/random/binomial_distribution/cons/parms.cc:
1589 * testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc:
1591 * testsuite/26_numerics/random/chi_squared_distribution/cons/parms.cc:
1593 * testsuite/26_numerics/random/exponential_distribution/cons/parms.cc:
1595 * testsuite/26_numerics/random/extreme_value_distribution/cons/
1597 * testsuite/26_numerics/random/fisher_f_distribution/cons/parms.cc:
1599 * testsuite/26_numerics/random/gamma_distribution/cons/parms.cc:
1601 * testsuite/26_numerics/random/geometric_distribution/cons/parms.cc:
1603 * testsuite/26_numerics/random/lognormal_distribution/cons/parms.cc:
1605 * testsuite/26_numerics/random/negative_binomial_distribution/cons/
1607 * testsuite/26_numerics/random/normal_distribution/cons/parms.cc:
1609 * testsuite/26_numerics/random/poisson_distribution/cons/parms.cc:
1611 * testsuite/26_numerics/random/student_t_distribution/cons/parms.cc:
1613 * testsuite/26_numerics/random/uniform_int_distribution/cons/parms.cc:
1615 * testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc:
1617 * testsuite/26_numerics/random/weibull_distribution/cons/parms.cc:
1619 * testsuite/ext/random/arcsine_distribution/cons/parms.cc: Likewise.
1620 * testsuite/ext/random/beta_distribution/cons/parms.cc: Likewise.
1621 * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
1622 * testsuite/ext/random/hypergeometric_distribution/cons/parms.cc:
1624 * testsuite/ext/random/k_distribution/cons/parms.cc: Likewise.
1625 * testsuite/ext/random/logistic_distribution/cons/parms.cc: Likewise.
1626 * testsuite/ext/random/nakagami_distribution/cons/parms.cc: Likewise.
1627 * testsuite/ext/random/normal_mv_distribution/cons/parms.cc: Likewise.
1628 * testsuite/ext/random/pareto_distribution/cons/parms.cc: Likewise.
1629 * testsuite/ext/random/rice_distribution/cons/parms.cc: Likewise.
1630 * testsuite/ext/random/triangular_distribution/cons/parms.cc:
1632 * testsuite/ext/random/uniform_inside_sphere_distribution/cons/
1634 * testsuite/ext/random/von_mises_distribution/cons/parms.cc: Likewise.
1637 * include/bits/alloc_traits.h (__allocator_traits_base::__diff_type)
1638 (__allocator_traits_base::__size_type): Remove.
1639 (allocator_traits::_Ptr): New class template to detect const and void
1640 pointer types without instantiating pointer_traits::rebind
1642 (allocator_traits::_Diff): Likewise for detecting difference_type.
1643 (allocator_traits::_Size): New class template to detect size_type
1644 without instantiating make_unsigned unnecessarily.
1645 * include/bits/ptr_traits.h (pointer_traits::element_type): Use
1646 __detected_or_t instead of __detected_or_t_.
1647 * include/std/type_traits (__detected_or_t_): Remove.
1648 * testsuite/20_util/allocator_traits/members/pointers.cc: New test.
1652 * include/bits/alloc_traits.h (__allocator_traits_base::__rebind):
1653 Replace with class template using void_t.
1654 (__alloc_rebind): Define in terms of
1655 __allocator_traits_base::__rebind.
1656 (allocator_traits): Remove unconditional static_assert for
1658 * include/bits/ptr_traits.h (__replace_first_arg): Remove type member.
1659 (pointer_traits::__rebind): Replace with class template using void_t.
1660 (pointer_traits::rebind): Define in terms of __rebind.
1661 (pointer_traits): Remove unconditional static_assert for rebind.
1662 * testsuite/20_util/allocator_traits/members/rebind_alloc.cc: New test.
1663 * testsuite/20_util/pointer_traits/rebind.cc: New test.
1666 * include/experimental/any (__any_caster): Avoid instantiating
1667 manager function for types that can't be stored in any.
1668 * include/std/any (__any_caster): Likewise.
1669 * testsuite/20_util/any/misc/any_cast.cc: Test non-copyable type.
1670 * testsuite/experimental/any/misc/any_cast.cc: Likewise.
1673 * include/bits/stl_algo.h (is_partitioned): Use increment instead of
1676 2017-01-19 Jonathan Wakely <jwakely@redhat.com>
1679 * include/bits/shared_ptr_base.h (__enable_shared_from_this_base):
1681 (__enable_shared_from_this): Declare __shared_ptr as a friend.
1682 * testsuite/ext/shared_ptr/1.cc: New test.
1685 * include/bits/stl_algo.h (is_partitioned): Don't retest the partition
1687 * testsuite/25_algorithms/is_partitioned/2.cc: New test.
1689 * doc/xml/manual/abi.xml: Fix typo.
1690 * doc/html/manual/abi.html: Likewise.
1693 * include/bits/predefined_ops.h (_Iter_less_val, _Val_less_iter): Add
1694 converting constructors from _Iter_less_iter.
1695 (_Iter_comp_val, _Val_comp_iter): Add converting constructors from
1697 (__iter_comp_val(_Iter_comp_iter<C>): Use converting constructor.
1698 (__val_comp_iter(_Iter_comp_iter<C>): Likewise.
1699 * include/bits/stl_heap.h (__is_heap_until, __push_heap, __pop_heap)
1700 (__make_heap, __sort_heap): Change _Compare parameters to references.
1701 (__is_heap, push_heap, __adjust_heap, __pop_heap, pop_heap)
1702 (__make_heap, make_heap, sort_heap, is_heap_until): Pass comparison
1703 functions as lvalues.
1704 (is_heap): Call __is_heap_until directly to avoid copying __comp.
1705 * testsuite/23_containers/priority_queue/67085.cc: Adjust test to
1706 count copies during construction with empty sequence.
1709 * include/bits/stl_heap.h (__is_heap): Use _GLIBCXX_MOVE.
1710 (__make_heap, __sort_heap): Don't use _GLIBCXX_MOVE inside loops.
1711 * testsuite/23_containers/priority_queue/67085.cc: Adjust expected
1713 * testsuite/25_algorithms/make_heap/movable.cc: New test.
1716 * include/bits/stl_heap.h (push_heap, __adjust_heap, __pop_heap)
1717 (pop_heap, __make_heap, make_heap, __sort_heap, sort_heap): Use
1718 _GLIBCXX_MOVE when passing comparison function to other functions.
1719 (is_heap_until, is_heap): Use std::move when passing comparison
1721 * testsuite/23_containers/priority_queue/67085.cc: New test.
1724 * doc/xml/manual/abi.xml (abi.versioning.history): Add markup to
1725 macro names, filenames, and literal values. Document _GLIBCXX_RELEASE.
1726 Document that the deprecated _GLIBCXX_VERSION macro was removed for
1728 * doc/html/*: Regenerate.
1729 * include/Makefile.am (_GLIBCXX_RELEASE): Set value.
1730 * include/Makefile.in: Regenerate.
1731 * include/bits/c++config (_GLIBCXX_RELEASE): Add #define.
1732 * testsuite/ext/profile/mutex_extensions_neg.cc: Use lineno of 0 in
1735 2017-01-18 Jonathan Wakely <jwakely@redhat.com>
1738 * include/std/atomic (atomic<T>::load, atomic<T>::exchange): Use
1739 aligned buffer instead of default-initialized variable.
1740 * testsuite/29_atomics/atomic/69301.cc: New test.
1741 * include/experimental/memory (observer_ptr::release): Use reserved
1743 * include/ext/pointer.h (_Pointer_adapter::operator++(int))
1744 (_Pointer_adapter::operator--(int)): Likewise.
1747 * include/experimental/random (randint): Use temporary instead of
1748 thread_local static.
1750 2017-01-17 Joshua Conner <joshconner@google.com>
1752 * crossconfig.m4: Add fuchsia OS.
1753 * configure: Regenerate.
1755 2017-01-17 Jonathan Wakely <jwakely@redhat.com>
1758 * doc/xml/manual/abi.xml (abi.versioning.history): Explain why the
1759 __GLIBCXX__ macro is not useful. Remove redundant date information
1760 and link to the GCC release timeline.
1761 (abi.versioning.active): Move partial sentence into the previous
1763 * doc/html/*: Regenerate.
1766 * libsupc++/nested_exception.h (throw_with_nested): Use decay instead
1767 of remove_reference.
1768 * testsuite/18_support/nested_exception/79114.cc: New test.
1770 2017-01-17 Jakub Jelinek <jakub@redhat.com>
1773 * configure.ac: Add GCC_BASE_VER.
1774 * fragment.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
1775 get version from BASE-VER file.
1776 * po/Makefile.in: Regenerated.
1777 * libsupc++/Makefile.in: Regenerated.
1778 * testsuite/Makefile.in: Regenerated.
1779 * src/Makefile.in: Regenerated.
1780 * configure: Regenerated.
1781 * Makefile.in: Regenerated.
1782 * include/Makefile.in: Regenerated.
1783 * doc/Makefile.in: Regenerated.
1784 * python/Makefile.in: Regenerated.
1785 * src/c++11/Makefile.in: Regenerated.
1786 * src/c++98/Makefile.in: Regenerated.
1787 * src/filesystem/Makefile.in: Regenerated.
1789 2017-01-16 Jonathan Wakely <jwakely@redhat.com>
1792 * src/c++11/functexcept.cc: Use new ABI for std::ios_base::failure
1794 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Don't override ABI
1795 for test, so new ios::failure can be caught.
1796 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
1797 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
1798 exceptions_failbit.cc: Likewise.
1799 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
1800 exceptions_failbit.cc: Likewise.
1801 * testsuite/27_io/basic_istream/extractors_other/char/
1802 exceptions_null.cc: Likewise.
1803 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
1804 exceptions_null.cc: Likewise.
1805 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
1806 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
1807 * testsuite/27_io/basic_ostream/inserters_other/char/
1808 exceptions_null.cc: Likewise.
1809 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
1810 exceptions_null.cc: Likewise.
1811 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
1814 * include/bits/locale_classes.h (locale::facet::__shim): Change from
1815 private to protected.
1816 * src/c++11/cxx11-shim_facets.cc (__shim_accessor): Define helper to
1817 make locale::facet::__shim accessible.
1819 2017-01-16 Ville Voutilainen <ville.voutilainen@gmail.com>
1822 * include/bits/list.tcc (merge(list&&)): Fix backwards size adjustments.
1823 (merge(list&&, _StrictWeakOrdering)): Likewise.
1824 * testsuite/23_containers/list/operations/78389.cc: Add
1825 better test for the sizes.
1827 2017-01-14 Jonathan Wakely <jwakely@redhat.com>
1829 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
1830 Skip test when -D_GLIBCXX_PROFILE mode is included in options.
1831 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
1832 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
1834 * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
1835 * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise.
1836 * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise.
1837 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
1838 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
1840 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc::
1842 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc::
1844 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
1846 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
1848 * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise.
1849 * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise.
1850 * testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise.
1851 * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise.
1852 * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise.
1853 * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
1854 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
1855 * testsuite/libstdc++-prettyprinters/debug.cc: Likewise.
1856 * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise.
1857 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
1858 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
1859 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
1860 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
1862 2017-01-13 Jonathan Wakely <jwakely@redhat.com>
1865 * config/io/basic_file_stdio.cc (__basic_file<char>::close()): Don't
1866 retry fclose on EINTR.
1868 * include/profile/base.h: Remove unused header that leads to header
1869 cycle in C++17 mode.
1872 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
1873 Make _If_sv private.
1874 [!_GLIBCXX_USE_CXX11_ABI] (basic_string): Add member functions taking
1875 basic_string_view arguments.
1878 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Remove
1879 redundant option from cxxflags.
1880 (check_effective_target_cxx11-abi): Define.
1881 * testsuite/21_strings/basic_string/allocator/71964.cc: Use cxx11-abi
1883 * testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise.
1884 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
1886 * testsuite/21_strings/basic_string/allocator/char/minimal.cc:
1888 * testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
1889 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
1891 * testsuite/21_strings/basic_string/allocator/char/noexcept.cc:
1893 * testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
1894 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
1896 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
1898 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
1900 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
1902 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
1904 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
1906 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
1908 * testsuite/23_containers/list/61347.cc: Likewise.
1909 * testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
1910 * testsuite/27_io/ios_base/failure/cxx11.cc: Likewise.
1912 2017-01-13 Ville Voutilainen <ville.voutilainen@gmail.com>
1915 * include/bits/list.tcc (merge(list&&)):
1916 Adjust list sizes if the comparator throws.
1917 (merge(list&&, _StrictWeakOrdering)): Likewise.
1918 (sort()): Splice elements back from the scratch buffers
1919 if the comparator throws.
1920 (sort(_StrictWeakOrdering)): Likewise.
1921 * testsuite/23_containers/list/operations/78389.cc: New.
1923 2017-01-13 Jonathan Wakely <jwakely@redhat.com>
1925 * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Mark
1926 XFAIL for C++17 until node reinsertion supports fancy pointers.
1929 * testsuite/20_util/add_pointer/value.cc: Test forming function
1932 2017-01-13 Michael Brune <lucdanton@free.fr>
1935 * include/std/type_traits (__is_referenceable): Handle noexcept
1938 2017-01-12 Jonathan Wakely <jwakely@redhat.com>
1941 * include/bits/stl_queue.h (queue, priority_queue): Remove default
1942 member-initializers and define default constructors as templates with
1944 * include/bits/stl_stack.h (stack): Likewise.
1945 * testsuite/23_containers/priority_queue/requirements/constructible.cc:
1947 * testsuite/23_containers/priority_queue/requirements/
1948 explicit_instantiation/1.cc: Test more instantiations.
1949 * testsuite/23_containers/priority_queue/requirements/
1950 explicit_instantiation/1_c++98.cc: Likewise.
1951 * testsuite/23_containers/queue/requirements/constructible.cc: New.
1952 * testsuite/23_containers/stack/requirements/constructible.cc: New.
1955 * doc/xml/manual/intro.xml: Document LWG 2781 change.
1956 * doc/html/*: Regenerate.
1957 * include/std/functional (_Function_base::_Ref_manager): Remove.
1958 (_Function_handler): Remove partial specializations for
1960 (function::target): Remove special case for const qualification.
1961 * testsuite/20_util/function/6.cc: Adjust tests for target type.
1962 * testsuite/20_util/function/7.cc: Likewise.
1963 * testsuite/20_util/function/8.cc: Likewise.
1965 2017-01-11 Jonathan Wakely <jwakely@redhat.com>
1968 * include/bits/stl_map.h (map::lower_bound, map::upper_bound)
1969 (map::equal_range): Fix return type of heterogeneous overloads.
1970 * include/bits/stl_multimap.h (multimap::lower_bound)
1971 (multimap::upper_bound, multimap::equal_range): Likewise.
1972 * include/bits/stl_multiset.h (multiset::lower_bound)
1973 (multiset::upper_bound, multiset::equal_range): Likewise.
1974 * include/bits/stl_set.h (set::lower_bound, set::upper_bound)
1975 (set::equal_range): Likewise.
1976 * testsuite/23_containers/map/operations/2.cc
1977 * testsuite/23_containers/multimap/operations/2.cc
1978 * testsuite/23_containers/multiset/operations/2.cc
1979 * testsuite/23_containers/set/operations/2.cc
1982 * include/bits/stl_map.h (map::count<_Kt>(const _Kt&)): Don't assume
1983 the heterogeneous comparison can only find one match.
1984 * include/bits/stl_set.h (set::count<_Kt>(const _Kt&)): Likewise.
1985 * testsuite/23_containers/map/operations/2.cc: Test count works with
1986 comparison function that just partitions rather than sorting.
1987 * testsuite/23_containers/set/operations/2.cc: Likewise.
1989 2017-01-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1991 Reduce the size of variant, it doesn't need an index of
1992 type size_t internally.
1993 * include/std/variant (parse_numbers.h): New include.
1994 (__select_index): New.
1995 (_Variant_storage<false, _Types...>::_M_reset_impl): Use
1996 _index_type for comparison with variant_npos.
1997 (_Variant_storage<false, _Types...>::__index_type): New.
1998 (_Variant_storage<false, _Types...>::_M_index): Change the
1999 type from size_t to __index_type.
2000 (_Variant_storage<true, _Types...>::__index_type): New.
2001 (_Variant_storage<true, _Types...>::_M_index): Change the
2002 type from size_t to __index_type.
2003 (_Variant_base::_M_valid): Use _Storage::__index_type
2004 for comparison with variant_npos.
2005 (variant::index): Use _Base::_Storage::__index_type
2006 for comparison with variant_npos.
2007 * testsuite/20_util/variant/index_type.cc: New.
2009 2017-01-10 Jonathan Wakely <jwakely@redhat.com>
2011 * testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
2012 effective target selector to prevent running in C++17 mode.
2015 * include/bits/stl_queue.h (queue::c): Add default member initializer.
2016 (queue::queue()): Add constructor and define as defaulted.
2017 (queue::queue(_Sequence&&)): Remove default argument.
2018 (priority_queue::c, priority_queue::comp): Add default member
2020 (priority_queue::priority_queue()): Add constructor and define as
2022 (priority_queue::priority_queue(const _Compare&, _Sequence&&)):
2023 Remove default argument for first parameter.
2024 * include/bits/stl_stack.h (stack::c): Add default member initializer.
2025 (stack::stack()): Add constructor and define as defaulted.
2026 (stack::stack(const _Sequence&)): Remove default argument.
2027 * testsuite/23_containers/priority_queue/requirements/
2028 explicit_instantiation/1.cc: Test explicit instantiation with
2029 non-DefaultConstructible sequence.
2030 * testsuite/23_containers/priority_queue/77528.cc: New test.
2031 * testsuite/23_containers/priority_queue/requirements/
2032 explicit_instantiation/1_c++0x.cc: Replace with 1_c++98.cc.
2033 * testsuite/23_containers/queue/77528.cc: New test.
2034 * testsuite/23_containers/queue/requirements/explicit_instantiation/
2035 1.cc: Test explicit instantiation with non-DefaultConstructible
2037 * testsuite/23_containers/queue/requirements/explicit_instantiation/
2038 1_c++0x.cc: Replace with 1_c++98.cc.
2039 * testsuite/23_containers/stack/77528.cc: New test.
2040 * testsuite/23_containers/stack/requirements/explicit_instantiation/
2041 1.cc: Test explicit instantiation with non-DefaultConstructible
2043 * testsuite/23_containers/stack/requirements/explicit_instantiation/
2044 1_c++0x.cc: Replace with 1_c++98.cc.
2046 2017-01-10 Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
2048 * include/bits/locale_facets_nonio.tcc
2049 (time_get::_M_extract_via_format): Avoid compilation errors with
2050 non-standard struct tm.
2052 2017-01-10 François Dumont <fdumont@gcc.gnu.org>
2053 Jonathan Wakely <jwakely@redhat.com>
2055 * python/libstdcxx/v6/printers.py (_versioned_namespace): Define.
2056 (is_specialization, strip_versioned_namespace): New helpers functions
2057 to work with symbols in the versioned namespace.
2058 (Printer.add_version): Add second name using versioned namespace.
2059 (add_one_template_type_printer, add_one_type_printer): Add second
2060 type printers using versioned namespace.
2061 (register_type_printers): Add template type printer for basic_string.
2062 (build_libstdcxx_dictionary): Remove dead code.
2063 * python/libstdcxx/v6/xmethods.py: Make all matchers look for
2064 versioned namespace.
2065 * testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected
2067 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
2069 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
2072 * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Check for llrint and llround
2073 functions separately on darwin and if they're missing define
2074 _GLIBCXX_NO_C99_ROUNDING_FUNCS.
2075 * config.h.in: Regenerate.
2076 * configure: Regenerate.
2077 * include/c_global/cmath [_GLIBCXX_NO_C99_ROUNDING_FUNCS] (llrint)
2078 (llrintf, llrintl, llround, llroundf, llroundl): Do not define.
2080 * testsuite/30_threads/condition_variable/members/3.cc: Use new macro
2081 to detect correct thread_local destructors.
2082 * testsuite/util/testsuite_hooks.h (CORRECT_THREAD_LOCAL_DTORS):
2085 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
2086 Aditya Kumar <hiraditya@msn.com>
2089 * include/bits/basic_string.tcc
2090 (basic_string::find(const CharT*, size_type, size_type)): Optimize.
2092 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
2094 * testsuite/21_strings/basic_string/operations/find/char/6.cc: New.
2095 * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: New.
2097 * testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
2098 Include <cassert> header.
2101 * crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
2102 * configure: Regenerate.
2104 2017-01-06 Barrett Adair <barrettellisadair@gmail.com>
2105 Jonathan Wakely <jwakely@redhat.com>
2107 * include/std/variant (variant, swap): Replace __and_ usage with fold
2110 2017-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2113 * acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
2114 * configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
2115 GLIBCXX_CHECK_ASSEMBLER_HWCAP.
2116 * fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
2118 * aclocal.m4: Regenerate.
2119 * configure: Regenerate.
2120 * Makefile.in, doc/Makefile.in, include/Makefile.in,
2121 libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
2122 src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
2123 src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
2125 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
2127 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.
2130 * include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
2131 (_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
2132 (_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and
2133 move function objects.
2134 (__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter)
2135 (__iter_comp_val, __iter_comp_iter, __negate): Move function objects.
2136 * testsuite/25_algorithms/sort/78991.cc: New test.
2138 2017-01-05 Jonathan Wakely <jwakely@redhat.com>
2140 * include/bits/std_function.h (function::_Signature_type): Remove.
2141 (function::function(_Functor)): Adjust.
2143 2017-01-05 Tim Shen <timshen@google.com>
2146 * include/std/variant (__gen_vtable_impl): rename __unused to
2147 __dimensions to avoid naming conflict.
2149 2017-01-04 Jonathan Wakely <jwakely@redhat.com>
2152 * config.h.in: Regenerate.
2153 * configure: Likewise.
2154 * configure.ac: Check for __cxa_thread_atexit.
2155 * libsupc++/atexit_thread.cc [_GLIBCXX_HAVE___CXA_THREAD_ATEXIT]:
2156 Don't define __cxa_thread_atexit if libc provides it.
2158 2017-01-04 Ville Voutilainen <ville.voutilainen@gmail.com>
2160 Implement 2801, Default-constructibility of unique_ptr.
2161 * include/bits/unique_ptr.h (__uniq_ptr_impl::_DeleterConstraint): New.
2162 (unique_ptr::_DeleterConstraint): Likewise.
2163 (unique_ptr()): Constrain.
2164 (unique_ptr(pointer)): Likewise.
2165 (unique_ptr(nullptr_t)): Likewise.
2166 (unique_ptr<_Tp[], _Dp>::_DeleterConstraint): New.
2167 (unique_ptr<_Tp[], _Dp>::unique_ptr()): Constrain.
2168 (unique_ptr<_Tp[], _Dp>::unique_ptr(_Up)): Likewise.
2169 (unique_ptr<_Tp[], _Dp>::unique_ptr(nullptr_t)): Likewise.
2170 * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust.
2171 * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
2172 * testsuite/20_util/unique_ptr/cons/default.cc: New.
2173 * testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Adjust.
2175 2017-01-04 Pauli Nieminen <suokkos@gmail.com>
2176 Jonathan Wakely <jwakely@redhat.com>
2179 * acinclude.m4 (GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER): Define.
2180 * config.h.in: Regenerate.
2181 * config/abi/pre/gnu.ver [HAVE_EXCEPTION_PTR_SINCE_GCC46]
2182 (GLIBCXX_3.4.15, GLIBCXX_3.4.21, CXXABI_1.3.3, CXXABI_1.3.5): Make
2183 exports for exception_ptr, nested_exception, and future conditional.
2184 [HAVE_EXCEPTION_PTR_SINCE_GCC46] (GLIBCXX_3.4.23, CXXABI_1.3.11): Add
2185 exports for exception_ptr, nested_exception, and future conditional.
2186 * configure: Regenerate.
2187 * configure.ac: Use GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER.
2188 * include/std/future: Remove check for ATOMIC_INT_LOCK_FREE
2189 * libsupc++/eh_atomics.h: New file for internal use only.
2190 (__eh_atomic_inc, __eh_atomic_dec): New.
2191 * libsupc++/eh_ptr.cc (exception_ptr::_M_addref)
2192 (exception_ptr::_M_release) (__gxx_dependent_exception_cleanup)
2193 (rethrow_exception): Use eh_atomics.h reference counting helpers.
2194 * libsupc++/eh_throw.cc (__gxx_exception_cleanup): Likewise.
2195 * libsupc++/eh_tm.cc (free_any_cxa_exception): Likewise.
2196 * libsupc++/exception: Remove check for ATOMIC_INT_LOCK_FREE.
2197 * libsupc++/exception_ptr.h: Likewise.
2198 * libsupc++/guard.cc: Include header for ATOMIC_INT_LOCK_FREE macro.
2199 * libsupc++/nested_exception.cc: Remove check for
2200 ATOMIC_INT_LOCK_FREE.
2201 * libsupc++/nested_exception.h: Likewise.
2202 * src/c++11/future.cc: Likewise.
2203 * testsuite/18_support/exception_ptr/*: Remove atomic builtins checks.
2204 * testsuite/18_support/nested_exception/*: Likewise.
2205 * testsuite/30_threads/async/*: Likewise.
2206 * testsuite/30_threads/future/*: Likewise.
2207 * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
2208 * testsuite/30_threads/packaged_task/*: Likewise.
2209 * testsuite/30_threads/promise/*: Likewise.
2210 * testsuite/30_threads/shared_future/*: Likewise.
2212 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
2214 * doc/xml/manual/documentation_hacking.xml: sourceforge.net now
2215 defaults to https; adjust reference.
2217 2017-01-03 Jonathan Wakely <jwakely@redhat.com>
2220 * include/std/thread (thread(const thread&&)): Add deleted
2222 * testsuite/30_threads/thread/cons/lwg2097.cc: New test.
2224 * doc/xml/manual/spine.xml: Update copyright years.
2225 * doc/xml/manual/build_hacking.xml: Fix spelling of libbuilddir.
2226 * doc/xml/manual/test.xml: Likewise.
2227 * doc/html/*: Regenerate.
2229 2017-01-01 Gerald Pfeifer <gerald@pfeifer.com>
2231 * doc/xml/faq.xml: Update address of C++ ABI link.
2232 * doc/xml/manual/abi.xml: Ditto.
2234 2017-01-01 Jakub Jelinek <jakub@redhat.com>
2236 Update copyright years.
2238 Copyright (C) 2017 Free Software Foundation, Inc.
2240 Copying and distribution of this file, with or without modification,
2241 are permitted in any medium without royalty provided the copyright
2242 notice and this notice are preserved.