1 2018-06-25 Jonathan Wakely <jwakely@redhat.com>
4 * python/libstdcxx/v6/printers.py (add_one_template_type_printer):
5 Replace dict comprehension.
8 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
11 * include/bits/stl_vector.h (vector::_M_range_initialize<InputIter>):
13 * testsuite/23_containers/vector/cons/86292.cc: New.
15 * doc/xml/manual/status_cxx2017.xml: Document N4531 status.
17 * include/experimental/algorithm (sample, shuffle): Add new overloads
18 using per-thread random number engine.
19 * testsuite/experimental/algorithm/sample.cc: Simpify and reduce
20 dependencies by using __gnu_test::test_container.
21 * testsuite/experimental/algorithm/sample-2.cc: New.
22 * testsuite/experimental/algorithm/shuffle.cc: New.
24 2018-06-22 Jonathan Wakely <jwakely@redhat.com>
26 * config/abi/pre/gnu.ver: Fix __cxx11::basic_string patterns for
27 different size_t mangling on 32-bit targets.
30 * include/experimental/memory_resource
31 (__resource_adaptor_common::_AlignMgr::_M_token_size): Use type large
32 enough for result of left shift.
35 * include/bits/basic_string.tcc:
36 [__cplusplus > 201402 && !_GLIBCXX_USE_CXX11_ABI]
37 (basic_string<char>::_Rep::_S_empty_rep_storage)
38 (basic_string<wchar_t>::_Rep::_S_empty_rep_storage): Add explicit
39 instantiation declarations.
40 [__cplusplus > 201402] (operator>>, operator<<, getline): Re-enable
41 explicit instantiation declarations.
42 * testsuite/21_strings/basic_string/cons/char/86138.cc: New.
43 * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc: New.
45 2018-06-21 Jonathan Wakely <jwakely@redhat.com>
48 * acinclude.m4 (libtool_VERSION): Bump to 6:26:0.
49 * config/abi/pre/gnu.ver: Add GLIBCXX_3.4.26 and export new symbol.
50 * configure: Regenerate.
51 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
52 (basic_string::insert(const_iterator, initializer_list<C>)): Add.
53 [_GLIBCXX_USE_CXX11_ABI && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS]
54 (basic_string::insert(iterator, initializer_list<C>)): Suppress
56 * include/debug/string (basic_string::insert(iterator, C)): Change
57 first parameter to const_iterator.
58 (basic_string::insert(iterator, size_type, C)): Likewise. Change
59 return type to iterator.
60 (basic_string::insert(iterator, InputIterator, InputIterator)):
62 (basic_string::insert(iterator, initializer_list<C>)): Change first
63 parameter to const_iterator and return type to iterator.
64 * src/c++11/string-inst.cc: Extend comment.
65 * testsuite/21_strings/basic_string/modifiers/insert/char/83328.cc:
67 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/83328.cc:
69 * testsuite/util/testsuite_abi.cc: Add new symbol version.
71 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
74 * include/experimental/memory_resource
75 (__resource_adaptor_imp::do_deallocate): Add missing return.
76 * testsuite/experimental/memory_resource/new_delete_resource.cc: New.
77 * testsuite/experimental/memory_resource/resource_adaptor.cc: Test
78 resource_adaptor with std::allocator, __gnu_cxx::new_allocator and
79 __gnu_cxx::malloc_allocator.
82 * include/experimental/memory_resource (__resource_adaptor_common):
84 (__resource_adaptor_common::_AlignMgr): Helper for obtaining aligned
85 pointer from unaligned, and vice versa.
86 (__resource_adaptor_imp::do_allocate): Use _AlignMgr to adjust
87 allocated pointer to meet alignment request.
88 (__resource_adaptor_imp::do_deallocate): Use _AlignMgr to retrieve
89 original pointer for deallocation.
90 (__resource_adaptor_imp::do_is_equal): Reformat.
91 (__resource_adaptor_imp::_S_aligned_size): Remove.
92 (__resource_adaptor_imp::_S_supported): Remove.
93 (new_delete_resource): Use __gnu_cxx::new_allocator.
94 * testsuite/experimental/memory_resource/resource_adaptor.cc: Test
95 extended alignments and use debug_allocator to check for matching
96 allocate/deallocate pairs.
98 2018-06-21 François Dumont <fdumont@gcc.gnu.org>
100 * include/debug/safe_iterator.h
101 (_Safe_iterator<>(const _Safe_iterator<_MutableIterator,>& __x)):
102 Compare __x base iterator with a value-initialized iterator of the
105 2018-06-20 Jonathan Wakely <jwakely@redhat.com>
108 * include/experimental/memory_resource (__resource_adaptor_imp): Add
109 static assertions to enforce requirements on pointer types.
110 (__resource_adaptor_imp::get_allocator()): Add noexcept.
111 (new_delete_resource, null_memory_resource): Return address of an
112 object with dynamic storage duration.
113 (__null_memory_resource): Remove.
114 * testsuite/experimental/memory_resource/70966.cc: New.
116 * testsuite/20_util/duration/arithmetic/dr3050.cc: Add new test
117 missed from recent commit.
119 2018-06-19 Jonathan Wakely <jwakely@redhat.com>
121 * include/std/utility: Remove unused <exception> header.
123 2018-06-18 Jonathan Wakely <jwakely@redhat.com>
125 LWG 2975 ensure construct(pair<T,U>*, ...) used to construct pairs
126 * include/std/scoped_allocator (__not_pair): Define SFINAE helper.
127 (construct(_Tp*, _Args&&...)): Remove from overload set when _Tp is
128 a specialization of std::pair.
129 * testsuite/20_util/scoped_allocator/construct_pair.cc: Ensure
130 pair elements are constructed correctly.
132 LWG 2989 hide path iostream operators from normal lookup
133 * include/bits/fs_path.h (operator<<, operator>>): Define inline as
135 * testsuite/27_io/filesystem/path/io/dr2989.cc: New.
137 LWG 3050 Fix cv-qualification of convertibility constraints
138 * include/std/chrono (duration, operator*, operator/, operator%): Use
139 const-qualified type as source type in is_convertible constraints.
140 * testsuite/20_util/duration/arithmetic/dr3050.cc: New.
141 * testsuite/20_util/duration/cons/dr3050.cc: New.
142 * testsuite/20_util/duration/literals/range.cc: Rename to...
143 * testsuite/20_util/duration/literals/range_neg.cc: Here. Adjust
146 2018-06-18 Maya Rashish <coypu@sdf.org>
148 * crossconfig.m4: Handle OpenBSD just like NetBSD.
149 * configure: Rebuilt.
151 2018-06-18 Jonathan Wakely <jwakely@redhat.com>
153 P0754R2 <version> header
154 * include/Makefile.am: Add new header.
155 * include/Makefile.in: Regenerate.
156 * include/bits/c++config: Change doxygen comment to suggest <version>
158 * include/precompiled/stdc++.h: Include <cwchar> and <cwctype>
159 unconditionally. Add C++17 and C++20 headers.
160 * include/std/version: New header.
161 * testsuite/17_intro/headers/c++2017/all_attributes.cc: New.
162 * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc: New.
163 * testsuite/17_intro/headers/c++2017/all_no_rtti.cc: New.
164 * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc: New.
165 * testsuite/17_intro/headers/c++2017/operator_names.cc: New.
166 * testsuite/17_intro/headers/c++2017/stdc++.cc: New.
167 * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
169 * testsuite/17_intro/headers/c++2020/all_attributes.cc: New.
170 * testsuite/17_intro/headers/c++2020/all_no_exceptions.cc: New.
171 * testsuite/17_intro/headers/c++2020/all_no_rtti.cc: New.
172 * testsuite/17_intro/headers/c++2020/all_pedantic_errors.cc: New.
173 * testsuite/17_intro/headers/c++2020/operator_names.cc: New.
174 * testsuite/17_intro/headers/c++2020/stdc++.cc: New.
175 * testsuite/17_intro/headers/c++2020/stdc++_multiple_inclusion.cc:
177 * testsuite/18_support/headers/version/macros.cc: New.
178 * testsuite/18_support/headers/version/macros.cc: New.
180 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Only check when
181 enable_libstdcxx_filesystem_ts = yes. Check for link, readlink and
183 * config.h.in: Regenerate.
184 * configure: Regenerate.
185 * configure.ac: Remove AC_CHECK_FUNCS for link, readlink and symlink.
187 LWG 3035. std::allocator's constructors should be constexpr
188 * include/bits/allocator.h (allocator): Add constexpr to constructors
189 for C++2a. Replace dynamic exception specifications with NOTHROW
191 (allocator, operator==, operator!=): Replace USE_NOEXCEPT macro with
193 * include/bits/c++config (_GLIBCXX20_CONSTEXPR): Define.
194 * include/ext/malloc_allocator.h (malloc_allocator): Add constexpr
195 to constructors for C++2a.
196 * include/ext/new_allocator.h (new_allocator): Likewise.
198 2018-06-16 Jonathan Wakely <jwakely@redhat.com>
200 LWG 3076 basic_string CTAD ambiguity
201 * doc/xml/manual/intro.xml: Document LWG 3076 change.
202 * include/bits/basic_string.h
203 [__cpp_deduction_guides && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS]
204 (basic_string(const _CharT*, const _Alloc&)): Turn into a function
205 template constrained by _RequireAllocator.
206 (basic_string(size_type, _CharT, const _Alloc&)): Likewise.
207 * src/c++11/string-inst.cc (_GLIBCXX_DEFINING_STRING_INSTANTIATIONS):
209 * testsuite/21_strings/basic_string/cons/char/deduction.cc: Test
211 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
214 2018-06-15 Jonathan Wakely <jwakely@redhat.com>
217 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
218 (basic_string::data()): Unshare string.
219 * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
222 * include/std/string_view (basic_string_view(const CharT*)): Remove
223 check for null pointer and add nonnull attribute.
224 (compare(const CharT*), compare(size_type, size_type, const CharT*))
225 (find(const CharT*, size_type), rfind(const CharT*, size_type))
226 (find_first_of(const CharT*, size_type))
227 (find_last_of(const CharT*, size_type))
228 (find_first_not_of(const CharT*, size_type))
229 (find_last_not_of(const CharT*, size_type)): Add nonnull attribute.
230 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc: New.
231 * testsuite/21_strings/basic_string_view/operations/compare/char/
233 * testsuite/21_strings/basic_string_view/operations/find/char/
235 * testsuite/21_strings/basic_string_view/operations/rfind/char/
239 * include/bits/random.h (random_device(const string&)): Remove
242 * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits): Only
243 define for C++17 and above.
245 LWG 2993 reference_wrapper<T> conversion from T&&
246 * doc/xml/manual/intro.xml: Document LWG 2993 change.
247 * include/bits/refwrap.h (reference_wrapper(_Tp&)): Remove.
248 (reference_wrapper(_Tp&&)): Remove.
249 (reference_wrapper<_Up>(_Up&&)): Define new constructor as constrained
251 (reference_wrapper): Add deduction guide.
252 * testsuite/20_util/reference_wrapper/deduction.cc: New.
253 * testsuite/20_util/reference_wrapper/lwg2993.cc: New.
255 LWG 3039 Unnecessary decay in thread and packaged_task
256 * include/std/future (__constrain_pkgdtask): Replace with ...
257 (packaged_task::__not_same): New alias template, using
258 __remove_cvref_t instead of decay.
259 * include/std/thread (thread::__not_same): Add comment.
261 2018-06-14 Jonathan Wakely <jwakely@redhat.com>
263 LWG 3075 basic_string needs deduction guides from basic_string_view
264 * testsuite/21_strings/basic_string/cons/char/deduction.cc: Test
265 deduction from string views.
266 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
269 LWG 3074 make scalar types non-deduced in valarray non-member functions
270 * include/bits/valarray_after.h (_DEFINE_EXPR_BINARY_FUNCTION): Change
271 scalar parameters to be a non-deduced context.
272 * include/std/valarray (_DEFINE_BINARY_OPERATOR): Likewise. Adjust
274 * testsuite/26_numerics/valarray/operators.cc: Test scalar operands.
275 * testsuite/26_numerics/valarray/transcend.cc: New.
277 * include/std/tuple (__cpp_lib_tuple_element_t, tuple_element_t):
278 Move back to <utility>.
279 * include/std/utility (__cpp_lib_tuple_element_t. tuple_element_t):
282 P0935R0 Eradicating unnecessarily explicit default constructors
283 * include/backward/strstream (strstreambuf): Add non-explicit default
285 * include/bits/locale_conv.h (wbuffer_convert, wstring_convert):
287 * include/bits/regex.h (match_results): Likewise.
288 * testsuite/22_locale/conversions/buffer/1.cc: Test for non-explicit
290 * testsuite/22_locale/conversions/string/1.cc: Likewise.
291 * testsuite/28_regex/match_results/ctors/char/default.cc: Likewise.
292 * testsuite/28_regex/match_results/ctors/wchar_t/default.cc: Likewise.
294 * include/std/tuple (__cpp_lib_tuple_element_t): Move feature test
295 macro from <utility> and change type to long.
296 * include/std/utility (__cpp_lib_tuple_element_t): Remove.
297 * testsuite/20_util/tuple/tuple_element_t.cc: Check for feature test
300 P0935R0 Eradicating unnecessarily explicit default constructors
301 * include/bits/random.h (uniform_real_distribution::param_type)
302 (normal_distribution::param_type, lognormal_distribution::param_type)
303 (gamma_distribution::param_type, chi_squared_distribution::param_type)
304 (cauchy_distribution::param_type, fisher_f_distribution::param_type)
305 (student_t_distribution::param_type)
306 (bernoulli_distribution::param_type)
307 (binomial_distribution::param_type)
308 (geometric_distribution::param_type)
309 (negative_binomial_distribution::param_type)
310 (poisson_distribution::param_type)
311 (exponential_distribution::param_type)
312 (weibull_distribution::param_type)
313 (extreme_value_distribution::param_type): Add non-explicit default
314 constructors. Remove default argument for first parameter of explicit
316 * include/bits/uniform_int_dist.h
317 (uniform_int_distribution::param_type): Likewise.
319 (beta_distribution::param_type, rice_distribution::param_type)
320 (nakagami_distribution::param_type, pareto_distribution::param_type)
321 (k_distribution::param_type, arcsine_distribution::param_type)
322 (hoyt_distribution::param_type, triangular_distribution::param_type)
323 (von_mises_distribution::param_type)
324 (hypergeometric_distribution::param_type)
325 (logistic_distribution::param_type)
326 (uniform_inside_sphere_distribution::param_type): Likewise.
327 (uniform_on_sphere_distribution::param_type): Make default constructor
329 * testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc:
330 Test param_type for non-explicit default constructor.
331 * testsuite/26_numerics/random/binomial_distribution/cons/default.cc:
333 * testsuite/26_numerics/random/cauchy_distribution/cons/default.cc:
335 * testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc:
337 * testsuite/26_numerics/random/discrete_distribution/cons/default.cc:
339 * testsuite/26_numerics/random/exponential_distribution/cons/default.cc:
341 * testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc:
343 * testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc:
345 * testsuite/26_numerics/random/gamma_distribution/cons/default.cc:
347 * testsuite/26_numerics/random/geometric_distribution/cons/default.cc:
349 * testsuite/26_numerics/random/lognormal_distribution/cons/default.cc:
351 * testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc:
353 * testsuite/26_numerics/random/normal_distribution/cons/default.cc:
355 * testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc:
357 * testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc:
359 * testsuite/26_numerics/random/poisson_distribution/cons/default.cc:
361 * testsuite/26_numerics/random/student_t_distribution/cons/default.cc:
363 * testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc:
365 * testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc:
367 * testsuite/26_numerics/random/weibull_distribution/cons/default.cc:
369 * testsuite/ext/random/arcsine_distribution/cons/default.cc: Likewise.
370 * testsuite/ext/random/beta_distribution/cons/default.cc: Likewise.
371 * testsuite/ext/random/hoyt_distribution/cons/default.cc: Likewise.
372 * testsuite/ext/random/hypergeometric_distribution/cons/default.cc:
374 * testsuite/ext/random/k_distribution/cons/default.cc: Likewise.
375 * testsuite/ext/random/logistic_distribution/cons/default.cc: Likewise.
376 * testsuite/ext/random/nakagami_distribution/cons/default.cc: Likewise.
377 * testsuite/ext/random/normal_mv_distribution/cons/default.cc:
379 * testsuite/ext/random/pareto_distribution/cons/default.cc: Likewise.
380 * testsuite/ext/random/rice_distribution/cons/default.cc: Likewise.
381 * testsuite/ext/random/triangular_distribution/cons/default.cc:
383 * testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc:
385 * testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc:
387 * testsuite/ext/random/von_mises_distribution/cons/default.cc:
390 2018-06-14 Daniel Trebbien <dtrebbien@gmail.com>
391 Jonathan Wakely <jwakely@redhat.com>
394 * include/bits/vector.tcc (vector::_M_default_append(size_type)):
395 Default-construct new elements before moving existing ones.
396 * testsuite/23_containers/vector/capacity/resize/strong_guarantee.cc:
399 2018-06-13 Jonathan Wakely <jwakely@redhat.com>
402 * include/bits/forward_list.h (_Fwd_list_base::_Tp_alloc_type): Remove
404 (_Fwd_list_base::_M_create_node, _Fwd_list_base::_M_erase_after):
405 Use node allocator to create and destroy elements.
406 (forward_list::_Tp_alloc_type): Remove unused typedef.
407 (forward_list::_Alloc_traits): Use allocator_traits instead of
408 __gnu_cxx::__alloc_traits.
410 2018-06-13 François Dumont <fdumont@gcc.gnu.org>
412 * include/debug/helper_functions.h
413 (__gnu_debug::_Safe_iterator<>): Add declaration.
414 (__can_advance(_Ite, _Size)): New.
415 (__can_advance(const _Safe_iterator<>&, _Size)): Overload declaration.
416 * include/debug/functions.h
417 (__gnu_debug::_Safe_iterator<>): Remove declaration.
418 * include/debug/stl_iterator.h
419 (__can_advance(const _Safe_iterator<>&)): New definition.
420 * include/debug/stl_iterator.h
421 (__can_advance(const std::reverse_iterator<>&, _Size)): New.
422 (__can_advance(const std::move_iterator<>&, _Size)): New.
423 * include/debug/macros.h (__glibcxx_check_can_increment): New.
424 * include/debug/debug.h (__glibcxx_requires_can_increment): New.
425 * include/bits/stl_algobase.h (fill_n): Use latter.
426 * testsuite/25_algorithms/fill_n/2.cc: New.
427 * testsuite/25_algorithms/fill_n/debug/1_neg.cc: New.
428 * testsuite/25_algorithms/fill_n/debug/2_neg.cc: New.
429 * testsuite/25_algorithms/fill_n/debug/3_neg.cc: New.
430 * testsuite/25_algorithms/fill_n/debug/4_neg.cc: New.
432 * include/debug/debug.h (__glibcxx_requires_can_increment_range): New.
433 (__glibcxx_requires_can_decrement_range): New.
435 2018-06-12 François Dumont <fdumont@gcc.gnu.org>
437 * include/debug/macros.h (__glibcxx_check_can_increment_range): New.
438 (__glibcxx_check_can_decrement_range): New.
439 * include/bits/stl_algobase.h (std::copy(_II, _II, _OI)): Use
440 __glibcxx_requires_can_increment_range.
441 (std::move(_II, _II, _OI)): Likewise.
442 (std::copy_backward(_BI, _BI, _BI2)): Use
443 __glibcxx_requires_can_decrement_range.
444 (std::move_backward(_BI, _BI, _BI2)): Likewise.
445 * testsuite/25_algorithms/copy_backward/debug/1_neg.cc: New.
446 * testsuite/25_algorithms/copy_backward/debug/2_neg.cc: New.
447 * testsuite/25_algorithms/copy_backward/debug/3_neg.cc: New.
448 * testsuite/25_algorithms/equal/debug/1_neg.cc: New.
449 * testsuite/25_algorithms/equal/debug/2_neg.cc: New.
450 * testsuite/25_algorithms/equal/debug/3_neg.cc: New.
452 2018-06-12 Jonathan Wakely <jwakely@redhat.com>
454 P0935R0 Eradicating unnecessarily explicit default constructors
455 * include/bits/random.h (linear_congruential_engine)
456 (mersenne_twister_engine, subtract_with_carry_engine, random_device)
457 (uniform_real_distribution, normal_distribution)
458 (lognormal_distribution, gamma_distribution, chi_squared_distribution)
459 (cauchy_distribution, fisher_f_distribution, student_t_distribution)
460 (bernoulli_distribution, binomial_distribution,geometric_distribution)
461 (negative_binomial_distribution, exponential_distribution)
462 (weibull_distribution, extreme_value_distribution): Add non-explicit
463 default constructors. Remove default argument for first parameter of
464 explicit constructors.
465 (piecewise_constant_distribution, piecewise_linear_distribution):
466 Make default constructor non-explicit.
467 * include/bits/uniform_int_dist.h (uniform_int_distribution): Add
468 non-explicit default constructors. Remove default argument for first
469 parameter of explicit constructor.
471 (simd_fast_mersenne_twister_engine, beta_distribution)
472 (rice_distribution, nakagami_distribution, pareto_distribution)
473 (k_distribution, arcsine_distribution, hoyt_distribution)
474 (triangular_distribution, von_mises_distribution)
475 (hypergeometric_distribution, logistic_distribution)
476 (uniform_inside_sphere_distribution): Likewise.
477 (uniform_on_sphere_distribution): Make default constructor
479 * testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc:
480 Test for non-explicit default constructor. Fix references to standard.
481 * testsuite/26_numerics/random/binomial_distribution/cons/default.cc:
483 * testsuite/26_numerics/random/cauchy_distribution/cons/default.cc:
485 * testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc:
487 * testsuite/26_numerics/random/discrete_distribution/cons/default.cc:
489 * testsuite/26_numerics/random/exponential_distribution/cons/default.cc:
491 * testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc:
493 * testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc:
495 * testsuite/26_numerics/random/gamma_distribution/cons/default.cc:
497 * testsuite/26_numerics/random/geometric_distribution/cons/default.cc:
499 * testsuite/26_numerics/random/lognormal_distribution/cons/default.cc:
501 * testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc:
503 * testsuite/26_numerics/random/normal_distribution/cons/default.cc:
505 * testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc:
507 * testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc:
509 * testsuite/26_numerics/random/poisson_distribution/cons/default.cc:
511 * testsuite/26_numerics/random/student_t_distribution/cons/default.cc:
513 * testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc:
515 * testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc:
517 * testsuite/26_numerics/random/weibull_distribution/cons/default.cc:
519 * testsuite/ext/random/arcsine_distribution/cons/default.cc: Likewise.
520 * testsuite/ext/random/beta_distribution/cons/default.cc: Likewise.
521 * testsuite/ext/random/hoyt_distribution/cons/default.cc: Likewise.
522 * testsuite/ext/random/hypergeometric_distribution/cons/default.cc:
524 * testsuite/ext/random/k_distribution/cons/default.cc: Likewise.
525 * testsuite/ext/random/logistic_distribution/cons/default.cc: Likewise.
526 * testsuite/ext/random/nakagami_distribution/cons/default.cc: Likewise.
527 * testsuite/ext/random/normal_mv_distribution/cons/default.cc:
529 * testsuite/ext/random/pareto_distribution/cons/default.cc: Likewise.
530 * testsuite/ext/random/rice_distribution/cons/default.cc: Likewise.
531 * testsuite/ext/random/triangular_distribution/cons/default.cc:
533 * testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc:
535 * testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc:
537 * testsuite/ext/random/von_mises_distribution/cons/default.cc:
539 * testsuite/util/testsuite_common_types.h
540 (implicitly_default_constructible): New helper.
542 2018-06-08 Jonathan Wakely <jwakely@redhat.com>
544 * include/bits/ios_base.h (ios::Init::Init(const Init&))
545 (ios::Init::operator=): Define as defaulted.
546 * include/bits/stl_bvector.h (_Bit_reference(const _Bit_reference&)):
548 * include/bits/stream_iterator.h (istream_iterator::operator=)
549 (ostream_iterator::operator=): Likewise.
550 * include/bits/streambuf_iterator.h (istreambuf_iterator::operator=)
552 * include/std/bitset (bitset::reference::reference(const reference&)):
554 * include/std/complex (complex<float>::complex(const complex&))
555 (complex<double>::complex(const complex&))
556 (complex<long double>::complex(const complex&)): Likewise.
558 2018-06-07 Jonathan Wakely <jwakely@redhat.com>
560 * include/bits/regex.h (sub_match): Add noexcept to default
561 constructor and length observer.
562 (match_results): Add noexcept to default constructor and observers
563 with no preconditions. Define destructor as defaulted.
564 (operator==, operator!=, swap): Add noexcept.
565 (regex_iterator): Add default member initializers and define default
566 constructor and destructor as defaulted. Add noexcept to equality
567 and dereference operators.
569 2018-06-07 François Dumont <fdumont@gcc.gnu.org>
572 (_Safe_iterator_base::_M_detach()): Reset state only if needed.
573 (_Safe_iterator_base::_M_detach_single()): Likewise.
574 (_Safe_local_iterator_base::_M_detach()): Reset state only if needed.
575 (_Safe_local_iterator_base::_M_detach_single()): Likewise.
577 2018-06-06 Jonathan Wakely <jwakely@redhat.com>
579 * include/bits/shared_ptr_base.h (__shared_count): Remove redundant
582 2018-06-06 Jakub Jelinek <jakub@redhat.com>
585 * include/bits/c++config: Check __cpp_transactional_memory >= 201500L
586 rather than __cpp_transactional_memory >= 201505L.
588 2018-06-06 Jonathan Wakely <jwakely@redhat.com>
591 * include/bits/quoted_string.h (_Quoted_string<basic_string_view, C>):
592 Define new partial specialization.
593 * include/std/iomanip (quoted(basic_string_view<C,T>, C, C)): Define
595 (operator<<(basic_ostream<C,T>&, const _Quoted_string<S,C>&)): Use
596 value not reference for iteration.
597 * testsuite/27_io/manipulators/standard/char/quoted.cc: Adjust
599 * testsuite/27_io/manipulators/standard/char/quoted_sv.cc: New test.
600 * testsuite/27_io/manipulators/standard/wchar_t/quoted.cc: Adjust
603 2018-06-05 Jonathan Wakely <jwakely@redhat.com>
605 * include/std/type_traits: Fix comment typos.
607 * testsuite/27_io/filesystem/operations/read_symlink.cc: XFAIL for
609 * testsuite/27_io/filesystem/operations/symlink_status.cc: Likewise.
610 * testsuite/experimental/filesystem/operations/read_symlink.cc:
613 2018-06-05 François Dumont <fdumont@gcc.gnu.org>
615 * include/bits/stl_tempbuf.h
616 (_Temporary_buffer(_FwdIte, _FwdIte)): Delete, replaced by...
617 (_Temporary_buffer(_FwdIte, size_type)): ...this, new.
618 * include/ext/memory (temporary_buffer<>(_FwdIte, _FwdIte)): Adapt.
619 * include/bits/stl_algo.h (__stable_partition): Adapt.
620 (__inplace_merge): Adapt.
621 (__stable_sort): Adapt.
623 2018-06-04 Jonathan Wakely <jwakely@redhat.com>
626 * include/bits/shared_ptr_base.h [!__cpp_rtti]: Include <typeinfo>
627 unconditionally. Remove redundant declaration.
628 [!__cpp_rtti] (_Sp_make_shared_tag::_S_ti): Fix location of
631 * include/bits/postypes.h (fpos): Define special members as defaulted.
634 * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Align
635 the static variable correctly.
637 2018-05-24 Jonathan Wakely <jwakely@redhat.com>
639 PR libstdc++/78870 support std::filesystem on Windows
640 * config.h.in: Regenerate.
641 * configure: Regenerate.
642 * configure.ac: Check for link, readlink and symlink.
643 * include/bits/fs_path.h (path::operator/=(const path&)): Move
644 definition out of class body.
645 (path::is_absolute(), path::_M_append(path)): Likewise.
646 (operator<<(basic_ostream, const path&)): Use std::quoted directly.
647 (operator>>(basic_istream, path&)): Likewise.
648 (u8path): Reorder definitions and fix Windows implementation.
649 (path::is_absolute()): Define inline and fix for Windows.
650 [!_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::operator/=(const path&)):
651 Define POSIX version inline.
652 (path::_M_append(path)): Define inline.
653 * include/experimental/bits/fs_path.h (path::is_absolute()): Move
654 definition out of class body.
655 (operator<<(basic_ostream, const path&)): Fix type of delimiter and
657 (operator>>(basic_istream, path&)): Likewise.
658 (path::is_absolute()): Define inline and fix for Windows.
659 * src/filesystem/dir-common.h (__gnu_posix): New namespace.
660 (__gnu_posix::char_type, __gnu_posix::DIR, __gnu_posix::dirent)
661 (__gnu_posix::opendir, __gnu_posix::readdir, __gnu_posix::closedir):
662 Define as adaptors for Windows functions/types or as
663 using-declarations for POSIX functions/types.
664 (_Dir_base, get_file_type): Qualify names to use declarations from
665 __gnu_posix namespace.
666 (_Dir_base::is_dor_or_dotdot): New helper functions.
667 * src/filesystem/dir.cc (_Dir, recursive_directory_iterator): Qualify
668 names to use declarations from __gnu_posix namespace.
669 * src/filesystem/ops-common.h (__gnu_posix): New nested namespace.
670 (__gnu_posix::open, __gnu_posix::close, __gnu_posix::stat_type)
671 (__gnu_posix::stat, __gnu_posix::lstat, __gnu_posix::mode_t)
672 (__gnu_posix::chmod, __gnu_posix::mkdir, __gnu_posix::getcwd)
673 (__gnu_posix::chdir, __gnu_posix::utimbuf, __gnu_posix::utime)
674 (__gnu_posix::rename, __gnu_posix::truncate, __gnu_posix::char_type):
675 Define as adaptors for Windows functions/types or as
676 using-declarations for POSIX functions/types.
677 (stat_type, do_copy_file): Qualify names to use declarations from
678 __gnu_posix namespace.
679 (do_space): Declare new function.
680 (make_file_type): Only use S_ISLNK if defined.
681 * src/filesystem/ops.cc (char_ptr, filesystem::canonical): Use
682 path::value_type not char.
683 (filesystem::copy, create_dir, filesystem::create_directory): Qualify
684 names to use declarations from __gnu_posix namespace.
685 (filesystem::create_hard_link): Check HAVE_LINK autoconf macro and
686 add implementation for Windows.
687 (filesystem::create_symlink): Check HAVE_SYMLINK autoconf macro.
688 (filesystem::current_path(error_code&)): Use __gnu_posix::getcwd.
689 [!_PC_PATH_MAX]: Don't use pathconf.
690 [PATH_MAX]: Use if defined.
691 (filesystem::current_path(const path&, error_code&))
692 (filesystem::equivalent, do_stat, filesystem::hard_link_count)
693 (filesystem::last_write_time, filesystem::permissions): Use names
695 (filesystem::read_symlink): Check HAVE_READLINK autoconf macro.
696 (filesystem::remove) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Add
697 implementation for Windows.
698 (filesystem::rename, filesystem::resize_file): Use names from
700 (filesystem::space): Use do_space.
701 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Get absolute path to directory.
702 (filesystem::status, filesystem::symlink_status): Use names from
704 (filesystem::temp_directory_path): Add implementation for Windows.
705 * src/filesystem/path.cc (dot): Define constant.
706 (path::replace_extension): Use dot.
707 (path::_M_find_extension): Likewise. Use path::string_type not
709 (path::_M_split_cmpts): Use dot.
710 (filesystem_error::_M_get_what): Use u8string() not native().
711 * src/filesystem/std-dir.cc (_Dir, recursive_directory_iterator):
712 Qualify names to use declarations from __gnu_posix namespace.
713 * src/filesystem/std-ops.cc (filesystem::absolute(const path&)): Use
715 (filesystem::absolute(const path&, error_code&)): Add implementation
717 (char_ptr, filesystem::canonical): Use path::value_type not char.
718 (do_copy_file): Use names from __gnu_posix.
719 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Do not use fchmod, fchmodat or
721 (filesystem::copy, create_dir, filesystem::create_directory): Qualify
722 names to use declarations from __gnu_posix namespace.
723 (filesystem::create_hard_link): Check HAVE_LINK autoconf macro and
724 add implementation for Windows.
725 (filesystem::create_symlink): Check HAVE_SYMLINK autoconf macro.
726 (filesystem::current_path(error_code&)): Use __gnu_posix::getcwd.
727 [!_PC_PATH_MAX]: Don't use pathconf.
728 [PATH_MAX]: Use if defined.
729 (filesystem::current_path(const path&, error_code&))
730 (filesystem::equivalent, do_stat, filesystem::hard_link_count)
731 (filesystem::last_write_time, filesystem::permissions): Use names
733 (filesystem::read_symlink): Check HAVE_READLINK autoconf macro.
734 (filesystem::remove) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Add
735 implementation for Windows.
736 (filesystem::rename, filesystem::resize_file): Use names from
739 (filesystem::space): Use do_space.
740 (filesystem::status, filesystem::symlink_status): Use names from
742 (filesystem::temp_directory_path): Add implementation for Windows.
743 * src/filesystem/std-path.cc
744 [_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::operator/=(const path&)):
746 (dot): Define constant.
747 (path::replace_extension, is_dot): Use dot.
748 (path::lexically_normal): Check _M_type instead of calling
749 non-existent function.
750 (path::_M_find_extension): Use dot. Use path::string_type not
752 (path::_M_split_cmpts): Use dot.
753 (filesystem_error::_M_get_what): Use u8string() not native().
754 * testsuite/27_io/filesystem/iterators/directory_iterator.cc: Do not
756 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
758 * testsuite/27_io/filesystem/operations/absolute.cc: Use
759 __gnu_test::root_path() instead of "/" and add Windows-specific tests.
760 * testsuite/27_io/filesystem/operations/canonical.cc: Use
761 path::string() to get narrow string, not path::native().
762 * testsuite/27_io/filesystem/operations/copy.cc: Construct fstreams
763 with std::filesystem::path not std::basic_string.
764 * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
765 * testsuite/27_io/filesystem/operations/exists.cc: Use
766 __gnu_test::root_path() instead of "/".
767 * testsuite/27_io/filesystem/operations/is_empty.cc: Construct
768 fstreams with std::filesystem::path not std::basic_string.
769 * testsuite/27_io/filesystem/operations/last_write_time.cc: Use
770 path::string() to get narrow string.
771 * testsuite/27_io/filesystem/operations/space.cc: Check results for
772 errors, expect sensible values otherwise.
773 * testsuite/27_io/filesystem/operations/temp_directory_path.cc: Add
774 helpers for adjusting the environment on Windows.
775 * testsuite/27_io/filesystem/path/append/path.cc: Test
776 Windows-specific behaviour.
777 * testsuite/27_io/filesystem/path/construct/format.cc: Fix creation
778 of path::string_type objects.
779 * testsuite/27_io/filesystem/path/construct/locale.cc: Compare native
780 string to wide string on Windows.
781 * testsuite/27_io/filesystem/path/decompose/root_directory.cc: Allow
782 for backslash as root-directory.
783 * testsuite/27_io/filesystem/path/decompose/stem.cc: Use
784 path::string() to get narrow string.
785 * testsuite/27_io/filesystem/path/itr/traversal.cc: Test Windows-style
787 * testsuite/27_io/filesystem/path/native/string.cc: Use string_type
789 * testsuite/27_io/filesystem/path/query/is_absolute.cc: Adjust for
790 different definintion of absolute paths on Windows.
791 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
793 * testsuite/experimental/filesystem/operations/absolute.cc: Test
795 * testsuite/experimental/filesystem/operations/copy.cc: Construct
796 fstreams with NTCTS not std::basic_string.
797 * testsuite/experimental/filesystem/operations/copy_file.cc: Likewise.
798 * testsuite/experimental/filesystem/operations/exists.cc: Use
799 __gnu_test::root_path() instead of "/".
800 * testsuite/experimental/filesystem/operations/is_empty.cc: Construct
801 fstreams with NTCTS not std::basic_string.
802 * testsuite/experimental/filesystem/operations/last_write_time.cc:
803 Use path::string() to get narrow string.
804 * testsuite/experimental/filesystem/operations/space.cc: Use
805 __gnu_test::root_path() instead of "/".
806 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
807 Add helpers for adjusting the environment on Windows.
808 * testsuite/experimental/filesystem/path/append/path.cc: Use
809 path::string() to get narrow strings for comparisons.
810 * testsuite/experimental/filesystem/path/concat/path.cc: Likewise.
811 * testsuite/experimental/filesystem/path/decompose/root_directory.cc:
813 * testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
814 * testsuite/experimental/filesystem/path/native/string.cc: Use
815 string_type not std::string.
816 * testsuite/experimental/filesystem/path/query/is_absolute.cc:
817 Adjust for different definintion of absolute paths on Windows.
818 * testsuite/util/testsuite_fs.h (__gnu_test::root_path()): New
820 (__gnu_test::scoped_file): Construct fstreams with NTCTS not
823 2018-05-31 Jonathan Wakely <jwakely@redhat.com>
826 * include/std/type_traits [_GLIBCXX_USE_C99_STDINT_TR1]: Do not define
827 uint_least16_t and uint_least32_t.
828 (__make_unsigned<wchar_t>): Define unconditionally.
829 (__make_unsigned_selector<_Tp, true, false>): Remove intermediate
831 (__make_unsigned_selector_base): New type to provide helper templates.
832 (__make_unsigned_selector<_Tp, false, true>): Reimplement using
833 __make_unsigned_selector_base helpers.
834 (__make_unsigned<char16_t>, __make_unsigned<char32_t>): Define.
835 (__make_signed_selector<_Tp, true, false>): Remove intermediate
837 (__make_signed<wchar_t>, __make_signed<char16_t>)
838 (__make_signed<char32_t>)): Define unconditionally.
839 * testsuite/20_util/make_signed/requirements/typedefs-3.cc: Check
840 wchar_t, char16_t and char32_t are transformed correctly.
841 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
843 * testsuite/20_util/make_unsigned/requirements/typedefs-3.cc: Check
844 wchar_t, char16_t and char32_t are transformed correctly.
845 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Adjust
848 2018-05-29 Jonathan Wakely <jwakely@redhat.com>
850 * include/std/variant (__erased_dtor): Qualify call to __get.
852 2018-05-27 François Dumont <fdumont@gcc.gnu.org>
854 * include/bits/stl_tree.h (_Rb_tree_impl(_Node_allocator&&)): New.
855 (_Rb_tree(const allocator_type&)): Use latter.
856 * include/bits/stl_map.h (map(const allocator_type&)): Likewise.
857 (map(initializer_list<value_type>, const allocator_type&)): Likewise.
858 (map(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
859 * include/bits/stl_multimap.h
860 (multimap(const allocator_type&)): Likewise.
861 (multimap(initializer_list<value_type>, const allocator_type&)):
863 (multimap(_InputIterator, _InputIterator, const allocator_type&)):
865 * include/bits/stl_set.h (set(const allocator_type&)): Likewise.
866 (set(initializer_list<value_type>, const allocator_type&)): Likewise.
867 (set(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
868 * include/bits/stl_multiset.h
869 (multiset(const allocator_type&)): Likewise.
870 (multiset(initializer_list<value_type>, const allocator_type&)):
872 (multiset(_InputIterator, _InputIterator, const allocator_type&)):
875 2018-05-25 François Dumont <fdumont@gcc.gnu.org>
878 * src/c++11/debug.cc: Remove backtrace usage.
880 2018-05-24 Maya Rashish <coypu@sdf.org>
883 * crossconfig.m4: Test for aligned_alloc on netbsd.
884 * configure: Regenerate.
886 2018-05-24 Jonathan Wakely <jwakely@redhat.com>
890 * include/bits/atomic_base.h (__atomic_base::value_type)
891 (__atomic_base::difference_type): Add new typedefs.
892 * include/std/atomic (atomic<bool>::value_type, atomic<T>::value_type)
893 (atomic<T*>::value_type, atomic<T*>::difference_type): Likewise.
894 (atomic<T*>::operator++, atomic<T*>::operator--)
895 (atomic<T*>::operator+=, atomic<T*>::operator-=)
896 (atomic<T*>::fetch_add, atomic<T*>::fetch_sub): Add static assertion
897 to enforce C++17 requirement on pointer arithmetic.
898 (__atomic_val_t, __atomic_diff_t): New alias templates.
899 (atomic_init, atomic_store_explicit, atomic_exchange_explicit)
900 (atomic_compare_exchange_weak_explicit)
901 (atomic_compare_exchange_strong_explicit, atomic_store)
902 (atomic_exchange, atomic_compare_exchange_weak)
903 (atomic_compare_exchange_strong): Use __atomic_val_t to make
904 scalar parameters be non-deduced contexts.
905 (atomic_fetch_add_explicit, atomic_fetch_sub_explicit)
906 (atomic_fetch_add, atomic_fetch_sub): Change first parameter to be
907 atomic instead of __atomic_base, and use __atomic_diff_t for scalar
909 (atomic_fetch_and_explicit, atomic_fetch_or_explicit)
910 (atomic_fetch_xor_explicit, atomic_fetch_and, atomic_fetch_or)
911 (atomic_fetch_xor): Use __atomic_val_t for scalar parameters.
912 (atomic_fetch_add_explicit, atomic_fetch_sub_explicit)
913 (atomic_fetch_add, atomic_fetch_sub): Remove overloads for atomic
915 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
916 * testsuite/29_atomics/atomic/69769.cc: New test.
917 * testsuite/29_atomics/atomic/nonmembers.cc: New test.
918 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
919 Disable test for C++17 and later.
920 * testsuite/29_atomics/atomic/requirements/typedefs.cc: New test.
921 * testsuite/29_atomics/atomic_integral/nonmembers.cc: New test.
922 * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc: New
925 2018-05-23 Jonathan Wakely <jwakely@redhat.com>
927 * include/bits/fs_path.h (path::__is_encoded_char): Change from class
928 template to alias template.
929 (path::__value_type_is_char): Use remove_const_t.
930 (path:_S_string_from_iter): New helper function.
931 (path::_S_convert(InputIter, __null_terminated))
932 (path::_S_convert_loc(InputIter, __null_terminated, const locale&)):
933 Use _S_string_from_iter.
934 (path::string<_CharT, _Allocator>(const _Allocator&)): Allow sharing
936 * include/experimental/bits/fs_path.h (path::__is_encoded_char):
937 Change from class template to alias template.
938 (path::__value_type_is_char): Use remove_const.
939 (path:_S_string_from_iter): New helper function.
940 (path::_S_convert(InputIter, __null_terminated))
941 (path::_S_convert_loc(InputIter, __null_terminated, const locale&)):
942 Use _S_string_from_iter.
943 * testsuite/27_io/filesystem/path/append/source.cc: Test appending
945 * testsuite/27_io/filesystem/path/concat/strings.cc: Check for exact
946 string equality, not path equivalence.
947 * testsuite/27_io/filesystem/path/construct/format.cc: Check
948 construction from std::string and std::wstring and input iterators.
949 * testsuite/27_io/filesystem/path/construct/locale.cc: Check
950 construction from iterators.
951 * testsuite/experimental/filesystem/path/concat/strings.cc: Check for
952 exact string equality, not path equivalence.
953 * testsuite/experimental/filesystem/path/construct/locale.cc: Check
954 construction from iterators.
956 * include/bits/fs_path.h (path::_M_type): Change default member
957 initializer to _Filename.
958 (path::begin): Create past-the-end iterator for empty path.
959 * src/filesystem/std-path.cc (path::remove_filename()): Remove
961 (path::has_relative_path()): Return false for empty filenames.
962 (path::_M_split_cmpts): Set _M_type to _Filename for empty paths.
963 Fix offset of empty final component.
964 * testsuite/27_io/filesystem/path/itr/components.cc: New.
965 * testsuite/27_io/filesystem/path/itr/traversal.cc: Add new inputs.
967 2018-05-21 Jonathan Wakely <jwakely@redhat.com>
969 Add support for opening file streams from wide character strings.
970 * config/io/basic_file_stdio.cc [_GLIBCXX_HAVE__WFOPEN]
971 (__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
973 * config/io/basic_file_stdio.h [_GLIBCXX_HAVE__WFOPEN]
974 (__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
975 Declare new overload.
976 * configure.ac: Check for _wfopen.
977 * crossconfig.m4: Likewise.
978 * configure: Regenerate.
979 * config.h.in: Regenerate.
980 * include/bits/fstream.tcc [_GLIBCXX_HAVE__WFOPEN]
981 (basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
983 * include/std/fstream [_GLIBCXX_HAVE__WFOPEN]
984 (basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
985 Declare new overload.
986 [_GLIBCXX_HAVE__WFOPEN]
987 (basic_ifstream<C,T>::basic_ifstream(const wchar_t*, openmode))
988 (basic_ifstream<C,T>::basic_open(const wchar_t*, openmode))
989 (basic_ofstream<C,T>::basic_ifstream(const wchar_t*, openmode))
990 (basic_ofstream<C,T>::basic_open(const wchar_t*, openmode))
991 (basic_fstream<C,T>::basic_ifstream(const wchar_t*, openmode))
992 (basic_fstream<C,T>::basic_open(const wchar_t*, openmode)): Define
994 * testsuite/27_io/basic_filebuf/open/wchar_t/1.cc: New.
995 * testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc: New.
996 * testsuite/27_io/basic_ifstream/open/wchar_t/1.cc: New.
997 * testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc: New.
998 * testsuite/27_io/basic_ofstream/open/wchar_t/1.cc: New.
999 * testsuite/27_io/basic_fstream/cons/wchar_t/1.cc: New.
1000 * testsuite/27_io/basic_fstream/open/wchar_t/1.cc: New.
1002 2018-05-21 François Dumont <fdumont@gcc.gnu.org>
1005 * include/bits/stl_tree.h
1006 (_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): Fix noexcept
1009 2018-05-21 Jonathan Wakely <jwakely@redhat.com>
1011 * src/filesystem/std-ops.cc (absolute): Report an error for empty
1013 (weakly_canonical(const path&)): Do not call canonical on empty path.
1014 (weakly_canonical(const path&, error_code&)): Likewise.
1015 * testsuite/27_io/filesystem/operations/absolute.cc: Check for errors.
1018 * testsuite/experimental/filesystem/path/preferred_separator.cc: Add
1019 dg-require-filesystem-ts.
1022 * src/c++11/cow-stdexcept.cc (logic_error, runtime_error): Explicitly
1023 initialize base class to avoid warnings.
1025 2018-05-19 Jonathan Wakely <jwakely@redhat.com>
1027 * src/c++11/codecvt.cc (__codecvt_utf8_base<wchar_t>::do_in)
1028 [__SIZEOF_WCHAR_T__==2 && __BYTE_ORDER__!=__ORDER_BIG_ENDIAN__]: Set
1029 little_endian element in bitmask.
1030 * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: Run all tests.
1031 * testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc: New.
1033 2018-05-18 François Dumont <fdumont@gcc.gnu.org>
1035 * include/bits/stl_tree.h
1036 (_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): New.
1037 (_Rb_tree(_Rb_tree&&, _Node_allocator&&, true_type)): New, use latter.
1038 (_Rb_tree(_Rb_tree&&, _Node_allocator&&, false_type)): New.
1039 (_Rb_tree(_Rb_tree&&, _Node_allocator&&)): Adapt, use latters.
1040 * include/debug/map.h
1041 (map(map&&, const_allocator_type&)): Add noexcept qualitication.
1042 * include/debug/multimap.h
1043 (multimap(multimap&&, const_allocator_type&)): Likewise.
1044 * include/debug/set.h
1045 (set(set&&, const_allocator_type&)): Likewise.
1046 * include/debug/multiset.h
1047 (multiset(multiset&&, const_allocator_type&)): Likewise.
1048 * testsuite/23_containers/map/cons/noexcept_default_construct.cc:
1050 * testsuite/23_containers/map/cons/noexcept_move_construct.cc:
1052 * testsuite/23_containers/multimap/cons/noexcept_default_construct.cc:
1054 * testsuite/23_containers/multimap/cons/noexcept_move_construct.cc:
1056 * testsuite/23_containers/multiset/cons/noexcept_default_construct.cc:
1058 * testsuite/23_containers/multiset/cons/noexcept_move_construct.cc:
1060 * testsuite/23_containers/set/cons/noexcept_default_construct.cc:
1062 * testsuite/23_containers/set/cons/noexcept_move_construct.cc:
1065 2018-05-18 Jason Merrill <jason@redhat.com>
1067 * include/bits/stl_deque.h (_Deque_iterator): Constrain constructor
1068 for conversion to const_iterator. Add defaulted copy ops.
1069 * libsupc++/new (bad_alloc): Add defaulted copy ops.
1070 * libsupc++/exception.h (exception): Add defaulted copy ops.
1071 * include/std/system_error (system_error): Add defaulted copy ops.
1072 * include/std/stdexcept (domain_error, invalid_argument)
1073 (length_error, out_of_range, range_error, overflow_error)
1074 (underflow_error): Add defaulted copy ops.
1075 * include/bits/stl_iterator.h (reverse_iterator): Add defaulted
1077 * include/bits/allocator.h (allocator): Add defaulted copy assignment.
1078 * include/ext/throw_allocator.h (condition_base): Add defaulted
1079 default and copy ctor and copy assignment.
1081 2018-05-18 Jonathan Wakely <jwakely@redhat.com>
1084 * include/bits/regex.h [__cplusplus < 201703L] (basic_regex::icase)
1085 (basic_regex::nosubs, basic_regex::optimize, basic_regex::collate)
1086 (basic_regex::ECMAScript, basic_regex::basic, basic_regex::extended)
1087 (basic_regex::awk, basic_regex::grep, basic_regex::egrep): Add
1089 * include/bits/regex_automaton.h (_NFA::_M_insert_state): Adjust
1091 * include/bits/regex_compiler.tcc (__INSERT_REGEX_MATCHER): Add
1092 braces around body of do-while.
1093 * testsuite/28_regex/basic_regex/85098.cc: New
1095 2018-05-17 Jonathan Wakely <jwakely@redhat.com>
1098 * src/filesystem/path.cc (path::preferred_separator): Add used
1100 * testsuite/experimental/filesystem/path/preferred_separator.cc: New.
1103 * libsupc++/cxxabi_init_exception.h (__cxa_free_exception): Declare.
1104 * libsupc++/exception_ptr.h (make_exception_ptr) [__cpp_exceptions]:
1105 Refactor to separate non-throwing and throwing implementations.
1106 [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]: Deallocate the memory
1107 if constructing the object throws.
1109 2018-05-15 Jonathan Wakely <jwakely@redhat.com>
1112 * include/bits/random.h (__detail::__is_seed_seq): New SFINAE helper.
1113 (linear_congruential_engine, mersenne_twister_engine)
1114 (subtract_with_carry_engine, discard_block_engine)
1115 (independent_bits_engine, shuffle_order_engine): Use __is_seed_seq to
1116 constrain function templates taking seed sequences.
1117 * include/bits/random.tcc (linear_congruential_engine::seed(_Sseq&))
1118 (mersenne_twister_engine::seed(_Sseq&))
1119 (subtract_with_carry_engine::seed(_Sseq&)): Change return types to
1121 * include/ext/random (simd_fast_mersenne_twister_engine): Use
1122 __is_seed_seq to constrain function templates taking seed sequences.
1123 * include/ext/random.tcc (simd_fast_mersenne_twister_engine::seed):
1124 Change return type to match declaration.
1125 * testsuite/26_numerics/random/discard_block_engine/cons/seed_seq2.cc:
1127 * testsuite/26_numerics/random/independent_bits_engine/cons/
1129 * testsuite/26_numerics/random/linear_congruential_engine/cons/
1131 * testsuite/26_numerics/random/mersenne_twister_engine/cons/
1133 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lineno.
1134 * testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq2.cc:
1136 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/
1138 * testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/
1142 * include/bits/fs_path.h (path::is_absolute()): Use same definition
1143 for all operating systems.
1144 * include/experimental/bits/fs_path.h (path::is_absolute()): Likewise.
1145 * testsuite/27_io/filesystem/path/query/is_absolute.cc: New.
1146 * testsuite/27_io/filesystem/path/query/is_relative.cc: Fix comment.
1147 * testsuite/experimental/filesystem/path/query/is_absolute.cc: New.
1149 * testsuite/27_io/filesystem/path/decompose/extension.cc: Remove
1150 unused <vector> header.
1151 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
1152 * testsuite/27_io/filesystem/path/query/has_extension.cc: Likewise.
1153 * testsuite/27_io/filesystem/path/query/has_filename.cc: Likewise.
1154 * testsuite/27_io/filesystem/path/query/has_parent_path.cc: Likewise.
1155 * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
1157 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
1159 * testsuite/27_io/filesystem/path/query/has_root_name.cc: Likewise.
1160 * testsuite/27_io/filesystem/path/query/has_root_path.cc: Likewise.
1161 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
1162 * testsuite/27_io/filesystem/path/query/is_relative.cc: Likewise.
1163 * testsuite/experimental/filesystem/path/decompose/extension.cc:
1165 * testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
1166 * testsuite/experimental/filesystem/path/query/has_extension.cc:
1168 * testsuite/experimental/filesystem/path/query/has_filename.cc:
1170 * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
1172 * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
1174 * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
1176 * testsuite/experimental/filesystem/path/query/has_root_name.cc:
1178 * testsuite/experimental/filesystem/path/query/has_root_path.cc:
1180 * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
1181 * testsuite/experimental/filesystem/path/query/is_relative.cc:
1185 * include/bits/fs_path.h (path::operator/=, path::append): Construct
1186 temporary path before calling _M_append.
1187 (path::_M_append): Change parameter to path and implement C++17
1189 * testsuite/27_io/filesystem/path/append/path.cc: Add helper function
1190 and more examples from the standard.
1191 * testsuite/27_io/filesystem/path/append/source.cc: New.
1192 * testsuite/27_io/filesystem/path/decompose/filename.cc: Add comment.
1193 * testsuite/27_io/filesystem/path/nonmember/append.cc: New.
1195 * include/std/variant (__gen_vtable_impl::__visit_invoke): Qualify
1196 __invoke to prevent ADL.
1198 2018-05-14 Jonathan Wakely <jwakely@redhat.com>
1201 * include/bits/fstream.tcc (basic_filebuf::close): Do not swallow
1202 exceptions from _M_terminate_output().
1203 * include/std/fstream (basic_filebuf::~basic_filebuf): Swallow any
1204 exceptions from close().
1205 * testsuite/27_io/basic_filebuf/close/81256.cc: New.
1207 * include/bits/valarray_array.h (__valarray_get_memory): Remove.
1208 (__valarray_get_storage): Call operator new directly. Remove ignored
1209 top-level restrict qualifier and add malloc attribute instead.
1210 (_Array<_Tp>::_Array(size_t)): Remove unused constructor.
1213 * include/bits/valarray_array.h (_Array_copy_ctor<_Tp, true>)
1214 (_Array_copier<_Tp, true>): Do not pass null pointers to memcpy.
1217 * include/bits/node_handle.h (_Node_handle_common::_M_swap): Use value
1219 * testsuite/23_containers/set/modifiers/node_swap.cc: New.
1221 2018-05-13 Ville Voutilainen <ville.voutilainen@gmail.com>
1224 * testsuite/20_util/variant/80165.cc: New.
1226 2018-05-10 Jonathan Wakely <jwakely@redhat.com>
1228 * doc/xml/faq.xml: Link to C++17 status. Add note to outdated answer.
1229 * doc/xml/manual/debug_mode.xml: Add array and forward_list to list
1230 of C++11 containers with Debug Mode support.
1231 * doc/xml/manual/using.xml: Document Dual ABI for ios_base::failure.
1232 * doc/html/*: Regenerate.
1234 2018-05-10 Jason Merrill <jason@redhat.com>
1236 * include/bits/regex_compiler.h (_S_cache_size): Change from
1237 function to variable.
1239 2018-05-10 Edward Smith-Rowland <3dw4rd@verizon.net>
1241 PR libstdc++/83140 - assoc_legendre returns negated value when m is odd
1242 * include/tr1/legendre_function.tcc (__assoc_legendre_p): Add __phase
1243 argument defaulted to +1. Doxy comments on same.
1244 * testsuite/special_functions/02_assoc_legendre/
1245 check_value.cc: Regen.
1246 * testsuite/tr1/5_numerical_facilities/special_functions/
1247 02_assoc_legendre/check_value.cc: Regen.
1249 2018-05-10 Jonathan Wakely <jwakely@redhat.com>
1252 * include/bits/c++config.h (__replacement_assert): Add linkage
1254 * include/bits/std_abs.h: Add comment to closing brace of block.
1255 * include/c_global/cstddef: Add linkage specification.
1256 * include/c_global/cstring: Likewise.
1257 * include/c_global/cwchar: Likewise.
1259 2018-05-09 François Dumont <fdumont@gcc.gnu.org>
1261 * include/debug/safe_iterator.h (_Safe_iterator<>::_M_constant()):
1263 (_Safe_iterator<>::_S_constant()): ...that.
1264 * include/debug/safe_local_iterator.h
1265 (_Safe_local_iterator<>::_M_constant()): Rename in...
1266 (_Safe_local_iterator<>::_S_constant()): ...that.
1267 * include/debug/formatter.h: Remove bits/cpp_type_traits.h include.
1268 (_Iterator_state::__rbegin): New.
1269 (_Iterator_state::__rmiddle): New.
1270 (_Iterator_state::__rend): New.
1271 (_Parameter::_Parameter(const _Safe_iterator<>&, const char*,
1272 _Is_iterator)): Use _Safe_iterator<>::_S_constant. Grab normal underlying
1274 (_Parameter::_Parameter(const _Safe_local_iterator<>&, const char*,
1275 _Is_iterator)): Likewise.
1276 (_Parameter::_S_reverse_state(_Iterator_state)): New.
1277 (_Parameter(__gnu_cxx::__normal_iterator<> const&, const char*,
1278 _Is_iterator)): New.
1279 (_Parameter(std::reverse_iterator<> const&, const char*,
1280 _Is_iterator)): New.
1281 (_Parameter(std::reverse_iterator<_Safe_iterator<>> const&,
1282 const char*, _Is_iterator)): New.
1283 (_Parameter(std::move_iterator<> const&, const char*, _Is_iterator):
1285 (_Parameter(std::move_iterator<_Safe_iterator<>> const&, const char*,
1286 _Is_iterator)): New.
1287 * testsuite/24_iterators/move_iterator/debug_neg.cc: New.
1288 * testsuite/24_iterators/normal_iterator/debug_neg.cc: New.
1289 * testsuite/24_iterators/reverse_iterator/debug_neg.cc: New.
1291 2018-05-09 Jonathan Wakely <jwakely@redhat.com>
1293 * include/bits/std_function.h (_Base_manager::_M_get_pointer):
1294 Use constexpr if in C++17 mode.
1295 (_Base_manager::_M_clone(_Any_data&, const _Any_data&, true_type)):
1296 Copy from const object.
1297 * testsuite/20_util/function/cons/non_copyconstructible.cc: New.
1299 2018-05-08 François Dumont <fdumont@gcc.gnu.org>
1301 * src/c++11/debug.cc [_GLIBCXX_HAVE_EXECINFO_H]: Include execinfo.h.
1302 [_GLIBCXX_HAVE_EXECINFO_H](_Error_formatter::_M_error): Render
1305 * include/debug/macros.h (__glibcxx_check_valid_range_at): New.
1306 * include/debug/functions.h (__check_valid_range): Use latter.
1307 * include/debug/macros.h (__glibcxx_check_valid_constructor_range): New,
1309 * include/debug/deque
1310 (deque::deque<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
1311 * include/debug/forward_list
1312 (forward_list::forward_list<_Iter>(_Iter, _Iter, const _Alloc&)):
1314 * include/debug/list
1315 (list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
1316 * include/debug/list
1317 (list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
1318 * include/debug/map.h
1319 (map::map<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
1320 (map::map<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
1322 * include/debug/multimap.h
1323 (multimap::multimap<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
1324 (multimap::multimap<_Iter>(_Iter, _Iter, const _Compare&,
1325 const _Alloc&)): Likewise.
1326 * include/debug/set.h
1327 (set::set<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
1328 (set::set<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
1330 * include/debug/multiset.h
1331 (multiset::multiset<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
1332 (multiset::multiset<_Iter>(_Iter, _Iter, const _Compare&,
1333 const _Alloc&)): Likewise.
1334 * include/debug/string
1335 (basic_string::basic_string<_Iter>(_Iter, _Iter, const _Alloc&)):
1337 * include/debug/unordered_map
1338 (unordered_map::unordered_map<_Iter>(_Iter, _Iter, const _Alloc&)):
1340 (unordered_multimap::unordered_multimap<_Iter>(_Iter, _Iter,
1341 const _Alloc&)): Likewise.
1342 * include/debug/unordered_set
1343 (unordered_set::unordered_set<_Iter>(_Iter, _Iter, const _Alloc&)):
1345 (unordered_multiset::unordered_multiset<_Iter>(_Iter, _Iter,
1346 const _Alloc&)): Likewise.
1347 * include/debug/vector
1348 (vector::vector<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
1350 * include/debug/formatter.h (_Error_formatter::_M_function): New.
1351 (_Error_formatter(const char*, unsigned int)): Adapt.
1352 (_Error_formatter::_M_at): Rename in...
1353 (_Error_formatter::_S_at): ...that and adapt.
1354 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): New.
1355 (_GLIBCXX_DEBUG_VERIFY_AT, _GLIBCXX_DEBUG_VERIFY): Adapt.
1356 * src/c++11/debug.cc (_Error_formatter::_M_error): Render _M_function
1359 2018-05-08 Jonathan Wakely <jwakely@redhat.com>
1361 * include/bits/regex_automaton.h (_NFA_base::_M_paren_stack, _NFA):
1362 Use normal std::vector even in Debug Mode.
1365 * include/Makefile.am [!ENABLE_FLOAT128]: Change c++config.h entry
1366 to #undef _GLIBCXX_USE_FLOAT128 instead of defining it to zero.
1367 * include/Makefile.in: Regenerate.
1368 * include/bits/c++config (_GLIBCXX_USE_FLOAT128): Move definition
1369 within conditional block.
1371 2018-05-07 Jonathan Wakely <jwakely@redhat.com>
1373 * doc/xml/manual/using.xml (table.cmd_options): Document that the
1374 C++17 Filesystem implementation also needs -lstdc++fs.
1377 * include/bits/fs_path.h (operator/): Permit copy elision.
1378 * include/experimental/bits/fs_path.h (operator/): Likewise.
1380 2018-05-07 Edward Smith-Rowland <3dw4rd@verizon.net>
1382 Moar PR libstdc++/80506
1383 * include/bits/random.tcc (gamma_distribution::__generate_impl()):
1384 Fix magic number used in loop condition.
1386 2018-05-04 Jonathan Wakely <jwakely@redhat.com>
1388 PR libstdc++/85642 fix is_nothrow_default_constructible<optional<T>>
1389 * include/std/optional (_Optional_payload): Add noexcept to default
1390 constructor. Re-indent.
1391 (_Optional_payload<_Tp, true, true, true>): Likewise. Add noexcept to
1392 constructor for copying disengaged payloads.
1393 (_Optional_payload<_Tp, true, false, true>): Likewise.
1394 (_Optional_payload<_Tp, true, true, false>): Likewise.
1395 (_Optional_payload<_Tp, true, false, false>): Likewise.
1396 * testsuite/20_util/optional/cons/85642.cc: New.
1397 * testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error lines.
1399 2018-05-03 Jonathan Wakely <jwakely@redhat.com>
1402 * include/tr1/cmath [__STRICT_ANSI__] (hypergf, hypergl, hyperg): Use
1403 inline definitions instead of using-declarations.
1404 [__STRICT_ANSI__] (conf_hypergf, conf_hypergl, conf_hyperg): Likewise.
1405 * testsuite/tr1/5_numerical_facilities/special_functions/
1406 07_conf_hyperg/compile_cxx17.cc: New.
1407 * testsuite/tr1/5_numerical_facilities/special_functions/
1408 17_hyperg/compile_cxx17.cc: New.
1411 * include/std/variant (visit): Qualify std::get call.
1413 PR libstdc++/85632 use uintmax_t for arithmetic
1414 * src/filesystem/ops.cc (experimental::filesystem::space): Perform
1415 arithmetic in result type.
1416 * src/filesystem/std-ops.cc (filesystem::space): Likewise.
1417 * testsuite/27_io/filesystem/operations/space.cc: Check total capacity
1418 is greater than free space.
1419 * testsuite/experimental/filesystem/operations/space.cc: New.
1421 * testsuite/20_util/remove_cvref/requirements/alias_decl.cc: New.
1422 * testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc:
1424 * testsuite/20_util/remove_cvref/value.cc: New.
1425 * testsuite/20_util/remove_cvref/value_ext.cc: New.
1427 PR libstdc++/84087 LWG DR 2268 basic_string default arguments
1428 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI=1]
1429 (append(const basic_string&, size_type, size_type)
1430 (assign(const basic_string&, size_type, size_type)
1431 (insert(size_type, const basic_string&, size_type, size_type)
1432 (replace(size_type,size_type,const basic_string&,size_type,size_type)
1433 (compare(size_type,size_type,constbasic_string&,size_type,size_type)):
1434 Add default arguments (LWG 2268).
1435 [_GLIBCXX_USE_CXX11_ABI=0]
1436 (append(const basic_string&, size_type, size_type)
1437 (assign(const basic_string&, size_type, size_type)
1438 (insert(size_type, const basic_string&, size_type, size_type)
1439 (replace(size_type,size_type,const basic_string&,size_type,size_type)
1440 (compare(size_type,size_type,constbasic_string&,size_type,size_type)):
1442 * testsuite/21_strings/basic_string/dr2268.cc: New test.
1445 * include/std/thread (thread::__not_same): New SFINAE helper.
1446 (thread::thread(_Callable&&, _Args&&...)): Add SFINAE constraint that
1447 first argument is not a std::thread. Add static assertion to check
1448 INVOKE expression is valid.
1449 (thread::thread(thread&), thread::thread(const thread&&)): Remove.
1450 (thread::_Invoke::_M_invoke, thread::_Invoke::operator()): Use
1451 __invoke_result for return types and remove exception specifications.
1452 * testsuite/30_threads/thread/cons/84535.cc: New.
1454 * include/std/future (__async_result_of): Use __invoke_result instead
1457 * include/std/any (any_cast): Use __remove_cvref_t.
1458 * include/std/tuple (__make_tuple): Likewise.
1459 * include/std/type_traits (__remove_cvref_t): Define.
1460 (__result_of_memobj, __result_of_memfun): Use __remove_cvref_t.
1461 [__cplusplus > 201703L] (remove_cvref, remove_cvref_t): Define.
1462 * include/std/variant (__erased_hash): Use __remove_cvref_t.
1464 2018-05-02 François Dumont <fdumont@gcc.gnu.org>
1466 * include/bits/deque.tcc (deque<>::_M_assign_aux): Cast to void to
1467 ensure overloaded comma not used.
1468 * include/bits/list.tcc (list<>::_M_assign_dispatch): Likewise.
1469 * include/bits/vector.tcc (vector<>::_M_assign_aux): Likewise.
1470 * include/bits/stl_bvector.h (vector<bool>::_M_assign_aux): Likewise.
1471 * testsuite/23_containers/deque/modifiers/assign/1.cc: New.
1472 * testsuite/23_containers/list/modifiers/assign/1.cc: New.
1473 * testsuite/23_containers/vector/bool/modifiers/assign/1.cc: New.
1474 * testsuite/23_containers/vector/modifiers/assign/1.cc: New.
1476 2018-05-02 Jonathan Wakely <jwakely@redhat.com>
1479 * include/bits/ios_base.h (ios_base::iword, ios_base::pword): Cast
1480 indices to unsigned.
1481 * src/c++11/ios.cc (ios_base::_M_grow_words): Treat negative indices
1482 as failure. Refactor error handling.
1483 * testsuite/27_io/ios_base/storage/68197.cc: New.
1487 * include/bits/gslice_array.h (gslice_array): Define default
1488 constructor as deleted, as per C++11 standard.
1489 * include/bits/mask_array.h (mask_array): Likewise.
1490 * include/bits/slice_array.h (slice_array): Likewise.
1491 * include/bits/valarray_after.h (_GBase, _GClos, _IBase, _IClos): Move
1492 to namespace __detail.
1493 (_GBase::_M_expr, _IBase::_M_expr): Use _ValArrayRef for type of data
1495 * include/bits/valarray_before.h (_ValArrayRef): New helper for type
1496 of data members in closure objects.
1497 (_FunBase, _ValFunClos, _RefFunClos, _UnBase, _UnClos, _BinBase)
1498 (_BinBase2, _BinBase1, _BinClos, _SBase, _SClos): Move to namespace
1500 (_FunBase::_M_expr, _UnBase::_M_expr, _BinBase::_M_expr1)
1501 (_BinBase::_M_expr2, _BinBase2::_M_expr1, _BinBase1::_M_expr2)
1502 (_SBase::_M_expr): Use _ValArrayRef for type of data members.
1503 * include/std/valarray (_UnClos, _BinClos, _SClos, _GClos, _IClos)
1504 (_ValFunClos, _RefFunClos): Move to namespace __detail and add
1505 using-declarations to namespace std.
1506 * testsuite/26_numerics/valarray/83860.cc: New.
1508 * testsuite/backward/strstream_move.cc: Remove duplicate function
1512 * include/backward/strstream (strstreambuf): Define move constructor
1513 and move assignment operator.
1514 (istrstream, ostrstream, strstream): Likewise.
1515 * testsuite/backward/strstream_move.cc: New.
1517 2018-05-01 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
1520 * acinclude.m4: Set ENABLE_FLOAT128 instead of _GLIBCXX_USE_FLOAT128.
1521 * config.h.in: Remove references to _GLIBCXX_USE_FLOAT128.
1522 * configure: Regenerate.
1523 * include/Makefile.am: Replace the value of _GLIBCXX_USE_FLOAT128
1524 based on ENABLE_FLOAT128.
1525 * include/Makefile.in: Regenerate.
1526 * include/bits/c++config: Define _GLIBCXX_USE_FLOAT128.
1527 [!defined(__FLOAT128__) && !defined(__SIZEOF_FLOAT128__)]: Undefine
1528 _GLIBCXX_USE_FLOAT128.
1530 2018-04-24 H.J. Lu <hongjiu.lu@intel.com>
1532 * configure: Regenerated.
1534 2018-04-19 Jakub Jelinek <jakub@redhat.com>
1536 * configure: Regenerated.
1538 2018-04-18 Jonathan Wakely <jwakely@redhat.com>
1539 Jakub Jelinek <jakub@redhat.com>
1542 * src/c++11/Makefile.am: Don't generate debuginfo again for
1543 cxx11-ios_failure-lt.s and cxx11-ios_failure.s files.
1544 * src/c++11/Makefile.in: Regenerate.
1546 2018-04-18 Jonathan Wakely <jwakely@redhat.com>
1549 * testsuite/30_threads/thread/cons/terminate.cc
1550 [!_GLIBCXX_USE_C99_STDLIB] : Use _exit or std::exit instead of _Exit.
1552 2018-04-18 David Malcolm <dmalcolm@redhat.com>
1555 * configure: Regenerate.
1557 2018-04-16 Jonathan Wakely <jwakely@redhat.com>
1559 * testsuite/experimental/filesystem/file_status/1.cc: Add
1560 -DUSE_FILESYSTEM_TS to dg-options.
1561 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
1563 * testsuite/experimental/filesystem/iterators/pop.cc: Likewise.
1564 * testsuite/experimental/filesystem/iterators/
1565 recursive_directory_iterator.cc: Likewise.
1566 * testsuite/experimental/filesystem/operations/absolute.cc: Likewise.
1567 * testsuite/experimental/filesystem/operations/canonical.cc: Likewise.
1568 * testsuite/experimental/filesystem/operations/copy.cc: Likewise.
1569 * testsuite/experimental/filesystem/operations/copy_file.cc: Likewise.
1570 * testsuite/experimental/filesystem/operations/create_directories.cc:
1572 * testsuite/experimental/filesystem/operations/create_directory.cc:
1574 * testsuite/experimental/filesystem/operations/create_symlink.cc:
1576 * testsuite/experimental/filesystem/operations/current_path.cc:
1578 * testsuite/experimental/filesystem/operations/equivalent.cc: Likewise.
1579 * testsuite/experimental/filesystem/operations/exists.cc: Likewise.
1580 * testsuite/experimental/filesystem/operations/file_size.cc: Likewise.
1581 * testsuite/experimental/filesystem/operations/is_empty.cc: Likewise.
1582 * testsuite/experimental/filesystem/operations/last_write_time.cc:
1584 * testsuite/experimental/filesystem/operations/permissions.cc:
1586 * testsuite/experimental/filesystem/operations/read_symlink.cc:
1588 * testsuite/experimental/filesystem/operations/remove.cc: Likewise.
1589 * testsuite/experimental/filesystem/operations/remove_all.cc: Likewise.
1590 * testsuite/experimental/filesystem/operations/status.cc: Likewise.
1591 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
1593 * testsuite/experimental/filesystem/path/append/path.cc: Likewise.
1594 * testsuite/experimental/filesystem/path/assign/assign.cc: Likewise.
1595 * testsuite/experimental/filesystem/path/assign/copy.cc: Likewise.
1596 * testsuite/experimental/filesystem/path/compare/compare.cc: Likewise.
1597 * testsuite/experimental/filesystem/path/compare/path.cc: Likewise.
1598 * testsuite/experimental/filesystem/path/compare/strings.cc: Likewise.
1599 * testsuite/experimental/filesystem/path/concat/path.cc: Likewise.
1600 * testsuite/experimental/filesystem/path/concat/strings.cc: Likewise.
1601 * testsuite/experimental/filesystem/path/construct/copy.cc: Likewise.
1602 * testsuite/experimental/filesystem/path/construct/default.cc:
1604 * testsuite/experimental/filesystem/path/construct/locale.cc: Likewise.
1605 * testsuite/experimental/filesystem/path/construct/range.cc: Likewise.
1606 * testsuite/experimental/filesystem/path/construct/string_view.cc:
1608 * testsuite/experimental/filesystem/path/decompose/extension.cc:
1610 * testsuite/experimental/filesystem/path/decompose/filename.cc:
1612 * testsuite/experimental/filesystem/path/decompose/parent_path.cc:
1614 * testsuite/experimental/filesystem/path/decompose/relative_path.cc:
1616 * testsuite/experimental/filesystem/path/decompose/root_directory.cc:
1618 * testsuite/experimental/filesystem/path/decompose/root_name.cc:
1620 * testsuite/experimental/filesystem/path/decompose/root_path.cc:
1622 * testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
1623 * testsuite/experimental/filesystem/path/generic/generic_string.cc:
1625 * testsuite/experimental/filesystem/path/itr/traversal.cc: Likewise.
1626 * testsuite/experimental/filesystem/path/modifiers/clear.cc: Likewise.
1627 * testsuite/experimental/filesystem/path/modifiers/make_preferred.cc:
1629 * testsuite/experimental/filesystem/path/modifiers/remove_filename.cc:
1631 * testsuite/experimental/filesystem/path/modifiers/replace_extension.cc:
1633 * testsuite/experimental/filesystem/path/modifiers/replace_filename.cc:
1635 * testsuite/experimental/filesystem/path/modifiers/swap.cc: Likewise.
1636 * testsuite/experimental/filesystem/path/native/string.cc: Likewise.
1637 * testsuite/experimental/filesystem/path/nonmember/hash_value.cc:
1639 * testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
1640 * testsuite/experimental/filesystem/path/query/has_extension.cc:
1642 * testsuite/experimental/filesystem/path/query/has_filename.cc:
1644 * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
1646 * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
1648 * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
1650 * testsuite/experimental/filesystem/path/query/has_root_name.cc:
1652 * testsuite/experimental/filesystem/path/query/has_root_path.cc:
1654 * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
1655 * testsuite/experimental/filesystem/path/query/is_relative.cc:
1658 2018-04-13 Jonathan Wakely <jwakely@redhat.com>
1660 * src/c++11/Makefile.am: Fix sed command.
1661 * src/c++11/Makefile.in: Regenerate.
1663 * src/c++11/Makefile.am: Rewrite sed rule to be less fragile and to
1664 handle mangled names starting with double underscores on darwin.
1665 * src/c++11/Makefile.in: Regenerate.
1667 2018-04-12 Jonathan Wakely <jwakely@redhat.com>
1669 * src/c++11/Makefile.am: Fix comment.
1670 * src/c++11/Makefile.in: Regenerate.
1671 * src/c++11/cxx11-ios_failure.cc: Fix comment.
1672 * src/c++98/ios_failure.cc: Likewise.
1674 * src/c++11/ios.cc: Remove redundant macro definition.
1676 2018-04-11 Jonathan Wakely <jwakely@redhat.com>
1678 * doc/xml/manual/abi.xml: Document header locations in recent
1680 * doc/xml/manual/evolution.xml: Add API changes since GCC 5.
1681 * doc/xml/manual/spine.xml: Update copyright years.
1682 * doc/xml/manual/strings.xml: Adjust tolower example to avoid
1683 undefined behaviour.
1684 * doc/xml/manual/test.xml: Update outdated notes on VERIFY in tests.
1685 * doc/html/*: Regenerate.
1687 2018-04-10 Jonathan Wakely <jwakely@redhat.com>
1689 * doc/xml/faq.xml: Update links to archived copy of SGI STL docs.
1690 * doc/xml/manual/backwards_compatibility.xml: Likewise.
1691 * doc/xml/manual/containers.xml: Likewise.
1692 * doc/xml/manual/debug_mode.xml: Likewise.
1693 * doc/xml/manual/extensions.xml: Likewise.
1694 * doc/xml/manual/policy_data_structures_biblio.xml: Likewise.
1695 * doc/xml/manual/using.xml: Likewise.
1696 * doc/xml/manual/utilities.xml: Likewise.
1699 * src/c++11/Makefile.am [ENABLE_DUAL_ABI]: Add special rules for
1700 cxx11-ios_failure.cc to rewrite type info for __ios_failure.
1701 * src/c++11/Makefile.in: Regenerate.
1702 * src/c++11/cxx11-ios_failure.cc (__ios_failure, __iosfail_type_info):
1704 [_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
1705 * src/c++11/ios.cc (__throw_ios_failure): Remove definition.
1706 * src/c++98/ios_failure.cc (__construct_ios_failure)
1707 (__destroy_ios_failure, is_ios_failure_handler): New functions.
1708 [!_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
1709 * testsuite/27_io/ios_base/failure/dual_abi.cc: New.
1710 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Revert changes to
1711 handler types, to always catch std::ios_base::failure.
1712 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
1713 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
1714 exceptions_failbit.cc: Likewise.
1715 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
1716 exceptions_failbit.cc: Likewise.
1717 * testsuite/27_io/basic_istream/extractors_other/char/
1718 exceptions_null.cc: Likewise.
1719 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
1720 exceptions_null.cc: Likewise.
1721 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
1722 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
1723 * testsuite/27_io/basic_ostream/inserters_other/char/
1724 exceptions_null.cc: Likewise.
1725 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
1726 exceptions_null.cc: Likewise.
1727 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
1729 2018-04-05 Jonathan Wakely <jwakely@redhat.com>
1731 * include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Qualify
1732 __get calls to avoid ADL and avoid ambiguity due to Clang bug.
1734 2018-04-03 Jonathan Wakely <jwakely@redhat.com>
1737 * include/std/variant (_Move_assign_base::operator=): Fix incorrect
1739 * testsuite/20_util/variant/85183.cc: New.
1741 2018-03-26 Jonathan Wakely <jwakely@redhat.com>
1743 * include/std/variant (__get): Qualify calls to avoid ADL.
1744 (__select_index): Adjust whitespace.
1745 (variant): Add using-declaration to workaround Clang bug.
1747 2018-03-22 Jonathan Wakely <jwakely@redhat.com>
1750 * include/bits/stl_function.h (greater::__not_overloaded)
1751 (less::__not_overloaded, greater_equal::__not_overloaded)
1752 (less_equal::__not_overloaded): Fix ambiguous specializations.
1753 * testsuite/20_util/function_objects/comparisons_pointer.cc: Add
1754 tests for type with overloaded operators.
1756 2018-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1759 * testsuite/experimental/memory_resource/resource_adaptor.cc:
1760 xfail execution on 32-bit Solaris/x86.
1762 2018-03-21 Jonathan Wakely <jwakely@redhat.com>
1764 * testsuite/20_util/function_objects/comparisons_pointer.cc: Use
1765 VERIFY instead of assert.
1766 * testsuite/20_util/hash/84998.cc: New test.
1767 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: New
1768 copy of test adjusted for Debug Mode.
1769 * testsuite/23_containers/vector/cons/destructible_neg.cc: Do not run
1772 2018-03-20 François Dumont <fdumont@gcc.gnu.org>
1775 * include/bits/stl_bvector.h: Fix std::hash friend declaration.
1776 * include/std/bitset: Likewise.
1777 * include/bits/stl_map.h (std::map<>): Fix _Rb_tree_merge_helper friend
1779 * include/bits/stl_multimap.h (std::multimap<>): Likewise.
1780 * include/bits/stl_multiset.h (std::multiset<>): Likewise.
1781 * include/bits/stl_set.h (std::set<>): Likewise.
1782 * include/bits/unordered_map.h (std::unordered_map<>): Fix
1783 _Hash_merge_helper friend declaration.
1784 (std::unordered_multimap<>): Likewise.
1785 * include/bits/unordered_set.h (std::unordered_set<>): Likewise.
1786 (std::unordered_multiset<>): Likewise.
1788 2018-03-19 Gerald Pfeifer <gerald@pfeifer.com>
1790 * doc/xml/api.xml: www.fsf.org has moved to https. Also omit
1791 trailing slash for domain level link.
1792 * doc/xml/faq.xml: Ditto.
1793 * doc/xml/manual/appendix_free.xml (software): Ditto.
1794 * doc/xml/manual/intro.xml: Ditto.
1795 * doc/xml/manual/spine.xml: Ditto.
1796 * doc/xml/spine.xml: Ditto.
1798 2018-03-19 Gerald Pfeifer <gerald@pfeifer.com>
1800 * doc/xml/manual/documentation_hacking.xml: Adjust link to
1803 2018-03-17 Jonathan Wakely <jwakely@redhat.com>
1805 * testsuite/20_util/function_objects/comparisons_pointer.cc: Adjust
1806 to compile as C++98.
1808 2018-03-14 Jonathan Wakely <jwakely@redhat.com>
1811 * include/bits/stl_function.h (greater<_Tp*>, less<_Tp*>)
1812 (greater_equal<_Tp*>, less_equal<_Tp>*): Add partial specializations
1813 to ensure total order for pointers.
1814 (greater<void>, less<void>, greater_equal<void>, less_equal<void>):
1815 Add operator() overloads for pointer arguments and make generic
1816 overloads dispatch to new _S_cmp functions when comparisons would
1817 use built-in operators for pointers.
1818 * testsuite/20_util/function_objects/comparisons_pointer.cc: New.
1820 2018-03-12 Jonathan Wakely <jwakely@redhat.com>
1824 * crossconfig.m4: Check for aligned_alloc etc. on freebsd and mingw32.
1825 * configure: Regenerate.
1826 * include/c_global/cstdlib [_GLIBCXX_HAVE_ALIGNED_ALLOC]
1827 (aligned_alloc): Add using-declaration.
1828 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: New test.
1830 2018-03-09 François Dumont <fdumont@gcc.gnu.org>
1832 * python/libstdcxx/v6/printers.py (build_libstdcxx_dictionary):
1833 Fix std::_Fwd_list_iterator and std::_Fwd_list_const_iterator printers
1836 2018-03-09 Jonathan Wakely <jwakely@redhat.com>
1839 * include/std/variant (get<_Tp, _Types...>, get_if<_Tp, _Types...>):
1840 Qualify calls to get<_Np, Types...> and get_if<_Np, _Types...>.
1842 src/filesystem/ops.cc (create_dir): Pass error_code to is_directory.
1843 src/filesystem/std-ops.cc (create_dir): Likewise.
1845 2018-03-08 François Dumont <fdumont@gcc.gnu.org>
1847 * python/libstdcxx/v6/printers.py (NodeIteratorPrinter): New.
1848 (StdListIteratorPrinter): Inherit from latter.
1849 (StdFwdListIteratorPrinter): New, inherit from latter.
1850 (StdDebugIteratorPrinter.to_string): Use non-debug iterator printer
1851 when iterator has no associated container.
1852 (build_libstdcxx_dictionary): Add __gnu_cxx::_Fwd_list_iterator and
1853 __gnu_cxx::_Fwd_list_const_iterator printers. Remove __norm namespace
1855 * testsuite/libstdc++-prettyprinters/debug.cc: Adapt.
1856 * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Adapt.
1858 2018-03-06 Ville Voutilainen <ville.voutilainen@gmail.com>
1861 * include/std/optional (_Optional_payload): Split into multiple
1862 specializations that can handle different cases of trivial or
1863 non-trivial assignment operators.
1864 * testsuite/20_util/optional/84601.cc: New.
1865 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
1867 2018-03-02 Jonathan Wakely <jwakely@redhat.com>
1870 * include/bits/parse_numbers.h (_Number_help): Add partial
1871 specialization to handle digit separators. Adjust partial
1872 specialization for recursion temrination to require _Pow == 1ULL.
1873 * testsuite/20_util/duration/literals/84671.cc: New
1875 2018-02-27 Ville Voutilainen <ville.voutilainen@gmail.com>
1877 Implement the missing bits of LWG 2769
1878 * include/std/any (any_cast(const any&)): Add static_assert.
1879 (any_cast(any&)): Likewise.
1880 (any_cast(any&&)): Likewise, and remove the handling
1881 for copyable-but-not-movable type.
1882 * testsuite/20_util/any/misc/any_cast.cc: Adjust.
1883 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise, and
1886 2018-02-23 Jonathan Wakely <jwakely@redhat.com>
1889 * include/std/thread (thread::__make_invoker): Construct tuple
1890 directly instead of using make_tuple.
1891 * testsuite/30_threads/async/84532.cc: New.
1892 * testsuite/30_threads/thread/84532.cc: New.
1894 2018-02-20 François Dumont <fdumont@gcc.gnu.org>
1896 * include/ext/aligned_buffer.h [_GLIBCXX_INLINE_VERSION]
1897 (template<> __aligned_buffer): Define as __aligned_membuf alias.
1899 2018-02-19 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
1902 * configure: Regenerate.
1904 2018-02-15 Jonathan Wakely <jwakely@redhat.com>
1907 * configure.ac (INCLUDE_DIR_NOTPARALLEL): Define.
1908 * configure: Regenerate.
1909 * include/Makefile.am (INCLUDE_DIR_NOTPARALLEL): Add .NOTPARALLEL when
1911 * include/Makefile.in: Regenerate.
1913 2018-01-29 Jonathan Wakely <jwakely@redhat.com>
1916 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
1917 Add -ffloat-store to options for m68k and ia32.
1919 * doc/xml/faq.xml: Update copyright years.
1920 * doc/html/*: Regenerate.
1923 * include/std/any (any::__do_emplace): Only set _M_manager after
1924 constructing the contained object.
1925 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust dg-error line.
1926 * testsuite/20_util/any/modifiers/83658.cc: New test.
1928 2018-01-25 Jonathan Wakely <jwakely@redhat.com>
1931 * include/c_global/cstddef (__byte_operand): Define primary template.
1932 * testsuite/18_support/byte/81076.cc: New test.
1934 2018-01-19 Christophe Lyon <christophe.lyon@linaro.org>
1936 * testsuite/ext/special_functions/airy_ai/check_nan.cc: Fix
1937 dg-options and dg-add-options order.
1938 * testsuite/ext/special_functions/airy_bi/check_nan.cc: Likewise.
1939 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc:
1941 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
1942 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
1944 * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
1946 * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
1947 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc:
1949 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc:
1951 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc:
1953 * testsuite/special_functions/06_comp_ellint_3/pr66689.cc:
1955 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc:
1957 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc:
1959 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc:
1961 * testsuite/special_functions/10_cyl_neumann/check_nan.cc:
1963 * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
1964 * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
1965 * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
1966 * testsuite/special_functions/13_ellint_3/pr66689.cc: Likewise.
1967 * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
1968 * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
1969 * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
1970 * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
1971 * testsuite/special_functions/18_riemann_zeta/check_nan.cc:
1973 * testsuite/special_functions/19_sph_bessel/check_nan.cc:
1975 * testsuite/special_functions/20_sph_legendre/check_nan.cc:
1977 * testsuite/special_functions/21_sph_neumann/check_nan.cc:
1980 2018-01-18 Uros Bizjak <ubizjak@gmail.com>
1982 * configure.ac (AC_CHECK_HEADERS): Add linux/types.h. Conditionally
1983 include linux/types.h when checking linux/random.h header.
1984 * config.h.in: Regenerate.
1986 * src/c++11/random.cc: Conditionally include linux/types.h.
1988 2018-01-16 Eric Botcazou <ebotcazou@adacore.com>
1990 * testsuite/17_intro/names.cc: Undefine 'y' on SPARC/Linux.
1992 2018-01-16 Jonathan Wakely <jwakely@redhat.com>
1995 * config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace std::c[a-g]* wildcard
1996 pattern with exact match for std::cerr.
1998 2018-01-15 Jonathan Wakely <jwakely@redhat.com>
2001 * include/bits/random.h (chi_squared_distribution::param): Update
2002 gamma distribution parameter.
2003 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc: New
2007 * include/std/type_traits (has_unique_object_representations_v): Add
2009 * testsuite/20_util/has_unique_object_representations/value.cc: Check
2012 2018-01-15 Ville Voutilainen <ville.voutilainen@gmail.com>
2014 Make optional conditionally
2015 trivially_{copy,move}_{constructible,assignable}
2016 * include/std/optional (_Optional_payload): Fix the comment in
2017 the class head and turn into a primary and one specialization.
2018 (_Optional_payload::_M_engaged): Strike the NSDMI.
2019 (_Optional_payload<_Tp, false>::operator=(const _Optional_payload&)):
2021 (_Optional_payload<_Tp, false>::operator=(_Optional_payload&&)):
2023 (_Optional_payload<_Tp, false>::_M_get): Likewise.
2024 (_Optional_payload<_Tp, false>::_M_reset): Likewise.
2025 (_Optional_base_impl): Likewise.
2026 (_Optional_base): Turn into a primary and three specializations.
2027 (optional(nullopt)): Change the base init.
2028 * testsuite/20_util/optional/assignment/8.cc: New.
2029 * testsuite/20_util/optional/cons/trivial.cc: Likewise.
2030 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
2032 2018-01-15 Jonathan Wakely <jwakely@redhat.com>
2035 * python/libstdcxx/v6/printers.py (strip_inline_namespaces): New.
2036 (get_template_arg_list): New.
2037 (StdVariantPrinter._template_args): Remove, use get_template_arg_list
2039 (TemplateTypePrinter): Rewrite to work with gdb.Type objects instead
2040 of strings and regular expressions.
2041 (add_one_template_type_printer): Adapt to new TemplateTypePrinter.
2042 (FilteringTypePrinter): Add docstring. Match using startswith. Use
2043 strip_inline_namespaces instead of strip_versioned_namespace.
2044 (add_one_type_printer): Prepend namespace to match argument.
2045 (register_type_printers): Add type printers for char16_t and char32_t
2046 string types and for types using cxx11 ABI. Update calls to
2047 add_one_template_type_printer to provide default argument dicts.
2048 * testsuite/libstdc++-prettyprinters/80276.cc: New test.
2049 * testsuite/libstdc++-prettyprinters/whatis.cc: Remove tests for
2050 basic_string<unsigned char> and basic_string<signed char>.
2051 * testsuite/libstdc++-prettyprinters/whatis2.cc: Duplicate whatis.cc
2052 to test local variables, without overriding _GLIBCXX_USE_CXX11_ABI.
2054 2018-01-14 Andreas Schwab <schwab@linux-m68k.org>
2057 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
2059 2018-01-13 Tim Shen <timshen@google.com>
2062 * include/bits/regex.tcc (regex_replace): Fix escaping in sed.
2063 * testsuite/28_regex/algorithms/regex_replace/char/pr83601.cc: Tests.
2064 * testsuite/28_regex/algorithms/regex_replace/wchar_t/pr83601.cc: Tests.
2066 2018-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2069 * testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc:
2070 Remove dg-xfail-run-if.
2072 2018-01-10 François Dumont <fdumont@gcc.gnu.org>
2074 * include/bits/forward_list.h
2075 (_Fwd_list_node_base(_Fwd_list_node_base&&)): New.
2076 (_Fwd_list_node_base& operator=(_Fwd_list_node_base&&)): New.
2077 (_Fwd_list_node_base(const _Fwd_list_node_base&)): Explicit delete.
2078 (_Fwd_list_node_base& operator=(const _Fwd_list_node_base&)): Likewise.
2079 (_Fwd_list_impl()): Add noexcept qualification.
2080 (_Fwd_list_impl(const _Node_alloc_type&)): Delete.
2081 (_Fwd_list_impl(_Fwd_list_impl&&)): New, default.
2082 (_Fwd_list_impl(_Fwd_list_impl&&, _Node_alloc_type&&)): New.
2083 (_Fwd_list_base()): Default.
2084 (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&, true_type)): New.
2085 (_Fwd_list_base(_Fwd_list_base&&)): Default.
2086 (forward_list<>()): Default.
2087 (forward_list<>(forward_list&&)): Default.
2088 (forward_list(forward_list&&, _Node_alloc_type&&, false_type)): New.
2089 (forward_list(forward_list&&, _Node_alloc_type&&, true_type)): New.
2090 (forward_list(forward_list&&, const _Alloc&)): Adapt to use latters.
2091 * include/bits/forward_list.tcc
2092 (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&)): Adapt to use
2093 _M_impl._M_head move assignment.
2094 (forward_list<>::merge(forward_list<>&&, _Comp)): Likewise.
2095 * testsuite/23_containers/forward_list/allocator/default_init.cc: New.
2097 2018-01-09 Jonathan Wakely <jwakely@redhat.com>
2100 * python/libstdcxx/v6/printers.py (SharedPointerPrinter)
2101 (UniquePointerPrinter): Print correct template argument, not type of
2103 (TemplateTypePrinter._recognizer.recognize): Handle failure to lookup
2105 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test unique_ptr of
2107 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test shared_ptr and
2108 weak_ptr of array types.
2110 2018-01-09 François Dumont <fdumont@gcc.gnu.org>
2113 * include/bits/hashtable_policy.h
2114 (__distance_fwd(_Iterator, _Iterator, input_iterator_tag)): Return 1 if
2116 (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, true_type)): New.
2117 (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, false_type)):
2118 Add false_type parameter.
2119 (_Insert_base::insert): Adapt.
2120 * include/bits/hashtable.h (_Hashtable::operator=(initializzr_list<>)):
2122 (_Hashtable::_M_insert(_Arg&&, const _NodeGen&, true_type, size_t)):
2123 Add __n_elt parameter, defaulted to 1.
2124 (_Hashtable::_M_insert_unique_node): Likewise. Use it to call rehash
2125 policy _M_need_rehash.
2126 (_Hashtable::_M_merge_unique): Pass target number of elements to add to
2127 produce only 1 rehash if necessary.
2128 * testsuite/23_containers/unordered_map/insert/83709.cc: New.
2129 * testsuite/23_containers/unordered_set/insert/83709.cc: New.
2131 2018-01-09 Juraj Oršulić <juraj.orsulic@fer.hr>
2132 Jonathan Wakely <jwakely@redhat.com>
2134 PR libstdc++/59253 (partial)
2135 * python/libstdcxx/v6/printers.py (SmartPtrIterator): Common iterator
2136 type for pointer stored by shared_ptr, weak_ptr and unique_ptr.
2137 (SharedPointerPrinter, UniquePointerPrinter): Treat stored values as
2139 * testsuite/libstdc++-prettyprinters/cxx11.cc: Update expected output
2140 of unique_ptr printer.
2141 * testsuite/libstdc++-prettyprinters/shared_ptr.cc: Update expected
2142 output of shared_ptr printer.
2144 2018-01-05 Jonathan Wakely <jwakely@redhat.com>
2147 * src/filesystem/ops.cc (remove(const path&, error_code&)): Remove
2148 unnecessary symlink_status call.
2149 (remove_all(const path&, error_code&)): Use filesystem::remove.
2150 * src/filesystem/std-ops.cc: Likewise.
2153 * src/filesystem/std-ops.cc (do_copy_file): Use non-null offset with
2157 * src/filesystem/ops.cc (remove(const path&, error_code&)): Do not
2158 report an error for ENOENT.
2159 (remove_all(const path&)): Fix type of result variable.
2160 (remove_all(const path&, error_code&)): Use non-throwing increment
2161 for directory iterator. Call POSIX remove directly to avoid redundant
2162 calls to symlink_status. Do not report errors for ENOENT.
2163 * src/filesystem/std-ops.cc: Likewise.
2164 * testsuite/27_io/filesystem/operations/remove_all.cc: Test throwing
2166 * testsuite/experimental/filesystem/operations/remove_all.cc:
2169 2018-01-04 Jonathan Wakely <jwakely@redhat.com>
2172 * src/filesystem/ops.cc (remove(const path&, error_code&))): Remove
2173 redundant call to ec.clear().
2174 (remove_all(const path&, error_code&))): Do not return an error for
2176 * src/filesystem/std-ops.cc: Likewise.
2177 * testsuite/27_io/filesystem/operations/remove.cc: New test.
2178 * testsuite/27_io/filesystem/operations/remove_all.cc: Fix expected
2179 results for non-existent paths.
2180 * testsuite/experimental/filesystem/operations/remove.cc: New test.
2181 * testsuite/experimental/filesystem/operations/remove_all.cc: Fix
2182 expected results for non-existent paths.
2184 * include/bits/fs_ops.h (exists(const path&, error_code&))): Only
2185 check status_known once.
2186 * include/experimental/bits/fs_ops.h: Likewise.
2189 * include/std/functional (__is_byte_like): New trait.
2190 (__is_std_equal_to): Remove.
2191 (__boyer_moore_base_t): Use __is_byte_like instead of
2193 * include/experimental/functional (__is_std_equal_to): Remove.
2194 (__boyer_moore_base_t): Use __is_byte_like instead of
2196 * testsuite/20_util/function_objects/83607.cc: New test.
2198 2018-01-03 Ville Voutilainen <ville.voutilainen@gmail.com>
2200 Protect optional's deduction guide with the feature macro
2201 * include/std/optional: Use the feature macro.
2203 2018-01-03 Jakub Jelinek <jakub@redhat.com>
2205 Update copyright years.
2207 Copyright (C) 2018 Free Software Foundation, Inc.
2209 Copying and distribution of this file, with or without modification,
2210 are permitted in any medium without royalty provided the copyright
2211 notice and this notice are preserved.