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