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