PR target/85904 check for aligned_alloc on netbsd cross-compilation
[official-gcc.git] / libstdc++-v3 / ChangeLog
blob03e875478ae1f00119ec2cd3e07ab6971af1f8a5
1 2018-05-24  Maya Rashish  <coypu@sdf.org>
3         PR target/85904
4         * crossconfig.m4: Test for aligned_alloc on netbsd.
5         * configure: Regenerate.
7 2018-05-24  Jonathan Wakely  <jwakely@redhat.com>
9         PR libstdc++/69769
10         PR libstdc++/85886
11         * include/bits/atomic_base.h (__atomic_base::value_type)
12         (__atomic_base::difference_type): Add new typedefs.
13         * include/std/atomic (atomic<bool>::value_type, atomic<T>::value_type)
14         (atomic<T*>::value_type, atomic<T*>::difference_type): Likewise.
15         (atomic<T*>::operator++, atomic<T*>::operator--)
16         (atomic<T*>::operator+=, atomic<T*>::operator-=)
17         (atomic<T*>::fetch_add, atomic<T*>::fetch_sub): Add static assertion
18         to enforce C++17 requirement on pointer arithmetic.
19         (__atomic_val_t, __atomic_diff_t): New alias templates.
20         (atomic_init, atomic_store_explicit, atomic_exchange_explicit)
21         (atomic_compare_exchange_weak_explicit)
22         (atomic_compare_exchange_strong_explicit, atomic_store)
23         (atomic_exchange, atomic_compare_exchange_weak)
24         (atomic_compare_exchange_strong): Use __atomic_val_t to make
25         scalar parameters be non-deduced contexts.
26         (atomic_fetch_add_explicit, atomic_fetch_sub_explicit)
27         (atomic_fetch_add, atomic_fetch_sub): Change first parameter to be
28         atomic instead of __atomic_base, and use __atomic_diff_t for scalar
29         parameters.
30         (atomic_fetch_and_explicit, atomic_fetch_or_explicit)
31         (atomic_fetch_xor_explicit, atomic_fetch_and, atomic_fetch_or)
32         (atomic_fetch_xor): Use __atomic_val_t for scalar parameters.
33         (atomic_fetch_add_explicit, atomic_fetch_sub_explicit)
34         (atomic_fetch_add, atomic_fetch_sub): Remove overloads for atomic
35         address types.
36         * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
37         * testsuite/29_atomics/atomic/69769.cc: New test.
38         * testsuite/29_atomics/atomic/nonmembers.cc: New test.
39         * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
40         Disable test for C++17 and later.
41         * testsuite/29_atomics/atomic/requirements/typedefs.cc: New test.
42         * testsuite/29_atomics/atomic_integral/nonmembers.cc: New test.
43         * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc: New
44         test.
46 2018-05-23  Jonathan Wakely  <jwakely@redhat.com>
48         * include/bits/fs_path.h (path::__is_encoded_char): Change from class
49         template to alias template.
50         (path::__value_type_is_char): Use remove_const_t.
51         (path:_S_string_from_iter): New helper function.
52         (path::_S_convert(InputIter, __null_terminated))
53         (path::_S_convert_loc(InputIter, __null_terminated, const locale&)):
54         Use _S_string_from_iter.
55         (path::string<_CharT, _Allocator>(const _Allocator&)): Allow sharing
56         rep for COW strings.
57         * include/experimental/bits/fs_path.h (path::__is_encoded_char):
58         Change from class template to alias template.
59         (path::__value_type_is_char): Use remove_const.
60         (path:_S_string_from_iter): New helper function.
61         (path::_S_convert(InputIter, __null_terminated))
62         (path::_S_convert_loc(InputIter, __null_terminated, const locale&)):
63         Use _S_string_from_iter.
64         * testsuite/27_io/filesystem/path/append/source.cc: Test appending
65         wide strings.
66         * testsuite/27_io/filesystem/path/concat/strings.cc: Check for exact
67         string equality, not path equivalence.
68         * testsuite/27_io/filesystem/path/construct/format.cc: Check
69         construction from std::string and std::wstring and input iterators.
70         * testsuite/27_io/filesystem/path/construct/locale.cc: Check
71         construction from iterators.
72         * testsuite/experimental/filesystem/path/concat/strings.cc: Check for
73         exact string equality, not path equivalence.
74         * testsuite/experimental/filesystem/path/construct/locale.cc: Check
75         construction from iterators.
77         * include/bits/fs_path.h (path::_M_type): Change default member
78         initializer to _Filename.
79         (path::begin): Create past-the-end iterator for empty path.
80         * src/filesystem/std-path.cc (path::remove_filename()): Remove
81         debugging check.
82         (path::has_relative_path()): Return false for empty filenames.
83         (path::_M_split_cmpts): Set _M_type to _Filename for empty paths.
84         Fix offset of empty final component.
85         * testsuite/27_io/filesystem/path/itr/components.cc: New.
86         * testsuite/27_io/filesystem/path/itr/traversal.cc: Add new inputs.
88 2018-05-21  Jonathan Wakely  <jwakely@redhat.com>
90         Add support for opening file streams from wide character strings.
91         * config/io/basic_file_stdio.cc [_GLIBCXX_HAVE__WFOPEN]
92         (__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
93         Define new overload.
94         * config/io/basic_file_stdio.h [_GLIBCXX_HAVE__WFOPEN]
95         (__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
96         Declare new overload.
97         * configure.ac: Check for _wfopen.
98         * crossconfig.m4: Likewise.
99         * configure: Regenerate.
100         * config.h.in: Regenerate.
101         * include/bits/fstream.tcc [_GLIBCXX_HAVE__WFOPEN]
102         (basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
103         Define new overload.
104         * include/std/fstream [_GLIBCXX_HAVE__WFOPEN]
105         (basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
106         Declare new overload.
107         [_GLIBCXX_HAVE__WFOPEN]
108         (basic_ifstream<C,T>::basic_ifstream(const wchar_t*, openmode))
109         (basic_ifstream<C,T>::basic_open(const wchar_t*, openmode))
110         (basic_ofstream<C,T>::basic_ifstream(const wchar_t*, openmode))
111         (basic_ofstream<C,T>::basic_open(const wchar_t*, openmode))
112         (basic_fstream<C,T>::basic_ifstream(const wchar_t*, openmode))
113         (basic_fstream<C,T>::basic_open(const wchar_t*, openmode)): Define
114         new overloads.
115         * testsuite/27_io/basic_filebuf/open/wchar_t/1.cc: New.
116         * testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc: New.
117         * testsuite/27_io/basic_ifstream/open/wchar_t/1.cc: New.
118         * testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc: New.
119         * testsuite/27_io/basic_ofstream/open/wchar_t/1.cc: New.
120         * testsuite/27_io/basic_fstream/cons/wchar_t/1.cc: New.
121         * testsuite/27_io/basic_fstream/open/wchar_t/1.cc: New.
123 2018-05-21  François Dumont  <fdumont@gcc.gnu.org>
125         PR libstdc++/85845
126         * include/bits/stl_tree.h
127         (_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): Fix noexcept
128         qualification.
130 2018-05-21  Jonathan Wakely  <jwakely@redhat.com>
132         * src/filesystem/std-ops.cc (absolute): Report an error for empty
133         paths.
134         (weakly_canonical(const path&)): Do not call canonical on empty path.
135         (weakly_canonical(const path&, error_code&)): Likewise.
136         * testsuite/27_io/filesystem/operations/absolute.cc: Check for errors.
138         PR libstdc++/85818
139         * testsuite/experimental/filesystem/path/preferred_separator.cc: Add
140         dg-require-filesystem-ts.
142         PR libstdc++/85843
143         * src/c++11/cow-stdexcept.cc (logic_error, runtime_error): Explicitly
144         initialize base class to avoid warnings.
146 2018-05-19  Jonathan Wakely  <jwakely@redhat.com>
148         * src/c++11/codecvt.cc (__codecvt_utf8_base<wchar_t>::do_in)
149         [__SIZEOF_WCHAR_T__==2 && __BYTE_ORDER__!=__ORDER_BIG_ENDIAN__]: Set
150         little_endian element in bitmask.
151         * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: Run all tests.
152         * testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc: New.
154 2018-05-18  François Dumont  <fdumont@gcc.gnu.org>
156         * include/bits/stl_tree.h
157         (_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): New.
158         (_Rb_tree(_Rb_tree&&, _Node_allocator&&, true_type)): New, use latter.
159         (_Rb_tree(_Rb_tree&&, _Node_allocator&&, false_type)): New.
160         (_Rb_tree(_Rb_tree&&, _Node_allocator&&)): Adapt, use latters.
161         * include/debug/map.h
162         (map(map&&, const_allocator_type&)): Add noexcept qualitication.
163         * include/debug/multimap.h
164         (multimap(multimap&&, const_allocator_type&)): Likewise.
165         * include/debug/set.h
166         (set(set&&, const_allocator_type&)): Likewise.
167         * include/debug/multiset.h
168         (multiset(multiset&&, const_allocator_type&)): Likewise.
169         * testsuite/23_containers/map/cons/noexcept_default_construct.cc:
170         Add checks.
171         * testsuite/23_containers/map/cons/noexcept_move_construct.cc:
172         Add checks.
173         * testsuite/23_containers/multimap/cons/noexcept_default_construct.cc:
174         Add checks.
175         * testsuite/23_containers/multimap/cons/noexcept_move_construct.cc:
176         Add checks.
177         * testsuite/23_containers/multiset/cons/noexcept_default_construct.cc:
178         Add checks.
179         * testsuite/23_containers/multiset/cons/noexcept_move_construct.cc:
180         Add checks.
181         * testsuite/23_containers/set/cons/noexcept_default_construct.cc:
182         Add checks.
183         * testsuite/23_containers/set/cons/noexcept_move_construct.cc:
184         Add checks.
186 2018-05-18  Jason Merrill  <jason@redhat.com>
188         * include/bits/stl_deque.h (_Deque_iterator): Constrain constructor
189         for conversion to const_iterator.  Add defaulted copy ops.
190         * libsupc++/new (bad_alloc): Add defaulted copy ops.
191         * libsupc++/exception.h (exception): Add defaulted copy ops.
192         * include/std/system_error (system_error): Add defaulted copy ops.
193         * include/std/stdexcept (domain_error, invalid_argument)
194         (length_error, out_of_range, range_error, overflow_error)
195         (underflow_error): Add defaulted copy ops.
196         * include/bits/stl_iterator.h (reverse_iterator): Add defaulted
197         copy assignment.
198         * include/bits/allocator.h (allocator): Add defaulted copy assignment.
199         * include/ext/throw_allocator.h (condition_base): Add defaulted
200         default and copy ctor and copy assignment.
202 2018-05-18  Jonathan Wakely  <jwakely@redhat.com>
204         PR libstdc++/85098
205         * include/bits/regex.h [__cplusplus < 201703L] (basic_regex::icase)
206         (basic_regex::nosubs, basic_regex::optimize, basic_regex::collate)
207         (basic_regex::ECMAScript, basic_regex::basic, basic_regex::extended)
208         (basic_regex::awk, basic_regex::grep, basic_regex::egrep): Add
209         definitions.
210         * include/bits/regex_automaton.h (_NFA::_M_insert_state): Adjust
211         whitespace.
212         * include/bits/regex_compiler.tcc (__INSERT_REGEX_MATCHER): Add
213         braces around body of do-while.
214         * testsuite/28_regex/basic_regex/85098.cc: New
216 2018-05-17  Jonathan Wakely  <jwakely@redhat.com>
218         PR libstdc++/85818
219         * src/filesystem/path.cc (path::preferred_separator): Add used
220         attribute.
221         * testsuite/experimental/filesystem/path/preferred_separator.cc: New.
223         PR libstdc++/85812
224         * libsupc++/cxxabi_init_exception.h (__cxa_free_exception): Declare.
225         * libsupc++/exception_ptr.h (make_exception_ptr) [__cpp_exceptions]:
226         Refactor to separate non-throwing and throwing implementations.
227         [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]: Deallocate the memory
228         if constructing the object throws.
230 2018-05-15  Jonathan Wakely  <jwakely@redhat.com>
232         PR libstdc++/85749
233         * include/bits/random.h (__detail::__is_seed_seq): New SFINAE helper.
234         (linear_congruential_engine, mersenne_twister_engine)
235         (subtract_with_carry_engine, discard_block_engine)
236         (independent_bits_engine, shuffle_order_engine): Use __is_seed_seq to
237         constrain function templates taking seed sequences.
238         * include/bits/random.tcc (linear_congruential_engine::seed(_Sseq&))
239         (mersenne_twister_engine::seed(_Sseq&))
240         (subtract_with_carry_engine::seed(_Sseq&)): Change return types to
241         match declarations.
242         * include/ext/random (simd_fast_mersenne_twister_engine): Use
243         __is_seed_seq to constrain function templates taking seed sequences.
244         * include/ext/random.tcc (simd_fast_mersenne_twister_engine::seed):
245         Change return type to match declaration.
246         * testsuite/26_numerics/random/discard_block_engine/cons/seed_seq2.cc:
247         New.
248         * testsuite/26_numerics/random/independent_bits_engine/cons/
249         seed_seq2.cc: New.
250         * testsuite/26_numerics/random/linear_congruential_engine/cons/
251         seed_seq2.cc: New.
252         * testsuite/26_numerics/random/mersenne_twister_engine/cons/
253         seed_seq2.cc: New.
254         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lineno.
255         * testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq2.cc:
256         New.
257         * testsuite/26_numerics/random/subtract_with_carry_engine/cons/
258         seed_seq2.cc: New.
259         * testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/
260         seed_seq2.cc: New.
262         PR libstdc++/83891
263         * include/bits/fs_path.h (path::is_absolute()): Use same definition
264         for all operating systems.
265         * include/experimental/bits/fs_path.h (path::is_absolute()): Likewise.
266         * testsuite/27_io/filesystem/path/query/is_absolute.cc: New.
267         * testsuite/27_io/filesystem/path/query/is_relative.cc: Fix comment.
268         * testsuite/experimental/filesystem/path/query/is_absolute.cc: New.
270         * testsuite/27_io/filesystem/path/decompose/extension.cc: Remove
271         unused <vector> header.
272         * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
273         * testsuite/27_io/filesystem/path/query/has_extension.cc: Likewise.
274         * testsuite/27_io/filesystem/path/query/has_filename.cc: Likewise.
275         * testsuite/27_io/filesystem/path/query/has_parent_path.cc: Likewise.
276         * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
277         Likewise.
278         * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
279         Likewise.
280         * testsuite/27_io/filesystem/path/query/has_root_name.cc: Likewise.
281         * testsuite/27_io/filesystem/path/query/has_root_path.cc: Likewise.
282         * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
283         * testsuite/27_io/filesystem/path/query/is_relative.cc: Likewise.
284         * testsuite/experimental/filesystem/path/decompose/extension.cc:
285         Likewise.
286         * testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
287         * testsuite/experimental/filesystem/path/query/has_extension.cc:
288         Likewise.
289         * testsuite/experimental/filesystem/path/query/has_filename.cc:
290         Likewise.
291         * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
292         Likewise.
293         * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
294         Likewise.
295         * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
296         Likewise.
297         * testsuite/experimental/filesystem/path/query/has_root_name.cc:
298         Likewise.
299         * testsuite/experimental/filesystem/path/query/has_root_path.cc:
300         Likewise.
301         * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
302         * testsuite/experimental/filesystem/path/query/is_relative.cc:
303         Likewise.
305         PR libstdc++/84159
306         * include/bits/fs_path.h (path::operator/=, path::append): Construct
307         temporary path before calling _M_append.
308         (path::_M_append): Change parameter to path and implement C++17
309         semantics.
310         * testsuite/27_io/filesystem/path/append/path.cc: Add helper function
311         and more examples from the standard.
312         * testsuite/27_io/filesystem/path/append/source.cc: New.
313         * testsuite/27_io/filesystem/path/decompose/filename.cc: Add comment.
314         * testsuite/27_io/filesystem/path/nonmember/append.cc: New.
316         * include/std/variant (__gen_vtable_impl::__visit_invoke): Qualify
317         __invoke to prevent ADL.
319 2018-05-14  Jonathan Wakely  <jwakely@redhat.com>
321         PR libstdc++/81256
322         * include/bits/fstream.tcc (basic_filebuf::close): Do not swallow
323         exceptions from _M_terminate_output().
324         * include/std/fstream (basic_filebuf::~basic_filebuf): Swallow any
325         exceptions from close().
326         * testsuite/27_io/basic_filebuf/close/81256.cc: New.
328         * include/bits/valarray_array.h (__valarray_get_memory): Remove.
329         (__valarray_get_storage): Call operator new directly. Remove ignored
330         top-level restrict qualifier and add malloc attribute instead.
331         (_Array<_Tp>::_Array(size_t)): Remove unused constructor.
333         PR libstdc++/67554
334         * include/bits/valarray_array.h (_Array_copy_ctor<_Tp, true>)
335         (_Array_copier<_Tp, true>): Do not pass null pointers to memcpy.
337         PR libstdc++/82966
338         * include/bits/node_handle.h (_Node_handle_common::_M_swap): Use value
339         instead of type.
340         * testsuite/23_containers/set/modifiers/node_swap.cc: New.
342 2018-05-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
344         PR libstdc++/80165
345         * testsuite/20_util/variant/80165.cc: New.
347 2018-05-10  Jonathan Wakely  <jwakely@redhat.com>
349         * doc/xml/faq.xml: Link to C++17 status. Add note to outdated answer.
350         * doc/xml/manual/debug_mode.xml: Add array and forward_list to list
351         of C++11 containers with Debug Mode support.
352         * doc/xml/manual/using.xml: Document Dual ABI for ios_base::failure.
353         * doc/html/*: Regenerate.
355 2018-05-10  Jason Merrill  <jason@redhat.com>
357         * include/bits/regex_compiler.h (_S_cache_size): Change from
358         function to variable.
360 2018-05-10  Edward Smith-Rowland  <3dw4rd@verizon.net>
362         PR libstdc++/83140 - assoc_legendre returns negated value when m is odd
363         * include/tr1/legendre_function.tcc (__assoc_legendre_p): Add __phase
364         argument defaulted to +1.  Doxy comments on same.
365         * testsuite/special_functions/02_assoc_legendre/
366         check_value.cc: Regen.
367         * testsuite/tr1/5_numerical_facilities/special_functions/
368         02_assoc_legendre/check_value.cc: Regen.
370 2018-05-10  Jonathan Wakely  <jwakely@redhat.com>
372         PR libstdc++/85729
373         * include/bits/c++config.h (__replacement_assert): Add linkage
374         specification.
375         * include/bits/std_abs.h: Add comment to closing brace of block.
376         * include/c_global/cstddef: Add linkage specification.
377         * include/c_global/cstring: Likewise.
378         * include/c_global/cwchar: Likewise.
380 2018-05-09  François Dumont  <fdumont@gcc.gnu.org>
382         * include/debug/safe_iterator.h (_Safe_iterator<>::_M_constant()):
383         Rename in...
384         (_Safe_iterator<>::_S_constant()): ...that.
385         * include/debug/safe_local_iterator.h
386         (_Safe_local_iterator<>::_M_constant()): Rename in...
387         (_Safe_local_iterator<>::_S_constant()): ...that.
388         * include/debug/formatter.h: Remove bits/cpp_type_traits.h include.
389         (_Iterator_state::__rbegin): New.
390         (_Iterator_state::__rmiddle): New.
391         (_Iterator_state::__rend): New.
392         (_Parameter::_Parameter(const _Safe_iterator<>&, const char*,
393         _Is_iterator)): Use _Safe_iterator<>::_S_constant. Grab normal underlying
394         iterator type.
395         (_Parameter::_Parameter(const _Safe_local_iterator<>&, const char*,
396         _Is_iterator)): Likewise.
397         (_Parameter::_S_reverse_state(_Iterator_state)): New.
398         (_Parameter(__gnu_cxx::__normal_iterator<> const&, const char*,
399         _Is_iterator)): New.
400         (_Parameter(std::reverse_iterator<> const&, const char*,
401         _Is_iterator)): New.
402         (_Parameter(std::reverse_iterator<_Safe_iterator<>> const&,
403         const char*, _Is_iterator)): New.
404         (_Parameter(std::move_iterator<> const&, const char*, _Is_iterator):
405         New.
406         (_Parameter(std::move_iterator<_Safe_iterator<>> const&, const char*,
407         _Is_iterator)): New.
408         * testsuite/24_iterators/move_iterator/debug_neg.cc: New.
409         * testsuite/24_iterators/normal_iterator/debug_neg.cc: New.
410         * testsuite/24_iterators/reverse_iterator/debug_neg.cc: New.
412 2018-05-09  Jonathan Wakely  <jwakely@redhat.com>
414         * include/bits/std_function.h (_Base_manager::_M_get_pointer):
415         Use constexpr if in C++17 mode.
416         (_Base_manager::_M_clone(_Any_data&, const _Any_data&, true_type)):
417         Copy from const object.
418         * testsuite/20_util/function/cons/non_copyconstructible.cc: New.
420 2018-05-08  François Dumont  <fdumont@gcc.gnu.org>
422         * src/c++11/debug.cc [_GLIBCXX_HAVE_EXECINFO_H]: Include execinfo.h.
423         [_GLIBCXX_HAVE_EXECINFO_H](_Error_formatter::_M_error): Render
424         backtrace.
426         * include/debug/macros.h (__glibcxx_check_valid_range_at): New.
427         * include/debug/functions.h (__check_valid_range): Use latter.
428         * include/debug/macros.h (__glibcxx_check_valid_constructor_range): New,
429         use latter.
430         * include/debug/deque
431         (deque::deque<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
432         * include/debug/forward_list
433         (forward_list::forward_list<_Iter>(_Iter, _Iter, const _Alloc&)):
434         Likewise.
435         * include/debug/list
436         (list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
437         * include/debug/list
438         (list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
439         * include/debug/map.h
440         (map::map<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
441         (map::map<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
442         Likewise.
443         * include/debug/multimap.h
444         (multimap::multimap<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
445         (multimap::multimap<_Iter>(_Iter, _Iter, const _Compare&,
446         const _Alloc&)): Likewise.
447         * include/debug/set.h
448         (set::set<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
449         (set::set<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
450         Likewise.
451         * include/debug/multiset.h
452         (multiset::multiset<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
453         (multiset::multiset<_Iter>(_Iter, _Iter, const _Compare&,
454         const _Alloc&)): Likewise.
455         * include/debug/string
456         (basic_string::basic_string<_Iter>(_Iter, _Iter, const _Alloc&)):
457         Likewise.
458         * include/debug/unordered_map
459         (unordered_map::unordered_map<_Iter>(_Iter, _Iter, const _Alloc&)):
460         Likewise.
461         (unordered_multimap::unordered_multimap<_Iter>(_Iter, _Iter,
462         const _Alloc&)): Likewise.
463         * include/debug/unordered_set
464         (unordered_set::unordered_set<_Iter>(_Iter, _Iter, const _Alloc&)):
465         Likewise.
466         (unordered_multiset::unordered_multiset<_Iter>(_Iter, _Iter,
467         const _Alloc&)): Likewise.
468         * include/debug/vector
469         (vector::vector<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
471         * include/debug/formatter.h (_Error_formatter::_M_function): New.
472         (_Error_formatter(const char*, unsigned int)): Adapt.
473         (_Error_formatter::_M_at): Rename in...
474         (_Error_formatter::_S_at): ...that and adapt.
475         * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): New.
476         (_GLIBCXX_DEBUG_VERIFY_AT, _GLIBCXX_DEBUG_VERIFY): Adapt.
477         * src/c++11/debug.cc (_Error_formatter::_M_error): Render _M_function
478         when available.
480 2018-05-08  Jonathan Wakely  <jwakely@redhat.com>
482         * include/bits/regex_automaton.h (_NFA_base::_M_paren_stack, _NFA):
483         Use normal std::vector even in Debug Mode.
485         PR libstdc++/85672
486         * include/Makefile.am [!ENABLE_FLOAT128]: Change c++config.h entry
487         to #undef _GLIBCXX_USE_FLOAT128 instead of defining it to zero.
488         * include/Makefile.in: Regenerate.
489         * include/bits/c++config (_GLIBCXX_USE_FLOAT128): Move definition
490         within conditional block.
492 2018-05-07  Jonathan Wakely  <jwakely@redhat.com>
494         * doc/xml/manual/using.xml (table.cmd_options): Document that the
495         C++17 Filesystem implementation also needs -lstdc++fs.
497         PR libstdc++/85671
498         * include/bits/fs_path.h (operator/): Permit copy elision.
499         * include/experimental/bits/fs_path.h (operator/): Likewise.
501 2018-05-07  Edward Smith-Rowland  <3dw4rd@verizon.net>
503         Moar PR libstdc++/80506
504         * include/bits/random.tcc (gamma_distribution::__generate_impl()):
505         Fix magic number used in loop condition.
507 2018-05-04  Jonathan Wakely  <jwakely@redhat.com>
509         PR libstdc++/85642 fix is_nothrow_default_constructible<optional<T>>
510         * include/std/optional (_Optional_payload): Add noexcept to default
511         constructor. Re-indent.
512         (_Optional_payload<_Tp, true, true, true>): Likewise. Add noexcept to
513         constructor for copying disengaged payloads.
514         (_Optional_payload<_Tp, true, false, true>): Likewise.
515         (_Optional_payload<_Tp, true, true, false>): Likewise.
516         (_Optional_payload<_Tp, true, false, false>): Likewise.
517         * testsuite/20_util/optional/cons/85642.cc: New.
518         * testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error lines.
520 2018-05-03  Jonathan Wakely  <jwakely@redhat.com>
522         PR libstdc++/82644
523         * include/tr1/cmath [__STRICT_ANSI__] (hypergf, hypergl, hyperg): Use
524         inline definitions instead of using-declarations.
525         [__STRICT_ANSI__] (conf_hypergf, conf_hypergl, conf_hyperg): Likewise.
526         * testsuite/tr1/5_numerical_facilities/special_functions/
527         07_conf_hyperg/compile_cxx17.cc: New.
528         * testsuite/tr1/5_numerical_facilities/special_functions/
529         17_hyperg/compile_cxx17.cc: New.
531         PR libstdc++/84769
532         * include/std/variant (visit): Qualify std::get call.
534         PR libstdc++/85632 use uintmax_t for arithmetic
535         * src/filesystem/ops.cc (experimental::filesystem::space): Perform
536         arithmetic in result type.
537         * src/filesystem/std-ops.cc (filesystem::space): Likewise.
538         * testsuite/27_io/filesystem/operations/space.cc: Check total capacity
539         is greater than free space.
540         * testsuite/experimental/filesystem/operations/space.cc: New.
542         * testsuite/20_util/remove_cvref/requirements/alias_decl.cc: New.
543         * testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc:
544         New.
545         * testsuite/20_util/remove_cvref/value.cc: New.
546         * testsuite/20_util/remove_cvref/value_ext.cc: New.
548         PR libstdc++/84087 LWG DR 2268 basic_string default arguments
549         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI=1]
550         (append(const basic_string&, size_type, size_type)
551         (assign(const basic_string&, size_type, size_type)
552         (insert(size_type, const basic_string&, size_type, size_type)
553         (replace(size_type,size_type,const basic_string&,size_type,size_type)
554         (compare(size_type,size_type,constbasic_string&,size_type,size_type)):
555         Add default arguments (LWG 2268).
556         [_GLIBCXX_USE_CXX11_ABI=0]
557         (append(const basic_string&, size_type, size_type)
558         (assign(const basic_string&, size_type, size_type)
559         (insert(size_type, const basic_string&, size_type, size_type)
560         (replace(size_type,size_type,const basic_string&,size_type,size_type)
561         (compare(size_type,size_type,constbasic_string&,size_type,size_type)):
562         Likewise.
563         * testsuite/21_strings/basic_string/dr2268.cc: New test.
565         PR libstdc++/84535
566         * include/std/thread (thread::__not_same): New SFINAE helper.
567         (thread::thread(_Callable&&, _Args&&...)): Add SFINAE constraint that
568         first argument is not a std::thread. Add static assertion to check
569         INVOKE expression is valid.
570         (thread::thread(thread&), thread::thread(const thread&&)): Remove.
571         (thread::_Invoke::_M_invoke, thread::_Invoke::operator()): Use
572         __invoke_result for return types and remove exception specifications.
573         * testsuite/30_threads/thread/cons/84535.cc: New.
575         * include/std/future (__async_result_of): Use __invoke_result instead
576         of result_of.
578         * include/std/any (any_cast): Use __remove_cvref_t.
579         * include/std/tuple (__make_tuple): Likewise.
580         * include/std/type_traits (__remove_cvref_t): Define.
581         (__result_of_memobj, __result_of_memfun): Use __remove_cvref_t.
582         [__cplusplus > 201703L] (remove_cvref, remove_cvref_t): Define.
583         * include/std/variant (__erased_hash): Use __remove_cvref_t.
585 2018-05-02  François Dumont  <fdumont@gcc.gnu.org>
587         * include/bits/deque.tcc (deque<>::_M_assign_aux): Cast to void to
588         ensure overloaded comma not used.
589         * include/bits/list.tcc (list<>::_M_assign_dispatch): Likewise.
590         * include/bits/vector.tcc (vector<>::_M_assign_aux): Likewise.
591         * include/bits/stl_bvector.h (vector<bool>::_M_assign_aux): Likewise.
592         * testsuite/23_containers/deque/modifiers/assign/1.cc: New.
593         * testsuite/23_containers/list/modifiers/assign/1.cc: New.
594         * testsuite/23_containers/vector/bool/modifiers/assign/1.cc: New.
595         * testsuite/23_containers/vector/modifiers/assign/1.cc: New.
597 2018-05-02  Jonathan Wakely  <jwakely@redhat.com>
599         PR libstdc++/68197
600         * include/bits/ios_base.h (ios_base::iword, ios_base::pword): Cast
601         indices to unsigned.
602         * src/c++11/ios.cc (ios_base::_M_grow_words): Treat negative indices
603         as failure. Refactor error handling.
604         * testsuite/27_io/ios_base/storage/68197.cc: New.
606         PR libstdc++/57997
607         PR libstdc++/83860
608         * include/bits/gslice_array.h (gslice_array): Define default
609         constructor as deleted, as per C++11 standard.
610         * include/bits/mask_array.h (mask_array): Likewise.
611         * include/bits/slice_array.h (slice_array): Likewise.
612         * include/bits/valarray_after.h (_GBase, _GClos, _IBase, _IClos): Move
613         to namespace __detail.
614         (_GBase::_M_expr, _IBase::_M_expr): Use _ValArrayRef for type of data
615         members.
616         * include/bits/valarray_before.h (_ValArrayRef): New helper for type
617         of data members in closure objects.
618         (_FunBase, _ValFunClos, _RefFunClos, _UnBase, _UnClos, _BinBase)
619         (_BinBase2, _BinBase1, _BinClos, _SBase, _SClos): Move to namespace
620         __detail.
621         (_FunBase::_M_expr, _UnBase::_M_expr, _BinBase::_M_expr1)
622         (_BinBase::_M_expr2, _BinBase2::_M_expr1, _BinBase1::_M_expr2)
623         (_SBase::_M_expr): Use _ValArrayRef for type of data members.
624         * include/std/valarray (_UnClos, _BinClos, _SClos, _GClos, _IClos)
625         (_ValFunClos, _RefFunClos): Move to namespace __detail and add
626         using-declarations to namespace std.
627         * testsuite/26_numerics/valarray/83860.cc: New.
629         * testsuite/backward/strstream_move.cc: Remove duplicate function
630         call.
632         PR libstdc++/69608
633         * include/backward/strstream (strstreambuf): Define move constructor
634         and move assignment operator.
635         (istrstream, ostrstream, strstream): Likewise.
636         * testsuite/backward/strstream_move.cc: New.
638 2018-05-01  Tulio Magno Quites Machado Filho  <tuliom@linux.vnet.ibm.com>
640         PR libstdc++/84654
641         * acinclude.m4: Set ENABLE_FLOAT128 instead of _GLIBCXX_USE_FLOAT128.
642         * config.h.in: Remove references to _GLIBCXX_USE_FLOAT128.
643         * configure: Regenerate.
644         * include/Makefile.am: Replace the value of _GLIBCXX_USE_FLOAT128
645         based on ENABLE_FLOAT128.
646         * include/Makefile.in: Regenerate.
647         * include/bits/c++config: Define _GLIBCXX_USE_FLOAT128.
648         [!defined(__FLOAT128__) && !defined(__SIZEOF_FLOAT128__)]: Undefine
649         _GLIBCXX_USE_FLOAT128.
651 2018-04-24  H.J. Lu  <hongjiu.lu@intel.com>
653         * configure: Regenerated.
655 2018-04-19  Jakub Jelinek  <jakub@redhat.com>
657         * configure: Regenerated.
659 2018-04-18  Jonathan Wakely  <jwakely@redhat.com>
660             Jakub Jelinek  <jakub@redhat.com>
662         PR libstdc++/85442
663         * src/c++11/Makefile.am: Don't generate debuginfo again for
664         cxx11-ios_failure-lt.s and cxx11-ios_failure.s files.
665         * src/c++11/Makefile.in: Regenerate.
667 2018-04-18  Jonathan Wakely  <jwakely@redhat.com>
669         PR libstdc++/84442
670         * testsuite/30_threads/thread/cons/terminate.cc
671         [!_GLIBCXX_USE_C99_STDLIB] : Use _exit or std::exit instead of _Exit.
673 2018-04-18  David Malcolm  <dmalcolm@redhat.com>
675         PR jit/85384
676         * configure: Regenerate.
678 2018-04-16  Jonathan Wakely  <jwakely@redhat.com>
680         * testsuite/experimental/filesystem/file_status/1.cc: Add
681         -DUSE_FILESYSTEM_TS to dg-options.
682         * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
683         Likewise.
684         * testsuite/experimental/filesystem/iterators/pop.cc: Likewise.
685         * testsuite/experimental/filesystem/iterators/
686         recursive_directory_iterator.cc: Likewise.
687         * testsuite/experimental/filesystem/operations/absolute.cc: Likewise.
688         * testsuite/experimental/filesystem/operations/canonical.cc: Likewise.
689         * testsuite/experimental/filesystem/operations/copy.cc: Likewise.
690         * testsuite/experimental/filesystem/operations/copy_file.cc: Likewise.
691         * testsuite/experimental/filesystem/operations/create_directories.cc:
692         Likewise.
693         * testsuite/experimental/filesystem/operations/create_directory.cc:
694         Likewise.
695         * testsuite/experimental/filesystem/operations/create_symlink.cc:
696         Likewise.
697         * testsuite/experimental/filesystem/operations/current_path.cc:
698         Likewise.
699         * testsuite/experimental/filesystem/operations/equivalent.cc: Likewise.
700         * testsuite/experimental/filesystem/operations/exists.cc: Likewise.
701         * testsuite/experimental/filesystem/operations/file_size.cc: Likewise.
702         * testsuite/experimental/filesystem/operations/is_empty.cc: Likewise.
703         * testsuite/experimental/filesystem/operations/last_write_time.cc:
704         Likewise.
705         * testsuite/experimental/filesystem/operations/permissions.cc:
706         Likewise.
707         * testsuite/experimental/filesystem/operations/read_symlink.cc:
708         Likewise.
709         * testsuite/experimental/filesystem/operations/remove.cc: Likewise.
710         * testsuite/experimental/filesystem/operations/remove_all.cc: Likewise.
711         * testsuite/experimental/filesystem/operations/status.cc: Likewise.
712         * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
713         Likewise.
714         * testsuite/experimental/filesystem/path/append/path.cc: Likewise.
715         * testsuite/experimental/filesystem/path/assign/assign.cc: Likewise.
716         * testsuite/experimental/filesystem/path/assign/copy.cc: Likewise.
717         * testsuite/experimental/filesystem/path/compare/compare.cc: Likewise.
718         * testsuite/experimental/filesystem/path/compare/path.cc: Likewise.
719         * testsuite/experimental/filesystem/path/compare/strings.cc: Likewise.
720         * testsuite/experimental/filesystem/path/concat/path.cc: Likewise.
721         * testsuite/experimental/filesystem/path/concat/strings.cc: Likewise.
722         * testsuite/experimental/filesystem/path/construct/copy.cc: Likewise.
723         * testsuite/experimental/filesystem/path/construct/default.cc:
724         Likewise.
725         * testsuite/experimental/filesystem/path/construct/locale.cc: Likewise.
726         * testsuite/experimental/filesystem/path/construct/range.cc: Likewise.
727         * testsuite/experimental/filesystem/path/construct/string_view.cc:
728         Likewise.
729         * testsuite/experimental/filesystem/path/decompose/extension.cc:
730         Likewise.
731         * testsuite/experimental/filesystem/path/decompose/filename.cc:
732         Likewise.
733         * testsuite/experimental/filesystem/path/decompose/parent_path.cc:
734         Likewise.
735         * testsuite/experimental/filesystem/path/decompose/relative_path.cc:
736         Likewise.
737         * testsuite/experimental/filesystem/path/decompose/root_directory.cc:
738         Likewise.
739         * testsuite/experimental/filesystem/path/decompose/root_name.cc:
740         Likewise.
741         * testsuite/experimental/filesystem/path/decompose/root_path.cc:
742         Likewise.
743         * testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
744         * testsuite/experimental/filesystem/path/generic/generic_string.cc:
745         Likewise.
746         * testsuite/experimental/filesystem/path/itr/traversal.cc: Likewise.
747         * testsuite/experimental/filesystem/path/modifiers/clear.cc: Likewise.
748         * testsuite/experimental/filesystem/path/modifiers/make_preferred.cc:
749         Likewise.
750         * testsuite/experimental/filesystem/path/modifiers/remove_filename.cc:
751         Likewise.
752         * testsuite/experimental/filesystem/path/modifiers/replace_extension.cc:
753         Likewise.
754         * testsuite/experimental/filesystem/path/modifiers/replace_filename.cc:
755         Likewise.
756         * testsuite/experimental/filesystem/path/modifiers/swap.cc: Likewise.
757         * testsuite/experimental/filesystem/path/native/string.cc: Likewise.
758         * testsuite/experimental/filesystem/path/nonmember/hash_value.cc:
759         Likewise.
760         * testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
761         * testsuite/experimental/filesystem/path/query/has_extension.cc:
762         Likewise.
763         * testsuite/experimental/filesystem/path/query/has_filename.cc:
764         Likewise.
765         * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
766         Likewise.
767         * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
768         Likewise.
769         * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
770         Likewise.
771         * testsuite/experimental/filesystem/path/query/has_root_name.cc:
772         Likewise.
773         * testsuite/experimental/filesystem/path/query/has_root_path.cc:
774         Likewise.
775         * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
776         * testsuite/experimental/filesystem/path/query/is_relative.cc:
777         Likewise.
779 2018-04-13  Jonathan Wakely  <jwakely@redhat.com>
781         * src/c++11/Makefile.am: Fix sed command.
782         * src/c++11/Makefile.in: Regenerate.
784         * src/c++11/Makefile.am: Rewrite sed rule to be less fragile and to
785         handle mangled names starting with double underscores on darwin.
786         * src/c++11/Makefile.in: Regenerate.
788 2018-04-12  Jonathan Wakely  <jwakely@redhat.com>
790         * src/c++11/Makefile.am: Fix comment.
791         * src/c++11/Makefile.in: Regenerate.
792         * src/c++11/cxx11-ios_failure.cc: Fix comment.
793         * src/c++98/ios_failure.cc: Likewise.
795         * src/c++11/ios.cc: Remove redundant macro definition.
797 2018-04-11  Jonathan Wakely  <jwakely@redhat.com>
799         * doc/xml/manual/abi.xml: Document header locations in recent
800         releases.
801         * doc/xml/manual/evolution.xml: Add API changes since GCC 5.
802         * doc/xml/manual/spine.xml: Update copyright years.
803         * doc/xml/manual/strings.xml: Adjust tolower example to avoid
804         undefined behaviour.
805         * doc/xml/manual/test.xml: Update outdated notes on VERIFY in tests.
806         * doc/html/*: Regenerate.
808 2018-04-10  Jonathan Wakely  <jwakely@redhat.com>
810         * doc/xml/faq.xml: Update links to archived copy of SGI STL docs.
811         * doc/xml/manual/backwards_compatibility.xml: Likewise.
812         * doc/xml/manual/containers.xml: Likewise.
813         * doc/xml/manual/debug_mode.xml: Likewise.
814         * doc/xml/manual/extensions.xml: Likewise.
815         * doc/xml/manual/policy_data_structures_biblio.xml: Likewise.
816         * doc/xml/manual/using.xml: Likewise.
817         * doc/xml/manual/utilities.xml: Likewise.
819         PR libstdc++/85222
820         * src/c++11/Makefile.am [ENABLE_DUAL_ABI]: Add special rules for
821         cxx11-ios_failure.cc to rewrite type info for __ios_failure.
822         * src/c++11/Makefile.in: Regenerate.
823         * src/c++11/cxx11-ios_failure.cc (__ios_failure, __iosfail_type_info):
824         New types.
825         [_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
826         * src/c++11/ios.cc (__throw_ios_failure): Remove definition.
827         * src/c++98/ios_failure.cc (__construct_ios_failure)
828         (__destroy_ios_failure, is_ios_failure_handler): New functions.
829         [!_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
830         * testsuite/27_io/ios_base/failure/dual_abi.cc: New.
831         * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Revert changes to
832         handler types, to always catch std::ios_base::failure.
833         * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
834         * testsuite/27_io/basic_istream/extractors_arithmetic/char/
835         exceptions_failbit.cc: Likewise.
836         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
837         exceptions_failbit.cc: Likewise.
838         * testsuite/27_io/basic_istream/extractors_other/char/
839         exceptions_null.cc: Likewise.
840         * testsuite/27_io/basic_istream/extractors_other/wchar_t/
841         exceptions_null.cc: Likewise.
842         * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
843         * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
844         * testsuite/27_io/basic_ostream/inserters_other/char/
845         exceptions_null.cc: Likewise.
846         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
847         exceptions_null.cc: Likewise.
848         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
850 2018-04-05  Jonathan Wakely  <jwakely@redhat.com>
852         * include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Qualify
853         __get calls to avoid ADL and avoid ambiguity due to Clang bug.
855 2018-04-03  Jonathan Wakely  <jwakely@redhat.com>
857         PR libstdc++/85183
858         * include/std/variant (_Move_assign_base::operator=): Fix incorrect
859         value categories.
860         * testsuite/20_util/variant/85183.cc: New.
862 2018-03-26  Jonathan Wakely  <jwakely@redhat.com>
864         * include/std/variant (__get): Qualify calls to avoid ADL.
865         (__select_index): Adjust whitespace.
866         (variant): Add using-declaration to workaround Clang bug.
868 2018-03-22  Jonathan Wakely  <jwakely@redhat.com>
870         PR libstdc++/85040
871         * include/bits/stl_function.h (greater::__not_overloaded)
872         (less::__not_overloaded, greater_equal::__not_overloaded)
873         (less_equal::__not_overloaded): Fix ambiguous specializations.
874         * testsuite/20_util/function_objects/comparisons_pointer.cc: Add
875         tests for type with overloaded operators.
877 2018-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
879         PR libstdc++/77691
880         * testsuite/experimental/memory_resource/resource_adaptor.cc:
881         xfail execution on 32-bit Solaris/x86.
883 2018-03-21  Jonathan Wakely  <jwakely@redhat.com>
885         * testsuite/20_util/function_objects/comparisons_pointer.cc: Use
886         VERIFY instead of assert.
887         * testsuite/20_util/hash/84998.cc: New test.
888         * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: New
889         copy of test adjusted for Debug Mode.
890         * testsuite/23_containers/vector/cons/destructible_neg.cc: Do not run
891         test in Debug Mode.
893 2018-03-20  François Dumont  <fdumont@gcc.gnu.org>
895         PR libstdc++/84998
896         * include/bits/stl_bvector.h: Fix std::hash friend declaration.
897         * include/std/bitset: Likewise.
898         * include/bits/stl_map.h (std::map<>): Fix _Rb_tree_merge_helper friend
899         declaration.
900         * include/bits/stl_multimap.h (std::multimap<>): Likewise.
901         * include/bits/stl_multiset.h (std::multiset<>): Likewise.
902         * include/bits/stl_set.h (std::set<>): Likewise.
903         * include/bits/unordered_map.h (std::unordered_map<>): Fix
904         _Hash_merge_helper friend declaration.
905         (std::unordered_multimap<>): Likewise.
906         * include/bits/unordered_set.h (std::unordered_set<>): Likewise.
907         (std::unordered_multiset<>): Likewise.
909 2018-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
911         * doc/xml/api.xml: www.fsf.org has moved to https. Also omit
912         trailing slash for domain level link.
913         * doc/xml/faq.xml: Ditto.
914         * doc/xml/manual/appendix_free.xml (software): Ditto.
915         * doc/xml/manual/intro.xml: Ditto.
916         * doc/xml/manual/spine.xml: Ditto.
917         * doc/xml/spine.xml: Ditto.
919 2018-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
921         * doc/xml/manual/documentation_hacking.xml: Adjust link to
922         docbook.org.
924 2018-03-17  Jonathan Wakely  <jwakely@redhat.com>
926         * testsuite/20_util/function_objects/comparisons_pointer.cc: Adjust
927         to compile as C++98.
929 2018-03-14  Jonathan Wakely  <jwakely@redhat.com>
931         PR libstdc++/78420
932         * include/bits/stl_function.h (greater<_Tp*>, less<_Tp*>)
933         (greater_equal<_Tp*>, less_equal<_Tp>*): Add partial specializations
934         to ensure total order for pointers.
935         (greater<void>, less<void>, greater_equal<void>, less_equal<void>):
936         Add operator() overloads for pointer arguments and make generic
937         overloads dispatch to new _S_cmp functions when comparisons would
938         use built-in operators for pointers.
939         * testsuite/20_util/function_objects/comparisons_pointer.cc: New.
941 2018-03-12  Jonathan Wakely  <jwakely@redhat.com>
943         PR libstdc++/84773
944         PR libstdc++/83662
945         * crossconfig.m4: Check for aligned_alloc etc. on freebsd and mingw32.
946         * configure: Regenerate.
947         * include/c_global/cstdlib [_GLIBCXX_HAVE_ALIGNED_ALLOC]
948         (aligned_alloc): Add using-declaration.
949         * testsuite/18_support/aligned_alloc/aligned_alloc.cc: New test.
951 2018-03-09  François Dumont  <fdumont@gcc.gnu.org>
953         * python/libstdcxx/v6/printers.py (build_libstdcxx_dictionary):
954         Fix std::_Fwd_list_iterator and std::_Fwd_list_const_iterator printers
955         registration.
957 2018-03-09  Jonathan Wakely  <jwakely@redhat.com>
959         PR libstdc++/84769
960         * include/std/variant (get<_Tp, _Types...>, get_if<_Tp, _Types...>):
961         Qualify calls to get<_Np, Types...> and get_if<_Np, _Types...>.
963         src/filesystem/ops.cc (create_dir): Pass error_code to is_directory.
964         src/filesystem/std-ops.cc (create_dir): Likewise.
966 2018-03-08  François Dumont  <fdumont@gcc.gnu.org>
968         * python/libstdcxx/v6/printers.py (NodeIteratorPrinter): New.
969         (StdListIteratorPrinter): Inherit from latter.
970         (StdFwdListIteratorPrinter): New, inherit from latter.
971         (StdDebugIteratorPrinter.to_string): Use non-debug iterator printer
972         when iterator has no associated container.
973         (build_libstdcxx_dictionary): Add __gnu_cxx::_Fwd_list_iterator and
974         __gnu_cxx::_Fwd_list_const_iterator printers. Remove __norm namespace
975         registrations.
976         * testsuite/libstdc++-prettyprinters/debug.cc: Adapt.
977         * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Adapt.
979 2018-03-06  Ville Voutilainen  <ville.voutilainen@gmail.com>
981         PR libstdc++/84601
982         * include/std/optional (_Optional_payload): Split into multiple
983         specializations that can handle different cases of trivial or
984         non-trivial assignment operators.
985         * testsuite/20_util/optional/84601.cc: New.
986         * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
988 2018-03-02  Jonathan Wakely  <jwakely@redhat.com>
990         PR libstdc++/84671
991         * include/bits/parse_numbers.h (_Number_help): Add partial
992         specialization to handle digit separators. Adjust partial
993         specialization for recursion temrination to require _Pow == 1ULL.
994         * testsuite/20_util/duration/literals/84671.cc: New
996 2018-02-27  Ville Voutilainen  <ville.voutilainen@gmail.com>
998         Implement the missing bits of LWG 2769
999         * include/std/any (any_cast(const any&)): Add static_assert.
1000         (any_cast(any&)): Likewise.
1001         (any_cast(any&&)): Likewise, and remove the handling
1002         for copyable-but-not-movable type.
1003         * testsuite/20_util/any/misc/any_cast.cc: Adjust.
1004         * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise, and
1005         add new tests.
1007 2018-02-23  Jonathan Wakely  <jwakely@redhat.com>
1009         PR libstdc++/84532
1010         * include/std/thread (thread::__make_invoker): Construct tuple
1011         directly instead of using make_tuple.
1012         * testsuite/30_threads/async/84532.cc: New.
1013         * testsuite/30_threads/thread/84532.cc: New.
1015 2018-02-20  François Dumont  <fdumont@gcc.gnu.org>
1017         * include/ext/aligned_buffer.h [_GLIBCXX_INLINE_VERSION]
1018         (template<> __aligned_buffer): Define as __aligned_membuf alias.
1020 2018-02-19  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
1022         PR target/84148
1023         * configure: Regenerate.
1025 2018-02-15  Jonathan Wakely  <jwakely@redhat.com>
1027         PR libstdc++/81797
1028         * configure.ac (INCLUDE_DIR_NOTPARALLEL): Define.
1029         * configure: Regenerate.
1030         * include/Makefile.am (INCLUDE_DIR_NOTPARALLEL): Add .NOTPARALLEL when
1031         defined.
1032         * include/Makefile.in: Regenerate.
1034 2018-01-29  Jonathan Wakely  <jwakely@redhat.com>
1036         PR libstdc++/83833
1037         * testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
1038         Add -ffloat-store to options for m68k and ia32.
1040         * doc/xml/faq.xml: Update copyright years.
1041         * doc/html/*: Regenerate.
1043         PR libstdc++/83658
1044         * include/std/any (any::__do_emplace): Only set _M_manager after
1045         constructing the contained object.
1046         * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust dg-error line.
1047         * testsuite/20_util/any/modifiers/83658.cc: New test.
1049 2018-01-25  Jonathan Wakely  <jwakely@redhat.com>
1051         PR libstdc++/81076
1052         * include/c_global/cstddef (__byte_operand): Define primary template.
1053         * testsuite/18_support/byte/81076.cc: New test.
1055 2018-01-19  Christophe Lyon  <christophe.lyon@linaro.org>
1057         * testsuite/ext/special_functions/airy_ai/check_nan.cc: Fix
1058         dg-options and dg-add-options order.
1059         * testsuite/ext/special_functions/airy_bi/check_nan.cc: Likewise.
1060         * testsuite/ext/special_functions/conf_hyperg/check_nan.cc:
1061         Likewise.
1062         * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
1063         * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
1064         Likewise.
1065         * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
1066         Likewise.
1067         * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
1068         * testsuite/special_functions/04_comp_ellint_1/check_nan.cc:
1069         Likewise.
1070         * testsuite/special_functions/05_comp_ellint_2/check_nan.cc:
1071         Likewise.
1072         * testsuite/special_functions/06_comp_ellint_3/check_nan.cc:
1073         Likewise.
1074         * testsuite/special_functions/06_comp_ellint_3/pr66689.cc:
1075         Likewise.
1076         * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc:
1077         Likewise.
1078         * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc:
1079         Likewise.
1080         * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc:
1081         Likewise.
1082         * testsuite/special_functions/10_cyl_neumann/check_nan.cc:
1083         Likewise.
1084         * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
1085         * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
1086         * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
1087         * testsuite/special_functions/13_ellint_3/pr66689.cc: Likewise.
1088         * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
1089         * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
1090         * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
1091         * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
1092         * testsuite/special_functions/18_riemann_zeta/check_nan.cc:
1093         Likewise.
1094         * testsuite/special_functions/19_sph_bessel/check_nan.cc:
1095         Likewise.
1096         * testsuite/special_functions/20_sph_legendre/check_nan.cc:
1097         Likewise.
1098         * testsuite/special_functions/21_sph_neumann/check_nan.cc:
1099         Likewise.
1101 2018-01-18  Uros Bizjak  <ubizjak@gmail.com>
1103         * configure.ac (AC_CHECK_HEADERS): Add linux/types.h.  Conditionally
1104         include linux/types.h when checking linux/random.h header.
1105         * config.h.in: Regenerate.
1106         * configure: Ditto.
1107         * src/c++11/random.cc: Conditionally include linux/types.h.
1109 2018-01-16  Eric Botcazou  <ebotcazou@adacore.com>
1111         * testsuite/17_intro/names.cc: Undefine 'y' on SPARC/Linux.
1113 2018-01-16  Jonathan Wakely  <jwakely@redhat.com>
1115         PR libstdc++/83834
1116         * config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace std::c[a-g]* wildcard
1117         pattern with exact match for std::cerr.
1119 2018-01-15  Jonathan Wakely  <jwakely@redhat.com>
1121         PR libstdc++/83833
1122         * include/bits/random.h (chi_squared_distribution::param): Update
1123         gamma distribution parameter.
1124         * testsuite/26_numerics/random/chi_squared_distribution/83833.cc: New
1125         test.
1127         PR libstdc++/83830
1128         * include/std/type_traits (has_unique_object_representations_v): Add
1129         variable template.
1130         * testsuite/20_util/has_unique_object_representations/value.cc: Check
1131         variable template.
1133 2018-01-15  Ville Voutilainen  <ville.voutilainen@gmail.com>
1135         Make optional conditionally
1136         trivially_{copy,move}_{constructible,assignable}
1137         * include/std/optional (_Optional_payload): Fix the comment in
1138         the class head and turn into a primary and one specialization.
1139         (_Optional_payload::_M_engaged): Strike the NSDMI.
1140         (_Optional_payload<_Tp, false>::operator=(const _Optional_payload&)):
1141         New.
1142         (_Optional_payload<_Tp, false>::operator=(_Optional_payload&&)):
1143         Likewise.
1144         (_Optional_payload<_Tp, false>::_M_get): Likewise.
1145         (_Optional_payload<_Tp, false>::_M_reset): Likewise.
1146         (_Optional_base_impl): Likewise.
1147         (_Optional_base): Turn into a primary and three specializations.
1148         (optional(nullopt)): Change the base init.
1149         * testsuite/20_util/optional/assignment/8.cc: New.
1150         * testsuite/20_util/optional/cons/trivial.cc: Likewise.
1151         * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
1153 2018-01-15  Jonathan Wakely  <jwakely@redhat.com>
1155         PR libstdc++/80276
1156         * python/libstdcxx/v6/printers.py (strip_inline_namespaces): New.
1157         (get_template_arg_list): New.
1158         (StdVariantPrinter._template_args): Remove, use get_template_arg_list
1159         instead.
1160         (TemplateTypePrinter): Rewrite to work with gdb.Type objects instead
1161         of strings and regular expressions.
1162         (add_one_template_type_printer): Adapt to new TemplateTypePrinter.
1163         (FilteringTypePrinter): Add docstring. Match using startswith. Use
1164         strip_inline_namespaces instead of strip_versioned_namespace.
1165         (add_one_type_printer): Prepend namespace to match argument.
1166         (register_type_printers): Add type printers for char16_t and char32_t
1167         string types and for types using cxx11 ABI. Update calls to
1168         add_one_template_type_printer to provide default argument dicts.
1169         * testsuite/libstdc++-prettyprinters/80276.cc: New test.
1170         * testsuite/libstdc++-prettyprinters/whatis.cc: Remove tests for
1171         basic_string<unsigned char> and basic_string<signed char>.
1172         * testsuite/libstdc++-prettyprinters/whatis2.cc: Duplicate whatis.cc
1173         to test local variables, without overriding _GLIBCXX_USE_CXX11_ABI.
1175 2018-01-14  Andreas Schwab  <schwab@linux-m68k.org>
1177         PR libstdc++/81092
1178         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
1180 2018-01-13  Tim Shen  <timshen@google.com>
1182         PR libstdc++/83601
1183         * include/bits/regex.tcc (regex_replace): Fix escaping in sed.
1184         * testsuite/28_regex/algorithms/regex_replace/char/pr83601.cc: Tests.
1185         * testsuite/28_regex/algorithms/regex_replace/wchar_t/pr83601.cc: Tests.
1187 2018-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1189         PR libstdc++/64054
1190         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc:
1191         Remove dg-xfail-run-if.
1193 2018-01-10  François Dumont  <fdumont@gcc.gnu.org>
1195         * include/bits/forward_list.h
1196         (_Fwd_list_node_base(_Fwd_list_node_base&&)): New.
1197         (_Fwd_list_node_base& operator=(_Fwd_list_node_base&&)): New.
1198         (_Fwd_list_node_base(const _Fwd_list_node_base&)): Explicit delete.
1199         (_Fwd_list_node_base& operator=(const _Fwd_list_node_base&)): Likewise.
1200         (_Fwd_list_impl()): Add noexcept qualification.
1201         (_Fwd_list_impl(const _Node_alloc_type&)): Delete.
1202         (_Fwd_list_impl(_Fwd_list_impl&&)): New, default.
1203         (_Fwd_list_impl(_Fwd_list_impl&&, _Node_alloc_type&&)): New.
1204         (_Fwd_list_base()): Default.
1205         (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&, true_type)): New.
1206         (_Fwd_list_base(_Fwd_list_base&&)): Default.
1207         (forward_list<>()): Default.
1208         (forward_list<>(forward_list&&)): Default.
1209         (forward_list(forward_list&&, _Node_alloc_type&&, false_type)): New.
1210         (forward_list(forward_list&&, _Node_alloc_type&&, true_type)): New.
1211         (forward_list(forward_list&&, const _Alloc&)): Adapt to use latters.
1212         * include/bits/forward_list.tcc
1213         (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&)): Adapt to use
1214         _M_impl._M_head move assignment.
1215         (forward_list<>::merge(forward_list<>&&, _Comp)): Likewise.
1216         * testsuite/23_containers/forward_list/allocator/default_init.cc: New.
1218 2018-01-09  Jonathan Wakely  <jwakely@redhat.com>
1220         PR libstdc++/80276
1221         * python/libstdcxx/v6/printers.py (SharedPointerPrinter)
1222         (UniquePointerPrinter): Print correct template argument, not type of
1223         the pointer.
1224         (TemplateTypePrinter._recognizer.recognize): Handle failure to lookup
1225         a type.
1226         * testsuite/libstdc++-prettyprinters/cxx11.cc: Test unique_ptr of
1227         array type.
1228         * testsuite/libstdc++-prettyprinters/cxx17.cc: Test shared_ptr and
1229         weak_ptr of array types.
1231 2018-01-09  François Dumont  <fdumont@gcc.gnu.org>
1233         PR libstdc++/83709
1234         * include/bits/hashtable_policy.h
1235         (__distance_fwd(_Iterator, _Iterator, input_iterator_tag)): Return 1 if
1236         __first != __last.
1237         (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, true_type)): New.
1238         (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, false_type)):
1239         Add false_type parameter.
1240         (_Insert_base::insert): Adapt.
1241         * include/bits/hashtable.h (_Hashtable::operator=(initializzr_list<>)):
1242         Adapt.
1243         (_Hashtable::_M_insert(_Arg&&, const _NodeGen&, true_type, size_t)):
1244          Add __n_elt parameter, defaulted to 1.
1245         (_Hashtable::_M_insert_unique_node): Likewise. Use it to call rehash
1246         policy _M_need_rehash.
1247         (_Hashtable::_M_merge_unique): Pass target number of elements to add to
1248         produce only 1 rehash if necessary.
1249         * testsuite/23_containers/unordered_map/insert/83709.cc: New.
1250         * testsuite/23_containers/unordered_set/insert/83709.cc: New.
1252 2018-01-09  Juraj Oršulić  <juraj.orsulic@fer.hr>
1253             Jonathan Wakely  <jwakely@redhat.com>
1255         PR libstdc++/59253 (partial)
1256         * python/libstdcxx/v6/printers.py (SmartPtrIterator): Common iterator
1257         type for pointer stored by shared_ptr, weak_ptr and unique_ptr.
1258         (SharedPointerPrinter, UniquePointerPrinter): Treat stored values as
1259         children.
1260         * testsuite/libstdc++-prettyprinters/cxx11.cc: Update expected output
1261         of unique_ptr printer.
1262         * testsuite/libstdc++-prettyprinters/shared_ptr.cc: Update expected
1263         output of shared_ptr printer.
1265 2018-01-05  Jonathan Wakely  <jwakely@redhat.com>
1267         PR libstdc++/83626
1268         * src/filesystem/ops.cc (remove(const path&, error_code&)): Remove
1269         unnecessary symlink_status call.
1270         (remove_all(const path&, error_code&)): Use filesystem::remove.
1271         * src/filesystem/std-ops.cc: Likewise.
1273         PR libstdc++/83279
1274         * src/filesystem/std-ops.cc  (do_copy_file): Use non-null offset with
1275         sendfile.
1277         PR libstdc++/83626
1278         * src/filesystem/ops.cc (remove(const path&, error_code&)): Do not
1279         report an error for ENOENT.
1280         (remove_all(const path&)): Fix type of result variable.
1281         (remove_all(const path&, error_code&)): Use non-throwing increment
1282         for directory iterator. Call POSIX remove directly to avoid redundant
1283         calls to symlink_status. Do not report errors for ENOENT.
1284         * src/filesystem/std-ops.cc: Likewise.
1285         * testsuite/27_io/filesystem/operations/remove_all.cc: Test throwing
1286         overload.
1287         * testsuite/experimental/filesystem/operations/remove_all.cc:
1288         Likewise.
1290 2018-01-04  Jonathan Wakely  <jwakely@redhat.com>
1292         PR libstdc++/83626
1293         * src/filesystem/ops.cc (remove(const path&, error_code&))): Remove
1294         redundant call to ec.clear().
1295         (remove_all(const path&, error_code&))): Do not return an error for
1296         non-existent paths.
1297         * src/filesystem/std-ops.cc: Likewise.
1298         * testsuite/27_io/filesystem/operations/remove.cc: New test.
1299         * testsuite/27_io/filesystem/operations/remove_all.cc: Fix expected
1300         results for non-existent paths.
1301         * testsuite/experimental/filesystem/operations/remove.cc: New test.
1302         * testsuite/experimental/filesystem/operations/remove_all.cc: Fix
1303         expected results for non-existent paths.
1305         * include/bits/fs_ops.h (exists(const path&, error_code&))): Only
1306         check status_known once.
1307         * include/experimental/bits/fs_ops.h: Likewise.
1309         PR libstdc++/83607
1310         * include/std/functional (__is_byte_like): New trait.
1311         (__is_std_equal_to): Remove.
1312         (__boyer_moore_base_t): Use __is_byte_like instead of
1313         __is_std_equal_to.
1314         * include/experimental/functional (__is_std_equal_to): Remove.
1315         (__boyer_moore_base_t): Use __is_byte_like instead of
1316         __is_std_equal_to.
1317         * testsuite/20_util/function_objects/83607.cc: New test.
1319 2018-01-03  Ville Voutilainen  <ville.voutilainen@gmail.com>
1321         Protect optional's deduction guide with the feature macro
1322         * include/std/optional: Use the feature macro.
1324 2018-01-03  Jakub Jelinek  <jakub@redhat.com>
1326         Update copyright years.
1328 Copyright (C) 2018 Free Software Foundation, Inc.
1330 Copying and distribution of this file, with or without modification,
1331 are permitted in any medium without royalty provided the copyright
1332 notice and this notice are preserved.