2018-05-27 François Dumont <fdumont@gcc.gnu.org>
[official-gcc.git] / libstdc++-v3 / ChangeLog
blob3068a08b3ec935f6abbfa8d7054f98f4831ff41d
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&)):
11         Likewise.
12         (multimap(_InputIterator, _InputIterator, const allocator_type&)):
13         Likewise.
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&)):
20         Likewise.
21         (multiset(_InputIterator, _InputIterator, const allocator_type&)):
22         Likewise.
24 2018-05-25  François Dumont  <fdumont@gcc.gnu.org>
26         PR libstdc++/85768
27         * src/c++11/debug.cc: Remove backtrace usage.
29 2018-05-24  Maya Rashish  <coypu@sdf.org>
31         PR target/85904
32         * crossconfig.m4: Test for aligned_alloc on netbsd.
33         * configure: Regenerate.
35 2018-05-24  Jonathan Wakely  <jwakely@redhat.com>
37         PR libstdc++/69769
38         PR libstdc++/85886
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
57         parameters.
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
63         address types.
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
72         test.
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
84         rep for COW strings.
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
93         wide strings.
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
109         debugging check.
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)):
121         Define new overload.
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)):
131         Define new overload.
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
142         new overloads.
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>
153         PR libstdc++/85845
154         * include/bits/stl_tree.h
155         (_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): Fix noexcept
156         qualification.
158 2018-05-21  Jonathan Wakely  <jwakely@redhat.com>
160         * src/filesystem/std-ops.cc (absolute): Report an error for empty
161         paths.
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.
166         PR libstdc++/85818
167         * testsuite/experimental/filesystem/path/preferred_separator.cc: Add
168         dg-require-filesystem-ts.
170         PR libstdc++/85843
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:
198         Add checks.
199         * testsuite/23_containers/map/cons/noexcept_move_construct.cc:
200         Add checks.
201         * testsuite/23_containers/multimap/cons/noexcept_default_construct.cc:
202         Add checks.
203         * testsuite/23_containers/multimap/cons/noexcept_move_construct.cc:
204         Add checks.
205         * testsuite/23_containers/multiset/cons/noexcept_default_construct.cc:
206         Add checks.
207         * testsuite/23_containers/multiset/cons/noexcept_move_construct.cc:
208         Add checks.
209         * testsuite/23_containers/set/cons/noexcept_default_construct.cc:
210         Add checks.
211         * testsuite/23_containers/set/cons/noexcept_move_construct.cc:
212         Add checks.
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
225         copy assignment.
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>
232         PR libstdc++/85098
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
237         definitions.
238         * include/bits/regex_automaton.h (_NFA::_M_insert_state): Adjust
239         whitespace.
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>
246         PR libstdc++/85818
247         * src/filesystem/path.cc (path::preferred_separator): Add used
248         attribute.
249         * testsuite/experimental/filesystem/path/preferred_separator.cc: New.
251         PR libstdc++/85812
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>
260         PR libstdc++/85749
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
269         match declarations.
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:
275         New.
276         * testsuite/26_numerics/random/independent_bits_engine/cons/
277         seed_seq2.cc: New.
278         * testsuite/26_numerics/random/linear_congruential_engine/cons/
279         seed_seq2.cc: New.
280         * testsuite/26_numerics/random/mersenne_twister_engine/cons/
281         seed_seq2.cc: New.
282         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lineno.
283         * testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq2.cc:
284         New.
285         * testsuite/26_numerics/random/subtract_with_carry_engine/cons/
286         seed_seq2.cc: New.
287         * testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/
288         seed_seq2.cc: New.
290         PR libstdc++/83891
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:
305         Likewise.
306         * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
307         Likewise.
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:
313         Likewise.
314         * testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
315         * testsuite/experimental/filesystem/path/query/has_extension.cc:
316         Likewise.
317         * testsuite/experimental/filesystem/path/query/has_filename.cc:
318         Likewise.
319         * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
320         Likewise.
321         * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
322         Likewise.
323         * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
324         Likewise.
325         * testsuite/experimental/filesystem/path/query/has_root_name.cc:
326         Likewise.
327         * testsuite/experimental/filesystem/path/query/has_root_path.cc:
328         Likewise.
329         * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
330         * testsuite/experimental/filesystem/path/query/is_relative.cc:
331         Likewise.
333         PR libstdc++/84159
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
337         semantics.
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>
349         PR libstdc++/81256
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.
361         PR libstdc++/67554
362         * include/bits/valarray_array.h (_Array_copy_ctor<_Tp, true>)
363         (_Array_copier<_Tp, true>): Do not pass null pointers to memcpy.
365         PR libstdc++/82966
366         * include/bits/node_handle.h (_Node_handle_common::_M_swap): Use value
367         instead of type.
368         * testsuite/23_containers/set/modifiers/node_swap.cc: New.
370 2018-05-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
372         PR libstdc++/80165
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>
400         PR libstdc++/85729
401         * include/bits/c++config.h (__replacement_assert): Add linkage
402         specification.
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()):
411         Rename in...
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
422         iterator type.
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*,
427         _Is_iterator)): New.
428         (_Parameter(std::reverse_iterator<> const&, const char*,
429         _Is_iterator)): New.
430         (_Parameter(std::reverse_iterator<_Safe_iterator<>> const&,
431         const char*, _Is_iterator)): New.
432         (_Parameter(std::move_iterator<> const&, const char*, _Is_iterator):
433         New.
434         (_Parameter(std::move_iterator<_Safe_iterator<>> const&, const char*,
435         _Is_iterator)): New.
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
452         backtrace.
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,
457         use latter.
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&)):
462         Likewise.
463         * include/debug/list
464         (list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
465         * include/debug/list
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&)):
470         Likewise.
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&)):
478         Likewise.
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&)):
485         Likewise.
486         * include/debug/unordered_map
487         (unordered_map::unordered_map<_Iter>(_Iter, _Iter, const _Alloc&)):
488         Likewise.
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&)):
493         Likewise.
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
506         when available.
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.
513         PR libstdc++/85672
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.
525         PR libstdc++/85671
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>
550         PR libstdc++/82644
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.
559         PR libstdc++/84769
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:
572         New.
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)):
590         Likewise.
591         * testsuite/21_strings/basic_string/dr2268.cc: New test.
593         PR libstdc++/84535
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
604         of result_of.
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>
627         PR libstdc++/68197
628         * include/bits/ios_base.h (ios_base::iword, ios_base::pword): Cast
629         indices to unsigned.
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.
634         PR libstdc++/57997
635         PR libstdc++/83860
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
643         members.
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
648         __detail.
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
658         call.
660         PR libstdc++/69608
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>
668         PR libstdc++/84654
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>
690         PR libstdc++/85442
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>
697         PR libstdc++/84442
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>
703         PR jit/85384
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:
711         Likewise.
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:
720         Likewise.
721         * testsuite/experimental/filesystem/operations/create_directory.cc:
722         Likewise.
723         * testsuite/experimental/filesystem/operations/create_symlink.cc:
724         Likewise.
725         * testsuite/experimental/filesystem/operations/current_path.cc:
726         Likewise.
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:
732         Likewise.
733         * testsuite/experimental/filesystem/operations/permissions.cc:
734         Likewise.
735         * testsuite/experimental/filesystem/operations/read_symlink.cc:
736         Likewise.
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:
741         Likewise.
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:
752         Likewise.
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:
756         Likewise.
757         * testsuite/experimental/filesystem/path/decompose/extension.cc:
758         Likewise.
759         * testsuite/experimental/filesystem/path/decompose/filename.cc:
760         Likewise.
761         * testsuite/experimental/filesystem/path/decompose/parent_path.cc:
762         Likewise.
763         * testsuite/experimental/filesystem/path/decompose/relative_path.cc:
764         Likewise.
765         * testsuite/experimental/filesystem/path/decompose/root_directory.cc:
766         Likewise.
767         * testsuite/experimental/filesystem/path/decompose/root_name.cc:
768         Likewise.
769         * testsuite/experimental/filesystem/path/decompose/root_path.cc:
770         Likewise.
771         * testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
772         * testsuite/experimental/filesystem/path/generic/generic_string.cc:
773         Likewise.
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:
777         Likewise.
778         * testsuite/experimental/filesystem/path/modifiers/remove_filename.cc:
779         Likewise.
780         * testsuite/experimental/filesystem/path/modifiers/replace_extension.cc:
781         Likewise.
782         * testsuite/experimental/filesystem/path/modifiers/replace_filename.cc:
783         Likewise.
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:
787         Likewise.
788         * testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
789         * testsuite/experimental/filesystem/path/query/has_extension.cc:
790         Likewise.
791         * testsuite/experimental/filesystem/path/query/has_filename.cc:
792         Likewise.
793         * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
794         Likewise.
795         * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
796         Likewise.
797         * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
798         Likewise.
799         * testsuite/experimental/filesystem/path/query/has_root_name.cc:
800         Likewise.
801         * testsuite/experimental/filesystem/path/query/has_root_path.cc:
802         Likewise.
803         * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
804         * testsuite/experimental/filesystem/path/query/is_relative.cc:
805         Likewise.
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
828         releases.
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
832         undefined behaviour.
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.
847         PR libstdc++/85222
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):
852         New types.
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>
885         PR libstdc++/85183
886         * include/std/variant (_Move_assign_base::operator=): Fix incorrect
887         value categories.
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>
898         PR libstdc++/85040
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>
907         PR libstdc++/77691
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
919         test in Debug Mode.
921 2018-03-20  François Dumont  <fdumont@gcc.gnu.org>
923         PR libstdc++/84998
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
927         declaration.
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
950         docbook.org.
952 2018-03-17  Jonathan Wakely  <jwakely@redhat.com>
954         * testsuite/20_util/function_objects/comparisons_pointer.cc: Adjust
955         to compile as C++98.
957 2018-03-14  Jonathan Wakely  <jwakely@redhat.com>
959         PR libstdc++/78420
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>
971         PR libstdc++/84773
972         PR libstdc++/83662
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
983         registration.
985 2018-03-09  Jonathan Wakely  <jwakely@redhat.com>
987         PR libstdc++/84769
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
1003         registrations.
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>
1009         PR libstdc++/84601
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>
1018         PR libstdc++/84671
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
1033         add new tests.
1035 2018-02-23  Jonathan Wakely  <jwakely@redhat.com>
1037         PR libstdc++/84532
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>
1050         PR target/84148
1051         * configure: Regenerate.
1053 2018-02-15  Jonathan Wakely  <jwakely@redhat.com>
1055         PR libstdc++/81797
1056         * configure.ac (INCLUDE_DIR_NOTPARALLEL): Define.
1057         * configure: Regenerate.
1058         * include/Makefile.am (INCLUDE_DIR_NOTPARALLEL): Add .NOTPARALLEL when
1059         defined.
1060         * include/Makefile.in: Regenerate.
1062 2018-01-29  Jonathan Wakely  <jwakely@redhat.com>
1064         PR libstdc++/83833
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.
1071         PR libstdc++/83658
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>
1079         PR libstdc++/81076
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:
1089         Likewise.
1090         * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
1091         * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
1092         Likewise.
1093         * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
1094         Likewise.
1095         * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
1096         * testsuite/special_functions/04_comp_ellint_1/check_nan.cc:
1097         Likewise.
1098         * testsuite/special_functions/05_comp_ellint_2/check_nan.cc:
1099         Likewise.
1100         * testsuite/special_functions/06_comp_ellint_3/check_nan.cc:
1101         Likewise.
1102         * testsuite/special_functions/06_comp_ellint_3/pr66689.cc:
1103         Likewise.
1104         * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc:
1105         Likewise.
1106         * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc:
1107         Likewise.
1108         * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc:
1109         Likewise.
1110         * testsuite/special_functions/10_cyl_neumann/check_nan.cc:
1111         Likewise.
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:
1121         Likewise.
1122         * testsuite/special_functions/19_sph_bessel/check_nan.cc:
1123         Likewise.
1124         * testsuite/special_functions/20_sph_legendre/check_nan.cc:
1125         Likewise.
1126         * testsuite/special_functions/21_sph_neumann/check_nan.cc:
1127         Likewise.
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.
1134         * configure: Ditto.
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>
1143         PR libstdc++/83834
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>
1149         PR libstdc++/83833
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
1153         test.
1155         PR libstdc++/83830
1156         * include/std/type_traits (has_unique_object_representations_v): Add
1157         variable template.
1158         * testsuite/20_util/has_unique_object_representations/value.cc: Check
1159         variable template.
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&)):
1169         New.
1170         (_Optional_payload<_Tp, false>::operator=(_Optional_payload&&)):
1171         Likewise.
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>
1183         PR libstdc++/80276
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
1187         instead.
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>
1205         PR libstdc++/81092
1206         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
1208 2018-01-13  Tim Shen  <timshen@google.com>
1210         PR libstdc++/83601
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>
1217         PR libstdc++/64054
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>
1248         PR libstdc++/80276
1249         * python/libstdcxx/v6/printers.py (SharedPointerPrinter)
1250         (UniquePointerPrinter): Print correct template argument, not type of
1251         the pointer.
1252         (TemplateTypePrinter._recognizer.recognize): Handle failure to lookup
1253         a type.
1254         * testsuite/libstdc++-prettyprinters/cxx11.cc: Test unique_ptr of
1255         array type.
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>
1261         PR libstdc++/83709
1262         * include/bits/hashtable_policy.h
1263         (__distance_fwd(_Iterator, _Iterator, input_iterator_tag)): Return 1 if
1264         __first != __last.
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<>)):
1270         Adapt.
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
1287         children.
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>
1295         PR libstdc++/83626
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.
1301         PR libstdc++/83279
1302         * src/filesystem/std-ops.cc  (do_copy_file): Use non-null offset with
1303         sendfile.
1305         PR libstdc++/83626
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
1314         overload.
1315         * testsuite/experimental/filesystem/operations/remove_all.cc:
1316         Likewise.
1318 2018-01-04  Jonathan Wakely  <jwakely@redhat.com>
1320         PR libstdc++/83626
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
1324         non-existent paths.
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.
1337         PR libstdc++/83607
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
1341         __is_std_equal_to.
1342         * include/experimental/functional (__is_std_equal_to): Remove.
1343         (__boyer_moore_base_t): Use __is_byte_like instead of
1344         __is_std_equal_to.
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.