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