1 2017-05-02 Release Manager
5 2017-04-19 Jonathan Wakely <jwakely@redhat.com>
7 * doc/xml/manual/abi.xml: Rephrase one of the references to the
9 * doc/xml/manual/test.xml: Document DejaGnu 1.5.3 requirement.
10 * doc/html/*: Regenerate.
12 * libsupc++/new: Update comment on #endif directive.
15 * include/experimental/bits/fs_dir.h (directory_iterator)
16 (recursive_directory_iterator): Remove noexcept from defaulted
20 * include/std/type_traits (is_aggregate): Change __has_builtin checks.
21 * libsupc++/new (launder): Likewise.
23 2017-04-18 Jonathan Wakely <jwakely@redhat.com>
25 * include/std/functional (default_searcher, __boyer_moore_array_base)
26 (__is_std_equal_to, __boyer_moore_base_t, boyer_moore_searcher)
27 (boyer_moore_horspool_searcher): Remove redundant namespace
29 (default_searcher::operator()): Construct return value early and
30 advance second member in-place.
31 (boyer_moore_horspool_searcher::operator()): Increment random access
32 iterator directly instead of using std::next.
33 (boyer_moore_searcher::operator()): Fix return value.
34 * testsuite/20_util/function_objects/searchers.cc: Check both parts
37 2017-04-12 Gerald Pfeifer <gerald@pfeifer.com>
39 * doc/xml/faq.xml: Update reference link to C++ ABI for Itanium.
40 * doc/xml/manual/abi.xml. Ditto (thrice).
42 2017-04-03 Jonathan Wakely <jwakely@redhat.com>
44 * doc/xml/manual/status_cxx2017.xml: Remove duplicate table entry.
45 * doc/html/*: Regenerate.
47 * testsuite/20_util/reference_wrapper/invoke.cc: Uncomment tests
50 * include/bits/ios_base.h: Correct comment.
51 * testsuite/util/testsuite_hooks.h: Likewise.
53 * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
54 * doc/xml/manual/appendix_contributing.xml (contrib.organization): Add
55 directories for debug, parallel and profile headers.
56 * doc/html/*: Regenerate.
58 * include/bits/char_traits.h (__gnu_cxx::char_traits): Add
59 _GLIBCXX14_CONSTEXPR on assign, compare, find, and length.
60 (std::char_traits<char>, std::char_traits<wchar_t>): Add
61 _GLIBCXX17_CONSTEXPR on assign.
62 (std::char_traits<char16_t>, std::char_traits<char32_t>): Add
63 _GLIBCXX17_CONSTEXPR on assign, compare, find, and length.
64 * testsuite/21_strings/char_traits/requirements/
65 constexpr_functions_c++17.cc: New test.
67 2017-04-03 Ville Voutilainen <ville.voutilainen@gmail.com>
70 * include/bits/stl_pair.h (__nonesuch_no_braces): New.
71 (operator=(typename conditional<
72 __and_<is_copy_assignable<_T1>,
73 is_copy_assignable<_T2>>::value,
74 const pair&, const __nonesuch&>::type)): Change __nonesuch
75 to __nonesuch_no_braces.
76 (operator=(typename conditional<
77 __not_<__and_<is_copy_assignable<_T1>,
78 is_copy_assignable<_T2>>>::value,
79 const pair&, const __nonesuch&>::type)): Likewise.
80 (operator=(typename conditional<
81 __and_<is_move_assignable<_T1>,
82 is_move_assignable<_T2>>::value,
83 pair&&, __nonesuch&&>::type)): Likewise.
84 * testsuite/20_util/pair/79141.cc: New.
86 2017-04-03 Ville Voutilainen <ville.voutilainen@gmail.com>
88 Implement std::is_aggregate.
89 * include/std/type_traits (is_aggregate, is_aggregate_v): New.
90 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
92 * testsuite/20_util/is_aggregate/requirements/typedefs.cc: Likewise.
93 * testsuite/20_util/is_aggregate/value.cc: Likewise.
95 2017-03-29 Ville Voutilainen <ville.voutilainen@gmail.com>
97 Adjust optional's pretty printer for LWG 2900.
98 * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter.__init__):
99 Look at the nested payload in case of non-experimental optional.
101 2017-03-29 Ville Voutilainen <ville.voutilainen@gmail.com>
103 Implement LWG 2900, The copy and move constructors
104 of optional are not constexpr.
105 * include/std/optional (_Optional_payload): New.
106 (_Optional_base): Remove the bool parameter.
107 (_Optional_base<_Tp, false>): Remove.
108 (_Optional_base()): Adjust.
109 (_Optional_base(nullopt_t)): Likewise.
110 (_Optional_base(in_place_t, _Args&&...)): Likewise.
111 (_Optional_base(in_place_t, initializer_list<_Up>, _Args&&...)):
113 (_Optional_base(const _Optional_base&)): Likewise.
114 (_Optional_base(_Optional_base&&)): Likewise.
115 (operator=(const _Optional_base&)): Likewise.
116 (operator=(_Optional_base&&)): Likewise.
117 (~_Optional_base()): Remove.
118 (_M_is_engaged()): Adjust.
119 (_M_get()): Likewise.
120 (_M_construct(_Args&&...)): Likewise.
121 (_M_destruct()): Likewise.
122 (_M_reset()): Likewise.
123 (_Optional_base::_Empty_byte): Remove.
124 (_Optional_base::_M_empty): Remove.
125 (_Optional_base::_M_payload): Adjust.
126 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
127 * testsuite/20_util/optional/constexpr/cons/value.cc: Add tests.
129 2017-03-28 Jonathan Wakely <jwakely@redhat.com>
132 * include/bits/random.tcc (generate_canonical): Use std::nextafter
133 or numeric_limits::epsilon() to reduce out-of-range values.
134 * testsuite/26_numerics/random/uniform_real_distribution/operators/
135 64351.cc: Verify complexity requirement is met.
137 * doc/xml/manual/abi.xml: Add xml:id anchor.
138 * doc/xml/manual/using.xml (manual.intro.using.macros): Document
139 _GLIBCXX_RELEASE. Link to new anchor for __GLIBCXX__ notes.
140 (concurrency.io.structure): Add markup.
141 * doc/html/*: Regenerate.
144 * include/bits/shared_ptr_base.h
145 (__shared_ptr::_M_enable_shared_from_this_with): Change parameters to
146 non-const and then use remove_cv to get unqualified type.
147 * testsuite/20_util/enable_shared_from_this/members/const.cc: Don't
148 cast away constness on object created const.
149 * testsuite/20_util/shared_ptr/cons/80229.cc: New test.
151 2017-03-26 Markus Trippelsdorf <markus@trippelsdorf.de>
154 * include/bits/stl_tree.h:
155 (_Rb_tree_header::_M_move_data(_Rb_tree_header&)): Also save _M_color.
157 2017-03-23 Jonathan Wakely <jwakely@redhat.com>
159 * testsuite/23_containers/array/tuple_interface/
160 tuple_element_debug_neg.cc: Adjust dg-error.
161 * testsuite/23_containers/list/operations/78389.cc: Fix less-than to
162 define a valid strict weak ordering.
163 * testsuite/23_containers/priority_queue/67085.cc: Disable test for
164 Debug Mode, due to debug checks making extra copies of predicate.
165 * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
168 * doc/xml/faq.xml: Add link.
169 * doc/xml/manual/backwards_compatibility.xml: Remove outdated
170 information on pre-ISO headers. Replace broken link to C++ FAQ Lite.
171 * doc/xml/manual/io.xml: Update broken link.
172 * doc/html/*: Regenerate.
174 2017-03-23 Daniel Kruegler <daniel.kruegler@gmail.com>
176 Implement LWG 2686, Why is std::hash specialized for error_code,
177 but not error_condition?
178 * include/std/system_error (hash<error_condition>): Define for C++17.
179 * testsuite/20_util/hash/operators/size_t.cc (hash<error_condition>):
180 Instantiate test for error_condition.
181 * testsuite/20_util/hash/requirements/explicit_instantiation.cc
182 (hash<error_condition>): Instantiate hash<error_condition>.
184 * include/bits/c++config (_GLIBCXX17_INLINE): Define.
185 * include/bits/regex_constants.h (All std::regex_constants constants):
186 Add _GLIBCXX17_INLINE as per P0607R0.
187 * include/bits/std_mutex.h (defer_lock, try_to_lock, adopt_lock):
189 * include/bits/stl_pair.h (piecewise_construct): Likewise.
190 * include/bits/uses_allocator.h (allocator_arg, uses_allocator_v)
191 (__is_uses_allocator_constructible_v)
192 (__is_nothrow_uses_allocator_constructible_v): Likewise.
193 * include/std/chrono (treat_as_floating_point_v): Likewise.
194 * include/std/functional (is_bind_expression_v, is_placeholder_v):
196 * include/std/optional (nullopt): Likewise.
197 * include/std/ratio (ratio_equal_v, ratio_not_equal_v, ratio_less_v)
198 ratio_less_equal_v, ratio_greater_v, ratio_greater_equal_v): Likewise.
199 * include/std/system_error (is_error_code_enum_v)
200 (is_error_condition_enum_v): Likewise.
201 * include/std/tuple (tuple_size_v, ignore): Likewise.
202 (ignore): Declare ignore constexpr as per LWG 2773, declare assignment
203 constexpr as per LWG 2933.
204 * include/std/type_traits (All variable templates): Add
205 _GLIBCXX17_INLINE as per P0607R0.
206 * include/std/variant (variant_size_v, variant_npos, __index_of_v)
207 (__tuple_count_v, __exactly_once): Likewise.
208 * testsuite/18_support/headers/new/synopsis.cc
209 (hardware_destructive_interference_size)
210 (hardware_constructive_interference_size): Likewise for commented-out
212 * testsuite/20_util/tuple/creation_functions/constexpr.cc: Add new
213 test function for constexpr std::ignore (LWG 2773).
214 * testsuite/20_util/tuple/creation_functions/constexpr_cpp14.cc: New
217 2017-03-22 Jonathan Wakely <jwakely@redhat.com>
219 * include/bits/shared_ptr.h (shared_ptr, weak_ptr): Add deduction
221 * include/bits/std_function.h (function): Likewise.
222 * include/bits/stl_pair.h (pair): Likewise.
223 * include/debug/array (__gnu_debug::array): Likewise.
224 * include/std/array (array): Likewise.
225 * include/std/functional (make_default_searcher)
226 (make_boyer_moore_searcher, make_boyer_moore_horspool_searcher):
227 Remove generator functions.
228 * include/std/tuple (tuple): Add deduction guides.
229 * include/std/valarray (valarray): Likewise.
230 * testsuite/20_util/function_objects/searchers.cc: Adjust to use
231 class template argument deduction instead of generator functions.
232 * testsuite/20_util/function/cons/deduction.cc: New test.
233 * testsuite/20_util/optional/cons/deduction_guide.cc: Rename to ...
234 * testsuite/20_util/optional/cons/deduction.cc: ... here.
235 * testsuite/20_util/pair/cons/deduction.cc: New test.
236 * testsuite/20_util/shared_ptr/cons/deduction.cc: New test.
237 * testsuite/20_util/tuple/cons/deduction.cc: New test.
238 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error.
239 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: New test.
240 * testsuite/20_util/weak_ptr/cons/deduction.cc: New test.
241 * testsuite/23_containers/array/cons/deduction.cc: New test.
242 * testsuite/23_containers/array/cons/deduction_neg.cc: New test.
243 * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc:
245 * testsuite/23_containers/array/tuple_interface/get_neg.cc: Likewise.
246 * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
248 * testsuite/26_numerics/valarray/deduction.cc: New test.
249 * testsuite/30_threads/lock_guard/cons/deduction.cc: New test.
250 * testsuite/30_threads/scoped_lock/cons/deduction.cc: New test.
251 * testsuite/30_threads/unique_lock/cons/deduction.cc: New test.
253 2017-03-20 François Dumont <fdumont@gcc.gnu.org>
255 * include/bits/stl_deque.h (deque): Access allocator value_type only if
256 concept checks are enabled.
257 * include/bits/stl_stack.h (stack): Likewise.
258 * include/bits/stl_vector.h (vector): Likewise.
259 * include/bits/stl_list.h (list): Likewise and check
260 _SGIAssignableConcept only in C++03.
261 * include/bits/stl_map.h (map): Likewise.
262 * include/bits/stl_set.h (set): Likewise.
263 * include/bits/stl_multimap.h (multimap): Likewise.
264 * include/bits/stl_multiset.h (multiset): Likewise.
265 * include/bits/stl_queue.h (queue, priority_queue): Likewise.
267 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
269 * doc/xml/manual/appendix_contributing.xml: Convert link to
271 Update link to the C++ standard at ansi.org.
273 * doc/xml/faq.xml: Remove information redundant with the above;
274 instead add a reference.
276 2017-03-17 Jonathan Wakely <jwakely@redhat.com>
278 * src/c++11/codecvt.cc (range): Add non-type template parameter and
279 define oerloaded operators for reading and writing code units.
280 (range<Elem, false>): Define partial specialization for accessing
281 wide characters in potentially unaligned byte ranges.
282 (ucs2_span(const char16_t*, const char16_t*, ...))
283 (ucs4_span(const char16_t*, const char16_t*, ...)): Change parameters
284 to range<const char16_t, false> in order to avoid unaligned reads.
285 (__codecvt_utf16_base<char16_t>::do_out)
286 (__codecvt_utf16_base<char32_t>::do_out)
287 (__codecvt_utf16_base<wchar_t>::do_out): Use range specialization for
288 unaligned data to avoid unaligned writes.
289 (__codecvt_utf16_base<char16_t>::do_in)
290 (__codecvt_utf16_base<char32_t>::do_in)
291 (__codecvt_utf16_base<wchar_t>::do_in): Likewise for writes. Return
292 error if there are unprocessable trailing bytes.
293 (__codecvt_utf16_base<char16_t>::do_length)
294 (__codecvt_utf16_base<char32_t>::do_length)
295 (__codecvt_utf16_base<wchar_t>::do_length): Pass arguments of type
296 range<const char16_t, false> to span functions.
297 * testsuite/22_locale/codecvt/codecvt_utf16/misaligned.cc: New test.
299 2017-03-16 Jonathan Wakely <jwakely@redhat.com>
302 * src/c++11/codecvt.cc (to_integer(codecvt_mode)): Fix target type.
305 * src/c++11/codecvt.cc (__codecvt_utf16_base<wchar_t>::do_out)
306 (__codecvt_utf16_base<wchar_t>::do_in): Convert char arguments to
307 char16_t to work with UTF-16 instead of UTF-8.
308 * testsuite/22_locale/codecvt/codecvt_utf16/80041.cc: New test.
310 * src/c++11/codecvt.cc (codecvt<char16_t, char, mbstate_t>)
311 (codecvt<char32_t, char, mbstate_t>, __codecvt_utf8_base<char16_t>)
312 (__codecvt_utf8_base<char32_t>, __codecvt_utf8_base<wchar_t>)
313 (__codecvt_utf16_base<char16_t>, __codecvt_utf16_base<char32_t>)
314 (__codecvt_utf16_base<wchar_t>, __codecvt_utf8_utf16_base<char16_t>)
315 (__codecvt_utf8_utf16_base<char32_t>)
316 (__codecvt_utf8_utf16_base<wchar_t>): Fix do_encoding() and
317 do_max_length() return values.
318 * testsuite/22_locale/codecvt/codecvt_utf16/members.cc: New test.
319 * testsuite/22_locale/codecvt/codecvt_utf8/members.cc: New test.
320 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/members.cc: New test.
323 * include/bits/locale_conv.h (__do_str_codecvt): Set __count on
325 * src/c++11/codecvt.cc (operator&=, operator|=, operator~): Overloads
326 for manipulating codecvt_mode values.
327 (read_utf16_bom): Compare input to BOM constants instead of integral
328 constants that depend on endianness. Take mode parameter by
329 reference and adjust it, to distinguish between no BOM present and
330 UTF-16BE BOM present.
331 (ucs4_in, ucs2_span, ucs4_span): Adjust calls to read_utf16_bom.
332 (surrogates): New enumeration type.
333 (utf16_in, utf16_out): Add surrogates parameter to choose between
334 UTF-16 and UCS2 behaviour.
335 (utf16_span, ucs2_span): Use std::min not std::max.
336 (ucs2_out): Use std::min not std::max. Disallow surrogate pairs.
337 (ucs2_in): Likewise. Adjust calls to read_utf16_bom.
338 * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc: New test.
339 * testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: New test.
342 * src/c++11/codecvt.cc (write_utf16_code_point): Don't write 0xffff
344 (__codecvt_utf8_utf16_base<char32_t>::do_in): Use native endianness
345 for internal representation.
346 (__codecvt_utf8_utf16_base<wchar_t>::do_in): Likewise.
347 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/79511.cc: New test.
350 * include/bits/stl_heap.h (__is_heap, push_heap, __adjust_heap)
351 (pop_heap, make_heap, sort_heap, is_heap_until, is_heap): Cope with
352 invalid instantiations using function types for _Compare argument.
353 * testsuite/25_algorithms/make_heap/80064.cc: New test.
356 * python/libstdcxx/v6/printers.py (find_type): Avoid gdb.Type.name
357 for GDB 7.6 compatibility, use gdb.Type.unqualified instead.
359 2017-03-15 Ville Voutilainen <ville.voutilainen@gmail.com>
361 Implement LWG 2857, {variant,optional,any}::emplace should
362 return the constructed value.
363 * include/std/any (emplace(_Args&&...)): Change the return type and
364 return a reference to the constructed value.
365 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
366 * include/std/optional (emplace(_Args&&...)): Likewise.
367 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
368 * include/std/variant (emplace<_Tp>(_Args&&...)): Likewise.
369 (emplace<_Tp>(initializer_list<_Up>, _Args&&...)): Likewise.
370 (emplace<_Np>(_Args&&...)): Likewise.
371 (emplace<_Np>(initializer_list<_Up>, _Args&&...)): Likewise.
372 * testsuite/20_util/any/assign/emplace.cc: Add tests for
373 checking the return value of emplace.
374 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
375 * testsuite/20_util/optional/assignment/6.cc: Add tests for
376 checking the return value of emplace.
377 * testsuite/20_util/variant/run.cc: Likewise.
379 2017-03-15 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
382 * include/ext/pb_ds/qdetail/binary_heap_/binary_heap_.hpp
384 (push_heap): Remove the wrong checking using is_heap.
385 (make_heap): Remove the assertion using is_heap.
386 * include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
388 (resize_for_insert_if_needed): Add PB_DS_ASSERT_VALID after
391 2017-03-15 Jonathan Wakely <jwakely@redhat.com>
394 * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
396 * testsuite/ext/pb_ds/regression/priority_queues.cc: Fix copy&paste
399 2017-03-15 Jonathan Wakely <jwakely@redhat.com>
401 * acinclude.m4 (GLIBCXX_CHECK_S_ISREG_OR_S_IFREG): Fix typo in
403 * config.h.in: Regenerate.
404 * configure: Regenerate.
405 * doc/Makefile.in: Regenerate.
407 2017-03-14 Jonathan Wakely <jwakely@redhat.com>
410 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
411 (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Replace
412 with a constrained template.
413 [!_GLIBCXX_USE_CXX11_ABI]
414 (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Likewise.
415 * testsuite/21_strings/basic_string/cons/char/79162.cc: New test.
416 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: New test.
418 2017-03-13 Ville Voutilainen <ville.voutilainen@gmail.com>
421 * include/bits/list.tcc (merge(list&&)): Use const for the size_t
423 (merge(list&&, _StrictWeakOrdering)): Likewise.
424 * testsuite/23_containers/list/operations/80034.cc: New.
426 2017-03-13 Ville Voutilainen <ville.voutilainen@gmail.com>
428 Implement LWG 2806, Base class of bad_optional_access.
429 * include/std/optional (bad_optional_access):
430 Derive from std::exception.
431 (bad_optional_access::bad_optional_access): Adjust.
432 (bad_optional_access::what): New.
433 (__throw_bad_optional_access(const char*)):
434 Remove the parameter and adjust calls.
435 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
436 * testsuite/20_util/optional/typedefs.cc: Likewise.
438 2017-03-12 Ville Voutilainen <ville.voutilainen@gmail.com>
440 Implement LWG 2934, optional<const T> doesn't compare with T.
441 * include/std/optional
442 (operator==(const optional<_Tp>&, const optional<_Tp>&)):
443 Turn into operator==(const optional<_Tp>&, const optional<_Up>&).
444 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
445 Turn into operator!=(const optional<_Tp>&, const optional<_Up>&).
446 (operator<(const optional<_Tp>&, const optional<_Tp>&)):
447 Turn into operator<(const optional<_Tp>&, const optional<_Up>&.
448 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
449 Turn into operator>(const optional<_Tp>&, const optional<_Up>&.
450 (operator<=(const optional<_Tp>&, const optional<_Tp>&)):
451 Turn into operator<=(const optional<_Tp>&, const optional<_Up>&).
452 (operator>=(const optional<_Tp>&, const optional<_Tp>&)):
453 Turn into operator>=(const optional<_Tp>&, const optional<_Up>&).
454 (operator==(const optional<_Tp>&, const _Tp&)):
455 Turn into operator==(const optional<_Tp>&, const _Up&).
456 (operator==(const _Tp&, const optional<_Tp>&)):
457 Turn into operator==(const _Up&, const optional<_Tp>&).
458 (operator!=(const optional<_Tp>&, const _Tp&)):
459 Turn into operator!=(const optional<_Tp>&, const _Up&).
460 (operator!=(const _Tp&, const optional<_Tp>&)):
461 Turn into operator!=(const _Up&, const optional<_Tp>&).
462 (operator<(const optional<_Tp>&, const _Tp&)):
463 Turn into operator<(const optional<_Tp>&, const _Up&).
464 (operator<(const _Tp&, const optional<_Tp>&)):
465 Turn into operator<(const _Up&, const optional<_Tp>&).
466 (operator>(const optional<_Tp>&, const _Tp&)):
467 Turn into operator>(const optional<_Tp>&, const _Up&).
468 (operator>(const _Tp&, const optional<_Tp>&)):
469 Turn into operator>(const _Up&, const optional<_Tp>&).
470 (operator<=(const optional<_Tp>&, const _Tp&)):
471 Turn into operator<=(const optional<_Tp>&, const _Up&).
472 (operator<=(const _Tp&, const optional<_Tp>&)):
473 Turn into operator<=(const _Up&, const optional<_Tp>&).
474 (operator>=(const optional<_Tp>&, const _Tp&)):
475 Turn into operator>=(const optional<_Tp>&, const _Up&).
476 (operator>=(const _Tp&, const optional<_Tp>&)):
477 Turn into operator>=(const _Up&, const optional<_Tp>&).
478 * testsuite/20_util/optional/relops/7.cc: New.
480 2017-03-10 Jonathan Wakely <jwakely@redhat.com>
482 * testsuite/17_intro/names.cc: Undefine macros that clash with
483 identifiers in AIX system headers.
485 * include/bits/invoke.h (__invoke): Use __invoke_result instead of
486 result_of, and __is_nothrow_invocable instead of
487 __is_nothrow_callable.
488 * include/bits/shared_ptr_base.h (__shared_ptr): Use __is_invocable
489 instead of __is_callable.
490 * include/std/functional (invoke): use invoke_result_t instead of
491 result_of_t and is_nothrow_invocable instead of is_nothrow_callable.
492 (_Not_fn): Use __invoke_result instead of result_of.
493 * include/std/type_traits (__result_of_memobj, __result_of_memfun):
494 Remove partial specializations for reference_wrapper types.
495 (__result_of_impl): Use __inv_unwrap to strip reference_wrapper.
496 (__invoke_result): Define replacement for result_of and then use it to
498 (__is_callable_impl, __is_callable, __is_nothrow_callable): Replace
499 with __is_invocable_impl, __is_invocable, and __is_nothrow_invocable
501 (invoke_result, invoke_result_t): Define for C++17.
502 (is_callable, is_nothrow_callable): Replace with is_invocable,
503 is_invocable_r, is_nothrow_invocable, and is_nothrow_invocable_r.
504 (is_callable_v, is_nothrow_callable_v): Replace with is_invocable_v,
505 is_invocable_r_v, is_nothrow_invocable_v, and is_nothrow_invocable_r_v.
506 * include/std/variant (hash<variant<T...>>): Use is_nothrow_invocable_v
507 instead of is_nothrow_callable_v.
508 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
510 * testsuite/20_util/function_objects/not_fn/1.cc: Use is_invocable
511 instead of is_callable.
512 * testsuite/20_util/is_callable/*: Rename directory and adjust tests
514 * testsuite/20_util/is_nothrow_callable/*: Likewise.
515 * testsuite/20_util/optional/hash.cc: Use is_invocable_v instead of
517 * testsuite/20_util/variant/hash.cc: Likewise.
519 2017-03-10 George Lander <george.lander@arm.com>
521 * acinclude.m4 (glibcxx_cv_obsolete_isnan): Define
522 _GLIBCXX_INCLUDE_NEXT_C_HEADERS before including math.h.
523 * configure: Regenerate.
525 2017-03-09 Jonathan Wakely <jwakely@redhat.com>
527 * include/std/functional (_Not_fn): Define macro to simplify
528 repetitive function definitions.
530 * doc/xml/manual/status_cxx2017.xml: Document std::byte support.
531 * include/c_global/cstddef (std::byte): Define for C++17.
532 * testsuite/18_support/byte/global_neg.cc: New test.
533 * testsuite/18_support/byte/ops.cc: New test.
534 * testsuite/18_support/byte/requirements.cc: New test.
536 2017-03-05 Jonathan Wakely <jwakely@redhat.com>
538 * doc/xml/manual/status_cxx2017.xml: Document P0156R2 status.
539 * doc/html/*: Regenerate.
540 * include/std/mutex (scoped_lock): Implement new C++17 template.
541 * testsuite/30_threads/scoped_lock/cons/1.cc: New test.
542 * testsuite/30_threads/scoped_lock/requirements/
543 explicit_instantiation.cc: New test.
544 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: New test.
546 2017-03-02 Gerald Pfeifer <gerald@pfeifer.com>
547 François Dumont <frs.dumont@gmail.com>
548 Jonathan Wakely <jwakely@redhat.com>
550 * doc/xml/manual/debug_mode.xml: Update and simplify note
551 on link- and run-time coexistence.
553 2017-03-02 Jonathan Wakely <jwakely@redhat.com>
555 * testsuite/17_intro/headers/names.cc: Rename to ...
556 * testsuite/17_intro/names.cc: ... here.
559 * include/bits/hashtable_policy.h (__clp2): Use reserved names for
560 parameters and local variables.
561 * include/bits/ios_base.h (make_error_code, make_error_condition):
563 * include/bits/list.tcc (list::sort): Likewise.
564 * include/bits/mask_array.h (mask_array): Likewise.
565 * include/bits/regex.h (regex_token_iterator): Likewise.
566 * include/bits/slice_array.h (slice_array): Likewise.
567 * include/bits/stl_algo.h (__sample): Likewise.
568 * include/std/memory (undeclare_no_pointers): Likewise.
569 * include/std/type_traits (is_callable_v, is_nothrow_callable_v):
571 * libsupc++/exception_ptr.h (__dest_thunk): Likewise.
572 * testsuite/17_intro/headers/names.cc: New test.
575 * include/std/functional (bind::_Res_type_impl): Fix incorrect use of
576 result_of that loses top-level cv-qualifiers.
577 * testsuite/20_util/bind/79798.cc: New test.
579 2017-03-01 Gerald Pfeifer <gerald@pfeifer.com>
581 * doc/xml/manual/documentation_hacking.xml: Tweak link to
584 2017-02-23 Jonathan Wakely <jwakely@redhat.com>
586 * include/experimental/iterator: Include <iterator>.
587 * testsuite/experimental/iterator/requirements.cc: Check for contents
590 2017-02-19 Dinka Ranns <dinka.ranns@googlemail.com>
592 C++17 GB50 resolution
593 * include/std/chrono (duration::operator++()): Add
594 _GLIBCXX17_CONSTEXPR.
595 (duration::operator++(int)): Likewise.
596 (duration::operator--()): Likewise.
597 (duration::operator--(int)): Likewise.
598 (duration::operator+=(const duration&)): Likewise.
599 (duration::operator-=(const duration&)): Likewise.
600 (duration::operator*=(const rep&)): Likewise.
601 (duration::operator/=(const rep&)): Likewise.
602 (duration::operator%=(const rep&)): Likewise.
603 (duration::operator%=(const duration&)): Likewise.
604 (time_point::operator+=(const duration&)): Likewise.
605 (time_point::operator-=(const duration&)): Likewise.
606 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: New test.
607 * testsuite/20_util/duration/literals/range.cc: Adjust dg-error.
608 * testsuite/20_util/time_point/arithmetic/constexpr.cc: New test.
610 2017-02-19 Gerald Pfeifer <gerald@pfeifer.com>
612 * doc/xml/manual/debug.xml: Adjust link to ThreadSanitizer.
614 2017-02-18 Gerald Pfeifer <gerald@pfeifer.com>
616 * doc/xml/manual/io.xml: Update link to groups.google.com.
617 Tweak link description.
619 2017-02-18 Gerald Pfeifer <gerald@pfeifer.com>
621 * doc/xml/manual/profile_mode.xml: Fix link.
623 2017-02-16 Gerald Pfeifer <gerald@pfeifer.com>
625 * doc/xml/manual/policy_data_structures.xml: Simplify and
626 standardize references to boost.org.
627 * doc/xml/manual/policy_data_structures_biblio.xml: Ditto.
628 * doc/xml/manual/shared_ptr.xml: Ditto.
630 2017-02-16 Jonathan Wakely <jwakely@redhat.com>
633 * src/c++11/snprintf_lite.cc (__concat_size_t): Calculate length
634 written to buffer, not length remaining in buffer.
636 2017-02-15 Tim Shen <timshen@google.com>
639 * include/std/variant (operator<(), operator>(), operator<=(),
640 operator>=(), operator==(), operator!=()): Implement P0393R3.
641 * testsuite/20_util/variant/compile.cc: Adjust tests.
642 * testsuite/20_util/variant/run.cc: Adjust tests.
644 2017-02-15 Tim Shen <timshen@google.com>
647 * include/std/variant (visit()): Forward variant types to the return
649 * testsuite/20_util/variant/compile.cc: Add test cases.
651 2017-02-13 H.J. Lu <hongjiu.lu@intel.com>
654 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
656 2017-02-13 Jakub Jelinek <jakub@redhat.com>
659 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
660 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
661 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Likewise.
662 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
663 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Likewise.
664 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Likewise.
665 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Likewise.
666 * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Likewise.
667 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
669 2017-02-13 Jonathan Wakely <jwakely@redhat.com>
672 * include/std/future (__future_base::_Task_state::_M_run)
673 (__future_base::_Task_state::_M_run_delayed): Use lvalue types in
674 result_of expressions.
675 * testsuite/30_threads/packaged_task/79486.cc: New.
677 2017-02-11 Jonathan Wakely <jwakely@redhat.com>
680 * include/bits/shared_ptr_base.h (__shared_ptr(_Yp*, _Deleter))
681 (__shared_ptr(_Yp*, _Deleter, _Alloc)): Use lvalue types in
683 * testsuite/20_util/shared_ptr/cons/79467.cc: New.
685 * include/bits/atomic_base.h: Re-indent.
687 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
689 * doc/xml/manual/profile_mode.xml: Update a paper reference.
691 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
693 * src/c++11/snprintf_lite.cc (__err): Use https for bug reporting.
695 2017-02-08 Jonathan Wakely <jwakely@redhat.com>
697 * doc/xml/manual/policy_data_structures.xml: Fix spelling of author's
699 * doc/xml/manual/policy_data_structures_biblio.xml: Likewise. Remove
700 broken links to texts that are no longer online.
701 * doc/xml/manual/profile_mode.xml: Update links to CGO 2009 paper and
703 * doc/xml/manual/using.xml: Update links to memory model information.
704 * doc/xml/manual/using_exceptions.xml: Update link to "Appendix E:
705 Standard-Library Exception Safety".
706 * doc/html/*: Regenerate.
708 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
710 * doc/xml/manual/profile_mode.xml: Unbreak link to
711 "Optimizing Sorting with Machine Learning Algorithms".
713 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
715 * src/c++11/snprintf_lite.cc (__err): Update bug reporting URL.
717 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
719 * doc/xml/manual/abi.xml: Update link to "Sun Studio 11: C++
722 2017-02-07 Gerald Pfeifer <gerald@pfeifer.com>
724 * doc/html/ext/lwg-active.html: Remove.
725 * doc/html/ext/lwg-closed.html: Ditto.
726 * doc/html/ext/lwg-defects.html: Ditto.
728 * doc/Makefile.am (xml_extradir): Remove.
730 (stamp-html-docbook-lwg): Remove recipe...
731 (stamp-html-docbook-data): ...and its use here.
732 * doc/Makefile.in: Regenerate.
734 * doc/xml/manual/intro.xml: Shorten two paragraphs explaining
735 the relationship to the upstream working group.
736 Replace a local link to ../ext/lwg-active.html by the upstream one.
737 Replace all reference to ../ext/lwg-defects.html by a new entity
738 &DR; which refers to the upstream address.
740 2017-02-07 Gerald Pfeifer <gerald@pfeifer.com>
742 * doc/xml/manual/status_cxx2017.xml: Fix link to N4284.
744 2017-02-06 Jonathan Wakely <jwakely@redhat.com>
747 * testsuite/20_util/duration/literals/range.cc: Prune extra output
750 2017-02-06 Gerald Pfeifer <gerald@pfeifer.com>
752 * doc/xml/manual/documentation_hacking.xml: Update URL of the
753 DocBook Element Reference. Use that term as link description
755 epubcheck has moved to GitHub.
756 Remove obsolete link to DocBook Publishing Tools.
758 2017-02-03 Jonathan Wakely <jwakely@redhat.com>
761 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Restore ABI override
762 so new ios::failure can be caught even when old ABI is the default.
763 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
764 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
765 exceptions_failbit.cc: Likewise.
766 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
767 exceptions_failbit.cc: Likewise.
768 * testsuite/27_io/basic_istream/extractors_other/char/
769 exceptions_null.cc: Likewise.
770 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
771 exceptions_null.cc: Likewise.
772 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
773 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
774 * testsuite/27_io/basic_ostream/inserters_other/char/
775 exceptions_null.cc: Likewise.
776 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
777 exceptions_null.cc: Likewise.
778 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
781 * src/c++11/Makefile.am: Add new files.
782 * src/c++11/Makefile.in: Regenerate.
783 * src/c++11/cow-string-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
784 (operator<<, operator>>, getline): Move explicit instantiations to ...
785 * src/c++11/cow-string-io-inst.cc: ... new file.
786 * src/c++11/cow-wstring-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
787 (operator<<, operator>>, getline): Move explicit instantiations to ...
788 * src/c++11/cow-wstring-io-inst.cc: ... new file.
789 * src/c++11/functexcept.cc (__throw_ios_failure, __throw_system_error)
790 (__throw_future_error, __throw_bad_function_call):
791 (__throw_regex_error): Move functions for C++11 exceptions to the
792 files that define the exception types.
793 * src/c++11/functional.cc (__throw_bad_function_call): Move here.
794 * src/c++11/future.cc (__throw_future_error): Likewise.
795 * src/c++11/ios.cc (__throw_ios_failure): Likewise.
796 * src/c++11/regex.cc (__throw_regex_error): Likewise.
797 * src/c++11/snprintf_lite.cc (__concat_size_t): Print decimal
798 representation directly instead of calling __int_to_char.
799 * src/c++11/sso_string.cc (__sso_string): New file for definition
800 of __sso_string type.
801 * src/c++11/string-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
802 explicit instantiations of narrow string I/O functions.
803 * src/c++11/system_error.cc (__throw_system_error): Move here.
804 (__sso_string): Move to new file.
805 * src/c++11/wstring-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
806 explicit instantiations of wide string I/O functions.
807 * src/c++98/misc-inst.cc [_GLIBCXX_USE_CXX11_ABI] (operator<<)
808 (operator>>, getline): Remove explicit instantiations from here.
810 2017-02-02 H.J. Lu <hongjiu.lu@intel.com>
812 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
814 2017-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
816 * configure.host: Separate Solaris/SPARC and x86 baselines.
817 * config/abi/post/solaris2.10/baseline_symbols.txt: Move ...
818 * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: ... here.
819 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Move ...
820 * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
822 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Move ...
823 * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: ... here.
824 * config/abi/post/i386-solaris2.10/baseline_symbols.txt: New file.
825 * config/abi/post/solaris2.11/baseline_symbols.txt: Move ...
826 * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: ... here.
827 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Move ...
828 * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
830 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Move ...
831 * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: ... here.
832 * config/abi/post/i386-solaris2.11/baseline_symbols.txt: New file.
834 * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
835 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
836 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
837 * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
838 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
839 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
841 2017-02-01 Jonathan Wakely <jwakely@redhat.com>
844 * include/bits/predefined_ops.h (_Iter_equals_iter): Store iterator
846 (_Iter_comp_to_iter): Likewise.
847 * testsuite/25_algorithms/search/78346.cc: New test.
850 * config/abi/pre/gnu.ver: Remove recently added symbols.
851 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
852 (basic_string::_M_copy_assign): Remove.
853 (basic_string::operator=(const basic_string&)): Don't dispatch to
854 _M_copy_assign. If source object is small just deallocate, otherwise
855 perform new allocation before making any changes.
856 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
857 (basic_string::_M_copy_assign(const basic_string&, true_type)):
859 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
860 Test cases where the allocators are equal or the string is small.
861 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
864 2017-01-30 Ville Voutilainen <ville.voutilainen@gmail.com>
866 Implement LWG 2825, LWG 2756 breaks class template argument
867 deduction for optional.
868 * include/std/optional: Add a deduction guide.
869 * testsuite/20_util/optional/cons/deduction_guide.cc: New.
871 2017-01-27 Jonathan Wakely <jwakely@redhat.com>
874 * config/abi/pre/gnu.ver: Add new symbols.
875 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
876 (basic_string::_M_copy_assign): New overloaded functions to perform
878 (basic_string::operator=(const basic_string&)): Dispatch to
880 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
881 (basic_string::_M_copy_assign(const basic_string&, true_type)):
882 Define, performing rollback on exception.
883 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
884 Test exception-safety guarantee.
885 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
887 * testsuite/util/testsuite_allocator.h (uneq_allocator::swap): Make
890 2017-01-26 Jonathan Wakely <jwakely@redhat.com>
893 * include/tr1/complex (conj): Remove using-declaration and restore
894 overloads, reverting previous change.
896 * testsuite/23_containers/list/operations/78389.cc: Fix for C++11
898 * testsuite/23_containers/priority_queue/requirements/constructible.cc:
899 Mark as unsupported in C++98 mode.
900 * testsuite/23_containers/queue/requirements/constructible.cc:
902 * testsuite/23_containers/stack/requirements/constructible.cc:
904 * testsuite/25_algorithms/make_heap/movable.cc: Fix for C++11 mode.
907 * include/bits/c++config (literals::string_view_literals::__7): Add.
908 Only declare versioned namespaces for the relevant C++ dialects.
909 * include/experimental/bits/erase_if.h (fundamentals_v2::__detail):
910 Add versioning macros.
911 * include/experimental/bits/lfts_config.h:
912 (fundamentals_v1::__detail::__7, fundamentals_v2::__detail::__7): Add.
913 * include/experimental/string_view (fundamentals_v2::__detail):
914 Add versioning macros.
915 (fundamentals_v2::__detail::__identity): Remove.
916 (fundamentals_v2::__detail::__idt): Use common_type instead of
917 __detail::__identity.
918 * include/std/string_view (__detail::__identity, __detail::__idt):
920 (literals::string_view_literals): Fix nesting of versioning macros.
923 * libsupc++/del_opa.cc (operator delete(void*, std::align_val_t))
924 [!_GLIBCXX_HAVE_ALIGNED_ALLOC && !_GLIBCXX_HAVE_POSIX_MEMALIGN
925 && !_GLIBCXX_HAVE_MEMALIGN && !_GLIBCXX_HAVE__ALIGNED_MALLOC]:
926 Retrieve original pointer value allocated by malloc.
927 * libsupc++/new_opa.cc [!_GLIBCXX_HAVE_ALIGNED_ALLOC
928 && !_GLIBCXX_HAVE_POSIX_MEMALIGN && !_GLIBCXX_HAVE_MEMALIGN
929 && !_GLIBCXX_HAVE__ALIGNED_MALLOC] (aligned_alloc(size_t, size_t)):
930 Define, adjusting pointer value allocated by malloc and storing for
931 retrieval by operator delete.
933 2017-01-26 Jakub Jelinek <jakub@redhat.com>
935 * libsupc++/eh_atomics.h: Update copyright years.
936 * testsuite/20_util/unique_ptr/cons/default.cc: Update copyright years.
938 2017-01-25 Jonathan Wakely <jwakely@redhat.com>
942 * include/std/complex (real(T), imag(T)): Add _GLIBCXX_CONSTEXPR.
943 (proj(T), conj(T)): Change return types per DR 1522.
944 * include/tr1/complex (conj): Remove overloads and use std::conj.
945 * testsuite/26_numerics/complex/dr781_dr1137.cc: Rename to...
946 * testsuite/26_numerics/complex/dr781.cc: ... this, and update.
947 * testsuite/26_numerics/complex/value_operations/constexpr2.cc: Test
948 real(T) and imag(T). Allow testing for C++11 too.
950 2017-01-24 Jonathan Wakely <jwakely@redhat.com>
953 * include/experimental/string_view (operator==): Check sizes first.
954 * include/std/string_view (operator==): Likewise.
956 2017-01-23 Jonathan Wakely <jwakely@redhat.com>
958 * testsuite/experimental/array/make_array.cc: Restore <functional>
961 2017-01-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
963 * testsuite/29_atomics/atomic/69301.cc: Require atomic builtins.
965 2017-01-23 Jonathan Wakely <jwakely@redhat.com>
968 * include/experimental/array (__make_array_elem): New class template
969 and partial specialization.
970 (__is_reference_wrapper): Move into __make_array_elem specialization.
971 (make_array): Use __make_array_elem to determine element type and move
972 static assertion into specialization. Qualify std::forward call.
973 (to_array): Add exception specifiation.
974 * testsuite/experimental/array/make_array.cc: Test argument types
975 without a common type.
976 * testsuite/experimental/array/neg.cc: Adjust expected error message.
978 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
980 * doc/xml/manual/debug.xml: code.google.com uses https now.
982 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
984 * doc/xml/manual/test.xml: Fix link into gccint online manual.
986 2017-01-21 Ville Voutilainen <ville.voutilainen@gmail.com>
988 Make poisoned hashes SFINAE away the call operator of the hash.
989 * include/bits/functional_hash.h
990 (__poison_hash::__enable_hash_call): New.
991 * include/std/optional (__optional_hash_call_base): New.
992 (hash<optional<_Tp>>): Derive from the new base,
993 move the hash function into that base.
994 * include/std/variant (__variant_hash_call_base_impl): New.
995 (__variant_hash_call_base): Likewise.
996 (hash<variant<_Types...>>): Derive from the new base,
997 move the hash function into that base.
998 * testsuite/20_util/optional/hash.cc: Add tests for is_callable.
999 * testsuite/20_util/variant/hash.cc: Likewise.
1001 2017-01-20 Joe Seymour <joe.s@somniumtech.com>
1003 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): Support uint20_t.
1004 * configure: Regenerate.
1006 2017-01-20 Jonathan Wakely <jwakely@redhat.com>
1009 * include/bits/random.h (uniform_real_distribution::param_type)
1010 (normal_distribution::param_type, lognormal_distribution::param_type)
1011 (gamma_distribution::param_type, chi_squared_distribution::param_type)
1012 (cauchy_distribution::param_type, fisher_f_distribution::param_type)
1013 (student_t_distribution::param_type)
1014 (bernoulli_distribution::param_type, binomial_distribution::param_type)
1015 (geometric_distribution::param_type)
1016 (negative_binomial_distribution::param_type)
1017 (poisson_distribution::param_type)
1018 (exponential_distribution::param_type)
1019 (weibull_distribution::param_type)
1020 (extreme_value_distribution::param_type)
1021 (discrete_distribution::param_type)
1022 (piecewise_constant_distribution::param_type)
1023 (piecewise_linear_distribution::param_type): Define operator!=.
1024 * include/bits/uniform_int_dist.h
1025 (uniform_int_distribution::param_type): Likewise.
1026 * include/ext/random (beta_distribution::param_type)
1027 (rice_distribution::param_type, nakagami_distribution::param_type)
1028 (pareto_distribution::param_type, k_distribution::param_type)
1029 (arcsine_distribution::param_type, hoyt_distribution::param_type)
1030 (triangular_distribution::param_type)
1031 (von_mises_distribution::param_type)
1032 (hypergeometric_distribution::param_type)
1033 (logistic_distribution::param_type)
1034 (uniform_on_sphere_distribution::param_type)
1035 (uniform_inside_sphere_distribution::param_type): Likewise.
1036 * testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc:
1037 Test construction with param_type.
1038 * testsuite/26_numerics/random/binomial_distribution/cons/parms.cc:
1040 * testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc:
1042 * testsuite/26_numerics/random/chi_squared_distribution/cons/parms.cc:
1044 * testsuite/26_numerics/random/exponential_distribution/cons/parms.cc:
1046 * testsuite/26_numerics/random/extreme_value_distribution/cons/
1048 * testsuite/26_numerics/random/fisher_f_distribution/cons/parms.cc:
1050 * testsuite/26_numerics/random/gamma_distribution/cons/parms.cc:
1052 * testsuite/26_numerics/random/geometric_distribution/cons/parms.cc:
1054 * testsuite/26_numerics/random/lognormal_distribution/cons/parms.cc:
1056 * testsuite/26_numerics/random/negative_binomial_distribution/cons/
1058 * testsuite/26_numerics/random/normal_distribution/cons/parms.cc:
1060 * testsuite/26_numerics/random/poisson_distribution/cons/parms.cc:
1062 * testsuite/26_numerics/random/student_t_distribution/cons/parms.cc:
1064 * testsuite/26_numerics/random/uniform_int_distribution/cons/parms.cc:
1066 * testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc:
1068 * testsuite/26_numerics/random/weibull_distribution/cons/parms.cc:
1070 * testsuite/ext/random/arcsine_distribution/cons/parms.cc: Likewise.
1071 * testsuite/ext/random/beta_distribution/cons/parms.cc: Likewise.
1072 * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
1073 * testsuite/ext/random/hypergeometric_distribution/cons/parms.cc:
1075 * testsuite/ext/random/k_distribution/cons/parms.cc: Likewise.
1076 * testsuite/ext/random/logistic_distribution/cons/parms.cc: Likewise.
1077 * testsuite/ext/random/nakagami_distribution/cons/parms.cc: Likewise.
1078 * testsuite/ext/random/normal_mv_distribution/cons/parms.cc: Likewise.
1079 * testsuite/ext/random/pareto_distribution/cons/parms.cc: Likewise.
1080 * testsuite/ext/random/rice_distribution/cons/parms.cc: Likewise.
1081 * testsuite/ext/random/triangular_distribution/cons/parms.cc:
1083 * testsuite/ext/random/uniform_inside_sphere_distribution/cons/
1085 * testsuite/ext/random/von_mises_distribution/cons/parms.cc: Likewise.
1088 * include/bits/alloc_traits.h (__allocator_traits_base::__diff_type)
1089 (__allocator_traits_base::__size_type): Remove.
1090 (allocator_traits::_Ptr): New class template to detect const and void
1091 pointer types without instantiating pointer_traits::rebind
1093 (allocator_traits::_Diff): Likewise for detecting difference_type.
1094 (allocator_traits::_Size): New class template to detect size_type
1095 without instantiating make_unsigned unnecessarily.
1096 * include/bits/ptr_traits.h (pointer_traits::element_type): Use
1097 __detected_or_t instead of __detected_or_t_.
1098 * include/std/type_traits (__detected_or_t_): Remove.
1099 * testsuite/20_util/allocator_traits/members/pointers.cc: New test.
1103 * include/bits/alloc_traits.h (__allocator_traits_base::__rebind):
1104 Replace with class template using void_t.
1105 (__alloc_rebind): Define in terms of
1106 __allocator_traits_base::__rebind.
1107 (allocator_traits): Remove unconditional static_assert for
1109 * include/bits/ptr_traits.h (__replace_first_arg): Remove type member.
1110 (pointer_traits::__rebind): Replace with class template using void_t.
1111 (pointer_traits::rebind): Define in terms of __rebind.
1112 (pointer_traits): Remove unconditional static_assert for rebind.
1113 * testsuite/20_util/allocator_traits/members/rebind_alloc.cc: New test.
1114 * testsuite/20_util/pointer_traits/rebind.cc: New test.
1117 * include/experimental/any (__any_caster): Avoid instantiating
1118 manager function for types that can't be stored in any.
1119 * include/std/any (__any_caster): Likewise.
1120 * testsuite/20_util/any/misc/any_cast.cc: Test non-copyable type.
1121 * testsuite/experimental/any/misc/any_cast.cc: Likewise.
1124 * include/bits/stl_algo.h (is_partitioned): Use increment instead of
1127 2017-01-19 Jonathan Wakely <jwakely@redhat.com>
1130 * include/bits/shared_ptr_base.h (__enable_shared_from_this_base):
1132 (__enable_shared_from_this): Declare __shared_ptr as a friend.
1133 * testsuite/ext/shared_ptr/1.cc: New test.
1136 * include/bits/stl_algo.h (is_partitioned): Don't retest the partition
1138 * testsuite/25_algorithms/is_partitioned/2.cc: New test.
1140 * doc/xml/manual/abi.xml: Fix typo.
1141 * doc/html/manual/abi.html: Likewise.
1144 * include/bits/predefined_ops.h (_Iter_less_val, _Val_less_iter): Add
1145 converting constructors from _Iter_less_iter.
1146 (_Iter_comp_val, _Val_comp_iter): Add converting constructors from
1148 (__iter_comp_val(_Iter_comp_iter<C>): Use converting constructor.
1149 (__val_comp_iter(_Iter_comp_iter<C>): Likewise.
1150 * include/bits/stl_heap.h (__is_heap_until, __push_heap, __pop_heap)
1151 (__make_heap, __sort_heap): Change _Compare parameters to references.
1152 (__is_heap, push_heap, __adjust_heap, __pop_heap, pop_heap)
1153 (__make_heap, make_heap, sort_heap, is_heap_until): Pass comparison
1154 functions as lvalues.
1155 (is_heap): Call __is_heap_until directly to avoid copying __comp.
1156 * testsuite/23_containers/priority_queue/67085.cc: Adjust test to
1157 count copies during construction with empty sequence.
1160 * include/bits/stl_heap.h (__is_heap): Use _GLIBCXX_MOVE.
1161 (__make_heap, __sort_heap): Don't use _GLIBCXX_MOVE inside loops.
1162 * testsuite/23_containers/priority_queue/67085.cc: Adjust expected
1164 * testsuite/25_algorithms/make_heap/movable.cc: New test.
1167 * include/bits/stl_heap.h (push_heap, __adjust_heap, __pop_heap)
1168 (pop_heap, __make_heap, make_heap, __sort_heap, sort_heap): Use
1169 _GLIBCXX_MOVE when passing comparison function to other functions.
1170 (is_heap_until, is_heap): Use std::move when passing comparison
1172 * testsuite/23_containers/priority_queue/67085.cc: New test.
1175 * doc/xml/manual/abi.xml (abi.versioning.history): Add markup to
1176 macro names, filenames, and literal values. Document _GLIBCXX_RELEASE.
1177 Document that the deprecated _GLIBCXX_VERSION macro was removed for
1179 * doc/html/*: Regenerate.
1180 * include/Makefile.am (_GLIBCXX_RELEASE): Set value.
1181 * include/Makefile.in: Regenerate.
1182 * include/bits/c++config (_GLIBCXX_RELEASE): Add #define.
1183 * testsuite/ext/profile/mutex_extensions_neg.cc: Use lineno of 0 in
1186 2017-01-18 Jonathan Wakely <jwakely@redhat.com>
1189 * include/std/atomic (atomic<T>::load, atomic<T>::exchange): Use
1190 aligned buffer instead of default-initialized variable.
1191 * testsuite/29_atomics/atomic/69301.cc: New test.
1192 * include/experimental/memory (observer_ptr::release): Use reserved
1194 * include/ext/pointer.h (_Pointer_adapter::operator++(int))
1195 (_Pointer_adapter::operator--(int)): Likewise.
1198 * include/experimental/random (randint): Use temporary instead of
1199 thread_local static.
1201 2017-01-17 Joshua Conner <joshconner@google.com>
1203 * crossconfig.m4: Add fuchsia OS.
1204 * configure: Regenerate.
1206 2017-01-17 Jonathan Wakely <jwakely@redhat.com>
1209 * doc/xml/manual/abi.xml (abi.versioning.history): Explain why the
1210 __GLIBCXX__ macro is not useful. Remove redundant date information
1211 and link to the GCC release timeline.
1212 (abi.versioning.active): Move partial sentence into the previous
1214 * doc/html/*: Regenerate.
1217 * libsupc++/nested_exception.h (throw_with_nested): Use decay instead
1218 of remove_reference.
1219 * testsuite/18_support/nested_exception/79114.cc: New test.
1221 2017-01-17 Jakub Jelinek <jakub@redhat.com>
1224 * configure.ac: Add GCC_BASE_VER.
1225 * fragment.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
1226 get version from BASE-VER file.
1227 * po/Makefile.in: Regenerated.
1228 * libsupc++/Makefile.in: Regenerated.
1229 * testsuite/Makefile.in: Regenerated.
1230 * src/Makefile.in: Regenerated.
1231 * configure: Regenerated.
1232 * Makefile.in: Regenerated.
1233 * include/Makefile.in: Regenerated.
1234 * doc/Makefile.in: Regenerated.
1235 * python/Makefile.in: Regenerated.
1236 * src/c++11/Makefile.in: Regenerated.
1237 * src/c++98/Makefile.in: Regenerated.
1238 * src/filesystem/Makefile.in: Regenerated.
1240 2017-01-16 Jonathan Wakely <jwakely@redhat.com>
1243 * src/c++11/functexcept.cc: Use new ABI for std::ios_base::failure
1245 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Don't override ABI
1246 for test, so new ios::failure can be caught.
1247 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
1248 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
1249 exceptions_failbit.cc: Likewise.
1250 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
1251 exceptions_failbit.cc: Likewise.
1252 * testsuite/27_io/basic_istream/extractors_other/char/
1253 exceptions_null.cc: Likewise.
1254 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
1255 exceptions_null.cc: Likewise.
1256 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
1257 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
1258 * testsuite/27_io/basic_ostream/inserters_other/char/
1259 exceptions_null.cc: Likewise.
1260 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
1261 exceptions_null.cc: Likewise.
1262 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
1265 * include/bits/locale_classes.h (locale::facet::__shim): Change from
1266 private to protected.
1267 * src/c++11/cxx11-shim_facets.cc (__shim_accessor): Define helper to
1268 make locale::facet::__shim accessible.
1270 2017-01-16 Ville Voutilainen <ville.voutilainen@gmail.com>
1273 * include/bits/list.tcc (merge(list&&)): Fix backwards size adjustments.
1274 (merge(list&&, _StrictWeakOrdering)): Likewise.
1275 * testsuite/23_containers/list/operations/78389.cc: Add
1276 better test for the sizes.
1278 2017-01-14 Jonathan Wakely <jwakely@redhat.com>
1280 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
1281 Skip test when -D_GLIBCXX_PROFILE mode is included in options.
1282 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
1283 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
1285 * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
1286 * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise.
1287 * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise.
1288 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
1289 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
1291 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc::
1293 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc::
1295 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
1297 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
1299 * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise.
1300 * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise.
1301 * testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise.
1302 * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise.
1303 * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise.
1304 * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
1305 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
1306 * testsuite/libstdc++-prettyprinters/debug.cc: Likewise.
1307 * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise.
1308 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
1309 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
1310 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
1311 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
1313 2017-01-13 Jonathan Wakely <jwakely@redhat.com>
1316 * config/io/basic_file_stdio.cc (__basic_file<char>::close()): Don't
1317 retry fclose on EINTR.
1319 * include/profile/base.h: Remove unused header that leads to header
1320 cycle in C++17 mode.
1323 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
1324 Make _If_sv private.
1325 [!_GLIBCXX_USE_CXX11_ABI] (basic_string): Add member functions taking
1326 basic_string_view arguments.
1329 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Remove
1330 redundant option from cxxflags.
1331 (check_effective_target_cxx11-abi): Define.
1332 * testsuite/21_strings/basic_string/allocator/71964.cc: Use cxx11-abi
1334 * testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise.
1335 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
1337 * testsuite/21_strings/basic_string/allocator/char/minimal.cc:
1339 * testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
1340 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
1342 * testsuite/21_strings/basic_string/allocator/char/noexcept.cc:
1344 * testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
1345 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
1347 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
1349 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
1351 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
1353 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
1355 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
1357 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
1359 * testsuite/23_containers/list/61347.cc: Likewise.
1360 * testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
1361 * testsuite/27_io/ios_base/failure/cxx11.cc: Likewise.
1363 2017-01-13 Ville Voutilainen <ville.voutilainen@gmail.com>
1366 * include/bits/list.tcc (merge(list&&)):
1367 Adjust list sizes if the comparator throws.
1368 (merge(list&&, _StrictWeakOrdering)): Likewise.
1369 (sort()): Splice elements back from the scratch buffers
1370 if the comparator throws.
1371 (sort(_StrictWeakOrdering)): Likewise.
1372 * testsuite/23_containers/list/operations/78389.cc: New.
1374 2017-01-13 Jonathan Wakely <jwakely@redhat.com>
1376 * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Mark
1377 XFAIL for C++17 until node reinsertion supports fancy pointers.
1380 * testsuite/20_util/add_pointer/value.cc: Test forming function
1383 2017-01-13 Michael Brune <lucdanton@free.fr>
1386 * include/std/type_traits (__is_referenceable): Handle noexcept
1389 2017-01-12 Jonathan Wakely <jwakely@redhat.com>
1392 * include/bits/stl_queue.h (queue, priority_queue): Remove default
1393 member-initializers and define default constructors as templates with
1395 * include/bits/stl_stack.h (stack): Likewise.
1396 * testsuite/23_containers/priority_queue/requirements/constructible.cc:
1398 * testsuite/23_containers/priority_queue/requirements/
1399 explicit_instantiation/1.cc: Test more instantiations.
1400 * testsuite/23_containers/priority_queue/requirements/
1401 explicit_instantiation/1_c++98.cc: Likewise.
1402 * testsuite/23_containers/queue/requirements/constructible.cc: New.
1403 * testsuite/23_containers/stack/requirements/constructible.cc: New.
1406 * doc/xml/manual/intro.xml: Document LWG 2781 change.
1407 * doc/html/*: Regenerate.
1408 * include/std/functional (_Function_base::_Ref_manager): Remove.
1409 (_Function_handler): Remove partial specializations for
1411 (function::target): Remove special case for const qualification.
1412 * testsuite/20_util/function/6.cc: Adjust tests for target type.
1413 * testsuite/20_util/function/7.cc: Likewise.
1414 * testsuite/20_util/function/8.cc: Likewise.
1416 2017-01-11 Jonathan Wakely <jwakely@redhat.com>
1419 * include/bits/stl_map.h (map::lower_bound, map::upper_bound)
1420 (map::equal_range): Fix return type of heterogeneous overloads.
1421 * include/bits/stl_multimap.h (multimap::lower_bound)
1422 (multimap::upper_bound, multimap::equal_range): Likewise.
1423 * include/bits/stl_multiset.h (multiset::lower_bound)
1424 (multiset::upper_bound, multiset::equal_range): Likewise.
1425 * include/bits/stl_set.h (set::lower_bound, set::upper_bound)
1426 (set::equal_range): Likewise.
1427 * testsuite/23_containers/map/operations/2.cc
1428 * testsuite/23_containers/multimap/operations/2.cc
1429 * testsuite/23_containers/multiset/operations/2.cc
1430 * testsuite/23_containers/set/operations/2.cc
1433 * include/bits/stl_map.h (map::count<_Kt>(const _Kt&)): Don't assume
1434 the heterogeneous comparison can only find one match.
1435 * include/bits/stl_set.h (set::count<_Kt>(const _Kt&)): Likewise.
1436 * testsuite/23_containers/map/operations/2.cc: Test count works with
1437 comparison function that just partitions rather than sorting.
1438 * testsuite/23_containers/set/operations/2.cc: Likewise.
1440 2017-01-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1442 Reduce the size of variant, it doesn't need an index of
1443 type size_t internally.
1444 * include/std/variant (parse_numbers.h): New include.
1445 (__select_index): New.
1446 (_Variant_storage<false, _Types...>::_M_reset_impl): Use
1447 _index_type for comparison with variant_npos.
1448 (_Variant_storage<false, _Types...>::__index_type): New.
1449 (_Variant_storage<false, _Types...>::_M_index): Change the
1450 type from size_t to __index_type.
1451 (_Variant_storage<true, _Types...>::__index_type): New.
1452 (_Variant_storage<true, _Types...>::_M_index): Change the
1453 type from size_t to __index_type.
1454 (_Variant_base::_M_valid): Use _Storage::__index_type
1455 for comparison with variant_npos.
1456 (variant::index): Use _Base::_Storage::__index_type
1457 for comparison with variant_npos.
1458 * testsuite/20_util/variant/index_type.cc: New.
1460 2017-01-10 Jonathan Wakely <jwakely@redhat.com>
1462 * testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
1463 effective target selector to prevent running in C++17 mode.
1466 * include/bits/stl_queue.h (queue::c): Add default member initializer.
1467 (queue::queue()): Add constructor and define as defaulted.
1468 (queue::queue(_Sequence&&)): Remove default argument.
1469 (priority_queue::c, priority_queue::comp): Add default member
1471 (priority_queue::priority_queue()): Add constructor and define as
1473 (priority_queue::priority_queue(const _Compare&, _Sequence&&)):
1474 Remove default argument for first parameter.
1475 * include/bits/stl_stack.h (stack::c): Add default member initializer.
1476 (stack::stack()): Add constructor and define as defaulted.
1477 (stack::stack(const _Sequence&)): Remove default argument.
1478 * testsuite/23_containers/priority_queue/requirements/
1479 explicit_instantiation/1.cc: Test explicit instantiation with
1480 non-DefaultConstructible sequence.
1481 * testsuite/23_containers/priority_queue/77528.cc: New test.
1482 * testsuite/23_containers/priority_queue/requirements/
1483 explicit_instantiation/1_c++0x.cc: Replace with 1_c++98.cc.
1484 * testsuite/23_containers/queue/77528.cc: New test.
1485 * testsuite/23_containers/queue/requirements/explicit_instantiation/
1486 1.cc: Test explicit instantiation with non-DefaultConstructible
1488 * testsuite/23_containers/queue/requirements/explicit_instantiation/
1489 1_c++0x.cc: Replace with 1_c++98.cc.
1490 * testsuite/23_containers/stack/77528.cc: New test.
1491 * testsuite/23_containers/stack/requirements/explicit_instantiation/
1492 1.cc: Test explicit instantiation with non-DefaultConstructible
1494 * testsuite/23_containers/stack/requirements/explicit_instantiation/
1495 1_c++0x.cc: Replace with 1_c++98.cc.
1497 2017-01-10 Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
1499 * include/bits/locale_facets_nonio.tcc
1500 (time_get::_M_extract_via_format): Avoid compilation errors with
1501 non-standard struct tm.
1503 2017-01-10 François Dumont <fdumont@gcc.gnu.org>
1504 Jonathan Wakely <jwakely@redhat.com>
1506 * python/libstdcxx/v6/printers.py (_versioned_namespace): Define.
1507 (is_specialization, strip_versioned_namespace): New helpers functions
1508 to work with symbols in the versioned namespace.
1509 (Printer.add_version): Add second name using versioned namespace.
1510 (add_one_template_type_printer, add_one_type_printer): Add second
1511 type printers using versioned namespace.
1512 (register_type_printers): Add template type printer for basic_string.
1513 (build_libstdcxx_dictionary): Remove dead code.
1514 * python/libstdcxx/v6/xmethods.py: Make all matchers look for
1515 versioned namespace.
1516 * testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected
1518 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
1520 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
1523 * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Check for llrint and llround
1524 functions separately on darwin and if they're missing define
1525 _GLIBCXX_NO_C99_ROUNDING_FUNCS.
1526 * config.h.in: Regenerate.
1527 * configure: Regenerate.
1528 * include/c_global/cmath [_GLIBCXX_NO_C99_ROUNDING_FUNCS] (llrint)
1529 (llrintf, llrintl, llround, llroundf, llroundl): Do not define.
1531 * testsuite/30_threads/condition_variable/members/3.cc: Use new macro
1532 to detect correct thread_local destructors.
1533 * testsuite/util/testsuite_hooks.h (CORRECT_THREAD_LOCAL_DTORS):
1536 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
1537 Aditya Kumar <hiraditya@msn.com>
1540 * include/bits/basic_string.tcc
1541 (basic_string::find(const CharT*, size_type, size_type)): Optimize.
1543 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
1545 * testsuite/21_strings/basic_string/operations/find/char/6.cc: New.
1546 * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: New.
1548 * testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
1549 Include <cassert> header.
1552 * crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
1553 * configure: Regenerate.
1555 2017-01-06 Barrett Adair <barrettellisadair@gmail.com>
1556 Jonathan Wakely <jwakely@redhat.com>
1558 * include/std/variant (variant, swap): Replace __and_ usage with fold
1561 2017-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1564 * acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
1565 * configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
1566 GLIBCXX_CHECK_ASSEMBLER_HWCAP.
1567 * fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
1569 * aclocal.m4: Regenerate.
1570 * configure: Regenerate.
1571 * Makefile.in, doc/Makefile.in, include/Makefile.in,
1572 libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
1573 src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
1574 src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
1576 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
1578 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.
1581 * include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
1582 (_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
1583 (_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and
1584 move function objects.
1585 (__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter)
1586 (__iter_comp_val, __iter_comp_iter, __negate): Move function objects.
1587 * testsuite/25_algorithms/sort/78991.cc: New test.
1589 2017-01-05 Jonathan Wakely <jwakely@redhat.com>
1591 * include/bits/std_function.h (function::_Signature_type): Remove.
1592 (function::function(_Functor)): Adjust.
1594 2017-01-05 Tim Shen <timshen@google.com>
1597 * include/std/variant (__gen_vtable_impl): rename __unused to
1598 __dimensions to avoid naming conflict.
1600 2017-01-04 Jonathan Wakely <jwakely@redhat.com>
1603 * config.h.in: Regenerate.
1604 * configure: Likewise.
1605 * configure.ac: Check for __cxa_thread_atexit.
1606 * libsupc++/atexit_thread.cc [_GLIBCXX_HAVE___CXA_THREAD_ATEXIT]:
1607 Don't define __cxa_thread_atexit if libc provides it.
1609 2017-01-04 Ville Voutilainen <ville.voutilainen@gmail.com>
1611 Implement 2801, Default-constructibility of unique_ptr.
1612 * include/bits/unique_ptr.h (__uniq_ptr_impl::_DeleterConstraint): New.
1613 (unique_ptr::_DeleterConstraint): Likewise.
1614 (unique_ptr()): Constrain.
1615 (unique_ptr(pointer)): Likewise.
1616 (unique_ptr(nullptr_t)): Likewise.
1617 (unique_ptr<_Tp[], _Dp>::_DeleterConstraint): New.
1618 (unique_ptr<_Tp[], _Dp>::unique_ptr()): Constrain.
1619 (unique_ptr<_Tp[], _Dp>::unique_ptr(_Up)): Likewise.
1620 (unique_ptr<_Tp[], _Dp>::unique_ptr(nullptr_t)): Likewise.
1621 * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust.
1622 * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
1623 * testsuite/20_util/unique_ptr/cons/default.cc: New.
1624 * testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Adjust.
1626 2017-01-04 Pauli Nieminen <suokkos@gmail.com>
1627 Jonathan Wakely <jwakely@redhat.com>
1630 * acinclude.m4 (GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER): Define.
1631 * config.h.in: Regenerate.
1632 * config/abi/pre/gnu.ver [HAVE_EXCEPTION_PTR_SINCE_GCC46]
1633 (GLIBCXX_3.4.15, GLIBCXX_3.4.21, CXXABI_1.3.3, CXXABI_1.3.5): Make
1634 exports for exception_ptr, nested_exception, and future conditional.
1635 [HAVE_EXCEPTION_PTR_SINCE_GCC46] (GLIBCXX_3.4.23, CXXABI_1.3.11): Add
1636 exports for exception_ptr, nested_exception, and future conditional.
1637 * configure: Regenerate.
1638 * configure.ac: Use GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER.
1639 * include/std/future: Remove check for ATOMIC_INT_LOCK_FREE
1640 * libsupc++/eh_atomics.h: New file for internal use only.
1641 (__eh_atomic_inc, __eh_atomic_dec): New.
1642 * libsupc++/eh_ptr.cc (exception_ptr::_M_addref)
1643 (exception_ptr::_M_release) (__gxx_dependent_exception_cleanup)
1644 (rethrow_exception): Use eh_atomics.h reference counting helpers.
1645 * libsupc++/eh_throw.cc (__gxx_exception_cleanup): Likewise.
1646 * libsupc++/eh_tm.cc (free_any_cxa_exception): Likewise.
1647 * libsupc++/exception: Remove check for ATOMIC_INT_LOCK_FREE.
1648 * libsupc++/exception_ptr.h: Likewise.
1649 * libsupc++/guard.cc: Include header for ATOMIC_INT_LOCK_FREE macro.
1650 * libsupc++/nested_exception.cc: Remove check for
1651 ATOMIC_INT_LOCK_FREE.
1652 * libsupc++/nested_exception.h: Likewise.
1653 * src/c++11/future.cc: Likewise.
1654 * testsuite/18_support/exception_ptr/*: Remove atomic builtins checks.
1655 * testsuite/18_support/nested_exception/*: Likewise.
1656 * testsuite/30_threads/async/*: Likewise.
1657 * testsuite/30_threads/future/*: Likewise.
1658 * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
1659 * testsuite/30_threads/packaged_task/*: Likewise.
1660 * testsuite/30_threads/promise/*: Likewise.
1661 * testsuite/30_threads/shared_future/*: Likewise.
1663 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
1665 * doc/xml/manual/documentation_hacking.xml: sourceforge.net now
1666 defaults to https; adjust reference.
1668 2017-01-03 Jonathan Wakely <jwakely@redhat.com>
1671 * include/std/thread (thread(const thread&&)): Add deleted
1673 * testsuite/30_threads/thread/cons/lwg2097.cc: New test.
1675 * doc/xml/manual/spine.xml: Update copyright years.
1676 * doc/xml/manual/build_hacking.xml: Fix spelling of libbuilddir.
1677 * doc/xml/manual/test.xml: Likewise.
1678 * doc/html/*: Regenerate.
1680 2017-01-01 Gerald Pfeifer <gerald@pfeifer.com>
1682 * doc/xml/faq.xml: Update address of C++ ABI link.
1683 * doc/xml/manual/abi.xml: Ditto.
1685 2017-01-01 Jakub Jelinek <jakub@redhat.com>
1687 Update copyright years.
1689 Copyright (C) 2017 Free Software Foundation, Inc.
1691 Copying and distribution of this file, with or without modification,
1692 are permitted in any medium without royalty provided the copyright
1693 notice and this notice are preserved.