1 2018-05-27 François Dumont <fdumont@gcc.gnu.org>
3 * include/bits/stl_tree.h (_Rb_tree_impl(_Node_allocator&&)): New.
4 (_Rb_tree(const allocator_type&)): Use latter.
5 * include/bits/stl_map.h (map(const allocator_type&)): Likewise.
6 (map(initializer_list<value_type>, const allocator_type&)): Likewise.
7 (map(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
8 * include/bits/stl_multimap.h
9 (multimap(const allocator_type&)): Likewise.
10 (multimap(initializer_list<value_type>, const allocator_type&)):
12 (multimap(_InputIterator, _InputIterator, const allocator_type&)):
14 * include/bits/stl_set.h (set(const allocator_type&)): Likewise.
15 (set(initializer_list<value_type>, const allocator_type&)): Likewise.
16 (set(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
17 * include/bits/stl_multiset.h
18 (multiset(const allocator_type&)): Likewise.
19 (multiset(initializer_list<value_type>, const allocator_type&)):
21 (multiset(_InputIterator, _InputIterator, const allocator_type&)):
24 2018-05-25 François Dumont <fdumont@gcc.gnu.org>
27 * src/c++11/debug.cc: Remove backtrace usage.
29 2018-05-24 Maya Rashish <coypu@sdf.org>
32 * crossconfig.m4: Test for aligned_alloc on netbsd.
33 * configure: Regenerate.
35 2018-05-24 Jonathan Wakely <jwakely@redhat.com>
39 * include/bits/atomic_base.h (__atomic_base::value_type)
40 (__atomic_base::difference_type): Add new typedefs.
41 * include/std/atomic (atomic<bool>::value_type, atomic<T>::value_type)
42 (atomic<T*>::value_type, atomic<T*>::difference_type): Likewise.
43 (atomic<T*>::operator++, atomic<T*>::operator--)
44 (atomic<T*>::operator+=, atomic<T*>::operator-=)
45 (atomic<T*>::fetch_add, atomic<T*>::fetch_sub): Add static assertion
46 to enforce C++17 requirement on pointer arithmetic.
47 (__atomic_val_t, __atomic_diff_t): New alias templates.
48 (atomic_init, atomic_store_explicit, atomic_exchange_explicit)
49 (atomic_compare_exchange_weak_explicit)
50 (atomic_compare_exchange_strong_explicit, atomic_store)
51 (atomic_exchange, atomic_compare_exchange_weak)
52 (atomic_compare_exchange_strong): Use __atomic_val_t to make
53 scalar parameters be non-deduced contexts.
54 (atomic_fetch_add_explicit, atomic_fetch_sub_explicit)
55 (atomic_fetch_add, atomic_fetch_sub): Change first parameter to be
56 atomic instead of __atomic_base, and use __atomic_diff_t for scalar
58 (atomic_fetch_and_explicit, atomic_fetch_or_explicit)
59 (atomic_fetch_xor_explicit, atomic_fetch_and, atomic_fetch_or)
60 (atomic_fetch_xor): Use __atomic_val_t for scalar parameters.
61 (atomic_fetch_add_explicit, atomic_fetch_sub_explicit)
62 (atomic_fetch_add, atomic_fetch_sub): Remove overloads for atomic
64 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
65 * testsuite/29_atomics/atomic/69769.cc: New test.
66 * testsuite/29_atomics/atomic/nonmembers.cc: New test.
67 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
68 Disable test for C++17 and later.
69 * testsuite/29_atomics/atomic/requirements/typedefs.cc: New test.
70 * testsuite/29_atomics/atomic_integral/nonmembers.cc: New test.
71 * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc: New
74 2018-05-23 Jonathan Wakely <jwakely@redhat.com>
76 * include/bits/fs_path.h (path::__is_encoded_char): Change from class
77 template to alias template.
78 (path::__value_type_is_char): Use remove_const_t.
79 (path:_S_string_from_iter): New helper function.
80 (path::_S_convert(InputIter, __null_terminated))
81 (path::_S_convert_loc(InputIter, __null_terminated, const locale&)):
82 Use _S_string_from_iter.
83 (path::string<_CharT, _Allocator>(const _Allocator&)): Allow sharing
85 * include/experimental/bits/fs_path.h (path::__is_encoded_char):
86 Change from class template to alias template.
87 (path::__value_type_is_char): Use remove_const.
88 (path:_S_string_from_iter): New helper function.
89 (path::_S_convert(InputIter, __null_terminated))
90 (path::_S_convert_loc(InputIter, __null_terminated, const locale&)):
91 Use _S_string_from_iter.
92 * testsuite/27_io/filesystem/path/append/source.cc: Test appending
94 * testsuite/27_io/filesystem/path/concat/strings.cc: Check for exact
95 string equality, not path equivalence.
96 * testsuite/27_io/filesystem/path/construct/format.cc: Check
97 construction from std::string and std::wstring and input iterators.
98 * testsuite/27_io/filesystem/path/construct/locale.cc: Check
99 construction from iterators.
100 * testsuite/experimental/filesystem/path/concat/strings.cc: Check for
101 exact string equality, not path equivalence.
102 * testsuite/experimental/filesystem/path/construct/locale.cc: Check
103 construction from iterators.
105 * include/bits/fs_path.h (path::_M_type): Change default member
106 initializer to _Filename.
107 (path::begin): Create past-the-end iterator for empty path.
108 * src/filesystem/std-path.cc (path::remove_filename()): Remove
110 (path::has_relative_path()): Return false for empty filenames.
111 (path::_M_split_cmpts): Set _M_type to _Filename for empty paths.
112 Fix offset of empty final component.
113 * testsuite/27_io/filesystem/path/itr/components.cc: New.
114 * testsuite/27_io/filesystem/path/itr/traversal.cc: Add new inputs.
116 2018-05-21 Jonathan Wakely <jwakely@redhat.com>
118 Add support for opening file streams from wide character strings.
119 * config/io/basic_file_stdio.cc [_GLIBCXX_HAVE__WFOPEN]
120 (__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
122 * config/io/basic_file_stdio.h [_GLIBCXX_HAVE__WFOPEN]
123 (__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
124 Declare new overload.
125 * configure.ac: Check for _wfopen.
126 * crossconfig.m4: Likewise.
127 * configure: Regenerate.
128 * config.h.in: Regenerate.
129 * include/bits/fstream.tcc [_GLIBCXX_HAVE__WFOPEN]
130 (basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
132 * include/std/fstream [_GLIBCXX_HAVE__WFOPEN]
133 (basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
134 Declare new overload.
135 [_GLIBCXX_HAVE__WFOPEN]
136 (basic_ifstream<C,T>::basic_ifstream(const wchar_t*, openmode))
137 (basic_ifstream<C,T>::basic_open(const wchar_t*, openmode))
138 (basic_ofstream<C,T>::basic_ifstream(const wchar_t*, openmode))
139 (basic_ofstream<C,T>::basic_open(const wchar_t*, openmode))
140 (basic_fstream<C,T>::basic_ifstream(const wchar_t*, openmode))
141 (basic_fstream<C,T>::basic_open(const wchar_t*, openmode)): Define
143 * testsuite/27_io/basic_filebuf/open/wchar_t/1.cc: New.
144 * testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc: New.
145 * testsuite/27_io/basic_ifstream/open/wchar_t/1.cc: New.
146 * testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc: New.
147 * testsuite/27_io/basic_ofstream/open/wchar_t/1.cc: New.
148 * testsuite/27_io/basic_fstream/cons/wchar_t/1.cc: New.
149 * testsuite/27_io/basic_fstream/open/wchar_t/1.cc: New.
151 2018-05-21 François Dumont <fdumont@gcc.gnu.org>
154 * include/bits/stl_tree.h
155 (_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): Fix noexcept
158 2018-05-21 Jonathan Wakely <jwakely@redhat.com>
160 * src/filesystem/std-ops.cc (absolute): Report an error for empty
162 (weakly_canonical(const path&)): Do not call canonical on empty path.
163 (weakly_canonical(const path&, error_code&)): Likewise.
164 * testsuite/27_io/filesystem/operations/absolute.cc: Check for errors.
167 * testsuite/experimental/filesystem/path/preferred_separator.cc: Add
168 dg-require-filesystem-ts.
171 * src/c++11/cow-stdexcept.cc (logic_error, runtime_error): Explicitly
172 initialize base class to avoid warnings.
174 2018-05-19 Jonathan Wakely <jwakely@redhat.com>
176 * src/c++11/codecvt.cc (__codecvt_utf8_base<wchar_t>::do_in)
177 [__SIZEOF_WCHAR_T__==2 && __BYTE_ORDER__!=__ORDER_BIG_ENDIAN__]: Set
178 little_endian element in bitmask.
179 * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: Run all tests.
180 * testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc: New.
182 2018-05-18 François Dumont <fdumont@gcc.gnu.org>
184 * include/bits/stl_tree.h
185 (_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): New.
186 (_Rb_tree(_Rb_tree&&, _Node_allocator&&, true_type)): New, use latter.
187 (_Rb_tree(_Rb_tree&&, _Node_allocator&&, false_type)): New.
188 (_Rb_tree(_Rb_tree&&, _Node_allocator&&)): Adapt, use latters.
189 * include/debug/map.h
190 (map(map&&, const_allocator_type&)): Add noexcept qualitication.
191 * include/debug/multimap.h
192 (multimap(multimap&&, const_allocator_type&)): Likewise.
193 * include/debug/set.h
194 (set(set&&, const_allocator_type&)): Likewise.
195 * include/debug/multiset.h
196 (multiset(multiset&&, const_allocator_type&)): Likewise.
197 * testsuite/23_containers/map/cons/noexcept_default_construct.cc:
199 * testsuite/23_containers/map/cons/noexcept_move_construct.cc:
201 * testsuite/23_containers/multimap/cons/noexcept_default_construct.cc:
203 * testsuite/23_containers/multimap/cons/noexcept_move_construct.cc:
205 * testsuite/23_containers/multiset/cons/noexcept_default_construct.cc:
207 * testsuite/23_containers/multiset/cons/noexcept_move_construct.cc:
209 * testsuite/23_containers/set/cons/noexcept_default_construct.cc:
211 * testsuite/23_containers/set/cons/noexcept_move_construct.cc:
214 2018-05-18 Jason Merrill <jason@redhat.com>
216 * include/bits/stl_deque.h (_Deque_iterator): Constrain constructor
217 for conversion to const_iterator. Add defaulted copy ops.
218 * libsupc++/new (bad_alloc): Add defaulted copy ops.
219 * libsupc++/exception.h (exception): Add defaulted copy ops.
220 * include/std/system_error (system_error): Add defaulted copy ops.
221 * include/std/stdexcept (domain_error, invalid_argument)
222 (length_error, out_of_range, range_error, overflow_error)
223 (underflow_error): Add defaulted copy ops.
224 * include/bits/stl_iterator.h (reverse_iterator): Add defaulted
226 * include/bits/allocator.h (allocator): Add defaulted copy assignment.
227 * include/ext/throw_allocator.h (condition_base): Add defaulted
228 default and copy ctor and copy assignment.
230 2018-05-18 Jonathan Wakely <jwakely@redhat.com>
233 * include/bits/regex.h [__cplusplus < 201703L] (basic_regex::icase)
234 (basic_regex::nosubs, basic_regex::optimize, basic_regex::collate)
235 (basic_regex::ECMAScript, basic_regex::basic, basic_regex::extended)
236 (basic_regex::awk, basic_regex::grep, basic_regex::egrep): Add
238 * include/bits/regex_automaton.h (_NFA::_M_insert_state): Adjust
240 * include/bits/regex_compiler.tcc (__INSERT_REGEX_MATCHER): Add
241 braces around body of do-while.
242 * testsuite/28_regex/basic_regex/85098.cc: New
244 2018-05-17 Jonathan Wakely <jwakely@redhat.com>
247 * src/filesystem/path.cc (path::preferred_separator): Add used
249 * testsuite/experimental/filesystem/path/preferred_separator.cc: New.
252 * libsupc++/cxxabi_init_exception.h (__cxa_free_exception): Declare.
253 * libsupc++/exception_ptr.h (make_exception_ptr) [__cpp_exceptions]:
254 Refactor to separate non-throwing and throwing implementations.
255 [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]: Deallocate the memory
256 if constructing the object throws.
258 2018-05-15 Jonathan Wakely <jwakely@redhat.com>
261 * include/bits/random.h (__detail::__is_seed_seq): New SFINAE helper.
262 (linear_congruential_engine, mersenne_twister_engine)
263 (subtract_with_carry_engine, discard_block_engine)
264 (independent_bits_engine, shuffle_order_engine): Use __is_seed_seq to
265 constrain function templates taking seed sequences.
266 * include/bits/random.tcc (linear_congruential_engine::seed(_Sseq&))
267 (mersenne_twister_engine::seed(_Sseq&))
268 (subtract_with_carry_engine::seed(_Sseq&)): Change return types to
270 * include/ext/random (simd_fast_mersenne_twister_engine): Use
271 __is_seed_seq to constrain function templates taking seed sequences.
272 * include/ext/random.tcc (simd_fast_mersenne_twister_engine::seed):
273 Change return type to match declaration.
274 * testsuite/26_numerics/random/discard_block_engine/cons/seed_seq2.cc:
276 * testsuite/26_numerics/random/independent_bits_engine/cons/
278 * testsuite/26_numerics/random/linear_congruential_engine/cons/
280 * testsuite/26_numerics/random/mersenne_twister_engine/cons/
282 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lineno.
283 * testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq2.cc:
285 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/
287 * testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/
291 * include/bits/fs_path.h (path::is_absolute()): Use same definition
292 for all operating systems.
293 * include/experimental/bits/fs_path.h (path::is_absolute()): Likewise.
294 * testsuite/27_io/filesystem/path/query/is_absolute.cc: New.
295 * testsuite/27_io/filesystem/path/query/is_relative.cc: Fix comment.
296 * testsuite/experimental/filesystem/path/query/is_absolute.cc: New.
298 * testsuite/27_io/filesystem/path/decompose/extension.cc: Remove
299 unused <vector> header.
300 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
301 * testsuite/27_io/filesystem/path/query/has_extension.cc: Likewise.
302 * testsuite/27_io/filesystem/path/query/has_filename.cc: Likewise.
303 * testsuite/27_io/filesystem/path/query/has_parent_path.cc: Likewise.
304 * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
306 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
308 * testsuite/27_io/filesystem/path/query/has_root_name.cc: Likewise.
309 * testsuite/27_io/filesystem/path/query/has_root_path.cc: Likewise.
310 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
311 * testsuite/27_io/filesystem/path/query/is_relative.cc: Likewise.
312 * testsuite/experimental/filesystem/path/decompose/extension.cc:
314 * testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
315 * testsuite/experimental/filesystem/path/query/has_extension.cc:
317 * testsuite/experimental/filesystem/path/query/has_filename.cc:
319 * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
321 * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
323 * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
325 * testsuite/experimental/filesystem/path/query/has_root_name.cc:
327 * testsuite/experimental/filesystem/path/query/has_root_path.cc:
329 * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
330 * testsuite/experimental/filesystem/path/query/is_relative.cc:
334 * include/bits/fs_path.h (path::operator/=, path::append): Construct
335 temporary path before calling _M_append.
336 (path::_M_append): Change parameter to path and implement C++17
338 * testsuite/27_io/filesystem/path/append/path.cc: Add helper function
339 and more examples from the standard.
340 * testsuite/27_io/filesystem/path/append/source.cc: New.
341 * testsuite/27_io/filesystem/path/decompose/filename.cc: Add comment.
342 * testsuite/27_io/filesystem/path/nonmember/append.cc: New.
344 * include/std/variant (__gen_vtable_impl::__visit_invoke): Qualify
345 __invoke to prevent ADL.
347 2018-05-14 Jonathan Wakely <jwakely@redhat.com>
350 * include/bits/fstream.tcc (basic_filebuf::close): Do not swallow
351 exceptions from _M_terminate_output().
352 * include/std/fstream (basic_filebuf::~basic_filebuf): Swallow any
353 exceptions from close().
354 * testsuite/27_io/basic_filebuf/close/81256.cc: New.
356 * include/bits/valarray_array.h (__valarray_get_memory): Remove.
357 (__valarray_get_storage): Call operator new directly. Remove ignored
358 top-level restrict qualifier and add malloc attribute instead.
359 (_Array<_Tp>::_Array(size_t)): Remove unused constructor.
362 * include/bits/valarray_array.h (_Array_copy_ctor<_Tp, true>)
363 (_Array_copier<_Tp, true>): Do not pass null pointers to memcpy.
366 * include/bits/node_handle.h (_Node_handle_common::_M_swap): Use value
368 * testsuite/23_containers/set/modifiers/node_swap.cc: New.
370 2018-05-13 Ville Voutilainen <ville.voutilainen@gmail.com>
373 * testsuite/20_util/variant/80165.cc: New.
375 2018-05-10 Jonathan Wakely <jwakely@redhat.com>
377 * doc/xml/faq.xml: Link to C++17 status. Add note to outdated answer.
378 * doc/xml/manual/debug_mode.xml: Add array and forward_list to list
379 of C++11 containers with Debug Mode support.
380 * doc/xml/manual/using.xml: Document Dual ABI for ios_base::failure.
381 * doc/html/*: Regenerate.
383 2018-05-10 Jason Merrill <jason@redhat.com>
385 * include/bits/regex_compiler.h (_S_cache_size): Change from
386 function to variable.
388 2018-05-10 Edward Smith-Rowland <3dw4rd@verizon.net>
390 PR libstdc++/83140 - assoc_legendre returns negated value when m is odd
391 * include/tr1/legendre_function.tcc (__assoc_legendre_p): Add __phase
392 argument defaulted to +1. Doxy comments on same.
393 * testsuite/special_functions/02_assoc_legendre/
394 check_value.cc: Regen.
395 * testsuite/tr1/5_numerical_facilities/special_functions/
396 02_assoc_legendre/check_value.cc: Regen.
398 2018-05-10 Jonathan Wakely <jwakely@redhat.com>
401 * include/bits/c++config.h (__replacement_assert): Add linkage
403 * include/bits/std_abs.h: Add comment to closing brace of block.
404 * include/c_global/cstddef: Add linkage specification.
405 * include/c_global/cstring: Likewise.
406 * include/c_global/cwchar: Likewise.
408 2018-05-09 François Dumont <fdumont@gcc.gnu.org>
410 * include/debug/safe_iterator.h (_Safe_iterator<>::_M_constant()):
412 (_Safe_iterator<>::_S_constant()): ...that.
413 * include/debug/safe_local_iterator.h
414 (_Safe_local_iterator<>::_M_constant()): Rename in...
415 (_Safe_local_iterator<>::_S_constant()): ...that.
416 * include/debug/formatter.h: Remove bits/cpp_type_traits.h include.
417 (_Iterator_state::__rbegin): New.
418 (_Iterator_state::__rmiddle): New.
419 (_Iterator_state::__rend): New.
420 (_Parameter::_Parameter(const _Safe_iterator<>&, const char*,
421 _Is_iterator)): Use _Safe_iterator<>::_S_constant. Grab normal underlying
423 (_Parameter::_Parameter(const _Safe_local_iterator<>&, const char*,
424 _Is_iterator)): Likewise.
425 (_Parameter::_S_reverse_state(_Iterator_state)): New.
426 (_Parameter(__gnu_cxx::__normal_iterator<> const&, const char*,
428 (_Parameter(std::reverse_iterator<> const&, const char*,
430 (_Parameter(std::reverse_iterator<_Safe_iterator<>> const&,
431 const char*, _Is_iterator)): New.
432 (_Parameter(std::move_iterator<> const&, const char*, _Is_iterator):
434 (_Parameter(std::move_iterator<_Safe_iterator<>> const&, const char*,
436 * testsuite/24_iterators/move_iterator/debug_neg.cc: New.
437 * testsuite/24_iterators/normal_iterator/debug_neg.cc: New.
438 * testsuite/24_iterators/reverse_iterator/debug_neg.cc: New.
440 2018-05-09 Jonathan Wakely <jwakely@redhat.com>
442 * include/bits/std_function.h (_Base_manager::_M_get_pointer):
443 Use constexpr if in C++17 mode.
444 (_Base_manager::_M_clone(_Any_data&, const _Any_data&, true_type)):
445 Copy from const object.
446 * testsuite/20_util/function/cons/non_copyconstructible.cc: New.
448 2018-05-08 François Dumont <fdumont@gcc.gnu.org>
450 * src/c++11/debug.cc [_GLIBCXX_HAVE_EXECINFO_H]: Include execinfo.h.
451 [_GLIBCXX_HAVE_EXECINFO_H](_Error_formatter::_M_error): Render
454 * include/debug/macros.h (__glibcxx_check_valid_range_at): New.
455 * include/debug/functions.h (__check_valid_range): Use latter.
456 * include/debug/macros.h (__glibcxx_check_valid_constructor_range): New,
458 * include/debug/deque
459 (deque::deque<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
460 * include/debug/forward_list
461 (forward_list::forward_list<_Iter>(_Iter, _Iter, const _Alloc&)):
464 (list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
466 (list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
467 * include/debug/map.h
468 (map::map<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
469 (map::map<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
471 * include/debug/multimap.h
472 (multimap::multimap<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
473 (multimap::multimap<_Iter>(_Iter, _Iter, const _Compare&,
474 const _Alloc&)): Likewise.
475 * include/debug/set.h
476 (set::set<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
477 (set::set<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
479 * include/debug/multiset.h
480 (multiset::multiset<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
481 (multiset::multiset<_Iter>(_Iter, _Iter, const _Compare&,
482 const _Alloc&)): Likewise.
483 * include/debug/string
484 (basic_string::basic_string<_Iter>(_Iter, _Iter, const _Alloc&)):
486 * include/debug/unordered_map
487 (unordered_map::unordered_map<_Iter>(_Iter, _Iter, const _Alloc&)):
489 (unordered_multimap::unordered_multimap<_Iter>(_Iter, _Iter,
490 const _Alloc&)): Likewise.
491 * include/debug/unordered_set
492 (unordered_set::unordered_set<_Iter>(_Iter, _Iter, const _Alloc&)):
494 (unordered_multiset::unordered_multiset<_Iter>(_Iter, _Iter,
495 const _Alloc&)): Likewise.
496 * include/debug/vector
497 (vector::vector<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
499 * include/debug/formatter.h (_Error_formatter::_M_function): New.
500 (_Error_formatter(const char*, unsigned int)): Adapt.
501 (_Error_formatter::_M_at): Rename in...
502 (_Error_formatter::_S_at): ...that and adapt.
503 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): New.
504 (_GLIBCXX_DEBUG_VERIFY_AT, _GLIBCXX_DEBUG_VERIFY): Adapt.
505 * src/c++11/debug.cc (_Error_formatter::_M_error): Render _M_function
508 2018-05-08 Jonathan Wakely <jwakely@redhat.com>
510 * include/bits/regex_automaton.h (_NFA_base::_M_paren_stack, _NFA):
511 Use normal std::vector even in Debug Mode.
514 * include/Makefile.am [!ENABLE_FLOAT128]: Change c++config.h entry
515 to #undef _GLIBCXX_USE_FLOAT128 instead of defining it to zero.
516 * include/Makefile.in: Regenerate.
517 * include/bits/c++config (_GLIBCXX_USE_FLOAT128): Move definition
518 within conditional block.
520 2018-05-07 Jonathan Wakely <jwakely@redhat.com>
522 * doc/xml/manual/using.xml (table.cmd_options): Document that the
523 C++17 Filesystem implementation also needs -lstdc++fs.
526 * include/bits/fs_path.h (operator/): Permit copy elision.
527 * include/experimental/bits/fs_path.h (operator/): Likewise.
529 2018-05-07 Edward Smith-Rowland <3dw4rd@verizon.net>
531 Moar PR libstdc++/80506
532 * include/bits/random.tcc (gamma_distribution::__generate_impl()):
533 Fix magic number used in loop condition.
535 2018-05-04 Jonathan Wakely <jwakely@redhat.com>
537 PR libstdc++/85642 fix is_nothrow_default_constructible<optional<T>>
538 * include/std/optional (_Optional_payload): Add noexcept to default
539 constructor. Re-indent.
540 (_Optional_payload<_Tp, true, true, true>): Likewise. Add noexcept to
541 constructor for copying disengaged payloads.
542 (_Optional_payload<_Tp, true, false, true>): Likewise.
543 (_Optional_payload<_Tp, true, true, false>): Likewise.
544 (_Optional_payload<_Tp, true, false, false>): Likewise.
545 * testsuite/20_util/optional/cons/85642.cc: New.
546 * testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error lines.
548 2018-05-03 Jonathan Wakely <jwakely@redhat.com>
551 * include/tr1/cmath [__STRICT_ANSI__] (hypergf, hypergl, hyperg): Use
552 inline definitions instead of using-declarations.
553 [__STRICT_ANSI__] (conf_hypergf, conf_hypergl, conf_hyperg): Likewise.
554 * testsuite/tr1/5_numerical_facilities/special_functions/
555 07_conf_hyperg/compile_cxx17.cc: New.
556 * testsuite/tr1/5_numerical_facilities/special_functions/
557 17_hyperg/compile_cxx17.cc: New.
560 * include/std/variant (visit): Qualify std::get call.
562 PR libstdc++/85632 use uintmax_t for arithmetic
563 * src/filesystem/ops.cc (experimental::filesystem::space): Perform
564 arithmetic in result type.
565 * src/filesystem/std-ops.cc (filesystem::space): Likewise.
566 * testsuite/27_io/filesystem/operations/space.cc: Check total capacity
567 is greater than free space.
568 * testsuite/experimental/filesystem/operations/space.cc: New.
570 * testsuite/20_util/remove_cvref/requirements/alias_decl.cc: New.
571 * testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc:
573 * testsuite/20_util/remove_cvref/value.cc: New.
574 * testsuite/20_util/remove_cvref/value_ext.cc: New.
576 PR libstdc++/84087 LWG DR 2268 basic_string default arguments
577 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI=1]
578 (append(const basic_string&, size_type, size_type)
579 (assign(const basic_string&, size_type, size_type)
580 (insert(size_type, const basic_string&, size_type, size_type)
581 (replace(size_type,size_type,const basic_string&,size_type,size_type)
582 (compare(size_type,size_type,constbasic_string&,size_type,size_type)):
583 Add default arguments (LWG 2268).
584 [_GLIBCXX_USE_CXX11_ABI=0]
585 (append(const basic_string&, size_type, size_type)
586 (assign(const basic_string&, size_type, size_type)
587 (insert(size_type, const basic_string&, size_type, size_type)
588 (replace(size_type,size_type,const basic_string&,size_type,size_type)
589 (compare(size_type,size_type,constbasic_string&,size_type,size_type)):
591 * testsuite/21_strings/basic_string/dr2268.cc: New test.
594 * include/std/thread (thread::__not_same): New SFINAE helper.
595 (thread::thread(_Callable&&, _Args&&...)): Add SFINAE constraint that
596 first argument is not a std::thread. Add static assertion to check
597 INVOKE expression is valid.
598 (thread::thread(thread&), thread::thread(const thread&&)): Remove.
599 (thread::_Invoke::_M_invoke, thread::_Invoke::operator()): Use
600 __invoke_result for return types and remove exception specifications.
601 * testsuite/30_threads/thread/cons/84535.cc: New.
603 * include/std/future (__async_result_of): Use __invoke_result instead
606 * include/std/any (any_cast): Use __remove_cvref_t.
607 * include/std/tuple (__make_tuple): Likewise.
608 * include/std/type_traits (__remove_cvref_t): Define.
609 (__result_of_memobj, __result_of_memfun): Use __remove_cvref_t.
610 [__cplusplus > 201703L] (remove_cvref, remove_cvref_t): Define.
611 * include/std/variant (__erased_hash): Use __remove_cvref_t.
613 2018-05-02 François Dumont <fdumont@gcc.gnu.org>
615 * include/bits/deque.tcc (deque<>::_M_assign_aux): Cast to void to
616 ensure overloaded comma not used.
617 * include/bits/list.tcc (list<>::_M_assign_dispatch): Likewise.
618 * include/bits/vector.tcc (vector<>::_M_assign_aux): Likewise.
619 * include/bits/stl_bvector.h (vector<bool>::_M_assign_aux): Likewise.
620 * testsuite/23_containers/deque/modifiers/assign/1.cc: New.
621 * testsuite/23_containers/list/modifiers/assign/1.cc: New.
622 * testsuite/23_containers/vector/bool/modifiers/assign/1.cc: New.
623 * testsuite/23_containers/vector/modifiers/assign/1.cc: New.
625 2018-05-02 Jonathan Wakely <jwakely@redhat.com>
628 * include/bits/ios_base.h (ios_base::iword, ios_base::pword): Cast
630 * src/c++11/ios.cc (ios_base::_M_grow_words): Treat negative indices
631 as failure. Refactor error handling.
632 * testsuite/27_io/ios_base/storage/68197.cc: New.
636 * include/bits/gslice_array.h (gslice_array): Define default
637 constructor as deleted, as per C++11 standard.
638 * include/bits/mask_array.h (mask_array): Likewise.
639 * include/bits/slice_array.h (slice_array): Likewise.
640 * include/bits/valarray_after.h (_GBase, _GClos, _IBase, _IClos): Move
641 to namespace __detail.
642 (_GBase::_M_expr, _IBase::_M_expr): Use _ValArrayRef for type of data
644 * include/bits/valarray_before.h (_ValArrayRef): New helper for type
645 of data members in closure objects.
646 (_FunBase, _ValFunClos, _RefFunClos, _UnBase, _UnClos, _BinBase)
647 (_BinBase2, _BinBase1, _BinClos, _SBase, _SClos): Move to namespace
649 (_FunBase::_M_expr, _UnBase::_M_expr, _BinBase::_M_expr1)
650 (_BinBase::_M_expr2, _BinBase2::_M_expr1, _BinBase1::_M_expr2)
651 (_SBase::_M_expr): Use _ValArrayRef for type of data members.
652 * include/std/valarray (_UnClos, _BinClos, _SClos, _GClos, _IClos)
653 (_ValFunClos, _RefFunClos): Move to namespace __detail and add
654 using-declarations to namespace std.
655 * testsuite/26_numerics/valarray/83860.cc: New.
657 * testsuite/backward/strstream_move.cc: Remove duplicate function
661 * include/backward/strstream (strstreambuf): Define move constructor
662 and move assignment operator.
663 (istrstream, ostrstream, strstream): Likewise.
664 * testsuite/backward/strstream_move.cc: New.
666 2018-05-01 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
669 * acinclude.m4: Set ENABLE_FLOAT128 instead of _GLIBCXX_USE_FLOAT128.
670 * config.h.in: Remove references to _GLIBCXX_USE_FLOAT128.
671 * configure: Regenerate.
672 * include/Makefile.am: Replace the value of _GLIBCXX_USE_FLOAT128
673 based on ENABLE_FLOAT128.
674 * include/Makefile.in: Regenerate.
675 * include/bits/c++config: Define _GLIBCXX_USE_FLOAT128.
676 [!defined(__FLOAT128__) && !defined(__SIZEOF_FLOAT128__)]: Undefine
677 _GLIBCXX_USE_FLOAT128.
679 2018-04-24 H.J. Lu <hongjiu.lu@intel.com>
681 * configure: Regenerated.
683 2018-04-19 Jakub Jelinek <jakub@redhat.com>
685 * configure: Regenerated.
687 2018-04-18 Jonathan Wakely <jwakely@redhat.com>
688 Jakub Jelinek <jakub@redhat.com>
691 * src/c++11/Makefile.am: Don't generate debuginfo again for
692 cxx11-ios_failure-lt.s and cxx11-ios_failure.s files.
693 * src/c++11/Makefile.in: Regenerate.
695 2018-04-18 Jonathan Wakely <jwakely@redhat.com>
698 * testsuite/30_threads/thread/cons/terminate.cc
699 [!_GLIBCXX_USE_C99_STDLIB] : Use _exit or std::exit instead of _Exit.
701 2018-04-18 David Malcolm <dmalcolm@redhat.com>
704 * configure: Regenerate.
706 2018-04-16 Jonathan Wakely <jwakely@redhat.com>
708 * testsuite/experimental/filesystem/file_status/1.cc: Add
709 -DUSE_FILESYSTEM_TS to dg-options.
710 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
712 * testsuite/experimental/filesystem/iterators/pop.cc: Likewise.
713 * testsuite/experimental/filesystem/iterators/
714 recursive_directory_iterator.cc: Likewise.
715 * testsuite/experimental/filesystem/operations/absolute.cc: Likewise.
716 * testsuite/experimental/filesystem/operations/canonical.cc: Likewise.
717 * testsuite/experimental/filesystem/operations/copy.cc: Likewise.
718 * testsuite/experimental/filesystem/operations/copy_file.cc: Likewise.
719 * testsuite/experimental/filesystem/operations/create_directories.cc:
721 * testsuite/experimental/filesystem/operations/create_directory.cc:
723 * testsuite/experimental/filesystem/operations/create_symlink.cc:
725 * testsuite/experimental/filesystem/operations/current_path.cc:
727 * testsuite/experimental/filesystem/operations/equivalent.cc: Likewise.
728 * testsuite/experimental/filesystem/operations/exists.cc: Likewise.
729 * testsuite/experimental/filesystem/operations/file_size.cc: Likewise.
730 * testsuite/experimental/filesystem/operations/is_empty.cc: Likewise.
731 * testsuite/experimental/filesystem/operations/last_write_time.cc:
733 * testsuite/experimental/filesystem/operations/permissions.cc:
735 * testsuite/experimental/filesystem/operations/read_symlink.cc:
737 * testsuite/experimental/filesystem/operations/remove.cc: Likewise.
738 * testsuite/experimental/filesystem/operations/remove_all.cc: Likewise.
739 * testsuite/experimental/filesystem/operations/status.cc: Likewise.
740 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
742 * testsuite/experimental/filesystem/path/append/path.cc: Likewise.
743 * testsuite/experimental/filesystem/path/assign/assign.cc: Likewise.
744 * testsuite/experimental/filesystem/path/assign/copy.cc: Likewise.
745 * testsuite/experimental/filesystem/path/compare/compare.cc: Likewise.
746 * testsuite/experimental/filesystem/path/compare/path.cc: Likewise.
747 * testsuite/experimental/filesystem/path/compare/strings.cc: Likewise.
748 * testsuite/experimental/filesystem/path/concat/path.cc: Likewise.
749 * testsuite/experimental/filesystem/path/concat/strings.cc: Likewise.
750 * testsuite/experimental/filesystem/path/construct/copy.cc: Likewise.
751 * testsuite/experimental/filesystem/path/construct/default.cc:
753 * testsuite/experimental/filesystem/path/construct/locale.cc: Likewise.
754 * testsuite/experimental/filesystem/path/construct/range.cc: Likewise.
755 * testsuite/experimental/filesystem/path/construct/string_view.cc:
757 * testsuite/experimental/filesystem/path/decompose/extension.cc:
759 * testsuite/experimental/filesystem/path/decompose/filename.cc:
761 * testsuite/experimental/filesystem/path/decompose/parent_path.cc:
763 * testsuite/experimental/filesystem/path/decompose/relative_path.cc:
765 * testsuite/experimental/filesystem/path/decompose/root_directory.cc:
767 * testsuite/experimental/filesystem/path/decompose/root_name.cc:
769 * testsuite/experimental/filesystem/path/decompose/root_path.cc:
771 * testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
772 * testsuite/experimental/filesystem/path/generic/generic_string.cc:
774 * testsuite/experimental/filesystem/path/itr/traversal.cc: Likewise.
775 * testsuite/experimental/filesystem/path/modifiers/clear.cc: Likewise.
776 * testsuite/experimental/filesystem/path/modifiers/make_preferred.cc:
778 * testsuite/experimental/filesystem/path/modifiers/remove_filename.cc:
780 * testsuite/experimental/filesystem/path/modifiers/replace_extension.cc:
782 * testsuite/experimental/filesystem/path/modifiers/replace_filename.cc:
784 * testsuite/experimental/filesystem/path/modifiers/swap.cc: Likewise.
785 * testsuite/experimental/filesystem/path/native/string.cc: Likewise.
786 * testsuite/experimental/filesystem/path/nonmember/hash_value.cc:
788 * testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
789 * testsuite/experimental/filesystem/path/query/has_extension.cc:
791 * testsuite/experimental/filesystem/path/query/has_filename.cc:
793 * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
795 * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
797 * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
799 * testsuite/experimental/filesystem/path/query/has_root_name.cc:
801 * testsuite/experimental/filesystem/path/query/has_root_path.cc:
803 * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
804 * testsuite/experimental/filesystem/path/query/is_relative.cc:
807 2018-04-13 Jonathan Wakely <jwakely@redhat.com>
809 * src/c++11/Makefile.am: Fix sed command.
810 * src/c++11/Makefile.in: Regenerate.
812 * src/c++11/Makefile.am: Rewrite sed rule to be less fragile and to
813 handle mangled names starting with double underscores on darwin.
814 * src/c++11/Makefile.in: Regenerate.
816 2018-04-12 Jonathan Wakely <jwakely@redhat.com>
818 * src/c++11/Makefile.am: Fix comment.
819 * src/c++11/Makefile.in: Regenerate.
820 * src/c++11/cxx11-ios_failure.cc: Fix comment.
821 * src/c++98/ios_failure.cc: Likewise.
823 * src/c++11/ios.cc: Remove redundant macro definition.
825 2018-04-11 Jonathan Wakely <jwakely@redhat.com>
827 * doc/xml/manual/abi.xml: Document header locations in recent
829 * doc/xml/manual/evolution.xml: Add API changes since GCC 5.
830 * doc/xml/manual/spine.xml: Update copyright years.
831 * doc/xml/manual/strings.xml: Adjust tolower example to avoid
833 * doc/xml/manual/test.xml: Update outdated notes on VERIFY in tests.
834 * doc/html/*: Regenerate.
836 2018-04-10 Jonathan Wakely <jwakely@redhat.com>
838 * doc/xml/faq.xml: Update links to archived copy of SGI STL docs.
839 * doc/xml/manual/backwards_compatibility.xml: Likewise.
840 * doc/xml/manual/containers.xml: Likewise.
841 * doc/xml/manual/debug_mode.xml: Likewise.
842 * doc/xml/manual/extensions.xml: Likewise.
843 * doc/xml/manual/policy_data_structures_biblio.xml: Likewise.
844 * doc/xml/manual/using.xml: Likewise.
845 * doc/xml/manual/utilities.xml: Likewise.
848 * src/c++11/Makefile.am [ENABLE_DUAL_ABI]: Add special rules for
849 cxx11-ios_failure.cc to rewrite type info for __ios_failure.
850 * src/c++11/Makefile.in: Regenerate.
851 * src/c++11/cxx11-ios_failure.cc (__ios_failure, __iosfail_type_info):
853 [_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
854 * src/c++11/ios.cc (__throw_ios_failure): Remove definition.
855 * src/c++98/ios_failure.cc (__construct_ios_failure)
856 (__destroy_ios_failure, is_ios_failure_handler): New functions.
857 [!_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
858 * testsuite/27_io/ios_base/failure/dual_abi.cc: New.
859 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Revert changes to
860 handler types, to always catch std::ios_base::failure.
861 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
862 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
863 exceptions_failbit.cc: Likewise.
864 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
865 exceptions_failbit.cc: Likewise.
866 * testsuite/27_io/basic_istream/extractors_other/char/
867 exceptions_null.cc: Likewise.
868 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
869 exceptions_null.cc: Likewise.
870 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
871 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
872 * testsuite/27_io/basic_ostream/inserters_other/char/
873 exceptions_null.cc: Likewise.
874 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
875 exceptions_null.cc: Likewise.
876 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
878 2018-04-05 Jonathan Wakely <jwakely@redhat.com>
880 * include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Qualify
881 __get calls to avoid ADL and avoid ambiguity due to Clang bug.
883 2018-04-03 Jonathan Wakely <jwakely@redhat.com>
886 * include/std/variant (_Move_assign_base::operator=): Fix incorrect
888 * testsuite/20_util/variant/85183.cc: New.
890 2018-03-26 Jonathan Wakely <jwakely@redhat.com>
892 * include/std/variant (__get): Qualify calls to avoid ADL.
893 (__select_index): Adjust whitespace.
894 (variant): Add using-declaration to workaround Clang bug.
896 2018-03-22 Jonathan Wakely <jwakely@redhat.com>
899 * include/bits/stl_function.h (greater::__not_overloaded)
900 (less::__not_overloaded, greater_equal::__not_overloaded)
901 (less_equal::__not_overloaded): Fix ambiguous specializations.
902 * testsuite/20_util/function_objects/comparisons_pointer.cc: Add
903 tests for type with overloaded operators.
905 2018-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
908 * testsuite/experimental/memory_resource/resource_adaptor.cc:
909 xfail execution on 32-bit Solaris/x86.
911 2018-03-21 Jonathan Wakely <jwakely@redhat.com>
913 * testsuite/20_util/function_objects/comparisons_pointer.cc: Use
914 VERIFY instead of assert.
915 * testsuite/20_util/hash/84998.cc: New test.
916 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: New
917 copy of test adjusted for Debug Mode.
918 * testsuite/23_containers/vector/cons/destructible_neg.cc: Do not run
921 2018-03-20 François Dumont <fdumont@gcc.gnu.org>
924 * include/bits/stl_bvector.h: Fix std::hash friend declaration.
925 * include/std/bitset: Likewise.
926 * include/bits/stl_map.h (std::map<>): Fix _Rb_tree_merge_helper friend
928 * include/bits/stl_multimap.h (std::multimap<>): Likewise.
929 * include/bits/stl_multiset.h (std::multiset<>): Likewise.
930 * include/bits/stl_set.h (std::set<>): Likewise.
931 * include/bits/unordered_map.h (std::unordered_map<>): Fix
932 _Hash_merge_helper friend declaration.
933 (std::unordered_multimap<>): Likewise.
934 * include/bits/unordered_set.h (std::unordered_set<>): Likewise.
935 (std::unordered_multiset<>): Likewise.
937 2018-03-19 Gerald Pfeifer <gerald@pfeifer.com>
939 * doc/xml/api.xml: www.fsf.org has moved to https. Also omit
940 trailing slash for domain level link.
941 * doc/xml/faq.xml: Ditto.
942 * doc/xml/manual/appendix_free.xml (software): Ditto.
943 * doc/xml/manual/intro.xml: Ditto.
944 * doc/xml/manual/spine.xml: Ditto.
945 * doc/xml/spine.xml: Ditto.
947 2018-03-19 Gerald Pfeifer <gerald@pfeifer.com>
949 * doc/xml/manual/documentation_hacking.xml: Adjust link to
952 2018-03-17 Jonathan Wakely <jwakely@redhat.com>
954 * testsuite/20_util/function_objects/comparisons_pointer.cc: Adjust
957 2018-03-14 Jonathan Wakely <jwakely@redhat.com>
960 * include/bits/stl_function.h (greater<_Tp*>, less<_Tp*>)
961 (greater_equal<_Tp*>, less_equal<_Tp>*): Add partial specializations
962 to ensure total order for pointers.
963 (greater<void>, less<void>, greater_equal<void>, less_equal<void>):
964 Add operator() overloads for pointer arguments and make generic
965 overloads dispatch to new _S_cmp functions when comparisons would
966 use built-in operators for pointers.
967 * testsuite/20_util/function_objects/comparisons_pointer.cc: New.
969 2018-03-12 Jonathan Wakely <jwakely@redhat.com>
973 * crossconfig.m4: Check for aligned_alloc etc. on freebsd and mingw32.
974 * configure: Regenerate.
975 * include/c_global/cstdlib [_GLIBCXX_HAVE_ALIGNED_ALLOC]
976 (aligned_alloc): Add using-declaration.
977 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: New test.
979 2018-03-09 François Dumont <fdumont@gcc.gnu.org>
981 * python/libstdcxx/v6/printers.py (build_libstdcxx_dictionary):
982 Fix std::_Fwd_list_iterator and std::_Fwd_list_const_iterator printers
985 2018-03-09 Jonathan Wakely <jwakely@redhat.com>
988 * include/std/variant (get<_Tp, _Types...>, get_if<_Tp, _Types...>):
989 Qualify calls to get<_Np, Types...> and get_if<_Np, _Types...>.
991 src/filesystem/ops.cc (create_dir): Pass error_code to is_directory.
992 src/filesystem/std-ops.cc (create_dir): Likewise.
994 2018-03-08 François Dumont <fdumont@gcc.gnu.org>
996 * python/libstdcxx/v6/printers.py (NodeIteratorPrinter): New.
997 (StdListIteratorPrinter): Inherit from latter.
998 (StdFwdListIteratorPrinter): New, inherit from latter.
999 (StdDebugIteratorPrinter.to_string): Use non-debug iterator printer
1000 when iterator has no associated container.
1001 (build_libstdcxx_dictionary): Add __gnu_cxx::_Fwd_list_iterator and
1002 __gnu_cxx::_Fwd_list_const_iterator printers. Remove __norm namespace
1004 * testsuite/libstdc++-prettyprinters/debug.cc: Adapt.
1005 * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Adapt.
1007 2018-03-06 Ville Voutilainen <ville.voutilainen@gmail.com>
1010 * include/std/optional (_Optional_payload): Split into multiple
1011 specializations that can handle different cases of trivial or
1012 non-trivial assignment operators.
1013 * testsuite/20_util/optional/84601.cc: New.
1014 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
1016 2018-03-02 Jonathan Wakely <jwakely@redhat.com>
1019 * include/bits/parse_numbers.h (_Number_help): Add partial
1020 specialization to handle digit separators. Adjust partial
1021 specialization for recursion temrination to require _Pow == 1ULL.
1022 * testsuite/20_util/duration/literals/84671.cc: New
1024 2018-02-27 Ville Voutilainen <ville.voutilainen@gmail.com>
1026 Implement the missing bits of LWG 2769
1027 * include/std/any (any_cast(const any&)): Add static_assert.
1028 (any_cast(any&)): Likewise.
1029 (any_cast(any&&)): Likewise, and remove the handling
1030 for copyable-but-not-movable type.
1031 * testsuite/20_util/any/misc/any_cast.cc: Adjust.
1032 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise, and
1035 2018-02-23 Jonathan Wakely <jwakely@redhat.com>
1038 * include/std/thread (thread::__make_invoker): Construct tuple
1039 directly instead of using make_tuple.
1040 * testsuite/30_threads/async/84532.cc: New.
1041 * testsuite/30_threads/thread/84532.cc: New.
1043 2018-02-20 François Dumont <fdumont@gcc.gnu.org>
1045 * include/ext/aligned_buffer.h [_GLIBCXX_INLINE_VERSION]
1046 (template<> __aligned_buffer): Define as __aligned_membuf alias.
1048 2018-02-19 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
1051 * configure: Regenerate.
1053 2018-02-15 Jonathan Wakely <jwakely@redhat.com>
1056 * configure.ac (INCLUDE_DIR_NOTPARALLEL): Define.
1057 * configure: Regenerate.
1058 * include/Makefile.am (INCLUDE_DIR_NOTPARALLEL): Add .NOTPARALLEL when
1060 * include/Makefile.in: Regenerate.
1062 2018-01-29 Jonathan Wakely <jwakely@redhat.com>
1065 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
1066 Add -ffloat-store to options for m68k and ia32.
1068 * doc/xml/faq.xml: Update copyright years.
1069 * doc/html/*: Regenerate.
1072 * include/std/any (any::__do_emplace): Only set _M_manager after
1073 constructing the contained object.
1074 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust dg-error line.
1075 * testsuite/20_util/any/modifiers/83658.cc: New test.
1077 2018-01-25 Jonathan Wakely <jwakely@redhat.com>
1080 * include/c_global/cstddef (__byte_operand): Define primary template.
1081 * testsuite/18_support/byte/81076.cc: New test.
1083 2018-01-19 Christophe Lyon <christophe.lyon@linaro.org>
1085 * testsuite/ext/special_functions/airy_ai/check_nan.cc: Fix
1086 dg-options and dg-add-options order.
1087 * testsuite/ext/special_functions/airy_bi/check_nan.cc: Likewise.
1088 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc:
1090 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
1091 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
1093 * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
1095 * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
1096 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc:
1098 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc:
1100 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc:
1102 * testsuite/special_functions/06_comp_ellint_3/pr66689.cc:
1104 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc:
1106 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc:
1108 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc:
1110 * testsuite/special_functions/10_cyl_neumann/check_nan.cc:
1112 * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
1113 * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
1114 * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
1115 * testsuite/special_functions/13_ellint_3/pr66689.cc: Likewise.
1116 * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
1117 * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
1118 * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
1119 * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
1120 * testsuite/special_functions/18_riemann_zeta/check_nan.cc:
1122 * testsuite/special_functions/19_sph_bessel/check_nan.cc:
1124 * testsuite/special_functions/20_sph_legendre/check_nan.cc:
1126 * testsuite/special_functions/21_sph_neumann/check_nan.cc:
1129 2018-01-18 Uros Bizjak <ubizjak@gmail.com>
1131 * configure.ac (AC_CHECK_HEADERS): Add linux/types.h. Conditionally
1132 include linux/types.h when checking linux/random.h header.
1133 * config.h.in: Regenerate.
1135 * src/c++11/random.cc: Conditionally include linux/types.h.
1137 2018-01-16 Eric Botcazou <ebotcazou@adacore.com>
1139 * testsuite/17_intro/names.cc: Undefine 'y' on SPARC/Linux.
1141 2018-01-16 Jonathan Wakely <jwakely@redhat.com>
1144 * config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace std::c[a-g]* wildcard
1145 pattern with exact match for std::cerr.
1147 2018-01-15 Jonathan Wakely <jwakely@redhat.com>
1150 * include/bits/random.h (chi_squared_distribution::param): Update
1151 gamma distribution parameter.
1152 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc: New
1156 * include/std/type_traits (has_unique_object_representations_v): Add
1158 * testsuite/20_util/has_unique_object_representations/value.cc: Check
1161 2018-01-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1163 Make optional conditionally
1164 trivially_{copy,move}_{constructible,assignable}
1165 * include/std/optional (_Optional_payload): Fix the comment in
1166 the class head and turn into a primary and one specialization.
1167 (_Optional_payload::_M_engaged): Strike the NSDMI.
1168 (_Optional_payload<_Tp, false>::operator=(const _Optional_payload&)):
1170 (_Optional_payload<_Tp, false>::operator=(_Optional_payload&&)):
1172 (_Optional_payload<_Tp, false>::_M_get): Likewise.
1173 (_Optional_payload<_Tp, false>::_M_reset): Likewise.
1174 (_Optional_base_impl): Likewise.
1175 (_Optional_base): Turn into a primary and three specializations.
1176 (optional(nullopt)): Change the base init.
1177 * testsuite/20_util/optional/assignment/8.cc: New.
1178 * testsuite/20_util/optional/cons/trivial.cc: Likewise.
1179 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
1181 2018-01-15 Jonathan Wakely <jwakely@redhat.com>
1184 * python/libstdcxx/v6/printers.py (strip_inline_namespaces): New.
1185 (get_template_arg_list): New.
1186 (StdVariantPrinter._template_args): Remove, use get_template_arg_list
1188 (TemplateTypePrinter): Rewrite to work with gdb.Type objects instead
1189 of strings and regular expressions.
1190 (add_one_template_type_printer): Adapt to new TemplateTypePrinter.
1191 (FilteringTypePrinter): Add docstring. Match using startswith. Use
1192 strip_inline_namespaces instead of strip_versioned_namespace.
1193 (add_one_type_printer): Prepend namespace to match argument.
1194 (register_type_printers): Add type printers for char16_t and char32_t
1195 string types and for types using cxx11 ABI. Update calls to
1196 add_one_template_type_printer to provide default argument dicts.
1197 * testsuite/libstdc++-prettyprinters/80276.cc: New test.
1198 * testsuite/libstdc++-prettyprinters/whatis.cc: Remove tests for
1199 basic_string<unsigned char> and basic_string<signed char>.
1200 * testsuite/libstdc++-prettyprinters/whatis2.cc: Duplicate whatis.cc
1201 to test local variables, without overriding _GLIBCXX_USE_CXX11_ABI.
1203 2018-01-14 Andreas Schwab <schwab@linux-m68k.org>
1206 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
1208 2018-01-13 Tim Shen <timshen@google.com>
1211 * include/bits/regex.tcc (regex_replace): Fix escaping in sed.
1212 * testsuite/28_regex/algorithms/regex_replace/char/pr83601.cc: Tests.
1213 * testsuite/28_regex/algorithms/regex_replace/wchar_t/pr83601.cc: Tests.
1215 2018-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1218 * testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc:
1219 Remove dg-xfail-run-if.
1221 2018-01-10 François Dumont <fdumont@gcc.gnu.org>
1223 * include/bits/forward_list.h
1224 (_Fwd_list_node_base(_Fwd_list_node_base&&)): New.
1225 (_Fwd_list_node_base& operator=(_Fwd_list_node_base&&)): New.
1226 (_Fwd_list_node_base(const _Fwd_list_node_base&)): Explicit delete.
1227 (_Fwd_list_node_base& operator=(const _Fwd_list_node_base&)): Likewise.
1228 (_Fwd_list_impl()): Add noexcept qualification.
1229 (_Fwd_list_impl(const _Node_alloc_type&)): Delete.
1230 (_Fwd_list_impl(_Fwd_list_impl&&)): New, default.
1231 (_Fwd_list_impl(_Fwd_list_impl&&, _Node_alloc_type&&)): New.
1232 (_Fwd_list_base()): Default.
1233 (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&, true_type)): New.
1234 (_Fwd_list_base(_Fwd_list_base&&)): Default.
1235 (forward_list<>()): Default.
1236 (forward_list<>(forward_list&&)): Default.
1237 (forward_list(forward_list&&, _Node_alloc_type&&, false_type)): New.
1238 (forward_list(forward_list&&, _Node_alloc_type&&, true_type)): New.
1239 (forward_list(forward_list&&, const _Alloc&)): Adapt to use latters.
1240 * include/bits/forward_list.tcc
1241 (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&)): Adapt to use
1242 _M_impl._M_head move assignment.
1243 (forward_list<>::merge(forward_list<>&&, _Comp)): Likewise.
1244 * testsuite/23_containers/forward_list/allocator/default_init.cc: New.
1246 2018-01-09 Jonathan Wakely <jwakely@redhat.com>
1249 * python/libstdcxx/v6/printers.py (SharedPointerPrinter)
1250 (UniquePointerPrinter): Print correct template argument, not type of
1252 (TemplateTypePrinter._recognizer.recognize): Handle failure to lookup
1254 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test unique_ptr of
1256 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test shared_ptr and
1257 weak_ptr of array types.
1259 2018-01-09 François Dumont <fdumont@gcc.gnu.org>
1262 * include/bits/hashtable_policy.h
1263 (__distance_fwd(_Iterator, _Iterator, input_iterator_tag)): Return 1 if
1265 (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, true_type)): New.
1266 (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, false_type)):
1267 Add false_type parameter.
1268 (_Insert_base::insert): Adapt.
1269 * include/bits/hashtable.h (_Hashtable::operator=(initializzr_list<>)):
1271 (_Hashtable::_M_insert(_Arg&&, const _NodeGen&, true_type, size_t)):
1272 Add __n_elt parameter, defaulted to 1.
1273 (_Hashtable::_M_insert_unique_node): Likewise. Use it to call rehash
1274 policy _M_need_rehash.
1275 (_Hashtable::_M_merge_unique): Pass target number of elements to add to
1276 produce only 1 rehash if necessary.
1277 * testsuite/23_containers/unordered_map/insert/83709.cc: New.
1278 * testsuite/23_containers/unordered_set/insert/83709.cc: New.
1280 2018-01-09 Juraj Oršulić <juraj.orsulic@fer.hr>
1281 Jonathan Wakely <jwakely@redhat.com>
1283 PR libstdc++/59253 (partial)
1284 * python/libstdcxx/v6/printers.py (SmartPtrIterator): Common iterator
1285 type for pointer stored by shared_ptr, weak_ptr and unique_ptr.
1286 (SharedPointerPrinter, UniquePointerPrinter): Treat stored values as
1288 * testsuite/libstdc++-prettyprinters/cxx11.cc: Update expected output
1289 of unique_ptr printer.
1290 * testsuite/libstdc++-prettyprinters/shared_ptr.cc: Update expected
1291 output of shared_ptr printer.
1293 2018-01-05 Jonathan Wakely <jwakely@redhat.com>
1296 * src/filesystem/ops.cc (remove(const path&, error_code&)): Remove
1297 unnecessary symlink_status call.
1298 (remove_all(const path&, error_code&)): Use filesystem::remove.
1299 * src/filesystem/std-ops.cc: Likewise.
1302 * src/filesystem/std-ops.cc (do_copy_file): Use non-null offset with
1306 * src/filesystem/ops.cc (remove(const path&, error_code&)): Do not
1307 report an error for ENOENT.
1308 (remove_all(const path&)): Fix type of result variable.
1309 (remove_all(const path&, error_code&)): Use non-throwing increment
1310 for directory iterator. Call POSIX remove directly to avoid redundant
1311 calls to symlink_status. Do not report errors for ENOENT.
1312 * src/filesystem/std-ops.cc: Likewise.
1313 * testsuite/27_io/filesystem/operations/remove_all.cc: Test throwing
1315 * testsuite/experimental/filesystem/operations/remove_all.cc:
1318 2018-01-04 Jonathan Wakely <jwakely@redhat.com>
1321 * src/filesystem/ops.cc (remove(const path&, error_code&))): Remove
1322 redundant call to ec.clear().
1323 (remove_all(const path&, error_code&))): Do not return an error for
1325 * src/filesystem/std-ops.cc: Likewise.
1326 * testsuite/27_io/filesystem/operations/remove.cc: New test.
1327 * testsuite/27_io/filesystem/operations/remove_all.cc: Fix expected
1328 results for non-existent paths.
1329 * testsuite/experimental/filesystem/operations/remove.cc: New test.
1330 * testsuite/experimental/filesystem/operations/remove_all.cc: Fix
1331 expected results for non-existent paths.
1333 * include/bits/fs_ops.h (exists(const path&, error_code&))): Only
1334 check status_known once.
1335 * include/experimental/bits/fs_ops.h: Likewise.
1338 * include/std/functional (__is_byte_like): New trait.
1339 (__is_std_equal_to): Remove.
1340 (__boyer_moore_base_t): Use __is_byte_like instead of
1342 * include/experimental/functional (__is_std_equal_to): Remove.
1343 (__boyer_moore_base_t): Use __is_byte_like instead of
1345 * testsuite/20_util/function_objects/83607.cc: New test.
1347 2018-01-03 Ville Voutilainen <ville.voutilainen@gmail.com>
1349 Protect optional's deduction guide with the feature macro
1350 * include/std/optional: Use the feature macro.
1352 2018-01-03 Jakub Jelinek <jakub@redhat.com>
1354 Update copyright years.
1356 Copyright (C) 2018 Free Software Foundation, Inc.
1358 Copying and distribution of this file, with or without modification,
1359 are permitted in any medium without royalty provided the copyright
1360 notice and this notice are preserved.