1 2017-05-09 Jason Merrill <jason@redhat.com>
3 * testsuite/24_iterators/container_access.cc (test03): Make il3 static.
5 2017-05-08 Jonathan Wakely <jwakely@redhat.com>
7 * include/std/optional: Use a separate static_assert per condition.
8 * testsuite/20_util/optional/cons/value_neg.cc: Update dg-error line
11 * doc/xml/manual/mt_allocator.xml: Clarify deallocation behaviour.
12 * doc/html/*: Regenerate.
14 2017-05-02 Hugo Beauzée-Luyssen <hugo@beauzee.fr>
17 * config/os/mingw32-w64/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
19 2017-04-29 François Dumont <fdumont@gcc.gnu.org>
21 * testsuite/libstdc++-prettyprinters/48362.cc: Replace a regexp-test
24 2017-04-28 Jonathan Wakely <jwakely@redhat.com>
27 * include/bits/stl_construct.h (_Destroy, _Destroy_n): Add static
28 assertions to ensure type is destructible.
29 (destroy_at, destroy, destroy_n): Move from stl_uninitialized.h.
30 * include/bits/stl_uninitialized.h (destroy_at, destroy, destroy_n):
31 Move to stl_construct.h.
32 * testsuite/20_util/specialized_algorithms/memory_management_tools/
33 destroy_neg.cc: New test.
34 * testsuite/23_containers/vector/cons/destructible_neg.cc: New test.
36 * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
37 superfluous "" in dg-error.
39 2017-04-28 Tom de Vries <tom@codesourcery.com>
41 * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
42 superfluous '{ target *-*-* }' in dg-(error|warning|message|bogus).
44 2017-04-27 Jonathan Wakely <jwakely@redhat.com>
46 * include/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
47 (PB_DS_CLASS_C_DEC::end()): Remove redundant const in cast type.
48 * testsuite/util/testsuite_rng.h (twister_rand_gen::get_prob()):
51 2017-04-26 Jonathan Wakely <jwakely@redhat.com>
53 * testsuite/23_containers/deque/allocator/move_assign-2.cc: Improve
54 comment. Ensure first test works because allocator type propagates and
55 not because is_always_equal is true.
56 * testsuite/23_containers/vector/52591.cc: Likewise. Restore original
57 testcase that instantiates the move-assignment operator.
59 2017-04-24 Jonathan Wakely <jwakely@redhat.com>
62 * include/bits/random.tcc (gamma_distribution::operator()): Fix magic
63 number used in loop condition.
66 * include/bits/refwrap.h (ref, cref): Qualify calls.
67 * testsuite/20_util/reference_wrapper/80504.cc: New test.
70 * include/experimental/optional (optional::swap): Fix exception
73 2017-04-21 Jonathan Wakely <jwakely@redhat.com>
76 * include/std/future (_State_baseV2::_Setter::operator()): Remove
77 _S_check calls that are done after the pointer to the shared state is
79 (_State_baseV2::_Setter<_Res, void>): Define specialization for void
80 as partial specialization so it can be defined within the definition
82 (_State_baseV2::__setter): Call _S_check.
83 (_State_baseV2::__setter(promise<void>*)): Add overload for use by
84 promise<void>::set_value and promise<void>::set_value_at_thread_exit.
85 (promise<T>, promise<T&>, promise<void>): Make _State a friend.
86 (_State_baseV2::_Setter<void, void>): Remove explicit specialization.
87 (promise<void>::set_value, promise<void>::set_value_at_thread_exit):
88 Use new __setter overload.
89 * testsuite/30_threads/promise/members/at_thread_exit2.cc: New test.
90 * testsuite/30_threads/promise/members/set_exception.cc: Test
91 promise<T&> and promise<void> specializations.
92 * testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
93 Test for no_state error condition.
94 * testsuite/30_threads/promise/members/set_value2.cc: Likewise.
96 * include/backward/auto_ptr.h: Ignore deprecated warnings from use
98 * include/bits/shared_ptr.h: Likewise.
99 * include/bits/shared_ptr_base.h: Likewise.
100 * include/bits/unique_ptr.h: Likewise.
101 * libstdc++-v3/testsuite/20_util/default_delete/48631_neg.cc: Adjust
103 * libstdc++-v3/testsuite/20_util/default_delete/void_neg.cc: Likewise.
104 * libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc:
106 * libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc:
109 2017-04-20 Edward Smith-Rowland <3dw4rd@verizon.net>
111 PR libstdc++/68397 std::tr1::expint fails ... long double arguments.
112 * include/tr1/exp_integral.tcc: Increase iteration limits.
113 * testsuite/tr1/5_numerical_facilities/special_functions/15_expint/
114 pr68397.cc: New test.
115 * testsuite/special_functions/14_expint/pr68397.cc: New test.
117 2017-04-20 Jonathan Wakely <jwakely@redhat.com>
120 * include/std/atomic [!_GLIBCXX_USE_C99_STDINT_TR1] (atomic_int8_t)
121 (atomic_uint8_t, atomic_int16_t, atomic_uint16_t, atomic_int32_t,
122 (atomic_uint32_t, atomic_int64_t, atomic_uint64_t)
123 (atomic_int_least8_t, atomic_uint_least8_t, atomic_int_least16_t)
124 (atomic_uint_least16_t, atomic_int_least32_t, atomic_uint_least32_t)
125 (atomic_int_least64_t, atomic_uint_least64_t, atomic_int_fast8_t)
126 (atomic_uint_fast8_t, atomic_int_fast16_t, atomic_uint_fast16_t)
127 (atomic_int_fast32_t, atomic_uint_fast32_t, atomic_int_fast64_t)
128 (atomic_uint_fast64_t, atomic_intmax_t, atomic_uintmax_t): Don't
131 2017-04-19 Jonathan Wakely <jwakely@redhat.com>
133 * doc/xml/manual/abi.xml: Rephrase one of the references to the
135 * doc/xml/manual/test.xml: Document DejaGnu 1.5.3 requirement.
136 * doc/html/*: Regenerate.
138 * libsupc++/new: Update comment on #endif directive.
141 * include/experimental/bits/fs_dir.h (directory_iterator)
142 (recursive_directory_iterator): Remove noexcept from defaulted
146 * include/std/type_traits (is_aggregate): Change __has_builtin checks.
147 * libsupc++/new (launder): Likewise.
149 2017-04-18 Jonathan Wakely <jwakely@redhat.com>
151 * include/std/functional (default_searcher, __boyer_moore_array_base)
152 (__is_std_equal_to, __boyer_moore_base_t, boyer_moore_searcher)
153 (boyer_moore_horspool_searcher): Remove redundant namespace
155 (default_searcher::operator()): Construct return value early and
156 advance second member in-place.
157 (boyer_moore_horspool_searcher::operator()): Increment random access
158 iterator directly instead of using std::next.
159 (boyer_moore_searcher::operator()): Fix return value.
160 * testsuite/20_util/function_objects/searchers.cc: Check both parts
163 2017-04-12 Gerald Pfeifer <gerald@pfeifer.com>
165 * doc/xml/faq.xml: Update reference link to C++ ABI for Itanium.
166 * doc/xml/manual/abi.xml. Ditto (thrice).
168 2017-04-03 Jonathan Wakely <jwakely@redhat.com>
170 * doc/xml/manual/status_cxx2017.xml: Remove duplicate table entry.
171 * doc/html/*: Regenerate.
173 * testsuite/20_util/reference_wrapper/invoke.cc: Uncomment tests
176 * include/bits/ios_base.h: Correct comment.
177 * testsuite/util/testsuite_hooks.h: Likewise.
179 * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
180 * doc/xml/manual/appendix_contributing.xml (contrib.organization): Add
181 directories for debug, parallel and profile headers.
182 * doc/html/*: Regenerate.
184 * include/bits/char_traits.h (__gnu_cxx::char_traits): Add
185 _GLIBCXX14_CONSTEXPR on assign, compare, find, and length.
186 (std::char_traits<char>, std::char_traits<wchar_t>): Add
187 _GLIBCXX17_CONSTEXPR on assign.
188 (std::char_traits<char16_t>, std::char_traits<char32_t>): Add
189 _GLIBCXX17_CONSTEXPR on assign, compare, find, and length.
190 * testsuite/21_strings/char_traits/requirements/
191 constexpr_functions_c++17.cc: New test.
193 2017-04-03 Ville Voutilainen <ville.voutilainen@gmail.com>
196 * include/bits/stl_pair.h (__nonesuch_no_braces): New.
197 (operator=(typename conditional<
198 __and_<is_copy_assignable<_T1>,
199 is_copy_assignable<_T2>>::value,
200 const pair&, const __nonesuch&>::type)): Change __nonesuch
201 to __nonesuch_no_braces.
202 (operator=(typename conditional<
203 __not_<__and_<is_copy_assignable<_T1>,
204 is_copy_assignable<_T2>>>::value,
205 const pair&, const __nonesuch&>::type)): Likewise.
206 (operator=(typename conditional<
207 __and_<is_move_assignable<_T1>,
208 is_move_assignable<_T2>>::value,
209 pair&&, __nonesuch&&>::type)): Likewise.
210 * testsuite/20_util/pair/79141.cc: New.
212 2017-04-03 Ville Voutilainen <ville.voutilainen@gmail.com>
214 Implement std::is_aggregate.
215 * include/std/type_traits (is_aggregate, is_aggregate_v): New.
216 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
218 * testsuite/20_util/is_aggregate/requirements/typedefs.cc: Likewise.
219 * testsuite/20_util/is_aggregate/value.cc: Likewise.
221 2017-03-29 Ville Voutilainen <ville.voutilainen@gmail.com>
223 Adjust optional's pretty printer for LWG 2900.
224 * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter.__init__):
225 Look at the nested payload in case of non-experimental optional.
227 2017-03-29 Ville Voutilainen <ville.voutilainen@gmail.com>
229 Implement LWG 2900, The copy and move constructors
230 of optional are not constexpr.
231 * include/std/optional (_Optional_payload): New.
232 (_Optional_base): Remove the bool parameter.
233 (_Optional_base<_Tp, false>): Remove.
234 (_Optional_base()): Adjust.
235 (_Optional_base(nullopt_t)): Likewise.
236 (_Optional_base(in_place_t, _Args&&...)): Likewise.
237 (_Optional_base(in_place_t, initializer_list<_Up>, _Args&&...)):
239 (_Optional_base(const _Optional_base&)): Likewise.
240 (_Optional_base(_Optional_base&&)): Likewise.
241 (operator=(const _Optional_base&)): Likewise.
242 (operator=(_Optional_base&&)): Likewise.
243 (~_Optional_base()): Remove.
244 (_M_is_engaged()): Adjust.
245 (_M_get()): Likewise.
246 (_M_construct(_Args&&...)): Likewise.
247 (_M_destruct()): Likewise.
248 (_M_reset()): Likewise.
249 (_Optional_base::_Empty_byte): Remove.
250 (_Optional_base::_M_empty): Remove.
251 (_Optional_base::_M_payload): Adjust.
252 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
253 * testsuite/20_util/optional/constexpr/cons/value.cc: Add tests.
255 2017-03-28 Jonathan Wakely <jwakely@redhat.com>
258 * include/bits/random.tcc (generate_canonical): Use std::nextafter
259 or numeric_limits::epsilon() to reduce out-of-range values.
260 * testsuite/26_numerics/random/uniform_real_distribution/operators/
261 64351.cc: Verify complexity requirement is met.
263 * doc/xml/manual/abi.xml: Add xml:id anchor.
264 * doc/xml/manual/using.xml (manual.intro.using.macros): Document
265 _GLIBCXX_RELEASE. Link to new anchor for __GLIBCXX__ notes.
266 (concurrency.io.structure): Add markup.
267 * doc/html/*: Regenerate.
270 * include/bits/shared_ptr_base.h
271 (__shared_ptr::_M_enable_shared_from_this_with): Change parameters to
272 non-const and then use remove_cv to get unqualified type.
273 * testsuite/20_util/enable_shared_from_this/members/const.cc: Don't
274 cast away constness on object created const.
275 * testsuite/20_util/shared_ptr/cons/80229.cc: New test.
277 2017-03-26 Markus Trippelsdorf <markus@trippelsdorf.de>
280 * include/bits/stl_tree.h:
281 (_Rb_tree_header::_M_move_data(_Rb_tree_header&)): Also save _M_color.
283 2017-03-23 Jonathan Wakely <jwakely@redhat.com>
285 * testsuite/23_containers/array/tuple_interface/
286 tuple_element_debug_neg.cc: Adjust dg-error.
287 * testsuite/23_containers/list/operations/78389.cc: Fix less-than to
288 define a valid strict weak ordering.
289 * testsuite/23_containers/priority_queue/67085.cc: Disable test for
290 Debug Mode, due to debug checks making extra copies of predicate.
291 * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
294 * doc/xml/faq.xml: Add link.
295 * doc/xml/manual/backwards_compatibility.xml: Remove outdated
296 information on pre-ISO headers. Replace broken link to C++ FAQ Lite.
297 * doc/xml/manual/io.xml: Update broken link.
298 * doc/html/*: Regenerate.
300 2017-03-23 Daniel Kruegler <daniel.kruegler@gmail.com>
302 Implement LWG 2686, Why is std::hash specialized for error_code,
303 but not error_condition?
304 * include/std/system_error (hash<error_condition>): Define for C++17.
305 * testsuite/20_util/hash/operators/size_t.cc (hash<error_condition>):
306 Instantiate test for error_condition.
307 * testsuite/20_util/hash/requirements/explicit_instantiation.cc
308 (hash<error_condition>): Instantiate hash<error_condition>.
310 * include/bits/c++config (_GLIBCXX17_INLINE): Define.
311 * include/bits/regex_constants.h (All std::regex_constants constants):
312 Add _GLIBCXX17_INLINE as per P0607R0.
313 * include/bits/std_mutex.h (defer_lock, try_to_lock, adopt_lock):
315 * include/bits/stl_pair.h (piecewise_construct): Likewise.
316 * include/bits/uses_allocator.h (allocator_arg, uses_allocator_v)
317 (__is_uses_allocator_constructible_v)
318 (__is_nothrow_uses_allocator_constructible_v): Likewise.
319 * include/std/chrono (treat_as_floating_point_v): Likewise.
320 * include/std/functional (is_bind_expression_v, is_placeholder_v):
322 * include/std/optional (nullopt): Likewise.
323 * include/std/ratio (ratio_equal_v, ratio_not_equal_v, ratio_less_v)
324 ratio_less_equal_v, ratio_greater_v, ratio_greater_equal_v): Likewise.
325 * include/std/system_error (is_error_code_enum_v)
326 (is_error_condition_enum_v): Likewise.
327 * include/std/tuple (tuple_size_v, ignore): Likewise.
328 (ignore): Declare ignore constexpr as per LWG 2773, declare assignment
329 constexpr as per LWG 2933.
330 * include/std/type_traits (All variable templates): Add
331 _GLIBCXX17_INLINE as per P0607R0.
332 * include/std/variant (variant_size_v, variant_npos, __index_of_v)
333 (__tuple_count_v, __exactly_once): Likewise.
334 * testsuite/18_support/headers/new/synopsis.cc
335 (hardware_destructive_interference_size)
336 (hardware_constructive_interference_size): Likewise for commented-out
338 * testsuite/20_util/tuple/creation_functions/constexpr.cc: Add new
339 test function for constexpr std::ignore (LWG 2773).
340 * testsuite/20_util/tuple/creation_functions/constexpr_cpp14.cc: New
343 2017-03-22 Jonathan Wakely <jwakely@redhat.com>
345 * include/bits/shared_ptr.h (shared_ptr, weak_ptr): Add deduction
347 * include/bits/std_function.h (function): Likewise.
348 * include/bits/stl_pair.h (pair): Likewise.
349 * include/debug/array (__gnu_debug::array): Likewise.
350 * include/std/array (array): Likewise.
351 * include/std/functional (make_default_searcher)
352 (make_boyer_moore_searcher, make_boyer_moore_horspool_searcher):
353 Remove generator functions.
354 * include/std/tuple (tuple): Add deduction guides.
355 * include/std/valarray (valarray): Likewise.
356 * testsuite/20_util/function_objects/searchers.cc: Adjust to use
357 class template argument deduction instead of generator functions.
358 * testsuite/20_util/function/cons/deduction.cc: New test.
359 * testsuite/20_util/optional/cons/deduction_guide.cc: Rename to ...
360 * testsuite/20_util/optional/cons/deduction.cc: ... here.
361 * testsuite/20_util/pair/cons/deduction.cc: New test.
362 * testsuite/20_util/shared_ptr/cons/deduction.cc: New test.
363 * testsuite/20_util/tuple/cons/deduction.cc: New test.
364 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error.
365 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: New test.
366 * testsuite/20_util/weak_ptr/cons/deduction.cc: New test.
367 * testsuite/23_containers/array/cons/deduction.cc: New test.
368 * testsuite/23_containers/array/cons/deduction_neg.cc: New test.
369 * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc:
371 * testsuite/23_containers/array/tuple_interface/get_neg.cc: Likewise.
372 * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
374 * testsuite/26_numerics/valarray/deduction.cc: New test.
375 * testsuite/30_threads/lock_guard/cons/deduction.cc: New test.
376 * testsuite/30_threads/scoped_lock/cons/deduction.cc: New test.
377 * testsuite/30_threads/unique_lock/cons/deduction.cc: New test.
379 2017-03-20 François Dumont <fdumont@gcc.gnu.org>
381 * include/bits/stl_deque.h (deque): Access allocator value_type only if
382 concept checks are enabled.
383 * include/bits/stl_stack.h (stack): Likewise.
384 * include/bits/stl_vector.h (vector): Likewise.
385 * include/bits/stl_list.h (list): Likewise and check
386 _SGIAssignableConcept only in C++03.
387 * include/bits/stl_map.h (map): Likewise.
388 * include/bits/stl_set.h (set): Likewise.
389 * include/bits/stl_multimap.h (multimap): Likewise.
390 * include/bits/stl_multiset.h (multiset): Likewise.
391 * include/bits/stl_queue.h (queue, priority_queue): Likewise.
393 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
395 * doc/xml/manual/appendix_contributing.xml: Convert link to
397 Update link to the C++ standard at ansi.org.
399 * doc/xml/faq.xml: Remove information redundant with the above;
400 instead add a reference.
402 2017-03-17 Jonathan Wakely <jwakely@redhat.com>
404 * src/c++11/codecvt.cc (range): Add non-type template parameter and
405 define oerloaded operators for reading and writing code units.
406 (range<Elem, false>): Define partial specialization for accessing
407 wide characters in potentially unaligned byte ranges.
408 (ucs2_span(const char16_t*, const char16_t*, ...))
409 (ucs4_span(const char16_t*, const char16_t*, ...)): Change parameters
410 to range<const char16_t, false> in order to avoid unaligned reads.
411 (__codecvt_utf16_base<char16_t>::do_out)
412 (__codecvt_utf16_base<char32_t>::do_out)
413 (__codecvt_utf16_base<wchar_t>::do_out): Use range specialization for
414 unaligned data to avoid unaligned writes.
415 (__codecvt_utf16_base<char16_t>::do_in)
416 (__codecvt_utf16_base<char32_t>::do_in)
417 (__codecvt_utf16_base<wchar_t>::do_in): Likewise for writes. Return
418 error if there are unprocessable trailing bytes.
419 (__codecvt_utf16_base<char16_t>::do_length)
420 (__codecvt_utf16_base<char32_t>::do_length)
421 (__codecvt_utf16_base<wchar_t>::do_length): Pass arguments of type
422 range<const char16_t, false> to span functions.
423 * testsuite/22_locale/codecvt/codecvt_utf16/misaligned.cc: New test.
425 2017-03-16 Jonathan Wakely <jwakely@redhat.com>
428 * src/c++11/codecvt.cc (to_integer(codecvt_mode)): Fix target type.
431 * src/c++11/codecvt.cc (__codecvt_utf16_base<wchar_t>::do_out)
432 (__codecvt_utf16_base<wchar_t>::do_in): Convert char arguments to
433 char16_t to work with UTF-16 instead of UTF-8.
434 * testsuite/22_locale/codecvt/codecvt_utf16/80041.cc: New test.
436 * src/c++11/codecvt.cc (codecvt<char16_t, char, mbstate_t>)
437 (codecvt<char32_t, char, mbstate_t>, __codecvt_utf8_base<char16_t>)
438 (__codecvt_utf8_base<char32_t>, __codecvt_utf8_base<wchar_t>)
439 (__codecvt_utf16_base<char16_t>, __codecvt_utf16_base<char32_t>)
440 (__codecvt_utf16_base<wchar_t>, __codecvt_utf8_utf16_base<char16_t>)
441 (__codecvt_utf8_utf16_base<char32_t>)
442 (__codecvt_utf8_utf16_base<wchar_t>): Fix do_encoding() and
443 do_max_length() return values.
444 * testsuite/22_locale/codecvt/codecvt_utf16/members.cc: New test.
445 * testsuite/22_locale/codecvt/codecvt_utf8/members.cc: New test.
446 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/members.cc: New test.
449 * include/bits/locale_conv.h (__do_str_codecvt): Set __count on
451 * src/c++11/codecvt.cc (operator&=, operator|=, operator~): Overloads
452 for manipulating codecvt_mode values.
453 (read_utf16_bom): Compare input to BOM constants instead of integral
454 constants that depend on endianness. Take mode parameter by
455 reference and adjust it, to distinguish between no BOM present and
456 UTF-16BE BOM present.
457 (ucs4_in, ucs2_span, ucs4_span): Adjust calls to read_utf16_bom.
458 (surrogates): New enumeration type.
459 (utf16_in, utf16_out): Add surrogates parameter to choose between
460 UTF-16 and UCS2 behaviour.
461 (utf16_span, ucs2_span): Use std::min not std::max.
462 (ucs2_out): Use std::min not std::max. Disallow surrogate pairs.
463 (ucs2_in): Likewise. Adjust calls to read_utf16_bom.
464 * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc: New test.
465 * testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: New test.
468 * src/c++11/codecvt.cc (write_utf16_code_point): Don't write 0xffff
470 (__codecvt_utf8_utf16_base<char32_t>::do_in): Use native endianness
471 for internal representation.
472 (__codecvt_utf8_utf16_base<wchar_t>::do_in): Likewise.
473 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/79511.cc: New test.
476 * include/bits/stl_heap.h (__is_heap, push_heap, __adjust_heap)
477 (pop_heap, make_heap, sort_heap, is_heap_until, is_heap): Cope with
478 invalid instantiations using function types for _Compare argument.
479 * testsuite/25_algorithms/make_heap/80064.cc: New test.
482 * python/libstdcxx/v6/printers.py (find_type): Avoid gdb.Type.name
483 for GDB 7.6 compatibility, use gdb.Type.unqualified instead.
485 2017-03-15 Ville Voutilainen <ville.voutilainen@gmail.com>
487 Implement LWG 2857, {variant,optional,any}::emplace should
488 return the constructed value.
489 * include/std/any (emplace(_Args&&...)): Change the return type and
490 return a reference to the constructed value.
491 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
492 * include/std/optional (emplace(_Args&&...)): Likewise.
493 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
494 * include/std/variant (emplace<_Tp>(_Args&&...)): Likewise.
495 (emplace<_Tp>(initializer_list<_Up>, _Args&&...)): Likewise.
496 (emplace<_Np>(_Args&&...)): Likewise.
497 (emplace<_Np>(initializer_list<_Up>, _Args&&...)): Likewise.
498 * testsuite/20_util/any/assign/emplace.cc: Add tests for
499 checking the return value of emplace.
500 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
501 * testsuite/20_util/optional/assignment/6.cc: Add tests for
502 checking the return value of emplace.
503 * testsuite/20_util/variant/run.cc: Likewise.
505 2017-03-15 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
508 * include/ext/pb_ds/qdetail/binary_heap_/binary_heap_.hpp
510 (push_heap): Remove the wrong checking using is_heap.
511 (make_heap): Remove the assertion using is_heap.
512 * include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
514 (resize_for_insert_if_needed): Add PB_DS_ASSERT_VALID after
517 2017-03-15 Jonathan Wakely <jwakely@redhat.com>
520 * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
522 * testsuite/ext/pb_ds/regression/priority_queues.cc: Fix copy&paste
525 2017-03-15 Jonathan Wakely <jwakely@redhat.com>
527 * acinclude.m4 (GLIBCXX_CHECK_S_ISREG_OR_S_IFREG): Fix typo in
529 * config.h.in: Regenerate.
530 * configure: Regenerate.
531 * doc/Makefile.in: Regenerate.
533 2017-03-14 Jonathan Wakely <jwakely@redhat.com>
536 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
537 (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Replace
538 with a constrained template.
539 [!_GLIBCXX_USE_CXX11_ABI]
540 (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Likewise.
541 * testsuite/21_strings/basic_string/cons/char/79162.cc: New test.
542 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: New test.
544 2017-03-13 Ville Voutilainen <ville.voutilainen@gmail.com>
547 * include/bits/list.tcc (merge(list&&)): Use const for the size_t
549 (merge(list&&, _StrictWeakOrdering)): Likewise.
550 * testsuite/23_containers/list/operations/80034.cc: New.
552 2017-03-13 Ville Voutilainen <ville.voutilainen@gmail.com>
554 Implement LWG 2806, Base class of bad_optional_access.
555 * include/std/optional (bad_optional_access):
556 Derive from std::exception.
557 (bad_optional_access::bad_optional_access): Adjust.
558 (bad_optional_access::what): New.
559 (__throw_bad_optional_access(const char*)):
560 Remove the parameter and adjust calls.
561 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
562 * testsuite/20_util/optional/typedefs.cc: Likewise.
564 2017-03-12 Ville Voutilainen <ville.voutilainen@gmail.com>
566 Implement LWG 2934, optional<const T> doesn't compare with T.
567 * include/std/optional
568 (operator==(const optional<_Tp>&, const optional<_Tp>&)):
569 Turn into operator==(const optional<_Tp>&, const optional<_Up>&).
570 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
571 Turn into operator!=(const optional<_Tp>&, const optional<_Up>&).
572 (operator<(const optional<_Tp>&, const optional<_Tp>&)):
573 Turn into operator<(const optional<_Tp>&, const optional<_Up>&.
574 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
575 Turn into operator>(const optional<_Tp>&, const optional<_Up>&.
576 (operator<=(const optional<_Tp>&, const optional<_Tp>&)):
577 Turn into operator<=(const optional<_Tp>&, const optional<_Up>&).
578 (operator>=(const optional<_Tp>&, const optional<_Tp>&)):
579 Turn into operator>=(const optional<_Tp>&, const optional<_Up>&).
580 (operator==(const optional<_Tp>&, const _Tp&)):
581 Turn into operator==(const optional<_Tp>&, const _Up&).
582 (operator==(const _Tp&, const optional<_Tp>&)):
583 Turn into operator==(const _Up&, const optional<_Tp>&).
584 (operator!=(const optional<_Tp>&, const _Tp&)):
585 Turn into operator!=(const optional<_Tp>&, const _Up&).
586 (operator!=(const _Tp&, const optional<_Tp>&)):
587 Turn into operator!=(const _Up&, const optional<_Tp>&).
588 (operator<(const optional<_Tp>&, const _Tp&)):
589 Turn into operator<(const optional<_Tp>&, const _Up&).
590 (operator<(const _Tp&, const optional<_Tp>&)):
591 Turn into operator<(const _Up&, const optional<_Tp>&).
592 (operator>(const optional<_Tp>&, const _Tp&)):
593 Turn into operator>(const optional<_Tp>&, const _Up&).
594 (operator>(const _Tp&, const optional<_Tp>&)):
595 Turn into operator>(const _Up&, const optional<_Tp>&).
596 (operator<=(const optional<_Tp>&, const _Tp&)):
597 Turn into operator<=(const optional<_Tp>&, const _Up&).
598 (operator<=(const _Tp&, const optional<_Tp>&)):
599 Turn into operator<=(const _Up&, const optional<_Tp>&).
600 (operator>=(const optional<_Tp>&, const _Tp&)):
601 Turn into operator>=(const optional<_Tp>&, const _Up&).
602 (operator>=(const _Tp&, const optional<_Tp>&)):
603 Turn into operator>=(const _Up&, const optional<_Tp>&).
604 * testsuite/20_util/optional/relops/7.cc: New.
606 2017-03-10 Jonathan Wakely <jwakely@redhat.com>
608 * testsuite/17_intro/names.cc: Undefine macros that clash with
609 identifiers in AIX system headers.
611 * include/bits/invoke.h (__invoke): Use __invoke_result instead of
612 result_of, and __is_nothrow_invocable instead of
613 __is_nothrow_callable.
614 * include/bits/shared_ptr_base.h (__shared_ptr): Use __is_invocable
615 instead of __is_callable.
616 * include/std/functional (invoke): use invoke_result_t instead of
617 result_of_t and is_nothrow_invocable instead of is_nothrow_callable.
618 (_Not_fn): Use __invoke_result instead of result_of.
619 * include/std/type_traits (__result_of_memobj, __result_of_memfun):
620 Remove partial specializations for reference_wrapper types.
621 (__result_of_impl): Use __inv_unwrap to strip reference_wrapper.
622 (__invoke_result): Define replacement for result_of and then use it to
624 (__is_callable_impl, __is_callable, __is_nothrow_callable): Replace
625 with __is_invocable_impl, __is_invocable, and __is_nothrow_invocable
627 (invoke_result, invoke_result_t): Define for C++17.
628 (is_callable, is_nothrow_callable): Replace with is_invocable,
629 is_invocable_r, is_nothrow_invocable, and is_nothrow_invocable_r.
630 (is_callable_v, is_nothrow_callable_v): Replace with is_invocable_v,
631 is_invocable_r_v, is_nothrow_invocable_v, and is_nothrow_invocable_r_v.
632 * include/std/variant (hash<variant<T...>>): Use is_nothrow_invocable_v
633 instead of is_nothrow_callable_v.
634 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
636 * testsuite/20_util/function_objects/not_fn/1.cc: Use is_invocable
637 instead of is_callable.
638 * testsuite/20_util/is_callable/*: Rename directory and adjust tests
640 * testsuite/20_util/is_nothrow_callable/*: Likewise.
641 * testsuite/20_util/optional/hash.cc: Use is_invocable_v instead of
643 * testsuite/20_util/variant/hash.cc: Likewise.
645 2017-03-10 George Lander <george.lander@arm.com>
647 * acinclude.m4 (glibcxx_cv_obsolete_isnan): Define
648 _GLIBCXX_INCLUDE_NEXT_C_HEADERS before including math.h.
649 * configure: Regenerate.
651 2017-03-09 Jonathan Wakely <jwakely@redhat.com>
653 * include/std/functional (_Not_fn): Define macro to simplify
654 repetitive function definitions.
656 * doc/xml/manual/status_cxx2017.xml: Document std::byte support.
657 * include/c_global/cstddef (std::byte): Define for C++17.
658 * testsuite/18_support/byte/global_neg.cc: New test.
659 * testsuite/18_support/byte/ops.cc: New test.
660 * testsuite/18_support/byte/requirements.cc: New test.
662 2017-03-05 Jonathan Wakely <jwakely@redhat.com>
664 * doc/xml/manual/status_cxx2017.xml: Document P0156R2 status.
665 * doc/html/*: Regenerate.
666 * include/std/mutex (scoped_lock): Implement new C++17 template.
667 * testsuite/30_threads/scoped_lock/cons/1.cc: New test.
668 * testsuite/30_threads/scoped_lock/requirements/
669 explicit_instantiation.cc: New test.
670 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: New test.
672 2017-03-02 Gerald Pfeifer <gerald@pfeifer.com>
673 François Dumont <frs.dumont@gmail.com>
674 Jonathan Wakely <jwakely@redhat.com>
676 * doc/xml/manual/debug_mode.xml: Update and simplify note
677 on link- and run-time coexistence.
679 2017-03-02 Jonathan Wakely <jwakely@redhat.com>
681 * testsuite/17_intro/headers/names.cc: Rename to ...
682 * testsuite/17_intro/names.cc: ... here.
685 * include/bits/hashtable_policy.h (__clp2): Use reserved names for
686 parameters and local variables.
687 * include/bits/ios_base.h (make_error_code, make_error_condition):
689 * include/bits/list.tcc (list::sort): Likewise.
690 * include/bits/mask_array.h (mask_array): Likewise.
691 * include/bits/regex.h (regex_token_iterator): Likewise.
692 * include/bits/slice_array.h (slice_array): Likewise.
693 * include/bits/stl_algo.h (__sample): Likewise.
694 * include/std/memory (undeclare_no_pointers): Likewise.
695 * include/std/type_traits (is_callable_v, is_nothrow_callable_v):
697 * libsupc++/exception_ptr.h (__dest_thunk): Likewise.
698 * testsuite/17_intro/headers/names.cc: New test.
701 * include/std/functional (bind::_Res_type_impl): Fix incorrect use of
702 result_of that loses top-level cv-qualifiers.
703 * testsuite/20_util/bind/79798.cc: New test.
705 2017-03-01 Gerald Pfeifer <gerald@pfeifer.com>
707 * doc/xml/manual/documentation_hacking.xml: Tweak link to
710 2017-02-23 Jonathan Wakely <jwakely@redhat.com>
712 * include/experimental/iterator: Include <iterator>.
713 * testsuite/experimental/iterator/requirements.cc: Check for contents
716 2017-02-19 Dinka Ranns <dinka.ranns@googlemail.com>
718 C++17 GB50 resolution
719 * include/std/chrono (duration::operator++()): Add
720 _GLIBCXX17_CONSTEXPR.
721 (duration::operator++(int)): Likewise.
722 (duration::operator--()): Likewise.
723 (duration::operator--(int)): Likewise.
724 (duration::operator+=(const duration&)): Likewise.
725 (duration::operator-=(const duration&)): Likewise.
726 (duration::operator*=(const rep&)): Likewise.
727 (duration::operator/=(const rep&)): Likewise.
728 (duration::operator%=(const rep&)): Likewise.
729 (duration::operator%=(const duration&)): Likewise.
730 (time_point::operator+=(const duration&)): Likewise.
731 (time_point::operator-=(const duration&)): Likewise.
732 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: New test.
733 * testsuite/20_util/duration/literals/range.cc: Adjust dg-error.
734 * testsuite/20_util/time_point/arithmetic/constexpr.cc: New test.
736 2017-02-19 Gerald Pfeifer <gerald@pfeifer.com>
738 * doc/xml/manual/debug.xml: Adjust link to ThreadSanitizer.
740 2017-02-18 Gerald Pfeifer <gerald@pfeifer.com>
742 * doc/xml/manual/io.xml: Update link to groups.google.com.
743 Tweak link description.
745 2017-02-18 Gerald Pfeifer <gerald@pfeifer.com>
747 * doc/xml/manual/profile_mode.xml: Fix link.
749 2017-02-16 Gerald Pfeifer <gerald@pfeifer.com>
751 * doc/xml/manual/policy_data_structures.xml: Simplify and
752 standardize references to boost.org.
753 * doc/xml/manual/policy_data_structures_biblio.xml: Ditto.
754 * doc/xml/manual/shared_ptr.xml: Ditto.
756 2017-02-16 Jonathan Wakely <jwakely@redhat.com>
759 * src/c++11/snprintf_lite.cc (__concat_size_t): Calculate length
760 written to buffer, not length remaining in buffer.
762 2017-02-15 Tim Shen <timshen@google.com>
765 * include/std/variant (operator<(), operator>(), operator<=(),
766 operator>=(), operator==(), operator!=()): Implement P0393R3.
767 * testsuite/20_util/variant/compile.cc: Adjust tests.
768 * testsuite/20_util/variant/run.cc: Adjust tests.
770 2017-02-15 Tim Shen <timshen@google.com>
773 * include/std/variant (visit()): Forward variant types to the return
775 * testsuite/20_util/variant/compile.cc: Add test cases.
777 2017-02-13 H.J. Lu <hongjiu.lu@intel.com>
780 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
782 2017-02-13 Jakub Jelinek <jakub@redhat.com>
785 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
786 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
787 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Likewise.
788 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
789 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Likewise.
790 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Likewise.
791 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Likewise.
792 * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Likewise.
793 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
795 2017-02-13 Jonathan Wakely <jwakely@redhat.com>
798 * include/std/future (__future_base::_Task_state::_M_run)
799 (__future_base::_Task_state::_M_run_delayed): Use lvalue types in
800 result_of expressions.
801 * testsuite/30_threads/packaged_task/79486.cc: New.
803 2017-02-11 Jonathan Wakely <jwakely@redhat.com>
806 * include/bits/shared_ptr_base.h (__shared_ptr(_Yp*, _Deleter))
807 (__shared_ptr(_Yp*, _Deleter, _Alloc)): Use lvalue types in
809 * testsuite/20_util/shared_ptr/cons/79467.cc: New.
811 * include/bits/atomic_base.h: Re-indent.
813 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
815 * doc/xml/manual/profile_mode.xml: Update a paper reference.
817 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
819 * src/c++11/snprintf_lite.cc (__err): Use https for bug reporting.
821 2017-02-08 Jonathan Wakely <jwakely@redhat.com>
823 * doc/xml/manual/policy_data_structures.xml: Fix spelling of author's
825 * doc/xml/manual/policy_data_structures_biblio.xml: Likewise. Remove
826 broken links to texts that are no longer online.
827 * doc/xml/manual/profile_mode.xml: Update links to CGO 2009 paper and
829 * doc/xml/manual/using.xml: Update links to memory model information.
830 * doc/xml/manual/using_exceptions.xml: Update link to "Appendix E:
831 Standard-Library Exception Safety".
832 * doc/html/*: Regenerate.
834 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
836 * doc/xml/manual/profile_mode.xml: Unbreak link to
837 "Optimizing Sorting with Machine Learning Algorithms".
839 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
841 * src/c++11/snprintf_lite.cc (__err): Update bug reporting URL.
843 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
845 * doc/xml/manual/abi.xml: Update link to "Sun Studio 11: C++
848 2017-02-07 Gerald Pfeifer <gerald@pfeifer.com>
850 * doc/html/ext/lwg-active.html: Remove.
851 * doc/html/ext/lwg-closed.html: Ditto.
852 * doc/html/ext/lwg-defects.html: Ditto.
854 * doc/Makefile.am (xml_extradir): Remove.
856 (stamp-html-docbook-lwg): Remove recipe...
857 (stamp-html-docbook-data): ...and its use here.
858 * doc/Makefile.in: Regenerate.
860 * doc/xml/manual/intro.xml: Shorten two paragraphs explaining
861 the relationship to the upstream working group.
862 Replace a local link to ../ext/lwg-active.html by the upstream one.
863 Replace all reference to ../ext/lwg-defects.html by a new entity
864 &DR; which refers to the upstream address.
866 2017-02-07 Gerald Pfeifer <gerald@pfeifer.com>
868 * doc/xml/manual/status_cxx2017.xml: Fix link to N4284.
870 2017-02-06 Jonathan Wakely <jwakely@redhat.com>
873 * testsuite/20_util/duration/literals/range.cc: Prune extra output
876 2017-02-06 Gerald Pfeifer <gerald@pfeifer.com>
878 * doc/xml/manual/documentation_hacking.xml: Update URL of the
879 DocBook Element Reference. Use that term as link description
881 epubcheck has moved to GitHub.
882 Remove obsolete link to DocBook Publishing Tools.
884 2017-02-03 Jonathan Wakely <jwakely@redhat.com>
887 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Restore ABI override
888 so new ios::failure can be caught even when old ABI is the default.
889 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
890 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
891 exceptions_failbit.cc: Likewise.
892 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
893 exceptions_failbit.cc: Likewise.
894 * testsuite/27_io/basic_istream/extractors_other/char/
895 exceptions_null.cc: Likewise.
896 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
897 exceptions_null.cc: Likewise.
898 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
899 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
900 * testsuite/27_io/basic_ostream/inserters_other/char/
901 exceptions_null.cc: Likewise.
902 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
903 exceptions_null.cc: Likewise.
904 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
907 * src/c++11/Makefile.am: Add new files.
908 * src/c++11/Makefile.in: Regenerate.
909 * src/c++11/cow-string-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
910 (operator<<, operator>>, getline): Move explicit instantiations to ...
911 * src/c++11/cow-string-io-inst.cc: ... new file.
912 * src/c++11/cow-wstring-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
913 (operator<<, operator>>, getline): Move explicit instantiations to ...
914 * src/c++11/cow-wstring-io-inst.cc: ... new file.
915 * src/c++11/functexcept.cc (__throw_ios_failure, __throw_system_error)
916 (__throw_future_error, __throw_bad_function_call):
917 (__throw_regex_error): Move functions for C++11 exceptions to the
918 files that define the exception types.
919 * src/c++11/functional.cc (__throw_bad_function_call): Move here.
920 * src/c++11/future.cc (__throw_future_error): Likewise.
921 * src/c++11/ios.cc (__throw_ios_failure): Likewise.
922 * src/c++11/regex.cc (__throw_regex_error): Likewise.
923 * src/c++11/snprintf_lite.cc (__concat_size_t): Print decimal
924 representation directly instead of calling __int_to_char.
925 * src/c++11/sso_string.cc (__sso_string): New file for definition
926 of __sso_string type.
927 * src/c++11/string-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
928 explicit instantiations of narrow string I/O functions.
929 * src/c++11/system_error.cc (__throw_system_error): Move here.
930 (__sso_string): Move to new file.
931 * src/c++11/wstring-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
932 explicit instantiations of wide string I/O functions.
933 * src/c++98/misc-inst.cc [_GLIBCXX_USE_CXX11_ABI] (operator<<)
934 (operator>>, getline): Remove explicit instantiations from here.
936 2017-02-02 H.J. Lu <hongjiu.lu@intel.com>
938 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
940 2017-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
942 * configure.host: Separate Solaris/SPARC and x86 baselines.
943 * config/abi/post/solaris2.10/baseline_symbols.txt: Move ...
944 * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: ... here.
945 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Move ...
946 * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
948 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Move ...
949 * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: ... here.
950 * config/abi/post/i386-solaris2.10/baseline_symbols.txt: New file.
951 * config/abi/post/solaris2.11/baseline_symbols.txt: Move ...
952 * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: ... here.
953 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Move ...
954 * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
956 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Move ...
957 * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: ... here.
958 * config/abi/post/i386-solaris2.11/baseline_symbols.txt: New file.
960 * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
961 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
962 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
963 * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
964 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
965 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
967 2017-02-01 Jonathan Wakely <jwakely@redhat.com>
970 * include/bits/predefined_ops.h (_Iter_equals_iter): Store iterator
972 (_Iter_comp_to_iter): Likewise.
973 * testsuite/25_algorithms/search/78346.cc: New test.
976 * config/abi/pre/gnu.ver: Remove recently added symbols.
977 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
978 (basic_string::_M_copy_assign): Remove.
979 (basic_string::operator=(const basic_string&)): Don't dispatch to
980 _M_copy_assign. If source object is small just deallocate, otherwise
981 perform new allocation before making any changes.
982 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
983 (basic_string::_M_copy_assign(const basic_string&, true_type)):
985 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
986 Test cases where the allocators are equal or the string is small.
987 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
990 2017-01-30 Ville Voutilainen <ville.voutilainen@gmail.com>
992 Implement LWG 2825, LWG 2756 breaks class template argument
993 deduction for optional.
994 * include/std/optional: Add a deduction guide.
995 * testsuite/20_util/optional/cons/deduction_guide.cc: New.
997 2017-01-27 Jonathan Wakely <jwakely@redhat.com>
1000 * config/abi/pre/gnu.ver: Add new symbols.
1001 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1002 (basic_string::_M_copy_assign): New overloaded functions to perform
1004 (basic_string::operator=(const basic_string&)): Dispatch to
1006 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
1007 (basic_string::_M_copy_assign(const basic_string&, true_type)):
1008 Define, performing rollback on exception.
1009 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
1010 Test exception-safety guarantee.
1011 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
1013 * testsuite/util/testsuite_allocator.h (uneq_allocator::swap): Make
1016 2017-01-26 Jonathan Wakely <jwakely@redhat.com>
1019 * include/tr1/complex (conj): Remove using-declaration and restore
1020 overloads, reverting previous change.
1022 * testsuite/23_containers/list/operations/78389.cc: Fix for C++11
1024 * testsuite/23_containers/priority_queue/requirements/constructible.cc:
1025 Mark as unsupported in C++98 mode.
1026 * testsuite/23_containers/queue/requirements/constructible.cc:
1028 * testsuite/23_containers/stack/requirements/constructible.cc:
1030 * testsuite/25_algorithms/make_heap/movable.cc: Fix for C++11 mode.
1033 * include/bits/c++config (literals::string_view_literals::__7): Add.
1034 Only declare versioned namespaces for the relevant C++ dialects.
1035 * include/experimental/bits/erase_if.h (fundamentals_v2::__detail):
1036 Add versioning macros.
1037 * include/experimental/bits/lfts_config.h:
1038 (fundamentals_v1::__detail::__7, fundamentals_v2::__detail::__7): Add.
1039 * include/experimental/string_view (fundamentals_v2::__detail):
1040 Add versioning macros.
1041 (fundamentals_v2::__detail::__identity): Remove.
1042 (fundamentals_v2::__detail::__idt): Use common_type instead of
1043 __detail::__identity.
1044 * include/std/string_view (__detail::__identity, __detail::__idt):
1046 (literals::string_view_literals): Fix nesting of versioning macros.
1049 * libsupc++/del_opa.cc (operator delete(void*, std::align_val_t))
1050 [!_GLIBCXX_HAVE_ALIGNED_ALLOC && !_GLIBCXX_HAVE_POSIX_MEMALIGN
1051 && !_GLIBCXX_HAVE_MEMALIGN && !_GLIBCXX_HAVE__ALIGNED_MALLOC]:
1052 Retrieve original pointer value allocated by malloc.
1053 * libsupc++/new_opa.cc [!_GLIBCXX_HAVE_ALIGNED_ALLOC
1054 && !_GLIBCXX_HAVE_POSIX_MEMALIGN && !_GLIBCXX_HAVE_MEMALIGN
1055 && !_GLIBCXX_HAVE__ALIGNED_MALLOC] (aligned_alloc(size_t, size_t)):
1056 Define, adjusting pointer value allocated by malloc and storing for
1057 retrieval by operator delete.
1059 2017-01-26 Jakub Jelinek <jakub@redhat.com>
1061 * libsupc++/eh_atomics.h: Update copyright years.
1062 * testsuite/20_util/unique_ptr/cons/default.cc: Update copyright years.
1064 2017-01-25 Jonathan Wakely <jwakely@redhat.com>
1068 * include/std/complex (real(T), imag(T)): Add _GLIBCXX_CONSTEXPR.
1069 (proj(T), conj(T)): Change return types per DR 1522.
1070 * include/tr1/complex (conj): Remove overloads and use std::conj.
1071 * testsuite/26_numerics/complex/dr781_dr1137.cc: Rename to...
1072 * testsuite/26_numerics/complex/dr781.cc: ... this, and update.
1073 * testsuite/26_numerics/complex/value_operations/constexpr2.cc: Test
1074 real(T) and imag(T). Allow testing for C++11 too.
1076 2017-01-24 Jonathan Wakely <jwakely@redhat.com>
1079 * include/experimental/string_view (operator==): Check sizes first.
1080 * include/std/string_view (operator==): Likewise.
1082 2017-01-23 Jonathan Wakely <jwakely@redhat.com>
1084 * testsuite/experimental/array/make_array.cc: Restore <functional>
1087 2017-01-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
1089 * testsuite/29_atomics/atomic/69301.cc: Require atomic builtins.
1091 2017-01-23 Jonathan Wakely <jwakely@redhat.com>
1094 * include/experimental/array (__make_array_elem): New class template
1095 and partial specialization.
1096 (__is_reference_wrapper): Move into __make_array_elem specialization.
1097 (make_array): Use __make_array_elem to determine element type and move
1098 static assertion into specialization. Qualify std::forward call.
1099 (to_array): Add exception specifiation.
1100 * testsuite/experimental/array/make_array.cc: Test argument types
1101 without a common type.
1102 * testsuite/experimental/array/neg.cc: Adjust expected error message.
1104 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
1106 * doc/xml/manual/debug.xml: code.google.com uses https now.
1108 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
1110 * doc/xml/manual/test.xml: Fix link into gccint online manual.
1112 2017-01-21 Ville Voutilainen <ville.voutilainen@gmail.com>
1114 Make poisoned hashes SFINAE away the call operator of the hash.
1115 * include/bits/functional_hash.h
1116 (__poison_hash::__enable_hash_call): New.
1117 * include/std/optional (__optional_hash_call_base): New.
1118 (hash<optional<_Tp>>): Derive from the new base,
1119 move the hash function into that base.
1120 * include/std/variant (__variant_hash_call_base_impl): New.
1121 (__variant_hash_call_base): Likewise.
1122 (hash<variant<_Types...>>): Derive from the new base,
1123 move the hash function into that base.
1124 * testsuite/20_util/optional/hash.cc: Add tests for is_callable.
1125 * testsuite/20_util/variant/hash.cc: Likewise.
1127 2017-01-20 Joe Seymour <joe.s@somniumtech.com>
1129 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): Support uint20_t.
1130 * configure: Regenerate.
1132 2017-01-20 Jonathan Wakely <jwakely@redhat.com>
1135 * include/bits/random.h (uniform_real_distribution::param_type)
1136 (normal_distribution::param_type, lognormal_distribution::param_type)
1137 (gamma_distribution::param_type, chi_squared_distribution::param_type)
1138 (cauchy_distribution::param_type, fisher_f_distribution::param_type)
1139 (student_t_distribution::param_type)
1140 (bernoulli_distribution::param_type, binomial_distribution::param_type)
1141 (geometric_distribution::param_type)
1142 (negative_binomial_distribution::param_type)
1143 (poisson_distribution::param_type)
1144 (exponential_distribution::param_type)
1145 (weibull_distribution::param_type)
1146 (extreme_value_distribution::param_type)
1147 (discrete_distribution::param_type)
1148 (piecewise_constant_distribution::param_type)
1149 (piecewise_linear_distribution::param_type): Define operator!=.
1150 * include/bits/uniform_int_dist.h
1151 (uniform_int_distribution::param_type): Likewise.
1152 * include/ext/random (beta_distribution::param_type)
1153 (rice_distribution::param_type, nakagami_distribution::param_type)
1154 (pareto_distribution::param_type, k_distribution::param_type)
1155 (arcsine_distribution::param_type, hoyt_distribution::param_type)
1156 (triangular_distribution::param_type)
1157 (von_mises_distribution::param_type)
1158 (hypergeometric_distribution::param_type)
1159 (logistic_distribution::param_type)
1160 (uniform_on_sphere_distribution::param_type)
1161 (uniform_inside_sphere_distribution::param_type): Likewise.
1162 * testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc:
1163 Test construction with param_type.
1164 * testsuite/26_numerics/random/binomial_distribution/cons/parms.cc:
1166 * testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc:
1168 * testsuite/26_numerics/random/chi_squared_distribution/cons/parms.cc:
1170 * testsuite/26_numerics/random/exponential_distribution/cons/parms.cc:
1172 * testsuite/26_numerics/random/extreme_value_distribution/cons/
1174 * testsuite/26_numerics/random/fisher_f_distribution/cons/parms.cc:
1176 * testsuite/26_numerics/random/gamma_distribution/cons/parms.cc:
1178 * testsuite/26_numerics/random/geometric_distribution/cons/parms.cc:
1180 * testsuite/26_numerics/random/lognormal_distribution/cons/parms.cc:
1182 * testsuite/26_numerics/random/negative_binomial_distribution/cons/
1184 * testsuite/26_numerics/random/normal_distribution/cons/parms.cc:
1186 * testsuite/26_numerics/random/poisson_distribution/cons/parms.cc:
1188 * testsuite/26_numerics/random/student_t_distribution/cons/parms.cc:
1190 * testsuite/26_numerics/random/uniform_int_distribution/cons/parms.cc:
1192 * testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc:
1194 * testsuite/26_numerics/random/weibull_distribution/cons/parms.cc:
1196 * testsuite/ext/random/arcsine_distribution/cons/parms.cc: Likewise.
1197 * testsuite/ext/random/beta_distribution/cons/parms.cc: Likewise.
1198 * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
1199 * testsuite/ext/random/hypergeometric_distribution/cons/parms.cc:
1201 * testsuite/ext/random/k_distribution/cons/parms.cc: Likewise.
1202 * testsuite/ext/random/logistic_distribution/cons/parms.cc: Likewise.
1203 * testsuite/ext/random/nakagami_distribution/cons/parms.cc: Likewise.
1204 * testsuite/ext/random/normal_mv_distribution/cons/parms.cc: Likewise.
1205 * testsuite/ext/random/pareto_distribution/cons/parms.cc: Likewise.
1206 * testsuite/ext/random/rice_distribution/cons/parms.cc: Likewise.
1207 * testsuite/ext/random/triangular_distribution/cons/parms.cc:
1209 * testsuite/ext/random/uniform_inside_sphere_distribution/cons/
1211 * testsuite/ext/random/von_mises_distribution/cons/parms.cc: Likewise.
1214 * include/bits/alloc_traits.h (__allocator_traits_base::__diff_type)
1215 (__allocator_traits_base::__size_type): Remove.
1216 (allocator_traits::_Ptr): New class template to detect const and void
1217 pointer types without instantiating pointer_traits::rebind
1219 (allocator_traits::_Diff): Likewise for detecting difference_type.
1220 (allocator_traits::_Size): New class template to detect size_type
1221 without instantiating make_unsigned unnecessarily.
1222 * include/bits/ptr_traits.h (pointer_traits::element_type): Use
1223 __detected_or_t instead of __detected_or_t_.
1224 * include/std/type_traits (__detected_or_t_): Remove.
1225 * testsuite/20_util/allocator_traits/members/pointers.cc: New test.
1229 * include/bits/alloc_traits.h (__allocator_traits_base::__rebind):
1230 Replace with class template using void_t.
1231 (__alloc_rebind): Define in terms of
1232 __allocator_traits_base::__rebind.
1233 (allocator_traits): Remove unconditional static_assert for
1235 * include/bits/ptr_traits.h (__replace_first_arg): Remove type member.
1236 (pointer_traits::__rebind): Replace with class template using void_t.
1237 (pointer_traits::rebind): Define in terms of __rebind.
1238 (pointer_traits): Remove unconditional static_assert for rebind.
1239 * testsuite/20_util/allocator_traits/members/rebind_alloc.cc: New test.
1240 * testsuite/20_util/pointer_traits/rebind.cc: New test.
1243 * include/experimental/any (__any_caster): Avoid instantiating
1244 manager function for types that can't be stored in any.
1245 * include/std/any (__any_caster): Likewise.
1246 * testsuite/20_util/any/misc/any_cast.cc: Test non-copyable type.
1247 * testsuite/experimental/any/misc/any_cast.cc: Likewise.
1250 * include/bits/stl_algo.h (is_partitioned): Use increment instead of
1253 2017-01-19 Jonathan Wakely <jwakely@redhat.com>
1256 * include/bits/shared_ptr_base.h (__enable_shared_from_this_base):
1258 (__enable_shared_from_this): Declare __shared_ptr as a friend.
1259 * testsuite/ext/shared_ptr/1.cc: New test.
1262 * include/bits/stl_algo.h (is_partitioned): Don't retest the partition
1264 * testsuite/25_algorithms/is_partitioned/2.cc: New test.
1266 * doc/xml/manual/abi.xml: Fix typo.
1267 * doc/html/manual/abi.html: Likewise.
1270 * include/bits/predefined_ops.h (_Iter_less_val, _Val_less_iter): Add
1271 converting constructors from _Iter_less_iter.
1272 (_Iter_comp_val, _Val_comp_iter): Add converting constructors from
1274 (__iter_comp_val(_Iter_comp_iter<C>): Use converting constructor.
1275 (__val_comp_iter(_Iter_comp_iter<C>): Likewise.
1276 * include/bits/stl_heap.h (__is_heap_until, __push_heap, __pop_heap)
1277 (__make_heap, __sort_heap): Change _Compare parameters to references.
1278 (__is_heap, push_heap, __adjust_heap, __pop_heap, pop_heap)
1279 (__make_heap, make_heap, sort_heap, is_heap_until): Pass comparison
1280 functions as lvalues.
1281 (is_heap): Call __is_heap_until directly to avoid copying __comp.
1282 * testsuite/23_containers/priority_queue/67085.cc: Adjust test to
1283 count copies during construction with empty sequence.
1286 * include/bits/stl_heap.h (__is_heap): Use _GLIBCXX_MOVE.
1287 (__make_heap, __sort_heap): Don't use _GLIBCXX_MOVE inside loops.
1288 * testsuite/23_containers/priority_queue/67085.cc: Adjust expected
1290 * testsuite/25_algorithms/make_heap/movable.cc: New test.
1293 * include/bits/stl_heap.h (push_heap, __adjust_heap, __pop_heap)
1294 (pop_heap, __make_heap, make_heap, __sort_heap, sort_heap): Use
1295 _GLIBCXX_MOVE when passing comparison function to other functions.
1296 (is_heap_until, is_heap): Use std::move when passing comparison
1298 * testsuite/23_containers/priority_queue/67085.cc: New test.
1301 * doc/xml/manual/abi.xml (abi.versioning.history): Add markup to
1302 macro names, filenames, and literal values. Document _GLIBCXX_RELEASE.
1303 Document that the deprecated _GLIBCXX_VERSION macro was removed for
1305 * doc/html/*: Regenerate.
1306 * include/Makefile.am (_GLIBCXX_RELEASE): Set value.
1307 * include/Makefile.in: Regenerate.
1308 * include/bits/c++config (_GLIBCXX_RELEASE): Add #define.
1309 * testsuite/ext/profile/mutex_extensions_neg.cc: Use lineno of 0 in
1312 2017-01-18 Jonathan Wakely <jwakely@redhat.com>
1315 * include/std/atomic (atomic<T>::load, atomic<T>::exchange): Use
1316 aligned buffer instead of default-initialized variable.
1317 * testsuite/29_atomics/atomic/69301.cc: New test.
1318 * include/experimental/memory (observer_ptr::release): Use reserved
1320 * include/ext/pointer.h (_Pointer_adapter::operator++(int))
1321 (_Pointer_adapter::operator--(int)): Likewise.
1324 * include/experimental/random (randint): Use temporary instead of
1325 thread_local static.
1327 2017-01-17 Joshua Conner <joshconner@google.com>
1329 * crossconfig.m4: Add fuchsia OS.
1330 * configure: Regenerate.
1332 2017-01-17 Jonathan Wakely <jwakely@redhat.com>
1335 * doc/xml/manual/abi.xml (abi.versioning.history): Explain why the
1336 __GLIBCXX__ macro is not useful. Remove redundant date information
1337 and link to the GCC release timeline.
1338 (abi.versioning.active): Move partial sentence into the previous
1340 * doc/html/*: Regenerate.
1343 * libsupc++/nested_exception.h (throw_with_nested): Use decay instead
1344 of remove_reference.
1345 * testsuite/18_support/nested_exception/79114.cc: New test.
1347 2017-01-17 Jakub Jelinek <jakub@redhat.com>
1350 * configure.ac: Add GCC_BASE_VER.
1351 * fragment.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
1352 get version from BASE-VER file.
1353 * po/Makefile.in: Regenerated.
1354 * libsupc++/Makefile.in: Regenerated.
1355 * testsuite/Makefile.in: Regenerated.
1356 * src/Makefile.in: Regenerated.
1357 * configure: Regenerated.
1358 * Makefile.in: Regenerated.
1359 * include/Makefile.in: Regenerated.
1360 * doc/Makefile.in: Regenerated.
1361 * python/Makefile.in: Regenerated.
1362 * src/c++11/Makefile.in: Regenerated.
1363 * src/c++98/Makefile.in: Regenerated.
1364 * src/filesystem/Makefile.in: Regenerated.
1366 2017-01-16 Jonathan Wakely <jwakely@redhat.com>
1369 * src/c++11/functexcept.cc: Use new ABI for std::ios_base::failure
1371 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Don't override ABI
1372 for test, so new ios::failure can be caught.
1373 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
1374 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
1375 exceptions_failbit.cc: Likewise.
1376 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
1377 exceptions_failbit.cc: Likewise.
1378 * testsuite/27_io/basic_istream/extractors_other/char/
1379 exceptions_null.cc: Likewise.
1380 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
1381 exceptions_null.cc: Likewise.
1382 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
1383 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
1384 * testsuite/27_io/basic_ostream/inserters_other/char/
1385 exceptions_null.cc: Likewise.
1386 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
1387 exceptions_null.cc: Likewise.
1388 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
1391 * include/bits/locale_classes.h (locale::facet::__shim): Change from
1392 private to protected.
1393 * src/c++11/cxx11-shim_facets.cc (__shim_accessor): Define helper to
1394 make locale::facet::__shim accessible.
1396 2017-01-16 Ville Voutilainen <ville.voutilainen@gmail.com>
1399 * include/bits/list.tcc (merge(list&&)): Fix backwards size adjustments.
1400 (merge(list&&, _StrictWeakOrdering)): Likewise.
1401 * testsuite/23_containers/list/operations/78389.cc: Add
1402 better test for the sizes.
1404 2017-01-14 Jonathan Wakely <jwakely@redhat.com>
1406 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
1407 Skip test when -D_GLIBCXX_PROFILE mode is included in options.
1408 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
1409 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
1411 * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
1412 * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise.
1413 * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise.
1414 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
1415 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
1417 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc::
1419 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc::
1421 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
1423 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
1425 * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise.
1426 * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise.
1427 * testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise.
1428 * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise.
1429 * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise.
1430 * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
1431 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
1432 * testsuite/libstdc++-prettyprinters/debug.cc: Likewise.
1433 * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise.
1434 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
1435 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
1436 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
1437 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
1439 2017-01-13 Jonathan Wakely <jwakely@redhat.com>
1442 * config/io/basic_file_stdio.cc (__basic_file<char>::close()): Don't
1443 retry fclose on EINTR.
1445 * include/profile/base.h: Remove unused header that leads to header
1446 cycle in C++17 mode.
1449 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
1450 Make _If_sv private.
1451 [!_GLIBCXX_USE_CXX11_ABI] (basic_string): Add member functions taking
1452 basic_string_view arguments.
1455 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Remove
1456 redundant option from cxxflags.
1457 (check_effective_target_cxx11-abi): Define.
1458 * testsuite/21_strings/basic_string/allocator/71964.cc: Use cxx11-abi
1460 * testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise.
1461 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
1463 * testsuite/21_strings/basic_string/allocator/char/minimal.cc:
1465 * testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
1466 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
1468 * testsuite/21_strings/basic_string/allocator/char/noexcept.cc:
1470 * testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
1471 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
1473 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
1475 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
1477 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
1479 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
1481 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
1483 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
1485 * testsuite/23_containers/list/61347.cc: Likewise.
1486 * testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
1487 * testsuite/27_io/ios_base/failure/cxx11.cc: Likewise.
1489 2017-01-13 Ville Voutilainen <ville.voutilainen@gmail.com>
1492 * include/bits/list.tcc (merge(list&&)):
1493 Adjust list sizes if the comparator throws.
1494 (merge(list&&, _StrictWeakOrdering)): Likewise.
1495 (sort()): Splice elements back from the scratch buffers
1496 if the comparator throws.
1497 (sort(_StrictWeakOrdering)): Likewise.
1498 * testsuite/23_containers/list/operations/78389.cc: New.
1500 2017-01-13 Jonathan Wakely <jwakely@redhat.com>
1502 * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Mark
1503 XFAIL for C++17 until node reinsertion supports fancy pointers.
1506 * testsuite/20_util/add_pointer/value.cc: Test forming function
1509 2017-01-13 Michael Brune <lucdanton@free.fr>
1512 * include/std/type_traits (__is_referenceable): Handle noexcept
1515 2017-01-12 Jonathan Wakely <jwakely@redhat.com>
1518 * include/bits/stl_queue.h (queue, priority_queue): Remove default
1519 member-initializers and define default constructors as templates with
1521 * include/bits/stl_stack.h (stack): Likewise.
1522 * testsuite/23_containers/priority_queue/requirements/constructible.cc:
1524 * testsuite/23_containers/priority_queue/requirements/
1525 explicit_instantiation/1.cc: Test more instantiations.
1526 * testsuite/23_containers/priority_queue/requirements/
1527 explicit_instantiation/1_c++98.cc: Likewise.
1528 * testsuite/23_containers/queue/requirements/constructible.cc: New.
1529 * testsuite/23_containers/stack/requirements/constructible.cc: New.
1532 * doc/xml/manual/intro.xml: Document LWG 2781 change.
1533 * doc/html/*: Regenerate.
1534 * include/std/functional (_Function_base::_Ref_manager): Remove.
1535 (_Function_handler): Remove partial specializations for
1537 (function::target): Remove special case for const qualification.
1538 * testsuite/20_util/function/6.cc: Adjust tests for target type.
1539 * testsuite/20_util/function/7.cc: Likewise.
1540 * testsuite/20_util/function/8.cc: Likewise.
1542 2017-01-11 Jonathan Wakely <jwakely@redhat.com>
1545 * include/bits/stl_map.h (map::lower_bound, map::upper_bound)
1546 (map::equal_range): Fix return type of heterogeneous overloads.
1547 * include/bits/stl_multimap.h (multimap::lower_bound)
1548 (multimap::upper_bound, multimap::equal_range): Likewise.
1549 * include/bits/stl_multiset.h (multiset::lower_bound)
1550 (multiset::upper_bound, multiset::equal_range): Likewise.
1551 * include/bits/stl_set.h (set::lower_bound, set::upper_bound)
1552 (set::equal_range): Likewise.
1553 * testsuite/23_containers/map/operations/2.cc
1554 * testsuite/23_containers/multimap/operations/2.cc
1555 * testsuite/23_containers/multiset/operations/2.cc
1556 * testsuite/23_containers/set/operations/2.cc
1559 * include/bits/stl_map.h (map::count<_Kt>(const _Kt&)): Don't assume
1560 the heterogeneous comparison can only find one match.
1561 * include/bits/stl_set.h (set::count<_Kt>(const _Kt&)): Likewise.
1562 * testsuite/23_containers/map/operations/2.cc: Test count works with
1563 comparison function that just partitions rather than sorting.
1564 * testsuite/23_containers/set/operations/2.cc: Likewise.
1566 2017-01-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1568 Reduce the size of variant, it doesn't need an index of
1569 type size_t internally.
1570 * include/std/variant (parse_numbers.h): New include.
1571 (__select_index): New.
1572 (_Variant_storage<false, _Types...>::_M_reset_impl): Use
1573 _index_type for comparison with variant_npos.
1574 (_Variant_storage<false, _Types...>::__index_type): New.
1575 (_Variant_storage<false, _Types...>::_M_index): Change the
1576 type from size_t to __index_type.
1577 (_Variant_storage<true, _Types...>::__index_type): New.
1578 (_Variant_storage<true, _Types...>::_M_index): Change the
1579 type from size_t to __index_type.
1580 (_Variant_base::_M_valid): Use _Storage::__index_type
1581 for comparison with variant_npos.
1582 (variant::index): Use _Base::_Storage::__index_type
1583 for comparison with variant_npos.
1584 * testsuite/20_util/variant/index_type.cc: New.
1586 2017-01-10 Jonathan Wakely <jwakely@redhat.com>
1588 * testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
1589 effective target selector to prevent running in C++17 mode.
1592 * include/bits/stl_queue.h (queue::c): Add default member initializer.
1593 (queue::queue()): Add constructor and define as defaulted.
1594 (queue::queue(_Sequence&&)): Remove default argument.
1595 (priority_queue::c, priority_queue::comp): Add default member
1597 (priority_queue::priority_queue()): Add constructor and define as
1599 (priority_queue::priority_queue(const _Compare&, _Sequence&&)):
1600 Remove default argument for first parameter.
1601 * include/bits/stl_stack.h (stack::c): Add default member initializer.
1602 (stack::stack()): Add constructor and define as defaulted.
1603 (stack::stack(const _Sequence&)): Remove default argument.
1604 * testsuite/23_containers/priority_queue/requirements/
1605 explicit_instantiation/1.cc: Test explicit instantiation with
1606 non-DefaultConstructible sequence.
1607 * testsuite/23_containers/priority_queue/77528.cc: New test.
1608 * testsuite/23_containers/priority_queue/requirements/
1609 explicit_instantiation/1_c++0x.cc: Replace with 1_c++98.cc.
1610 * testsuite/23_containers/queue/77528.cc: New test.
1611 * testsuite/23_containers/queue/requirements/explicit_instantiation/
1612 1.cc: Test explicit instantiation with non-DefaultConstructible
1614 * testsuite/23_containers/queue/requirements/explicit_instantiation/
1615 1_c++0x.cc: Replace with 1_c++98.cc.
1616 * testsuite/23_containers/stack/77528.cc: New test.
1617 * testsuite/23_containers/stack/requirements/explicit_instantiation/
1618 1.cc: Test explicit instantiation with non-DefaultConstructible
1620 * testsuite/23_containers/stack/requirements/explicit_instantiation/
1621 1_c++0x.cc: Replace with 1_c++98.cc.
1623 2017-01-10 Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
1625 * include/bits/locale_facets_nonio.tcc
1626 (time_get::_M_extract_via_format): Avoid compilation errors with
1627 non-standard struct tm.
1629 2017-01-10 François Dumont <fdumont@gcc.gnu.org>
1630 Jonathan Wakely <jwakely@redhat.com>
1632 * python/libstdcxx/v6/printers.py (_versioned_namespace): Define.
1633 (is_specialization, strip_versioned_namespace): New helpers functions
1634 to work with symbols in the versioned namespace.
1635 (Printer.add_version): Add second name using versioned namespace.
1636 (add_one_template_type_printer, add_one_type_printer): Add second
1637 type printers using versioned namespace.
1638 (register_type_printers): Add template type printer for basic_string.
1639 (build_libstdcxx_dictionary): Remove dead code.
1640 * python/libstdcxx/v6/xmethods.py: Make all matchers look for
1641 versioned namespace.
1642 * testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected
1644 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
1646 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
1649 * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Check for llrint and llround
1650 functions separately on darwin and if they're missing define
1651 _GLIBCXX_NO_C99_ROUNDING_FUNCS.
1652 * config.h.in: Regenerate.
1653 * configure: Regenerate.
1654 * include/c_global/cmath [_GLIBCXX_NO_C99_ROUNDING_FUNCS] (llrint)
1655 (llrintf, llrintl, llround, llroundf, llroundl): Do not define.
1657 * testsuite/30_threads/condition_variable/members/3.cc: Use new macro
1658 to detect correct thread_local destructors.
1659 * testsuite/util/testsuite_hooks.h (CORRECT_THREAD_LOCAL_DTORS):
1662 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
1663 Aditya Kumar <hiraditya@msn.com>
1666 * include/bits/basic_string.tcc
1667 (basic_string::find(const CharT*, size_type, size_type)): Optimize.
1669 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
1671 * testsuite/21_strings/basic_string/operations/find/char/6.cc: New.
1672 * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: New.
1674 * testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
1675 Include <cassert> header.
1678 * crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
1679 * configure: Regenerate.
1681 2017-01-06 Barrett Adair <barrettellisadair@gmail.com>
1682 Jonathan Wakely <jwakely@redhat.com>
1684 * include/std/variant (variant, swap): Replace __and_ usage with fold
1687 2017-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1690 * acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
1691 * configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
1692 GLIBCXX_CHECK_ASSEMBLER_HWCAP.
1693 * fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
1695 * aclocal.m4: Regenerate.
1696 * configure: Regenerate.
1697 * Makefile.in, doc/Makefile.in, include/Makefile.in,
1698 libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
1699 src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
1700 src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
1702 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
1704 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.
1707 * include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
1708 (_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
1709 (_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and
1710 move function objects.
1711 (__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter)
1712 (__iter_comp_val, __iter_comp_iter, __negate): Move function objects.
1713 * testsuite/25_algorithms/sort/78991.cc: New test.
1715 2017-01-05 Jonathan Wakely <jwakely@redhat.com>
1717 * include/bits/std_function.h (function::_Signature_type): Remove.
1718 (function::function(_Functor)): Adjust.
1720 2017-01-05 Tim Shen <timshen@google.com>
1723 * include/std/variant (__gen_vtable_impl): rename __unused to
1724 __dimensions to avoid naming conflict.
1726 2017-01-04 Jonathan Wakely <jwakely@redhat.com>
1729 * config.h.in: Regenerate.
1730 * configure: Likewise.
1731 * configure.ac: Check for __cxa_thread_atexit.
1732 * libsupc++/atexit_thread.cc [_GLIBCXX_HAVE___CXA_THREAD_ATEXIT]:
1733 Don't define __cxa_thread_atexit if libc provides it.
1735 2017-01-04 Ville Voutilainen <ville.voutilainen@gmail.com>
1737 Implement 2801, Default-constructibility of unique_ptr.
1738 * include/bits/unique_ptr.h (__uniq_ptr_impl::_DeleterConstraint): New.
1739 (unique_ptr::_DeleterConstraint): Likewise.
1740 (unique_ptr()): Constrain.
1741 (unique_ptr(pointer)): Likewise.
1742 (unique_ptr(nullptr_t)): Likewise.
1743 (unique_ptr<_Tp[], _Dp>::_DeleterConstraint): New.
1744 (unique_ptr<_Tp[], _Dp>::unique_ptr()): Constrain.
1745 (unique_ptr<_Tp[], _Dp>::unique_ptr(_Up)): Likewise.
1746 (unique_ptr<_Tp[], _Dp>::unique_ptr(nullptr_t)): Likewise.
1747 * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust.
1748 * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
1749 * testsuite/20_util/unique_ptr/cons/default.cc: New.
1750 * testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Adjust.
1752 2017-01-04 Pauli Nieminen <suokkos@gmail.com>
1753 Jonathan Wakely <jwakely@redhat.com>
1756 * acinclude.m4 (GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER): Define.
1757 * config.h.in: Regenerate.
1758 * config/abi/pre/gnu.ver [HAVE_EXCEPTION_PTR_SINCE_GCC46]
1759 (GLIBCXX_3.4.15, GLIBCXX_3.4.21, CXXABI_1.3.3, CXXABI_1.3.5): Make
1760 exports for exception_ptr, nested_exception, and future conditional.
1761 [HAVE_EXCEPTION_PTR_SINCE_GCC46] (GLIBCXX_3.4.23, CXXABI_1.3.11): Add
1762 exports for exception_ptr, nested_exception, and future conditional.
1763 * configure: Regenerate.
1764 * configure.ac: Use GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER.
1765 * include/std/future: Remove check for ATOMIC_INT_LOCK_FREE
1766 * libsupc++/eh_atomics.h: New file for internal use only.
1767 (__eh_atomic_inc, __eh_atomic_dec): New.
1768 * libsupc++/eh_ptr.cc (exception_ptr::_M_addref)
1769 (exception_ptr::_M_release) (__gxx_dependent_exception_cleanup)
1770 (rethrow_exception): Use eh_atomics.h reference counting helpers.
1771 * libsupc++/eh_throw.cc (__gxx_exception_cleanup): Likewise.
1772 * libsupc++/eh_tm.cc (free_any_cxa_exception): Likewise.
1773 * libsupc++/exception: Remove check for ATOMIC_INT_LOCK_FREE.
1774 * libsupc++/exception_ptr.h: Likewise.
1775 * libsupc++/guard.cc: Include header for ATOMIC_INT_LOCK_FREE macro.
1776 * libsupc++/nested_exception.cc: Remove check for
1777 ATOMIC_INT_LOCK_FREE.
1778 * libsupc++/nested_exception.h: Likewise.
1779 * src/c++11/future.cc: Likewise.
1780 * testsuite/18_support/exception_ptr/*: Remove atomic builtins checks.
1781 * testsuite/18_support/nested_exception/*: Likewise.
1782 * testsuite/30_threads/async/*: Likewise.
1783 * testsuite/30_threads/future/*: Likewise.
1784 * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
1785 * testsuite/30_threads/packaged_task/*: Likewise.
1786 * testsuite/30_threads/promise/*: Likewise.
1787 * testsuite/30_threads/shared_future/*: Likewise.
1789 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
1791 * doc/xml/manual/documentation_hacking.xml: sourceforge.net now
1792 defaults to https; adjust reference.
1794 2017-01-03 Jonathan Wakely <jwakely@redhat.com>
1797 * include/std/thread (thread(const thread&&)): Add deleted
1799 * testsuite/30_threads/thread/cons/lwg2097.cc: New test.
1801 * doc/xml/manual/spine.xml: Update copyright years.
1802 * doc/xml/manual/build_hacking.xml: Fix spelling of libbuilddir.
1803 * doc/xml/manual/test.xml: Likewise.
1804 * doc/html/*: Regenerate.
1806 2017-01-01 Gerald Pfeifer <gerald@pfeifer.com>
1808 * doc/xml/faq.xml: Update address of C++ ABI link.
1809 * doc/xml/manual/abi.xml: Ditto.
1811 2017-01-01 Jakub Jelinek <jakub@redhat.com>
1813 Update copyright years.
1815 Copyright (C) 2017 Free Software Foundation, Inc.
1817 Copying and distribution of this file, with or without modification,
1818 are permitted in any medium without royalty provided the copyright
1819 notice and this notice are preserved.