[nvptx] Use CUDA driver API to select default runtime launch geometry
[official-gcc.git] / libstdc++-v3 / ChangeLog
blobfd547e26039146f0e9e96e7ad8047fe7b9ac0b0c
1 2018-08-10  Jonathan Wakely  <jwakely@redhat.com>
3         PR libstdc++/68210
4         * doc/xml/manual/intro.xml: Document LWG 206 change.
5         * libsupc++/del_op.cc: Replace _GLIBCXX_USE_NOEXCEPT with noexcept.
6         * libsupc++/del_opa.cc: Likewise.
7         * libsupc++/del_opant.cc: Likewise.
8         * libsupc++/del_opnt.cc: Likewise. Call operator delete(ptr) instead
9         of free(ptr).
10         * libsupc++/del_ops.cc: Replace _GLIBCXX_USE_NOEXCEPT with noexcept.
11         * libsupc++/del_opsa.cc: Likewise.
12         * libsupc++/del_opva.cc: Likewise.
13         * libsupc++/del_opvant.cc: Likewise.
14         * libsupc++/del_opvnt.cc: Likewise. Call operator delete[](ptr)
15         instead of operator delete(ptr).
16         * libsupc++/del_opvs.cc: Replace _GLIBCXX_USE_NOEXCEPT with noexcept.
17         * libsupc++/del_opvsa.cc: Likewise.
18         * libsupc++/new_op.cc: Use __builtin_expect in check for zero size.
19         * libsupc++/new_opa.cc: Use nullptr instead of literal 0.
20         * libsupc++/new_opant.cc: Likewise. Replace _GLIBCXX_USE_NOEXCEPT
21         with noexcept.
22         * libsupc++/new_opnt.cc: Likewise. Call operator new(sz) instead of
23         malloc(sz).
24         * libsupc++/new_opvant.cc: Use nullptr and noexcept.
25         * libsupc++/new_opvnt.cc: Likewise. Call operator new[](sz) instead of
26         operator new(sz, nothrow).
27         * testsuite/18_support/new_nothrow.cc: New test.
29 2018-08-10  Martin Liska  <mliska@suse.cz>
31         * libsupc++/new_op.cc (new): Remove __builtin_expect as malloc
32         predictor can handle that.
33         * libsupc++/new_opa.cc: Likewise.
34         * libsupc++/new_opnt.cc (new): Likewise.
36 2018-08-10  Sebastian Huber  <sebastian.huber@embedded-brains.de>
38         PR target/85904
39         * configure.ac: Define HAVE_ALIGNED_ALLOC if building for
40         Newlib.
41         * configure: Regenerate.
43 2018-08-10  Jonathan Wakely  <jwakely@redhat.com>
45         * include/std/deque (std::pmr::deque): Declare alias.
46         * include/std/forward_list (std::pmr::forward_list): Likewise.
47         * include/std/list (std::pmr::list): Likewise.
48         * include/std/map (std::pmr::map, std::pmr::multimap): Likewise.
49         * include/std/regex (std::pmr::match_results, std::pmr::cmatch)
50         (std::pmr::smatch, std::pmr::wcmatch, std::pmr::wsmatch): Likewise.
51         * include/std/set (std::pmr::set, std::pmr::multiset): Likewise.
52         * include/std/string (std::pmr::basic_string, std::pmr::string)
53         (std::pmr::u16string, std::pmr::u32string, std::pmr::wstring):
54         Likewise.
55         * include/std/unordered_map (std::pmr::unordered_map)
56         (std::pmr::unordered_multimap): Likewise.
57         * include/std/unordered_set (std::pmr::unordered_set)
58         (std::pmr::unordered_multiset): Likewise.
59         * include/std/vector (std::pmr::vector): Likewise.
60         * testsuite/21_strings/basic_string/types/pmr_typedefs.cc: New test.
61         * testsuite/23_containers/deque/types/pmr_typedefs.cc: New test.
62         * testsuite/23_containers/forward_list/pmr_typedefs.cc: New test.
63         * testsuite/23_containers/list/pmr_typedefs.cc: New test.
64         * testsuite/23_containers/map/pmr_typedefs.cc: New test.
65         * testsuite/23_containers/multimap/pmr_typedefs.cc: New test.
66         * testsuite/23_containers/multiset/pmr_typedefs.cc: New test.
67         * testsuite/23_containers/set/pmr_typedefs.cc: New test.
68         * testsuite/23_containers/unordered_map/pmr_typedefs.cc: New test.
69         * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc: New
70         test.
71         * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc: New
72         test.
73         * testsuite/23_containers/unordered_set/pmr_typedefs.cc: New test.
74         * testsuite/23_containers/vector/pmr_typedefs.cc: New test.
75         * testsuite/28_regex/match_results/pmr_typedefs.cc: New test.
77 2018-08-08  François Dumont  <fdumont@gcc.gnu.org>
79         * include/bits/stl_algo.h
80         (__rotate(_Ite, _Ite, _Ite, forward_iterator_tag))
81         (__rotate(_Ite, _Ite, _Ite, bidirectional_iterator_tag))
82         (__rotate(_Ite, _Ite, _Ite, random_access_iterator_tag)): Move code
83         duplication...
84         (rotate(_Ite, _Ite, _Ite)): ...here.
85         (__stable_partition_adaptive(_FIt, _FIt, _Pred, _Dist, _Pointer, _Dist)):
86         Simplify rotate call.
87         (__rotate_adaptive(_BIt1, _BIt1, _BIt1, _Dist, _Dist, _Bit2, _Dist)):
88         Likewise.
89         (__merge_without_buffer(_BIt, _BIt, _BIt, _Dist, _Dist, _Comp)):
90         Likewise.
92 2018-08-08  Jonathan Wakely  <jwakely@redhat.com>
94         * libsupc++/new_opa.cc (aligned_alloc): Declare inside namespace to
95         avoid clashing with an ::aligned_alloc function that was not detected
96         by configure.
98         * doc/xml/manual/using.xml: Fix markup for empty table entry.
99         * doc/html/*: Regenerate.
101         * doc/xml/manual/using.xml: Add missing header to table and fix typo.
102         * doc/html/*: Regenerate.
104         PR libstdc++/86597
105         * include/bits/fs_dir.h (directory_entry::_M_file_type(error_code&)):
106         Clear error_code when cached type is used.
107         * testsuite/27_io/filesystem/directory_entry/86597.cc: New test.
109 2018-08-07  Jonathan Wakely  <jwakely@redhat.com>
111         PR libstdc++/86874
112         * include/std/variant (_Copy_ctor_base::_M_destructive_move): Define
113         here instead of in _Move_assign_base.
114         (_Copy_ctor_base<true, _Types...>::_M_destructive_move): Define.
115         (_Copy_assign_base::operator=): Use _M_destructive_move when changing
116         the contained value to another alternative.
117         (_Move_assign_base::operator=): Likewise.
118         (_Move_assign_base::_M_destructive_move): Remove.
119         * testsuite/20_util/variant/86874.cc: New test.
121         PR libstdc++/86861
122         * libsupc++/new_opa.cc [_GLIBCXX_HAVE_MEMALIGN] (aligned_alloc):
123         Replace macro with inline function.
124         [__sun]: Increase alignment to meet memalign precondition.
125         [!HAVE__ALIGNED_MALLOC && !HAVE_POSIX_MEMALIGN && !HAVE_MEMALIGN]
126         (aligned_alloc): Move check for valid alignment to operator new.
127         Remove redundant check for non-zero size, it's enforced by the caller.
128         (operator new): Move check for valid alignment here. Use
129         __builtin_expect on check for zero size.
131         * config/abi/pre/gnu.ver: Export monotonic_buffer_resource members.
132         * include/std/memory_resource (monotonic_buffer_resource::release):
133         Call _M_release_buffers to free buffers.
134         (monotonic_buffer_resource::do_allocate): Call _M_new_buffer to
135         allocate a new buffer from upstream.
136         (monotonic_buffer_resource::_M_new_buffer): Declare.
137         (monotonic_buffer_resource::_M_release_buffers): Declare.
138         (monotonic_buffer_resource::_Chunk): Replace definition with
139         declaration as opaque type.
140         * src/c++17/memory_resource.cc (monotonic_buffer_resource::_Chunk):
141         Define.
142         (monotonic_buffer_resource::_M_new_buffer): Define.
143         (monotonic_buffer_resource::_M_release_buffers): Define.
145 2018-08-05  François Dumont  <fdumont@gcc.gnu.org>
147         * include/bits/stl_iterator.h: Fix comment.
149 2018-08-03  Jonathan Wakely  <jwakely@redhat.com>
151         * src/c++11/system_error.cc
152         (system_error_category::default_error_condition): Add workaround for
153         ENOTEMPTY and EEXIST having the same value on AIX.
154         * testsuite/19_diagnostics/error_category/system_category.cc: Add
155         extra testcases for EDOM, EILSEQ, ERANGE, EEXIST and ENOTEMPTY.
157 2018-08-01  Jonathan Wakely  <jwakely@redhat.com>
159         * configure: Regenerate.
160         * configure.ac: Add -D_GLIBCXX_ASSERTIONS to default DEBUG_FLAGS.
161         * src/c++11/futex.cc: Use __glibcxx_assert instead of
162         _GLIBCXX_DEBUG_ASSERT.
164 2018-08-01  Mike Crowe  <mac@mcrowe.com>
166         * include/std/condition_variable (wait_for): Use steady_clock.
168 2018-08-01  Mike Crowe  <mac@mcrowe.com>
170         * include/std/condition_variable (wait_until): Only report timeout
171         if we really have timed out when measured against the
172         caller-supplied clock.
173         * testsuite/30_threads/condition_variable/members/2.cc: Add test
174         case to confirm above behaviour.
176 2018-08-01  Jonathan Wakely  <jwakely@redhat.com>
178         PR libstdc++/60555
179         * src/c++11/system_error.cc
180         (system_error_category::default_error_condition): New override to
181         check for POSIX errno values.
182         * testsuite/19_diagnostics/error_category/generic_category.cc: New
183         * testsuite/19_diagnostics/error_category/system_category.cc: New
184         test.
186 2018-07-31  Jonathan Wakely  <jwakely@redhat.com>
188         PR libstdc++/86751
189         * include/bits/stl_pair.h (__pair_base): New class with deleted copy
190         assignment operator.
191         (pair): Derive from __pair_base.
192         (pair::operator=): Remove deleted overload.
193         * python/libstdcxx/v6/printers.py (StdPairPrinter): New pretty printer
194         so that new base class isn't shown in GDB.
195         * testsuite/20_util/pair/86751.cc: New test.
196         * testsuite/20_util/pair/ref_assign.cc: New test.
198         * include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP)
199         (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Move definitions here.
200         (_GLIBCXX_HAVE_BUILTIN_LAUNDER): Likewise. Use !__is_identifier
201         instead of __has_builtin.
202         * include/std/type_traits (_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP)
203         (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Remove definitions from here.
204         * include/std/version [!_GLIBCXX_HAS_GTHREADS]
205         (__cpp_lib_shared_timed_mutex, __cpp_lib_scoped_lock)
206         (__cpp_lib_shared_mutex): Don't define when Gthreads not in use.
207         [!_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP]
208         (__cpp_lib_has_unique_object_representations): Don't define when
209         builtin not available.
210         [!_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE] (__cpp_lib_is_aggregate):
211         Likewise.
212         [!_GLIBCXX_HAVE_BUILTIN_LAUNDER] (__cpp_lib_launder): Likewise.
213         * libsupc++/new (_GLIBCXX_HAVE_BUILTIN_LAUNDER): Remove definition
214         from here.
216         * doc/xml/manual/test.xml: Improve documentation on writing tests for
217         newer standards.
218         * doc/xml/manual/using.xml: Document all headers for C++11 and later.
219         * doc/html/*: Regenerate.
221         * include/ext/pointer.h [__cplusplus >= 201103L]
222         (_Pointer_adapter::operator bool): Add explicit conversion operator
223         to replace safe bool idiom.
225 2018-07-30  Jonathan Wakely  <jwakely@redhat.com>
227         PR libstdc++/86734
228         * include/bits/stl_iterator.h (reverse_iterator::operator->): Call
229         _S_to_pointer (LWG 1052, LWG 2118).
230         (reverse_iterator::_S_to_pointer): Define overloaded helper functions.
231         * testsuite/24_iterators/reverse_iterator/dr1052.cc: New test.
232         * testsuite/24_iterators/reverse_iterator/dr2188.cc: New test.
234         * libsupc++/new_opa.cc (operator new(size_t, align_val_t)): Add
235         workaround for aligned_alloc bug on AIX.
236         * testsuite/18_support/new_aligned.cc: New test.
238 2018-07-26  Marek Polacek  <polacek@redhat.com>
240         * testsuite/30_threads/condition_variable_any/cond.cc: New.
242 2018-07-26  Marek Polacek  <polacek@redhat.com>
244         * src/c++98/locale_init.cc: Fix #ifdef condition.
246 2018-07-26  Jonathan Wakely  <jwakely@redhat.com>
248         * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Add
249         dg-require-cstdint directive.
250         * testsuite/20_util/allocator/overaligned.cc: Likewise.
251         * testsuite/20_util/any/cons/aligned.cc: Likewise.
252         * testsuite/20_util/monotonic_buffer_resource/allocate.cc: Likewise.
253         * testsuite/20_util/monotonic_buffer_resource/deallocate.cc: Likewise.
254         * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
255         Likewise.
256         * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
257         * testsuite/23_containers/list/modifiers/insert/25288.cc: Likewise.
258         * testsuite/23_containers/set/allocator/move_assign.cc: Likewise.
259         * testsuite/25_algorithms/make_heap/complexity.cc: Likewise.
260         * testsuite/25_algorithms/pop_heap/complexity.cc: Require cstdint and
261         random_device effective-target.
262         * testsuite/25_algorithms/push_heap/complexity.cc: Likewise.
263         * testsuite/25_algorithms/sample/1.cc: Require cstdint.
264         * testsuite/25_algorithms/sample/2.cc: Likewise.
265         * testsuite/25_algorithms/sort_heap/complexity.cc: Require cstdint
266         and random_device.
267         * testsuite/26_numerics/headers/random/types_std_c++0x.cc: Require
268         cstdint.
269         * testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
270         Likewise.
271         * testsuite/26_numerics/random/discard_block_engine/requirements/
272         constexpr_data.cc: Likewise.
273         * testsuite/26_numerics/random/discard_block_engine/requirements/
274         constexpr_functions.cc: Likewise.
275         * testsuite/26_numerics/random/independent_bits_engine/requirements/
276         constexpr_functions.cc: Likewise.
277         * testsuite/26_numerics/random/linear_congruential_engine/requirements/
278         constexpr_data.cc: Likewise.
279         * testsuite/26_numerics/random/linear_congruential_engine/requirements/
280         constexpr_functions.cc: Likewise.
281         * testsuite/26_numerics/random/mersenne_twister_engine/requirements/
282         constexpr_data.cc: Likewise.
283         * testsuite/26_numerics/random/mersenne_twister_engine/requirements/
284         constexpr_functions.cc: Likewise.
285         * testsuite/26_numerics/random/pr60037-neg.cc: Likewise.
286         * testsuite/26_numerics/random/seed_seq/cons/65631.cc: Likewise.
287         * testsuite/26_numerics/random/shuffle_order_engine/requirements/
288         constexpr_data.cc: Add dg-require-cstdint directive.
289         * testsuite/26_numerics/random/shuffle_order_engine/requirements/
290         constexpr_functions.cc: Likewise.
291         * testsuite/26_numerics/random/subtract_with_carry_engine/requirements/
292         constexpr_data.cc: Likewise.
293         * testsuite/26_numerics/random/subtract_with_carry_engine/requirements/
294         constexpr_functions.cc: Likewise.
295         * testsuite/26_numerics/random/uniform_real_distribution/operators/
296         64351.cc: Likewise.
297         * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Likewise.
298         * testsuite/experimental/algorithm/sample-2.cc: Likewise.
299         * testsuite/experimental/algorithm/sample.cc: Likewise.
300         * testsuite/experimental/algorithm/search.cc: Likewise.
301         * testsuite/experimental/algorithm/shuffle.cc: Likewise.
302         * testsuite/experimental/any/cons/aligned.cc: Likewise.
303         * testsuite/experimental/memory_resource/new_delete_resource.cc:
304         Likewise.
305         * testsuite/experimental/memory_resource/resource_adaptor.cc: Likewise.
306         * testsuite/experimental/random/randint.cc: Likewise.
307         * testsuite/experimental/source_location/1.cc: Likewise.
308         * testsuite/ext/bitmap_allocator/overaligned.cc: Likewise.
309         * testsuite/ext/malloc_allocator/overaligned.cc: Likewise.
310         * testsuite/ext/mt_allocator/overaligned.cc: Likewise.
311         * testsuite/ext/new_allocator/overaligned.cc: Likewise.
312         * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Likewise.
313         * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
314         * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
315         * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
316         * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
317         * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
318         * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
319         * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
320         * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
321         * testsuite/ext/pool_allocator/overaligned.cc: Likewise.
322         * testsuite/ext/throw_allocator/check_allocate_max_size.cc: Likewise.
323         * testsuite/ext/throw_allocator/check_deallocate_null.cc: Likewise.
324         * testsuite/ext/throw_allocator/check_delete.cc: Likewise.
325         * testsuite/ext/throw_allocator/check_new.cc: Likewise.
326         * testsuite/ext/throw_allocator/deallocate_global.cc: Likewise.
327         * testsuite/ext/throw_allocator/deallocate_local.cc: Likewise.
328         * testsuite/ext/throw_allocator/explicit_instantiation.cc: Likewise.
329         * testsuite/ext/throw_allocator/variadic_construct.cc: Likewise.
330         * testsuite/tr1/8_c_compatibility/cinttypes/functions.cc: Likewise.
332         * testsuite/30_threads/recursive_mutex/cons/1.cc: Likewise.
333         * testsuite/30_threads/recursive_mutex/cons/assign_neg.cc: Likewise.
334         * testsuite/30_threads/recursive_mutex/cons/copy_neg.cc: Likewise.
335         * testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc:
336         Likewise.
337         * testsuite/30_threads/recursive_mutex/lock/1.cc: Likewise.
338         * testsuite/30_threads/recursive_mutex/native_handle/1.cc: Likewise.
339         * testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc:
340         Likewise.
341         * testsuite/30_threads/recursive_mutex/requirements/standard_layout.cc:
342         Likewise.
343         * testsuite/30_threads/recursive_mutex/requirements/typedefs.cc:
344         Likewise.
345         * testsuite/30_threads/recursive_mutex/try_lock/1.cc: Likewise.
346         * testsuite/30_threads/recursive_mutex/try_lock/2.cc: Likewise.
347         * testsuite/30_threads/recursive_mutex/unlock/1.cc: Likewise.
348         * testsuite/30_threads/recursive_mutex/unlock/2.cc: Likewise.
349         * testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Likewise.
350         * testsuite/30_threads/recursive_timed_mutex/cons/assign_neg.cc:
351         Likewise.
352         * testsuite/30_threads/recursive_timed_mutex/cons/copy_neg.cc:
353         Likewise.
354         * testsuite/30_threads/recursive_timed_mutex/dest/
355         destructor_locked.cc: Likewise.
356         * testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise.
357         * testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise.
358         * testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc:
359         Likewise.
360         * testsuite/30_threads/recursive_timed_mutex/native_handle/
361         typesizes.cc: Likewise.
362         * testsuite/30_threads/recursive_timed_mutex/requirements/typedefs.cc:
363         Likewise.
364         * testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc:
365         Likewise.
366         * testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc:
367         Likewise.
368         * testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc:
369         Likewise.
370         * testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc:
371         Likewise.
372         * testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc:
373         Likewise.
374         * testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc:
375         Likewise.
376         * testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc:
377         Likewise.
378         * testsuite/30_threads/recursive_timed_mutex/unlock/1.cc: Likewise.
379         * testsuite/30_threads/recursive_timed_mutex/unlock/2.cc: Likewise.
380         * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
381         * testsuite/30_threads/scoped_lock/requirements/
382         explicit_instantiation.cc: Likewise.
383         * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Likewise.
384         * testsuite/30_threads/shared_future/cons/assign.cc: Likewise.
385         * testsuite/30_threads/shared_future/cons/constexpr.cc: Likewise.
386         * testsuite/30_threads/shared_future/cons/copy.cc: Likewise.
387         * testsuite/30_threads/shared_future/cons/default.cc: Likewise.
388         * testsuite/30_threads/shared_future/cons/move.cc: Likewise.
389         * testsuite/30_threads/shared_future/cons/move_assign.cc: Likewise.
390         * testsuite/30_threads/shared_future/members/45133.cc: Likewise.
391         * testsuite/30_threads/shared_future/members/get.cc: Likewise.
392         * testsuite/30_threads/shared_future/members/get2.cc: Likewise.
393         * testsuite/30_threads/shared_future/members/valid.cc: Likewise.
394         * testsuite/30_threads/shared_future/members/wait.cc: Likewise.
395         * testsuite/30_threads/shared_future/members/wait_for.cc: Likewise.
396         * testsuite/30_threads/shared_future/members/wait_until.cc: Likewise.
397         * testsuite/30_threads/shared_future/requirements/
398         explicit_instantiation.cc: Likewise.
399         * testsuite/30_threads/shared_lock/cons/1.cc: Likewise.
400         * testsuite/30_threads/shared_lock/cons/2.cc: Likewise.
401         * testsuite/30_threads/shared_lock/cons/3.cc: Likewise.
402         * testsuite/30_threads/shared_lock/cons/4.cc: Likewise.
403         * testsuite/30_threads/shared_lock/cons/5.cc: Likewise.
404         * testsuite/30_threads/shared_lock/cons/6.cc: Likewise.
405         * testsuite/30_threads/shared_lock/locking/1.cc: Likewise.
406         * testsuite/30_threads/shared_lock/locking/2.cc: Likewise.
407         * testsuite/30_threads/shared_lock/locking/3.cc: Likewise.
408         * testsuite/30_threads/shared_lock/locking/4.cc: Likewise.
409         * testsuite/30_threads/shared_lock/modifiers/1.cc: Likewise.
410         * testsuite/30_threads/shared_lock/requirements/
411         explicit_instantiation.cc: Likewise.
412         * testsuite/30_threads/shared_lock/requirements/typedefs.cc: Likewise.
413         * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
414         * testsuite/30_threads/shared_mutex/cons/assign_neg.cc: Likewise.
415         * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
416         * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
417         Likewise.
418         * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
419         * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
420         * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
421         * testsuite/30_threads/shared_timed_mutex/cons/1.cc: Likewise.
422         * testsuite/30_threads/shared_timed_mutex/cons/assign_neg.cc: Likewise.
423         * testsuite/30_threads/shared_timed_mutex/cons/copy_neg.cc: Likewise.
424         * testsuite/30_threads/shared_timed_mutex/requirements/
425         standard_layout.cc: Likewise.
426         * testsuite/30_threads/shared_timed_mutex/try_lock/1.cc: Likewise.
427         * testsuite/30_threads/shared_timed_mutex/try_lock/2.cc: Likewise.
428         * testsuite/30_threads/shared_timed_mutex/try_lock/3.cc: Likewise.
429         * testsuite/30_threads/shared_timed_mutex/unlock/1.cc: Likewise.
430         * testsuite/30_threads/this_thread/1.cc: Likewise.
431         * testsuite/30_threads/this_thread/2.cc: Likewise.
432         * testsuite/30_threads/this_thread/3.cc: Likewise.
433         * testsuite/30_threads/this_thread/4.cc: Likewise.
434         * testsuite/30_threads/this_thread/58038.cc: Likewise.
435         * testsuite/30_threads/thread/70503.cc: Likewise.
436         * testsuite/30_threads/thread/84532.cc: Likewise.
437         * testsuite/30_threads/thread/adl.cc: Likewise.
438         * testsuite/30_threads/thread/cons/1.cc: Likewise.
439         * testsuite/30_threads/thread/cons/2.cc: Likewise.
440         * testsuite/30_threads/thread/cons/3.cc: Likewise.
441         * testsuite/30_threads/thread/cons/4.cc: Likewise.
442         * testsuite/30_threads/thread/cons/49668.cc: Likewise.
443         * testsuite/30_threads/thread/cons/5.cc: Likewise.
444         * testsuite/30_threads/thread/cons/6.cc: Likewise.
445         * testsuite/30_threads/thread/cons/7.cc: Likewise.
446         * testsuite/30_threads/thread/cons/8.cc: Likewise.
447         * testsuite/30_threads/thread/cons/84535.cc: Likewise.
448         * testsuite/30_threads/thread/cons/9.cc: Likewise.
449         * testsuite/30_threads/thread/cons/assign_neg.cc: Likewise.
450         * testsuite/30_threads/thread/cons/copy_neg.cc: Likewise.
451         * testsuite/30_threads/thread/cons/lwg2097.cc: Likewise.
452         * testsuite/30_threads/thread/cons/moveable.cc: Likewise.
453         * testsuite/30_threads/thread/cons/terminate.cc: Likewise.
454         * testsuite/30_threads/thread/id/operators.cc: Likewise.
455         * testsuite/30_threads/thread/members/1.cc: Likewise.
456         * testsuite/30_threads/thread/members/2.cc: Likewise.
457         * testsuite/30_threads/thread/members/3.cc: Likewise.
458         * testsuite/30_threads/thread/members/4.cc: Likewise.
459         * testsuite/30_threads/thread/members/5.cc: Likewise.
460         * testsuite/30_threads/thread/members/hardware_concurrency.cc:
461         Likewise.
462         * testsuite/30_threads/thread/native_handle/cancel.cc: Likewise.
463         * testsuite/30_threads/thread/swap/1.cc: Likewise.
464         * testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
465         * testsuite/30_threads/timed_mutex/cons/assign_neg.cc: Likewise.
466         * testsuite/30_threads/timed_mutex/cons/copy_neg.cc: Likewise.
467         * testsuite/30_threads/timed_mutex/dest/destructor_locked.cc: Likewise.
468         * testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
469         * testsuite/30_threads/timed_mutex/native_handle/1.cc: Likewise.
470         * testsuite/30_threads/timed_mutex/native_handle/typesizes.cc:
471         Likewise.
472         * testsuite/30_threads/timed_mutex/requirements/
473         standard_layout.cc: Likewise.
474         * testsuite/30_threads/timed_mutex/requirements/typedefs.cc: Likewise.
475         * testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
476         * testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
477         * testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise.
478         * testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise.
479         * testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise.
480         * testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise.
481         * testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise.
482         * testsuite/30_threads/timed_mutex/try_lock_until/57641.cc: Likewise.
483         * testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
484         * testsuite/30_threads/timed_mutex/unlock/2.cc: Likewise.
485         * testsuite/30_threads/try_lock/1.cc: Likewise.
486         * testsuite/30_threads/try_lock/2.cc: Likewise.
487         * testsuite/30_threads/try_lock/3.cc: Likewise.
488         * testsuite/30_threads/try_lock/4.cc: Likewise.
489         * testsuite/30_threads/unique_lock/cons/1.cc: Likewise.
490         * testsuite/30_threads/unique_lock/cons/2.cc: Likewise.
491         * testsuite/30_threads/unique_lock/cons/3.cc: Likewise.
492         * testsuite/30_threads/unique_lock/cons/4.cc: Likewise.
493         * testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
494         * testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
495         * testsuite/30_threads/unique_lock/locking/1.cc: Likewise.
496         * testsuite/30_threads/unique_lock/locking/2.cc: Likewise.
497         * testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
498         * testsuite/30_threads/unique_lock/locking/4.cc: Likewise.
499         * testsuite/30_threads/unique_lock/modifiers/1.cc: Likewise.
500         * testsuite/30_threads/unique_lock/requirements/
501         explicit_instantiation.cc: Likewise.
502         * testsuite/30_threads/unique_lock/requirements/typedefs.cc: Likewise.
504         * testsuite/30_threads/async/42819.cc: Remove dg-require-cstdint
505         directive.
506         * testsuite/30_threads/async/49668.cc: Likewise.
507         * testsuite/30_threads/async/54297.cc: Likewise.
508         * testsuite/30_threads/async/84532.cc: Likewise.
509         * testsuite/30_threads/async/any.cc: Likewise.
510         * testsuite/30_threads/async/async.cc: Likewise.
511         * testsuite/30_threads/async/except.cc: Likewise.
512         * testsuite/30_threads/async/forced_unwind.cc: Likewise.
513         * testsuite/30_threads/async/launch.cc: Likewise.
514         * testsuite/30_threads/async/lwg2021.cc: Likewise.
515         * testsuite/30_threads/async/sync.cc: Likewise.
516         * testsuite/30_threads/call_once/39909.cc: Likewise.
517         * testsuite/30_threads/call_once/49668.cc: Likewise.
518         * testsuite/30_threads/call_once/60497.cc: Likewise.
519         * testsuite/30_threads/call_once/call_once1.cc: Likewise.
520         * testsuite/30_threads/call_once/constexpr.cc: Likewise.
521         * testsuite/30_threads/call_once/dr2442.cc: Likewise.
522         * testsuite/30_threads/call_once/once_flag.cc: Likewise.
523         * testsuite/30_threads/condition_variable/54185.cc: Likewise.
524         * testsuite/30_threads/condition_variable/cons/1.cc: Likewise.
525         * testsuite/30_threads/condition_variable/cons/assign_neg.cc:
526         Likewise.
527         * testsuite/30_threads/condition_variable/cons/copy_neg.cc: Likewise.
528         * testsuite/30_threads/condition_variable/members/1.cc: Likewise.
529         * testsuite/30_threads/condition_variable/members/2.cc: Likewise.
530         * testsuite/30_threads/condition_variable/members/3.cc: Likewise.
531         * testsuite/30_threads/condition_variable/members/53841.cc: Likewise.
532         * testsuite/30_threads/condition_variable/members/68519.cc: Likewise.
533         * testsuite/30_threads/condition_variable/native_handle/typesizes.cc:
534         Likewise.
535         * testsuite/30_threads/condition_variable/requirements/
536         standard_layout.cc: Likewise.
537         * testsuite/30_threads/condition_variable/requirements/typedefs.cc:
538         * Likewise.
539         * testsuite/30_threads/condition_variable_any/50862.cc: Likewise.
540         * testsuite/30_threads/condition_variable_any/53830.cc: Likewise.
541         * testsuite/30_threads/condition_variable_any/cons/1.cc: Likewise.
542         * testsuite/30_threads/condition_variable_any/cons/assign_neg.cc:
543         Likewise.
544         * testsuite/30_threads/condition_variable_any/cons/copy_neg.cc:
545         Likewise.
546         * testsuite/30_threads/condition_variable_any/members/1.cc: Likewise.
547         * testsuite/30_threads/condition_variable_any/members/2.cc: Likewise.
548         * testsuite/30_threads/future/cons/assign_neg.cc: Likewise.
549         * testsuite/30_threads/future/cons/constexpr.cc: Likewise.
550         * testsuite/30_threads/future/cons/copy_neg.cc: Likewise.
551         * testsuite/30_threads/future/cons/default.cc: Likewise.
552         * testsuite/30_threads/future/cons/move.cc: Likewise.
553         * testsuite/30_threads/future/cons/move_assign.cc: Likewise.
554         * testsuite/30_threads/future/members/45133.cc: Likewise.
555         * testsuite/30_threads/future/members/get.cc: Likewise.
556         * testsuite/30_threads/future/members/get2.cc: Likewise.
557         * testsuite/30_threads/future/members/share.cc: Likewise.
558         * testsuite/30_threads/future/members/valid.cc: Likewise.
559         * testsuite/30_threads/future/members/wait.cc: Likewise.
560         * testsuite/30_threads/future/members/wait_for.cc: Likewise.
561         * testsuite/30_threads/future/members/wait_until.cc: Likewise.
562         * testsuite/30_threads/future/requirements/explicit_instantiation.cc:
563         Likewise.
564         * testsuite/30_threads/headers/condition_variable/types_std_c++0x.cc:
565         Likewise.
566         * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
567         * testsuite/30_threads/headers/mutex/types_std_c++0x.cc: Likewise.
568         * testsuite/30_threads/headers/thread/std_c++0x_neg.cc: Likewise.
569         * testsuite/30_threads/headers/thread/types_std_c++0x.cc: Likewise.
570         * testsuite/30_threads/lock/1.cc: Likewise.
571         * testsuite/30_threads/lock/2.cc: Likewise.
572         * testsuite/30_threads/lock/3.cc: Likewise.
573         * testsuite/30_threads/lock/4.cc: Likewise.
574         * testsuite/30_threads/lock_guard/cons/1.cc: Likewise.
575         * testsuite/30_threads/lock_guard/requirements/
576         explicit_instantiation.cc: Likewise.
577         * testsuite/30_threads/lock_guard/requirements/typedefs.cc: Likewise.
578         * testsuite/30_threads/mutex/cons/1.cc: Likewise.
579         * testsuite/30_threads/mutex/cons/assign_neg.cc: Likewise.
580         * testsuite/30_threads/mutex/cons/constexpr.cc: Likewise.
581         * testsuite/30_threads/mutex/cons/copy_neg.cc: Likewise.
582         * testsuite/30_threads/mutex/dest/destructor_locked.cc: Likewise.
583         * testsuite/30_threads/mutex/lock/1.cc: Likewise.
584         * testsuite/30_threads/mutex/native_handle/1.cc: Likewise.
585         * testsuite/30_threads/mutex/native_handle/typesizes.cc: Likewise.
586         * testsuite/30_threads/mutex/requirements/standard_layout.cc::
587         Likewise.
588         * testsuite/30_threads/mutex/requirements/typedefs.cc: Likewise.
589         * testsuite/30_threads/mutex/try_lock/1.cc: Likewise.
590         * testsuite/30_threads/mutex/try_lock/2.cc: Likewise.
591         * testsuite/30_threads/mutex/unlock/1.cc: Likewise.
592         * testsuite/30_threads/mutex/unlock/2.cc: Likewise.
593         * testsuite/30_threads/once_flag/cons/constexpr.cc: Likewise.
594         * testsuite/30_threads/packaged_task/49668.cc: Likewise.
595         * testsuite/30_threads/packaged_task/60564.cc: Likewise.
596         * testsuite/30_threads/packaged_task/cons/1.cc: Likewise.
597         * testsuite/30_threads/packaged_task/cons/2.cc: Likewise.
598         * testsuite/30_threads/packaged_task/cons/3.cc: Likewise.
599         * testsuite/30_threads/packaged_task/cons/56492.cc: Likewise.
600         * testsuite/30_threads/packaged_task/cons/alloc.cc: Likewise.
601         * testsuite/30_threads/packaged_task/cons/alloc2.cc: Likewise.
602         * testsuite/30_threads/packaged_task/cons/alloc_min.cc: Likewise.
603         * testsuite/30_threads/packaged_task/cons/assign_neg.cc: Likewise.
604         * testsuite/30_threads/packaged_task/cons/copy_neg.cc: Likewise.
605         * testsuite/30_threads/packaged_task/cons/move.cc: Likewise.
606         * testsuite/30_threads/packaged_task/cons/move_assign.cc: Likewise.
607         * testsuite/30_threads/packaged_task/members/at_thread_exit.cc:
608         Likewise.
609         * testsuite/30_threads/packaged_task/members/get_future.cc: Likewise.
610         * testsuite/30_threads/packaged_task/members/get_future2.cc: Likewise.
611         * testsuite/30_threads/packaged_task/members/invoke.cc: Likewise.
612         * testsuite/30_threads/packaged_task/members/invoke2.cc: Likewise.
613         * testsuite/30_threads/packaged_task/members/invoke3.cc: Likewise.
614         * testsuite/30_threads/packaged_task/members/invoke4.cc: Likewise.
615         * testsuite/30_threads/packaged_task/members/invoke5.cc: Likewise.
616         * testsuite/30_threads/packaged_task/members/reset.cc: Likewise.
617         * testsuite/30_threads/packaged_task/members/reset2.cc: Likewise.
618         * testsuite/30_threads/packaged_task/members/swap.cc: Likewise.
619         * testsuite/30_threads/packaged_task/members/valid.cc: Likewise.
620         * testsuite/30_threads/packaged_task/requirements/
621         explicit_instantiation.cc: Likewise.
622         * testsuite/30_threads/packaged_task/uses_allocator.cc: Likewise.
623         * testsuite/30_threads/promise/60966.cc: Likewise.
624         * testsuite/30_threads/promise/69106.cc: Likewise.
625         * testsuite/30_threads/promise/cons/1.cc: Likewise.
626         * testsuite/30_threads/promise/cons/alloc.cc: Likewise.
627         * testsuite/30_threads/promise/cons/alloc2.cc: Likewise.
628         * testsuite/30_threads/promise/cons/alloc_min.cc: Likewise.
629         * testsuite/30_threads/promise/cons/assign_neg.cc: Likewise.
630         * testsuite/30_threads/promise/cons/copy_neg.cc: Likewise.
631         * testsuite/30_threads/promise/cons/move.cc: Likewise.
632         * testsuite/30_threads/promise/cons/move_assign.cc: Likewise.
633         * testsuite/30_threads/promise/members/at_thread_exit.cc: Likewise.
634         * testsuite/30_threads/promise/members/at_thread_exit2.cc: Likewise.
635         * testsuite/30_threads/promise/members/get_future.cc: Likewise.
636         * testsuite/30_threads/promise/members/get_future2.cc: Likewise.
637         * testsuite/30_threads/promise/members/set_exception.cc: Likewise.
638         * testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
639         * testsuite/30_threads/promise/members/set_value.cc: Likewise.
640         * testsuite/30_threads/promise/members/set_value2.cc: Likewise.
641         * testsuite/30_threads/promise/members/set_value3.cc: Likewise.
642         * testsuite/30_threads/promise/members/swap.cc: Likewise.
643         * testsuite/30_threads/promise/requirements/explicit_instantiation.cc:
644         * Likewise.
645         * testsuite/30_threads/promise/uses_allocator.cc: Likewise.
647         * testsuite/18_support/numeric_limits/char16_32_t.cc: Qualify names
648         from namespace std.
649         * testsuite/20_util/align/2.cc: Remove dg-require-cstdint directive.
650         * testsuite/20_util/duration/arithmetic/1.cc: Likewise.
651         * testsuite/20_util/duration/arithmetic/2.cc: Likewise.
652         * testsuite/20_util/duration/arithmetic/dr2020.cc: Likewise.
653         * testsuite/20_util/duration/arithmetic/dr934-1.cc: Likewise.
654         * testsuite/20_util/duration/arithmetic/dr934-2.cc: Likewise.
655         * testsuite/20_util/duration/comparison_operators/1.cc: Likewise.
656         * testsuite/20_util/duration/cons/1.cc: Likewise.
657         * testsuite/20_util/duration/cons/1_neg.cc: Likewise.
658         * testsuite/20_util/duration/cons/2.cc: Likewise.
659         * testsuite/20_util/duration/cons/54025.cc: Likewise.
660         * testsuite/20_util/duration/cons/dr974_neg.cc: Likewise.
661         * testsuite/20_util/duration/requirements/explicit_instantiation/
662         explicit_instantiation.cc: Likewise.
663         * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
664         * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
665         * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
666         * testsuite/20_util/make_signed/requirements/typedefs-4.cc: Likewise.
667         * testsuite/20_util/ratio/comparisons/comp1.cc: Likewise.
668         * testsuite/20_util/ratio/comparisons/comp2.cc: Likewise.
669         * testsuite/20_util/ratio/comparisons/comp3.cc: Likewise.
670         * testsuite/20_util/ratio/cons/cons1.cc: Likewise.
671         * testsuite/20_util/ratio/operations/45866.cc: Likewise.
672         * testsuite/20_util/ratio/operations/47913.cc: Likewise.
673         * testsuite/20_util/ratio/operations/53840.cc: Likewise.
674         * testsuite/20_util/ratio/operations/ops1.cc: Likewise.
675         * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise.
676         * testsuite/20_util/system_clock/1.cc: Likewise.
677         * testsuite/20_util/time_point/1.cc: Likewise.
678         * testsuite/20_util/time_point/2.cc: Likewise.
679         * testsuite/20_util/time_point/3.cc: Likewise.
680         * testsuite/20_util/time_point/requirements/explicit_instantiation/
681         explicit_instantiation.cc: Likewise.
682         * testsuite/21_strings/basic_string/requirements/
683         explicit_instantiation/char16_t/1.cc: Likewise.
684         * testsuite/21_strings/basic_string/requirements/
685         explicit_instantiation/char32_t/1.cc: Likewise.
686         * testsuite/21_strings/basic_string_view/requirements/
687         explicit_instantiation/char16_t/1.cc: Likewise.
688         * testsuite/21_strings/basic_string_view/requirements/
689         explicit_instantiation/char32_t/1.cc: Likewise.
690         * testsuite/21_strings/char_traits/requirements/
691         explicit_instantiation/char16_t/1.cc: Likewise.
692         * testsuite/21_strings/char_traits/requirements/
693         explicit_instantiation/char32_t/1.cc: Likewise.
694         * testsuite/21_strings/headers/string/types_std_c++0x.cc: Likewise.
695         * testsuite/22_locale/codecvt/char16_t.cc: Likewise.
696         * testsuite/22_locale/codecvt/char32_t.cc: Likewise.
697         * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
698         Likewise.
699         * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc:
700         Likewise.
701         * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
702         Likewise.
703         * testsuite/22_locale/codecvt/utf8.cc: Likewise.
704         * testsuite/23_containers/vector/bool/72847.cc: Likewise.
705         * testsuite/23_containers/vector/debug/multithreaded_swap.cc:
706         Likewise.
707         * testsuite/experimental/string_view/requirements/
708         explicit_instantiation/char16_t/1.cc: Likewise.
709         * testsuite/experimental/string_view/requirements/
710         explicit_instantiation/char32_t/1.cc: Likewise.
711         * testsuite/ext/vstring/requirements/explicit_instantiation/char16_t/
712         1.cc: Likewise.
713         * testsuite/ext/vstring/requirements/explicit_instantiation/char32_t/
714         1.cc: Likewise.
716         * include/ext/throw_allocator.h [!_GLIBCXX_USE_C99_STDINT_TR1]
717         (random_condition, throw_value_random, throw_allocator_random)
718         (std::hash<throw_value_random>): Do not define when <tr1/random> is
719         not usable.
720         * src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_C99_STDINT_TR1]: Do not
721         define transactional memory support when <stdint.h> is not usable.
723         * include/bits/hashtable_policy.h (__detail::__clp2): Use faster
724         implementation that doesn't depend on <stdint.h> types.
725         * include/std/memory (align) [!_GLIBCXX_USE_C99_STDINT_TR1]: Use
726         std::size_t when std::uintptr_t is not usable.
727         [!_GLIBCXX_USE_C99_STDINT_TR1] (pointer_safety, declare_reachable)
728         (undeclare_reachable, declare_no_pointers, undeclare_no_pointers):
729         Define independent of _GLIBCXX_USE_C99_STDINT_TR1.
731         * include/bits/basic_string.h [!_GLIBCXX_USE_C99_STDINT_TR1]
732         (hash<u16string>, hash<u32string>): Remove dependency on
733         _GLIBCXX_USE_C99_STDINT_TR1.
734         * include/bits/char_traits.h [!_GLIBCXX_USE_C99_STDINT_TR1]
735         (char_traits<char16_t>, char_traits<char32_t>): Remove dependency on
736         _GLIBCXX_USE_C99_STDINT_TR1. Use __UINT_LEAST16_TYPE__ and
737         __UINT_LEAST32_TYPE__ or make_unsigned when <stdint.h> is not usable.
738         * include/bits/codecvt.h [!_GLIBCXX_USE_C99_STDINT_TR1]
739         (codecvt<char16_t, char, mbstate_t>)
740         (codecvt<char32_t, char, mbstate_t>)
741         (codecvt_byname<char16_t, char, mbstate_t>)
742         (codecvt_byname<char32_t, char, mbstate_t>): Remove dependency
743         on _GLIBCXX_USE_C99_STDINT_TR1.
744         * include/bits/locale_facets.h [!_GLIBCXX_USE_C99_STDINT_TR1]
745         (_GLIBCXX_NUM_UNICODE_FACETS): Likewise.
746         * include/bits/stringfwd.h [!_GLIBCXX_USE_C99_STDINT_TR1]
747         (char_traits<char16_t>, char_traits<char32_t>)
748         (basic_string<char16_t>, basic_string<char32_t>): Remove dependency
749         on _GLIBCXX_USE_C99_STDINT_TR1.
750         * include/experimental/string_view [!_GLIBCXX_USE_C99_STDINT_TR1]
751         (u16string_view, u32string_view, hash<u16string_view>)
752         (hash<u32string_view>, operator""sv(const char16_t, size_t))
753         (operator""sv(const char32_t, size_t)): Likewise.
754         * include/ext/vstring.h [!_GLIBCXX_USE_C99_STDINT_TR1]
755         (hash<__u16vstring>, hash<__u32vstring>): Likewise.
756         * include/ext/vstring_fwd.h [!_GLIBCXX_USE_C99_STDINT_TR1]
757         (__u16vstring, __u16sso_string, __u16rc_string, __u32vstring)
758         (__u32sso_string, __u32rc_string): Likewise.
759         * include/std/codecvt [!_GLIBCXX_USE_C99_STDINT_TR1] (codecvt_mode)
760         (codecvt_utf8, codecvt_utf16, codecvt_utf8_utf16): Likewise.
761         * include/std/string_view [!_GLIBCXX_USE_C99_STDINT_TR1]
762         (u16string_view, u32string_view, hash<u16string_view>)
763         (hash<u32string_view>, operator""sv(const char16_t, size_t))
764         (operator""sv(const char32_t, size_t)): Likewise.
765         * src/c++11/codecvt.cc: Likewise.
766         * src/c++98/locale_init.cc: Likewise.
767         * src/c++98/localename.cc: Likewise.
769         * include/bits/atomic_futex.h [!_GLIBCXX_USE_C99_STDINT_TR1]
770         (__atomic_futex_unsigned_base): Remove dependency on
771         _GLIBCXX_USE_C99_STDINT_TR1 macro.
772         * include/bits/unique_lock.h [!_GLIBCXX_USE_C99_STDINT_TR1]
773         (unique_lock): Remove dependency on _GLIBCXX_USE_C99_STDINT_TR1.
774         * include/c_global/cstdint [!_GLIBCXX_USE_C99_STDINT_TR1] (intmax_t)
775         (uintmax_t): Define using predefined macros.
776         * include/std/chrono [!_GLIBCXX_USE_C99_STDINT_TR1] (duration)
777         (time_point, system_clock, high_resolution_clock, steady_clock): Remove
778         dependency on _GLIBCXX_USE_C99_STDINT_TR1 macro.
779         (nanoseconds, microseconds, milliseconds, seconds, minutes, hours):
780         [!_GLIBCXX_USE_C99_STDINT_TR1]: Define using __INT64_TYPE__ or
781         long long when <stdint.h> is not usable.
782         * include/std/condition_variable [!_GLIBCXX_USE_C99_STDINT_TR1]
783         (condition_variable, condition_variable_any): Remove dependency on
784         _GLIBCXX_USE_C99_STDINT_TR1.
785         * include/std/future [!_GLIBCXX_USE_C99_STDINT_TR1] (future, promise)
786         (packaged_task, async): Likewise.
787         * include/std/mutex [!_GLIBCXX_USE_C99_STDINT_TR1] (recursive_mutex)
788         (timed_mutex, recursive_timed_mutex, try_lock, lock, scoped_lock)
789         (once_flag, call_once): Likewise.
790         * include/std/ratio [!_GLIBCXX_USE_C99_STDINT_TR1] (ratio): Likewise.
791         * include/std/shared_mutex [!_GLIBCXX_USE_C99_STDINT_TR1]
792         (shared_mutex, shared_timed_mutex, shared_lock): Likewise.
793         * include/std/thread [!_GLIBCXX_USE_C99_STDINT_TR1] (thread)
794         (this_thread::get_id, this_thread::yield, this_thread::sleep_for)
795         (this_thread::sleep_until): Likewise.
796         * src/c++11/chrono.cc: Remove dependency on
797         _GLIBCXX_USE_C99_STDINT_TR1 macro.
798         * src/c++11/condition_variable.cc: Likewise.
799         * src/c++11/futex.cc: Likewise.
800         * src/c++11/future.cc: Likewise.
801         * src/c++11/mutex.cc: Likewise.
802         * src/c++11/thread.cc: Likewise.
803         * testsuite/20_util/duration/literals/range_neg.cc: Adjust dg-error.
804         * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
805         * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
806         * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
807         * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
808         * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
810 2018-07-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
812         PR libstdc++/77691
813         * testsuite/experimental/memory_resource/new_delete_resource.cc:
814         xfail execution on 32-bit Solaris/x86.
816 2018-07-26  Marc Glisse  <marc.glisse@inria.fr>
818         * include/bits/stl_vector.h (_Vector_impl_data::_M_copy_data): New.
819         (_Vector_impl_data::_M_swap_data): Use _M_copy_data.
820         (vector::_M_move_assign): Reorder the swaps.
822 2018-07-26  Jonathan Wakely  <jwakely@redhat.com>
824         PR libstdc++/86676
825         * testsuite/20_util/monotonic_buffer_resource/release.cc: Request
826         same alignment for post-release allocation.
828 2018-07-25  Jonathan Wakely  <jwakely@redhat.com>
830         PR libstdc++/86676
831         * testsuite/20_util/monotonic_buffer_resource/release.cc: Allow for
832         buffer being misaligned and so returned pointer not being at start.
834         * include/experimental/memory_resource: Include <cstddef> header.
836         * acinclude.m4 (glibcxx_SUBDIRS): Add src/c++17.
837         * src/Makefile.am: Add comment.
838         * src/c++17/Makefile.in: Regenerate.
840         * include/Makefile.am: Add new <bits/unique_lock.h> header.
841         * include/Makefile.in: Regenerate.
842         * include/bits/std_mutex.h [!_GLIBCXX_USE_C99_STDINT_TR1] (mutex)
843         (lock_guard): Define independent of _GLIBCXX_USE_C99_STDINT_TR1.
844         (unique_lock): Move definition to ...
845         * include/bits/unique_lock.h: New header.
846         [!_GLIBCXX_USE_C99_STDINT_TR1] (unique_lock): Define unconditionally.
847         [_GLIBCXX_USE_C99_STDINT_TR1] (unique_lock(mutex_type&, time_point))
848         (unique_lock(mutex_type&, duration), unique_lock::try_lock_until)
849         (unique_lock::try_lock_for): Define only when <chrono> is usable.
850         * include/std/condition_variable: Include <bits/unique_lock.h>.
851         * include/std/mutex: Likewise.
853 2018-07-24  Jonathan Wakely  <jwakely@redhat.com>
855         * config/abi/pre/gnu.ver: Export new symbols.
856         * configure: Regenerate.
857         * include/Makefile.am: Add new <memory_resource> header.
858         * include/Makefile.in: Regenerate.
859         * include/precompiled/stdc++.h: Include <memory_resource> for C++17.
860         * include/std/memory_resource: New header.
861         (memory_resource, polymorphic_allocator, new_delete_resource)
862         (null_memory_resource, set_default_resource, get_default_resource)
863         (pool_options, monotonic_buffer_resource): Define.
864         * src/Makefile.am: Add c++17 directory.
865         * src/Makefile.in: Regenerate.
866         * src/c++11/Makefile.am: Fix comment.
867         * src/c++17/Makefile.am: Add makefile for new sub-directory.
868         * src/c++17/Makefile.in: Generate.
869         * src/c++17/memory_resource.cc: New.
870         (newdel_res_t, null_res_t, constant_init, newdel_res, null_res)
871         (default_res, new_delete_resource, null_memory_resource)
872         (set_default_resource, get_default_resource): Define.
873         * testsuite/20_util/memory_resource/1.cc: New test.
874         * testsuite/20_util/memory_resource/2.cc: New test.
875         * testsuite/20_util/monotonic_buffer_resource/1.cc: New test.
876         * testsuite/20_util/monotonic_buffer_resource/allocate.cc: New test.
877         * testsuite/20_util/monotonic_buffer_resource/deallocate.cc: New test.
878         * testsuite/20_util/monotonic_buffer_resource/release.cc: New test.
879         * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
880         New test.
881         * testsuite/20_util/polymorphic_allocator/1.cc: New test.
882         * testsuite/20_util/polymorphic_allocator/resource.cc: New test.
883         * testsuite/20_util/polymorphic_allocator/select.cc: New test.
884         * testsuite/util/testsuite_allocator.h (__gnu_test::memory_resource):
885         Define concrete memory resource for testing.
886         (__gnu_test::default_resource_mgr): Define RAII helper for changing
887         default resource.
889         PR libstdc++/86658
890         * include/bits/stl_algobase.h (__niter_wrap<_Iterator>): Pass unused
891         parameter by reference, to avoid copying invalid iterators.
892         * testsuite/25_algorithms/copy/86658.cc: New test.
894         * include/std/bit (__countl_zero, __countr_zero, __popcount): Use
895         local variables for number of digits instead of type aliases.
896         (__log2p1): Remove redundant branch also checked in __countl_zero.
898         * include/bits/uses_allocator.h (__is_erased_or_convertible): Reorder
899         conditions. Add comments.
900         * testsuite/20_util/uses_allocator/69293_neg.cc: Adjust dg-error line.
901         * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
902         * testsuite/20_util/scoped_allocator/69293_neg.cc: Likewise.
904         * include/bits/uses_allocator.h (__is_erased_or_convertible): Remove.
905         (__uses_allocator_helper): Check conditions directly instead of
906         using __is_erased_or_convertible.
908         * include/experimental/memory_resource: Adjust comments and
909         whitespace.
910         (__resource_adaptor_imp): Add second template parameter for type of
911         memory resource base class.
912         (memory_resource): Define default constructor, destructor, copy
913         constructor and copy assignment operator as defaulted.
915         PR libstdc++/70966
916         * include/experimental/memory_resource (__get_default_resource): Use
917         placement new to create an object with dynamic storage duration.
919 2018-07-23  Jonathan Wakely  <jwakely@redhat.com>
921         PR libstdc++/70940
922         * include/experimental/memory_resource
923         (__resource_adaptor_common::_AlignMgr::_M_unadjust): Add assertion.
924         (__resource_adaptor_common::__guaranteed_alignment): New helper to
925         give maximum alignment an allocator guarantees. Specialize for known
926         allocators using new and malloc.
927         (__resource_adaptor_imp::do_allocate): Use __guaranteed_alignment.
928         (__resource_adaptor_imp::do_deallocate): Likewise.
929         * testsuite/experimental/memory_resource/new_delete_resource.cc:
930         Check that new and delete are called with expected sizes.
932 2018-07-20  Jonathan Wakely  <jwakely@redhat.com>
934         PR libstdc++/86595
935         * include/bits/fs_dir.h (directory_entry::refresh(error_code&)): Add
936         noexcept.
938 2018-07-20  Fangrui Song  <maskray@google.com>
940         * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Use
941         _GLIBCXX_VISIBILITY(default).
943 2018-07-20  Jonathan Wakely  <jwakely@redhat.com>
945         PR libstdc++/86603
946         * include/std/version: Move __cpp_lib_list_remove_return_type macro.
948 2018-07-19  Jonathan Wakely  <jwakely@redhat.com>
950         * include/std/type_traits (__is_member_object_pointer_helper): Use
951         __not_<is_function<_Tp>>::type instead of integral_constant.
952         (__is_member_function_pointer_helper): Likewise for
953         is_function<_Tp>::type.
954         (is_compund): Likewise for __not_<is_fundamental<_Tp>>::type.
955         (__do_is_nt_destructible_impl): Use __bool_constant and reindent.
956         (is_trivially_constructible): Remove redundant use of
957         is_constructible.
958         (__is_trivially_copy_assignable_impl): Remove redundant use of
959         is_copy_assignable.
960         (__is_trivially_move_assignable_impl): Remove redundant use of
961         is_move_assignable.
962         (is_trivially_destructible): Use __bool_constant.
963         * testsuite/20_util/is_trivially_assignable/value.cc: Add some more
964         tests for scalar types.
966 2018-07-19  Glen Joseph Fernandes  <glenjofe@gmail.com>
968         * include/bits/stl_algobase.h (__copy_move_a): Used
969         __is_trivially_copyable.
970         (__copy_move_backward_a): Likewise.
971         * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
972         New test.
974 2018-07-17  Jonathan Wakely  <jwakely@redhat.com>
976         PR libstdc++/86450
977         * acinclude.m4 (GLIBCXX_CHECK_COMPILER_FEATURES): Don't define WERROR.
978         (GLIBCXX_EXPORT_FLAGS): Use -Wabi=2 instead of -Wabi.
979         * configure: Regenerate.
980         * configure.ac: Change GLIBCXX_ENABLE_WERROR default to "no".
981         * doc/Makefile.in: Regenerate.
982         * fragment.am: Set WERROR_FLAG to -Werror instead of $(WERROR).
983         * include/Makefile.in: Regenerate.
984         * libsupc++/Makefile.in: Regenerate.
985         * po/Makefile.in: Regenerate.
986         * python/Makefile.in: Regenerate.
987         * src/Makefile.in: Regenerate.
988         * src/c++11/Makefile.in: Regenerate.
989         * src/c++11/debug.cc: Use diagnostic pragmas to suppress warnings
990         from -Wabi=2 that don't affect exported symbols.
991         * src/c++98/Makefile.in: Regenerate.
992         * src/filesystem/Makefile.in: Regenerate.
993         * testsuite/Makefile.in: Regenerate.
995         * src/c++11/compatibility-thread-c++0x.cc [_GLIBCXX_SHARED]
996         (_Async_state_common::_M_join): Simplify use of std::call_once and
997         corresponding explicit instantiation.
998         (_Maybe_wrap_member_pointer, _Bind_simple, _Bind_simple_helper)
999         (__bind_simple): Remove definitions and explicit instantiation that
1000         are not required by exported symbols.
1002 2018-07-16  Jonathan Wakely  <jwakely@redhat.com>
1004         * scripts/create_testsuite_files: Fix typo in comment.
1006         PR libstdc++/86537
1007         * include/bits/shared_ptr.h (less<shared_ptr<_Tp>>): Remove
1008         non-standard partial specialization.
1009         * include/bits/shared_ptr_base.h (_Sp_less): Remove class definition.
1010         (less<__shared_ptr<_Tp, _Lp>): Remove partial specialization.
1011         * testsuite/20_util/shared_ptr/comparison/86537.cc: New test.
1013 2018-07-16  Andreas Krebbel  <krebbel@linux.ibm.com>
1015         * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Update.
1016         * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Update.
1017         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
1019 2018-07-06  François Dumont  <fdumont@gcc.gnu.org>
1021         * include/debug/functions.h (__gnu_debug::__check_string): Move...
1022         * include/debug/string (__gnu_debug::__check_string): ... here.
1023         (_GLIBCXX_DEBUG_VERIFY_STR_COND_AT): New.
1024         (__glibcxx_check_string_n_constructor): New.
1025         (__gnu_debug::basic_string<>(const _CharT*, size_type, const _Alloc&)):
1026         Use latter.
1027         (__glibcxx_check_string_constructor): New.
1028         (__gnu_debug::basic_string<>(const _CharT*, const _Alloc&)):
1029         Use latter.
1030         * testsuite/21_strings/basic_string/debug/1_neg.cc: New.
1031         * testsuite/21_strings/basic_string/debug/2_neg.cc: New.
1033 2018-07-06  Jonathan Wakely  <jwakely@redhat.com>
1035         PR libstdc++/84928 use std::move in <numeric> algorithms
1036         * include/bits/stl_numeric.h (_GLIBCXX_MOVE_IF_20): Define macro to
1037         conditionally move, according to __cplusplus value.
1038         (accumulate, inner_product, partial_sum, adjacent_difference): Use
1039         _GLIBCXX_MOVE_IF_20.
1040         * testsuite/26_numerics/accumulate/lwg2055.cc: New test.
1041         * testsuite/26_numerics/adjacent_difference/lwg2055.cc: New test.
1042         * testsuite/26_numerics/inner_product/lwg2055.cc: New test.
1043         * testsuite/26_numerics/partial_sum/lwg2055.cc: New test.
1045         * config/abi/pre/gnu.ver: Use wildcards to combine related patterns.
1047         P0935R0 Eradicating unnecessarily explicit default constructors
1048         * config/abi/pre/gnu.ver: Tighten existing patterns and export new
1049         default constructor symbols.
1050         * include/std/sstream (basic_stringbuf, basic_istringstream)
1051         (basic_ostringstream, basic_stringstream): Remove default arguments
1052         from explicit constructors taking ios_base::openmode and add separate
1053         non-explicit default constructors.
1054         * testsuite/27_io/basic_istringstream/cons/default.cc: New.
1055         * testsuite/27_io/basic_ostringstream/cons/default.cc: New.
1056         * testsuite/27_io/basic_stringstream/cons/default.cc: New.
1057         * testsuite/27_io/basic_stringbuf/cons/char/default.cc: New.
1058         * testsuite/27_io/basic_stringbuf/cons/wchar_t/default.cc: New.
1060         * include/std/variant (__accepted_index): Use void_t.
1062 2018-07-05  Jonathan Wakely  <jwakely@redhat.com>
1064         PR libstdc++/85831
1065         * config/abi/pre/gnu.ver: Export move constructors and move
1066         assignment operators for std::logic_error and std::runtime_error.
1067         * include/std/stdexcept: Use _GLIBCXX_NOTHROW instead of
1068         _GLIBCXX_USE_NOEXCEPT.
1069         (logic_error, runtime_error): Declare move constructors and move
1070         assignment operators. When not declared already, define copy
1071         constructors and copy assignment operators as explicit-defaulted.
1072         (domain_error, invalid_argument, length_error, out_of_range)
1073         (overflow_error, underflow_error): Define move constructors and move
1074         assignment operators as explicitly-defaulted.
1075         * libsupc++/exception.h (exception): Likewise.
1076         * src/c++11/cow-stdexcept.cc (logic_error, runtime_error): Define
1077         move constructors and move assignment operators as defaulted.
1078         * testsuite/19_diagnostics/stdexcept.cc: Check that constructors and
1079         assignment operators are defined.
1081         * testsuite/21_strings/basic_string/cons/char/deduction.cc: XFAIL for
1082         COW strings.
1083         * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
1084         Likewise.
1085         * testsuite/21_strings/basic_string/requirements/
1086         explicit_instantiation/debug.cc: Likewise.
1088         PR libstdc++/58265
1089         * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
1090         (basic_string::assign(basic_string&&)): Add conditional noexcept
1091         depending on the allocator's is_always_equal property (LWG 2063).
1092         * testsuite/21_strings/basic_string/modifiers/assign/char/
1093         move_assign.cc: Check for non-throwing exception specification.
1094         * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/
1095         move_assign.cc: Likewise.
1097         PR libstdc++/58265
1098         * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
1099         [_GLIBCXX_FULLY_DYNAMIC_STRING==0] (basic_string::basic_string()):
1100         Add GLIBCXX_NOEXCEPT.
1101         (basic_string::operator=(basic_string&&)): Add _GLIBCXX_NOEXCEPT_IF
1102         to depend on the allocator's is_always_equal property (LWG 2063).
1103         (basic_string::swap(basic_string&)): Likewise.
1104         * include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]
1105         (basic_string::swap(basic_string&)): Likewise.
1106         * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
1107         Check is_nothrow_move_assignable.
1108         * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
1109         Check is_nothrow_move_assignable.
1110         * testsuite/21_strings/basic_string/cons/char/
1111         noexcept_move_construct.cc: Likewise.
1112         * testsuite/21_strings/basic_string/cons/wchar_t/
1113         noexcept_move_construct.cc: Likewise.
1115 2018-07-04  Jonathan Wakely  <jwakely@redhat.com>
1117         P0646R1 Improving the Return Value of Erase-Like Algorithms I
1118         * include/bits/forward_list.h (__cpp_lib_list_remove_return_type):
1119         Define.
1120         (forward_list::__remove_return_type): Define typedef as size_type or
1121         void, according to __cplusplus value.
1122         (_GLIBCXX_FWDLIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
1123         empty, according to __cplusplus value.
1124         (forward_list::remove, forward_list::unique): Use typedef and macro
1125         to change return type and add abi-tag for C++2a.
1126         (forward_list::remove_if<Pred>, forward_list::unique<BinPred>): Use
1127         typedef to change return type for C++2a.
1128         * include/bits/forward_list.tcc (_GLIBCXX20_ONLY): Define macro.
1129         (forward_list::remove, forward_list::remove_if<Pred>)
1130         (forward_list::unique<BinPred>): Return number of removed elements
1131         for C++2a.
1132         * include/bits/list.tcc (_GLIBCXX20_ONLY): Define macro.
1133         (list::remove, list::unique, list::remove_if<Predicate>)
1134         (list::unique<BinaryPredicate>): Return number of removed elements
1135         for C++2a.
1136         * include/bits/stl_list.h (__cpp_lib_list_remove_return_type): Define.
1137         (list::__remove_return_type): Define typedef as size_type or
1138         void, according to __cplusplus value.
1139         (_GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
1140         empty, according to __cplusplus value.
1141         (list::remove, list::unique): Use typedef and macro to change return
1142         type and add abi-tag for C++2a.
1143         (list::remove_if<Predicate>, list::unique<BinaryPredicate>): Use
1144         typedef to change return type for C++2a.
1145         * include/std/version (__cpp_lib_list_remove_return_type): Define.
1146         * testsuite/23_containers/forward_list/operations/
1147         remove_cxx20_return.cc: New.
1148         * testsuite/23_containers/forward_list/operations/
1149         unique_cxx20_return.cc: New.
1151         P0458R2 Checking for Existence of an Element in Associative Containers
1152         * include/bits/stl_map.h (map::contains): Add for C++2a.
1153         * include/bits/stl_multimap.h (multimap::contains): Likewise.
1154         * include/bits/stl_multiset.h (multiset::contains): Likewise.
1155         * include/bits/stl_set.h (set::contains): Likewise.
1156         * include/bits/stl_tree.h (__has_is_transparent_t): Define alias.
1157         (_Rb_tree::_M_find_tr, _Rb_tree::_M_count_tr)
1158         (_Rb_tree::_M_lower_bound_tr, _Rb_tree::_M_upper_bound_tr)
1159         (_Rb_tree::_M_equal_range_tr): Use __has_is_transparent_t.
1160         * include/bits/unordered_map.h (unordered_map::contains)
1161         (unordered_multimap::contains): Add for C++2a.
1162         * include/bits/unordered_set.h (unordered_set::contains)
1163         (unordered_multiset::contains): Likewise.
1164         * testsuite/23_containers/map/operations/contains.cc: New.
1165         * testsuite/23_containers/multimap/operations/contains.cc: New.
1166         * testsuite/23_containers/multiset/operations/contains.cc: New.
1167         * testsuite/23_containers/set/operations/contains.cc: New.
1168         * testsuite/23_containers/unordered_map/operations/contains.cc: New.
1169         * testsuite/23_containers/unordered_multimap/operations/contains.cc:
1170         New.
1171         * testsuite/23_containers/unordered_multiset/operations/contains.cc:
1172         New.
1173         * testsuite/23_containers/unordered_set/operations/contains.cc: New.
1175 2018-07-04  François Dumont  <fdumont@gcc.gnu.org>
1177         PR libstdc++/86272
1178         * include/debug/string
1179         (__gnu_debug::basic_string<>::insert<_Ite>(const_iterator, _Ite, _Ite)):
1180         Use __glibcxx_check_insert_range.
1181         * 21_strings/basic_string/cons/char/1.cc: Adapt test to use
1182         __gnu_debug::string when _GLIBCXX_DEBUG.
1183         * 21_strings/basic_string/init-list.cc: Likewise.
1184         * 21_strings/basic_string/modifiers/insert/char/1.cc: Likewise.
1185         * 21_strings/basic_string/modifiers/insert/char/2.cc: Likewise.
1186         * 21_strings/basic_string/modifiers/insert/char/83328.cc: Likewise.
1187         * 21_strings/basic_string/types/1.cc: Likewise.
1189 2018-07-04  Jonathan Wakely  <jwakely@redhat.com>
1191         * testsuite/25_algorithms/make_heap/complexity.cc: Require effective
1192         target for std::random_device.
1193         * testsuite/26_numerics/random/random_device/cons/default.cc:
1194         Likewise.
1195         * testsuite/experimental/algorithm/sample-2.cc: Likewise.
1196         * testsuite/experimental/algorithm/shuffle.cc: Likewise.
1197         * testsuite/experimental/random/randint.cc: Likewise.
1198         * testsuite/lib/libstdc++.exp
1199         (check_effective_target_random_device): New proc.
1201 2018-07-04  Jonathan Wakely  <jwakely@redhat.com>
1202             Jakub Jelinek  <jakub@redhat.com>
1204         * include/std/bit (__rotl, __rotr): Fix for non-power of two sizes.
1206 2018-07-04  Jonathan Wakely  <jwakely@redhat.com>
1208         PR libstdc++/86398
1209         * include/std/type_traits (is_trivially_constructible): Check
1210         is_constructible before __is_trivially_constructible.
1211         * testsuite/20_util/is_trivially_constructible/value.cc: Add more
1212         tests, including negative cases.
1213         * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Use
1214         zero for dg-error lineno.
1215         * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1216         Likewise.
1218         * include/std/bit (__rotl, __rotr): Avoid branch.
1219         (_If_is_unsigned_integer): Use remove_cv_t.
1220         * testsuite/26_numerics/bit/bitops.count/popcount.cc: New.
1222 2018-07-03  Jonathan Wakely  <jwakely@redhat.com>
1224         P0556R3 Integral power-of-2 operations, P0553R2 Bit operations
1225         * include/Makefile.am: Add new header.
1226         * include/Makefile.in: Regenerate.
1227         * include/precompiled/stdc++.h: Include new header.
1228         * include/std/bit: New header.
1229         (__rotl, __rotr, __countl_zero, __countl_one, __countr_zero)
1230         (__countr_one, __popcount, __ispow2, __ceil2, __floor2, __log2p1):
1231         Define for C++14.
1232         [!__STRICT_ANSI__] (rotl, rotr, countl_zero, countl_one, countr_zero)
1233         (countr_one, popcount): Define for C++2a. Also overload for std::byte.
1234         (ispow2, ceil2, floor2, log2p1): Define for C++2a.
1235         [!__STRICT_ANSI__] (ispow2, ceil2, floor2, log2p1): Overload for
1236         std::byte.
1237         * testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: New.
1238         * testsuite/26_numerics/bit/bit.pow.two/floor2.cc: New.
1239         * testsuite/26_numerics/bit/bit.pow.two/ispow2.cc: New.
1240         * testsuite/26_numerics/bit/bit.pow.two/log2p1.cc: New.
1241         * testsuite/26_numerics/bit/bitops.rot/rotl.cc: New.
1242         * testsuite/26_numerics/bit/bitops.rot/rotr.cc: New.
1243         * testsuite/26_numerics/bit/bitops.count/countl_one.cc: New.
1244         * testsuite/26_numerics/bit/bitops.count/countl_zero.cc: New.
1245         * testsuite/26_numerics/bit/bitops.count/countr_one.cc: New.
1246         * testsuite/26_numerics/bit/bitops.count/countr_zero.cc: New.
1248         * include/bits/alloc_traits.h: Remove redundant preprocessor
1249         condition.
1251 2018-07-03  François Dumont  <fdumont@gcc.gnu.org>
1253         * include/bits/stl_algobase.h (__niter_wrap): New.
1254         (__copy_move_a2(_II, _II, _OI)): Use latter.
1255         (__copy_move_backward_a2(_BI1, _BI1, _BI2)): Likewise.
1256         (fill_n(_OI, _Size, const _Tp&)): Likewise.
1257         (equal(_II1, _II1, _II2)): Use __glibcxx_requires_can_increment.
1258         * include/debug/stl_iterator.h
1259         (std::__niter_base(const __gnu_cxx::_Safe_iterator<
1260         __gnu_cxx::__normal_iterator<>, _Sequence>&)): New declaration.
1261         * include/debug/vector (__niter_base(const __gnu_cxx::_Safe_iterator<
1262         __gnu_cxx::__normal_iterator<>, _Sequence>&)): New.
1264 2018-07-02  Jonathan Wakely  <jwakely@redhat.com>
1266         P0758R1 Implicit conversion traits
1267         * include/std/type_traits [__cplusplus > 201703]
1268         (__is_convertible_helper::__is_nothrow_type): Define new member.
1269         (__is_convertible_helper<_From, _To, false>::__test_aux1): Add
1270         noexcept.
1271         (__is_convertible_helper<_From, _To, false>::__test_nothrow)
1272         (__is_convertible_helper<_From, _To, false>::__is_nothrow_type): Add
1273         new members.
1274         (is_nothrow_convertible, is_nothrow_convertible_v): Define for C++2a.
1275         * testsuite/20_util/is_nothrow_convertible/value.cc: New.
1276         * testsuite/20_util/is_nothrow_convertible/requirements/
1277         explicit_instantiation.cc: New.
1278         * testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc:
1279         New.
1281         P0887R1 The identity metafunction
1282         * include/std/type_traits (type_identity, type_identity_t): Define
1283         for C++2a.
1284         * testsuite/20_util/type_identity/requirements/alias_decl.cc: New.
1285         * testsuite/20_util/type_identity/requirements/
1286         explicit_instantiation.cc:New.
1287         * testsuite/20_util/type_identity/requirements/typedefs.cc: New.
1289         * include/bits/regex.h (sub_match::operator string_type): Call str().
1290         (sub_match::compare): Use _M_str() instead of str().
1291         (sub_match::_M_compare): New public function.
1292         (sub_match::__string_view): New helper type.
1293         (sub_match::_M_str): New overloaded functions to avoid creating a
1294         string_type object when not needed.
1295         (operator==, operator!=, operator<, operator>, operator<=, operator>=):
1296         Use sub_match::_M_compare instead of creating string_type objects.
1297         Fix Doxygen comments.
1298         * include/bits/regex_compiler.h (__has_contiguous_iter): Remove.
1299         (__is_contiguous_normal_iter): Rename to __is_contiguous_iter and
1300         simplify.
1301         (__enable_if_contiguous_iter, __disable_if_contiguous_iter): Use
1302         __enable_if_t.
1303         * include/std/type_traits (__enable_if_t): Define for C++11.
1304         * testsuite/28_regex/sub_match/compare.cc: New.
1305         * testsuite/util/testsuite_iterators.h (remove_cv): Add transformation
1306         trait.
1307         (input_iterator_wrapper): Use remove_cv for value_type argument of
1308         std::iterator base class.
1310 2018-06-29  Jonathan Wakely  <jwakely@redhat.com>
1312         * testsuite/20_util/add_rvalue_reference/requirements/alias_decl.cc:
1313         Add whitespace to dejagnu directive.
1314         * testsuite/23_containers/array/element_access/at_neg.cc: Likewise.
1316 2018-06-27  François Dumont  <fdumont@gcc.gnu.org>
1318         * include/bits/stl_vector.h
1319         (struct _Vector_base<>::_Vector_impl_data): New.
1320         (struct _Vector_base<>::_Vector_impl): Inherit from latter.
1321         (_Vector_base<>::_Vector_impl::_M_swap_data): Move...
1322         (_Vector_base<>::_Vector_impl_data::_M_swap_data): ...here.
1323         (_Vector_base<>::_Vector_impl()): Add noexcept qualification.
1324         (_Vector_base<>::_Vector_impl(_Vector_impl&&)): New.
1325         (_Vector_base<>::_Vector_impl(_Tp_alloc_type&&, _Vector_impl&&)): New.
1326         (_Vector_base(const allocator_type&, _Vector_base&&)): New, use latter.
1327         (_Vector_base()): Default.
1328         (_Vector_base(_Vector_base&&)): Default.
1329         (_Vector_base(size_t)) [_GLIBCXX_INLINE_VERSION]: Delete.
1330         (_Vector_base(_Tp_alloc_type&&)) [_GLIBCXX_INLINE_VERSION]: Delete.
1331         (_Vector_base::_M_create_storage(size_t)): Make protected.
1332         (vector()): Default.
1333         (vector(vector&&)): Default.
1334         (vector(vector&&, const allocator_type&, true_type)): New.
1335         (vector(vector&&, const allocator_type&, false_type)): New.
1336         (vector(vector&&, const allocator_type&)): Use latters.
1337         (vector(_InputIte, _InputIte, const allocator_type&)): Call
1338         _M_range_initialize directly.
1339         * include/debug/vector
1340         (vector(vector&&, const allocator_type&)): Add noexcept qualification.
1341         * testsuite/23_containers/vector/allocator/default_init.cc: New.
1342         * testsuite/23_containers/vector/cons/noexcept_move_construct.cc: Add
1343         static assertions.
1345 2018-06-27  Jonathan Wakely  <jwakely@redhat.com>
1347         * include/bits/cpp_type_traits.h [__cplusplus >= 201703]
1348         (__is_byte<byte>): Define specialization for std::byte.
1350         PR libstdc++/86138
1351         * include/bits/basic_string.tcc: [_GLIBCXX_EXTERN_TEMPLATE < 0]
1352         Declare explicit instantiations of COW empty reps and I/O functions.
1354 2018-06-26  David Edelsohn  <dje.gcc@gmail.com>
1356         * testsuite/experimental/algorithm/sample-2.cc: Add TLS DejaGNU
1357         directives.
1358         * testsuite/experimental/algorithm/shuffle.cc: Likewise.
1360 2018-06-26  Jonathan Wakely  <jwakely@redhat.com>
1362         * include/bits/regex.tcc (regex_iterator::operator==): Add missing
1363         noexcept.
1365 2018-06-25  Jonathan Wakely  <jwakely@redhat.com>
1367         PR libstdc++/86112
1368         * python/libstdcxx/v6/printers.py (add_one_template_type_printer):
1369         Replace dict comprehension.
1371         PR libstdc++/81092
1372         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
1374         PR libstdc++/86292
1375         * include/bits/stl_vector.h (vector::_M_range_initialize<InputIter>):
1376         Add try-catch block.
1377         * testsuite/23_containers/vector/cons/86292.cc: New.
1379         * doc/xml/manual/status_cxx2017.xml: Document N4531 status.
1381         * include/experimental/algorithm (sample, shuffle): Add new overloads
1382         using per-thread random number engine.
1383         * testsuite/experimental/algorithm/sample.cc: Simpify and reduce
1384         dependencies by using __gnu_test::test_container.
1385         * testsuite/experimental/algorithm/sample-2.cc: New.
1386         * testsuite/experimental/algorithm/shuffle.cc: New.
1388 2018-06-22  Jonathan Wakely  <jwakely@redhat.com>
1390         * config/abi/pre/gnu.ver: Fix __cxx11::basic_string patterns for
1391         different size_t mangling on 32-bit targets.
1393         PR libstdc++/86280
1394         * include/experimental/memory_resource
1395         (__resource_adaptor_common::_AlignMgr::_M_token_size): Use type large
1396         enough for result of left shift.
1398         PR libstdc++/86138
1399         * include/bits/basic_string.tcc:
1400         [__cplusplus > 201402 && !_GLIBCXX_USE_CXX11_ABI]
1401         (basic_string<char>::_Rep::_S_empty_rep_storage)
1402         (basic_string<wchar_t>::_Rep::_S_empty_rep_storage): Add explicit
1403         instantiation declarations.
1404         [__cplusplus > 201402] (operator>>, operator<<, getline): Re-enable
1405         explicit instantiation declarations.
1406         * testsuite/21_strings/basic_string/cons/char/86138.cc: New.
1407         * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc: New.
1409 2018-06-21  Jonathan Wakely  <jwakely@redhat.com>
1411         PR libstdc++/83328
1412         * acinclude.m4 (libtool_VERSION): Bump to 6:26:0.
1413         * config/abi/pre/gnu.ver: Add GLIBCXX_3.4.26 and export new symbol.
1414         * configure: Regenerate.
1415         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1416         (basic_string::insert(const_iterator, initializer_list<C>)): Add.
1417         [_GLIBCXX_USE_CXX11_ABI && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS]
1418         (basic_string::insert(iterator, initializer_list<C>)): Suppress
1419         definition.
1420         * include/debug/string (basic_string::insert(iterator, C)): Change
1421         first parameter to const_iterator.
1422         (basic_string::insert(iterator, size_type, C)): Likewise. Change
1423         return type to iterator.
1424         (basic_string::insert(iterator, InputIterator, InputIterator)):
1425         Likewise.
1426         (basic_string::insert(iterator, initializer_list<C>)): Change first
1427         parameter to const_iterator and return type to iterator.
1428         * src/c++11/string-inst.cc: Extend comment.
1429         * testsuite/21_strings/basic_string/modifiers/insert/char/83328.cc:
1430         New.
1431         * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/83328.cc:
1432         New.
1433         * testsuite/util/testsuite_abi.cc: Add new symbol version.
1435         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
1437         PR libstdc++/70940
1438         * include/experimental/memory_resource
1439         (__resource_adaptor_imp::do_deallocate): Add missing return.
1440         * testsuite/experimental/memory_resource/new_delete_resource.cc: New.
1441         * testsuite/experimental/memory_resource/resource_adaptor.cc: Test
1442         resource_adaptor with std::allocator, __gnu_cxx::new_allocator and
1443         __gnu_cxx::malloc_allocator.
1445         PR libstdc++/70940
1446         * include/experimental/memory_resource (__resource_adaptor_common):
1447         New base class.
1448         (__resource_adaptor_common::_AlignMgr): Helper for obtaining aligned
1449         pointer from unaligned, and vice versa.
1450         (__resource_adaptor_imp::do_allocate): Use _AlignMgr to adjust
1451         allocated pointer to meet alignment request.
1452         (__resource_adaptor_imp::do_deallocate): Use _AlignMgr to retrieve
1453         original pointer for deallocation.
1454         (__resource_adaptor_imp::do_is_equal): Reformat.
1455         (__resource_adaptor_imp::_S_aligned_size): Remove.
1456         (__resource_adaptor_imp::_S_supported): Remove.
1457         (new_delete_resource): Use __gnu_cxx::new_allocator.
1458         * testsuite/experimental/memory_resource/resource_adaptor.cc: Test
1459         extended alignments and use debug_allocator to check for matching
1460         allocate/deallocate pairs.
1462 2018-06-21  François Dumont  <fdumont@gcc.gnu.org>
1464         * include/debug/safe_iterator.h
1465         (_Safe_iterator<>(const _Safe_iterator<_MutableIterator,>& __x)):
1466         Compare __x base iterator with a value-initialized iterator of the
1467         same type.
1469 2018-06-20  Jonathan Wakely  <jwakely@redhat.com>
1471         PR libstdc++/70966
1472         * include/experimental/memory_resource (__resource_adaptor_imp): Add
1473         static assertions to enforce requirements on pointer types.
1474         (__resource_adaptor_imp::get_allocator()): Add noexcept.
1475         (new_delete_resource, null_memory_resource): Return address of an
1476         object with dynamic storage duration.
1477         (__null_memory_resource): Remove.
1478         * testsuite/experimental/memory_resource/70966.cc: New.
1480         * testsuite/20_util/duration/arithmetic/dr3050.cc: Add new test
1481         missed from recent commit.
1483 2018-06-19  Jonathan Wakely  <jwakely@redhat.com>
1485         * include/std/utility: Remove unused <exception> header.
1487 2018-06-18  Jonathan Wakely  <jwakely@redhat.com>
1489         LWG 2975 ensure construct(pair<T,U>*, ...) used to construct pairs
1490         * include/std/scoped_allocator (__not_pair): Define SFINAE helper.
1491         (construct(_Tp*, _Args&&...)): Remove from overload set when _Tp is
1492         a specialization of std::pair.
1493         * testsuite/20_util/scoped_allocator/construct_pair.cc: Ensure
1494         pair elements are constructed correctly.
1496         LWG 2989 hide path iostream operators from normal lookup
1497         * include/bits/fs_path.h (operator<<, operator>>): Define inline as
1498         friends.
1499         * testsuite/27_io/filesystem/path/io/dr2989.cc: New.
1501         LWG 3050 Fix cv-qualification of convertibility constraints
1502         * include/std/chrono (duration, operator*, operator/, operator%): Use
1503         const-qualified type as source type in is_convertible constraints.
1504         * testsuite/20_util/duration/arithmetic/dr3050.cc: New.
1505         * testsuite/20_util/duration/cons/dr3050.cc: New.
1506         * testsuite/20_util/duration/literals/range.cc: Rename to...
1507         * testsuite/20_util/duration/literals/range_neg.cc: Here. Adjust
1508         dg-error lineno.
1510 2018-06-18  Maya Rashish  <coypu@sdf.org>
1512         * crossconfig.m4: Handle OpenBSD just like NetBSD.
1513         * configure: Rebuilt.
1515 2018-06-18  Jonathan Wakely  <jwakely@redhat.com>
1517         P0754R2 <version> header
1518         * include/Makefile.am: Add new header.
1519         * include/Makefile.in: Regenerate.
1520         * include/bits/c++config: Change doxygen comment to suggest <version>
1521         instead of <iosfwd>.
1522         * include/precompiled/stdc++.h: Include <cwchar> and <cwctype>
1523         unconditionally.  Add C++17 and C++20 headers.
1524         * include/std/version: New header.
1525         * testsuite/17_intro/headers/c++2017/all_attributes.cc: New.
1526         * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc: New.
1527         * testsuite/17_intro/headers/c++2017/all_no_rtti.cc: New.
1528         * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc: New.
1529         * testsuite/17_intro/headers/c++2017/operator_names.cc: New.
1530         * testsuite/17_intro/headers/c++2017/stdc++.cc: New.
1531         * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
1532         New.
1533         * testsuite/17_intro/headers/c++2020/all_attributes.cc: New.
1534         * testsuite/17_intro/headers/c++2020/all_no_exceptions.cc: New.
1535         * testsuite/17_intro/headers/c++2020/all_no_rtti.cc: New.
1536         * testsuite/17_intro/headers/c++2020/all_pedantic_errors.cc: New.
1537         * testsuite/17_intro/headers/c++2020/operator_names.cc: New.
1538         * testsuite/17_intro/headers/c++2020/stdc++.cc: New.
1539         * testsuite/17_intro/headers/c++2020/stdc++_multiple_inclusion.cc:
1540         New.
1541         * testsuite/18_support/headers/version/macros.cc: New.
1542         * testsuite/18_support/headers/version/macros.cc: New.
1544         * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Only check when
1545         enable_libstdcxx_filesystem_ts = yes. Check for link, readlink and
1546         symlink.
1547         * config.h.in: Regenerate.
1548         * configure: Regenerate.
1549         * configure.ac: Remove AC_CHECK_FUNCS for link, readlink and symlink.
1551         LWG 3035. std::allocator's constructors should be constexpr
1552         * include/bits/allocator.h (allocator): Add constexpr to constructors
1553         for C++2a. Replace dynamic exception specifications with NOTHROW
1554         macro.
1555         (allocator, operator==, operator!=): Replace USE_NOEXCEPT macro with
1556         NOTHROW.
1557         * include/bits/c++config (_GLIBCXX20_CONSTEXPR): Define.
1558         * include/ext/malloc_allocator.h (malloc_allocator): Add constexpr
1559         to constructors for C++2a.
1560         * include/ext/new_allocator.h (new_allocator): Likewise.
1562 2018-06-16  Jonathan Wakely  <jwakely@redhat.com>
1564         LWG 3076 basic_string CTAD ambiguity
1565         * doc/xml/manual/intro.xml: Document LWG 3076 change.
1566         * include/bits/basic_string.h
1567         [__cpp_deduction_guides && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS]
1568         (basic_string(const _CharT*, const _Alloc&)): Turn into a function
1569         template constrained by _RequireAllocator.
1570         (basic_string(size_type, _CharT, const _Alloc&)): Likewise.
1571         * src/c++11/string-inst.cc (_GLIBCXX_DEFINING_STRING_INSTANTIATIONS):
1572         Define.
1573         * testsuite/21_strings/basic_string/cons/char/deduction.cc: Test
1574         deduction
1575         * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
1576         Likewise.
1578 2018-06-15  Jonathan Wakely  <jwakely@redhat.com>
1580         PR libstdc++/86169
1581         * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
1582         (basic_string::data()): Unshare string.
1583         * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
1584         New.
1586         * include/std/string_view (basic_string_view(const CharT*)): Remove
1587         check for null pointer and add nonnull attribute.
1588         (compare(const CharT*), compare(size_type, size_type, const CharT*))
1589         (find(const CharT*, size_type), rfind(const CharT*, size_type))
1590         (find_first_of(const CharT*, size_type))
1591         (find_last_of(const CharT*, size_type))
1592         (find_first_not_of(const CharT*, size_type))
1593         (find_last_not_of(const CharT*, size_type)): Add nonnull attribute.
1594         * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc: New.
1595         * testsuite/21_strings/basic_string_view/operations/compare/char/
1596         nonnull.cc: New.
1597         * testsuite/21_strings/basic_string_view/operations/find/char/
1598         nonnull.cc: New.
1599         * testsuite/21_strings/basic_string_view/operations/rfind/char/
1600         nonnull.cc: New.
1602         PR libstdc++/86168
1603         * include/bits/random.h (random_device(const string&)): Remove
1604         default argument.
1606         * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits): Only
1607         define for C++17 and above.
1609         LWG 2993 reference_wrapper<T> conversion from T&&
1610         * doc/xml/manual/intro.xml: Document LWG 2993 change.
1611         * include/bits/refwrap.h (reference_wrapper(_Tp&)): Remove.
1612         (reference_wrapper(_Tp&&)): Remove.
1613         (reference_wrapper<_Up>(_Up&&)): Define new constructor as constrained
1614         template.
1615         (reference_wrapper): Add deduction guide.
1616         * testsuite/20_util/reference_wrapper/deduction.cc: New.
1617         * testsuite/20_util/reference_wrapper/lwg2993.cc: New.
1619         LWG 3039 Unnecessary decay in thread and packaged_task
1620         * include/std/future (__constrain_pkgdtask): Replace with ...
1621         (packaged_task::__not_same): New alias template, using
1622         __remove_cvref_t instead of decay.
1623         * include/std/thread (thread::__not_same): Add comment.
1625 2018-06-14  Jonathan Wakely  <jwakely@redhat.com>
1627         LWG 3075 basic_string needs deduction guides from basic_string_view
1628         * testsuite/21_strings/basic_string/cons/char/deduction.cc: Test
1629         deduction from string views.
1630         * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
1631         Likewise.
1633         LWG 3074 make scalar types non-deduced in valarray non-member functions
1634         * include/bits/valarray_after.h (_DEFINE_EXPR_BINARY_FUNCTION): Change
1635         scalar parameters to be a non-deduced context.
1636         * include/std/valarray (_DEFINE_BINARY_OPERATOR): Likewise. Adjust
1637         whitespace.
1638         * testsuite/26_numerics/valarray/operators.cc: Test scalar operands.
1639         * testsuite/26_numerics/valarray/transcend.cc: New.
1641         * include/std/tuple (__cpp_lib_tuple_element_t, tuple_element_t):
1642         Move back to <utility>.
1643         * include/std/utility (__cpp_lib_tuple_element_t. tuple_element_t):
1644         Restore to here.
1646         P0935R0 Eradicating unnecessarily explicit default constructors
1647         * include/backward/strstream (strstreambuf): Add non-explicit default
1648         constructor.
1649         * include/bits/locale_conv.h (wbuffer_convert, wstring_convert):
1650         Likewise.
1651         * include/bits/regex.h (match_results): Likewise.
1652         * testsuite/22_locale/conversions/buffer/1.cc: Test for non-explicit
1653         default constructor.
1654         * testsuite/22_locale/conversions/string/1.cc: Likewise.
1655         * testsuite/28_regex/match_results/ctors/char/default.cc: Likewise.
1656         * testsuite/28_regex/match_results/ctors/wchar_t/default.cc: Likewise.
1658         * include/std/tuple (__cpp_lib_tuple_element_t): Move feature test
1659         macro from <utility> and change type to long.
1660         * include/std/utility (__cpp_lib_tuple_element_t): Remove.
1661         * testsuite/20_util/tuple/tuple_element_t.cc: Check for feature test
1662         macro.
1664         P0935R0 Eradicating unnecessarily explicit default constructors
1665         * include/bits/random.h (uniform_real_distribution::param_type)
1666         (normal_distribution::param_type, lognormal_distribution::param_type)
1667         (gamma_distribution::param_type, chi_squared_distribution::param_type)
1668         (cauchy_distribution::param_type, fisher_f_distribution::param_type)
1669         (student_t_distribution::param_type)
1670         (bernoulli_distribution::param_type)
1671         (binomial_distribution::param_type)
1672         (geometric_distribution::param_type)
1673         (negative_binomial_distribution::param_type)
1674         (poisson_distribution::param_type)
1675         (exponential_distribution::param_type)
1676         (weibull_distribution::param_type)
1677         (extreme_value_distribution::param_type): Add non-explicit default
1678         constructors. Remove default argument for first parameter of explicit
1679         constructors.
1680         * include/bits/uniform_int_dist.h
1681         (uniform_int_distribution::param_type): Likewise.
1682         * include/ext/random
1683         (beta_distribution::param_type, rice_distribution::param_type)
1684         (nakagami_distribution::param_type, pareto_distribution::param_type)
1685         (k_distribution::param_type, arcsine_distribution::param_type)
1686         (hoyt_distribution::param_type, triangular_distribution::param_type)
1687         (von_mises_distribution::param_type)
1688         (hypergeometric_distribution::param_type)
1689         (logistic_distribution::param_type)
1690         (uniform_inside_sphere_distribution::param_type): Likewise.
1691         (uniform_on_sphere_distribution::param_type): Make default constructor
1692         non-explicit.
1693         * testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc:
1694         Test param_type for non-explicit default constructor.
1695         * testsuite/26_numerics/random/binomial_distribution/cons/default.cc:
1696         Likewise.
1697         * testsuite/26_numerics/random/cauchy_distribution/cons/default.cc:
1698         Likewise.
1699         * testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc:
1700         Likewise.
1701         * testsuite/26_numerics/random/discrete_distribution/cons/default.cc:
1702         Likewise.
1703         * testsuite/26_numerics/random/exponential_distribution/cons/default.cc:
1704         Likewise.
1705         * testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc:
1706         Likewise.
1707         * testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc:
1708         Likewise.
1709         * testsuite/26_numerics/random/gamma_distribution/cons/default.cc:
1710         Likewise.
1711         * testsuite/26_numerics/random/geometric_distribution/cons/default.cc:
1712         Likewise.
1713         * testsuite/26_numerics/random/lognormal_distribution/cons/default.cc:
1714         Likewise.
1715         * testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc:
1716         Likewise.
1717         * testsuite/26_numerics/random/normal_distribution/cons/default.cc:
1718         Likewise.
1719         * testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc:
1720         Likewise.
1721         * testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc:
1722         Likewise.
1723         * testsuite/26_numerics/random/poisson_distribution/cons/default.cc:
1724         Likewise.
1725         * testsuite/26_numerics/random/student_t_distribution/cons/default.cc:
1726         Likewise.
1727         * testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc:
1728         Likewise.
1729         * testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc:
1730         Likewise.
1731         * testsuite/26_numerics/random/weibull_distribution/cons/default.cc:
1732         Likewise.
1733         * testsuite/ext/random/arcsine_distribution/cons/default.cc: Likewise.
1734         * testsuite/ext/random/beta_distribution/cons/default.cc: Likewise.
1735         * testsuite/ext/random/hoyt_distribution/cons/default.cc: Likewise.
1736         * testsuite/ext/random/hypergeometric_distribution/cons/default.cc:
1737         Likewise.
1738         * testsuite/ext/random/k_distribution/cons/default.cc: Likewise.
1739         * testsuite/ext/random/logistic_distribution/cons/default.cc: Likewise.
1740         * testsuite/ext/random/nakagami_distribution/cons/default.cc: Likewise.
1741         * testsuite/ext/random/normal_mv_distribution/cons/default.cc:
1742         Likewise.
1743         * testsuite/ext/random/pareto_distribution/cons/default.cc: Likewise.
1744         * testsuite/ext/random/rice_distribution/cons/default.cc: Likewise.
1745         * testsuite/ext/random/triangular_distribution/cons/default.cc:
1746         Likewise.
1747         * testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc:
1748         Likewise.
1749         * testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc:
1750         Likewise.
1751         * testsuite/ext/random/von_mises_distribution/cons/default.cc:
1752         Likewise.
1754 2018-06-14  Daniel Trebbien <dtrebbien@gmail.com>
1755             Jonathan Wakely  <jwakely@redhat.com>
1757         PR libstdc++/83982
1758         * include/bits/vector.tcc (vector::_M_default_append(size_type)):
1759         Default-construct new elements before moving existing ones.
1760         * testsuite/23_containers/vector/capacity/resize/strong_guarantee.cc:
1761         New.
1763 2018-06-13  Jonathan Wakely  <jwakely@redhat.com>
1765         PR libstdc++/86127
1766         * include/bits/forward_list.h (_Fwd_list_base::_Tp_alloc_type): Remove
1767         unused typedef.
1768         (_Fwd_list_base::_M_create_node, _Fwd_list_base::_M_erase_after):
1769         Use node allocator to create and destroy elements.
1770         (forward_list::_Tp_alloc_type): Remove unused typedef.
1771         (forward_list::_Alloc_traits): Use allocator_traits instead of
1772         __gnu_cxx::__alloc_traits.
1774 2018-06-13  François Dumont  <fdumont@gcc.gnu.org>
1776         * include/debug/helper_functions.h
1777         (__gnu_debug::_Safe_iterator<>): Add declaration.
1778         (__can_advance(_Ite, _Size)): New.
1779         (__can_advance(const _Safe_iterator<>&, _Size)): Overload declaration.
1780         * include/debug/functions.h
1781         (__gnu_debug::_Safe_iterator<>): Remove declaration.
1782         * include/debug/stl_iterator.h
1783         (__can_advance(const _Safe_iterator<>&)): New definition.
1784         * include/debug/stl_iterator.h
1785         (__can_advance(const std::reverse_iterator<>&, _Size)): New.
1786         (__can_advance(const std::move_iterator<>&, _Size)): New.
1787         * include/debug/macros.h (__glibcxx_check_can_increment): New.
1788         * include/debug/debug.h (__glibcxx_requires_can_increment): New.
1789         * include/bits/stl_algobase.h (fill_n): Use latter.
1790         * testsuite/25_algorithms/fill_n/2.cc: New.
1791         * testsuite/25_algorithms/fill_n/debug/1_neg.cc: New.
1792         * testsuite/25_algorithms/fill_n/debug/2_neg.cc: New.
1793         * testsuite/25_algorithms/fill_n/debug/3_neg.cc: New.
1794         * testsuite/25_algorithms/fill_n/debug/4_neg.cc: New.
1796         * include/debug/debug.h (__glibcxx_requires_can_increment_range): New.
1797         (__glibcxx_requires_can_decrement_range): New.
1799 2018-06-12  François Dumont  <fdumont@gcc.gnu.org>
1801         * include/debug/macros.h (__glibcxx_check_can_increment_range): New.
1802         (__glibcxx_check_can_decrement_range): New.
1803         * include/bits/stl_algobase.h (std::copy(_II, _II, _OI)): Use
1804         __glibcxx_requires_can_increment_range.
1805         (std::move(_II, _II, _OI)): Likewise.
1806         (std::copy_backward(_BI, _BI, _BI2)): Use
1807         __glibcxx_requires_can_decrement_range.
1808         (std::move_backward(_BI, _BI, _BI2)): Likewise.
1809         * testsuite/25_algorithms/copy_backward/debug/1_neg.cc: New.
1810         * testsuite/25_algorithms/copy_backward/debug/2_neg.cc: New.
1811         * testsuite/25_algorithms/copy_backward/debug/3_neg.cc: New.
1812         * testsuite/25_algorithms/equal/debug/1_neg.cc: New.
1813         * testsuite/25_algorithms/equal/debug/2_neg.cc: New.
1814         * testsuite/25_algorithms/equal/debug/3_neg.cc: New.
1816 2018-06-12  Jonathan Wakely  <jwakely@redhat.com>
1818         P0935R0 Eradicating unnecessarily explicit default constructors
1819         * include/bits/random.h (linear_congruential_engine)
1820         (mersenne_twister_engine, subtract_with_carry_engine, random_device)
1821         (uniform_real_distribution, normal_distribution)
1822         (lognormal_distribution, gamma_distribution, chi_squared_distribution)
1823         (cauchy_distribution, fisher_f_distribution, student_t_distribution)
1824         (bernoulli_distribution, binomial_distribution,geometric_distribution)
1825         (negative_binomial_distribution, exponential_distribution)
1826         (weibull_distribution, extreme_value_distribution): Add non-explicit
1827         default constructors. Remove default argument for first parameter of
1828         explicit constructors.
1829         (piecewise_constant_distribution, piecewise_linear_distribution):
1830         Make default constructor non-explicit.
1831         * include/bits/uniform_int_dist.h (uniform_int_distribution): Add
1832         non-explicit default constructors. Remove default argument for first
1833         parameter of explicit constructor.
1834         * include/ext/random
1835         (simd_fast_mersenne_twister_engine, beta_distribution)
1836         (rice_distribution, nakagami_distribution, pareto_distribution)
1837         (k_distribution, arcsine_distribution, hoyt_distribution)
1838         (triangular_distribution, von_mises_distribution)
1839         (hypergeometric_distribution, logistic_distribution)
1840         (uniform_inside_sphere_distribution): Likewise.
1841         (uniform_on_sphere_distribution): Make default constructor
1842         non-explicit.
1843         * testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc:
1844         Test for non-explicit default constructor. Fix references to standard.
1845         * testsuite/26_numerics/random/binomial_distribution/cons/default.cc:
1846         Likewise.
1847         * testsuite/26_numerics/random/cauchy_distribution/cons/default.cc:
1848         Likewise.
1849         * testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc:
1850         Likewise.
1851         * testsuite/26_numerics/random/discrete_distribution/cons/default.cc:
1852         Likewise.
1853         * testsuite/26_numerics/random/exponential_distribution/cons/default.cc:
1854         Likewise.
1855         * testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc:
1856         Likewise.
1857         * testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc:
1858         Likewise.
1859         * testsuite/26_numerics/random/gamma_distribution/cons/default.cc:
1860         Likewise.
1861         * testsuite/26_numerics/random/geometric_distribution/cons/default.cc:
1862         Likewise.
1863         * testsuite/26_numerics/random/lognormal_distribution/cons/default.cc:
1864         Likewise.
1865         * testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc:
1866         Likewise.
1867         * testsuite/26_numerics/random/normal_distribution/cons/default.cc:
1868         Likewise.
1869         * testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc:
1870         Likewise.
1871         * testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc:
1872         Likewise.
1873         * testsuite/26_numerics/random/poisson_distribution/cons/default.cc:
1874         Likewise.
1875         * testsuite/26_numerics/random/student_t_distribution/cons/default.cc:
1876         Likewise.
1877         * testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc:
1878         Likewise.
1879         * testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc:
1880         Likewise.
1881         * testsuite/26_numerics/random/weibull_distribution/cons/default.cc:
1882         Likewise.
1883         * testsuite/ext/random/arcsine_distribution/cons/default.cc: Likewise.
1884         * testsuite/ext/random/beta_distribution/cons/default.cc: Likewise.
1885         * testsuite/ext/random/hoyt_distribution/cons/default.cc: Likewise.
1886         * testsuite/ext/random/hypergeometric_distribution/cons/default.cc:
1887         Likewise.
1888         * testsuite/ext/random/k_distribution/cons/default.cc: Likewise.
1889         * testsuite/ext/random/logistic_distribution/cons/default.cc: Likewise.
1890         * testsuite/ext/random/nakagami_distribution/cons/default.cc: Likewise.
1891         * testsuite/ext/random/normal_mv_distribution/cons/default.cc:
1892         Likewise.
1893         * testsuite/ext/random/pareto_distribution/cons/default.cc: Likewise.
1894         * testsuite/ext/random/rice_distribution/cons/default.cc: Likewise.
1895         * testsuite/ext/random/triangular_distribution/cons/default.cc:
1896         Likewise.
1897         * testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc:
1898         Likewise.
1899         * testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc:
1900         Likewise.
1901         * testsuite/ext/random/von_mises_distribution/cons/default.cc:
1902         Likewise.
1903         * testsuite/util/testsuite_common_types.h
1904         (implicitly_default_constructible): New helper.
1906 2018-06-08  Jonathan Wakely  <jwakely@redhat.com>
1908         * include/bits/ios_base.h (ios::Init::Init(const Init&))
1909         (ios::Init::operator=): Define as defaulted.
1910         * include/bits/stl_bvector.h (_Bit_reference(const _Bit_reference&)):
1911         Likewise.
1912         * include/bits/stream_iterator.h (istream_iterator::operator=)
1913         (ostream_iterator::operator=): Likewise.
1914         * include/bits/streambuf_iterator.h (istreambuf_iterator::operator=)
1915         Likewise.
1916         * include/std/bitset (bitset::reference::reference(const reference&)):
1917         Likewise.
1918         * include/std/complex (complex<float>::complex(const complex&))
1919         (complex<double>::complex(const complex&))
1920         (complex<long double>::complex(const complex&)): Likewise.
1922 2018-06-07  Jonathan Wakely  <jwakely@redhat.com>
1924         * include/bits/regex.h (sub_match): Add noexcept to default
1925         constructor and length observer.
1926         (match_results): Add noexcept to default constructor and observers
1927         with no preconditions. Define destructor as defaulted.
1928         (operator==, operator!=, swap): Add noexcept.
1929         (regex_iterator): Add default member initializers and define default
1930         constructor and destructor as defaulted. Add noexcept to equality
1931         and dereference operators.
1933 2018-06-07  François Dumont  <fdumont@gcc.gnu.org>
1935         * src/c++11/debug.cc
1936         (_Safe_iterator_base::_M_detach()): Reset state only if needed.
1937         (_Safe_iterator_base::_M_detach_single()): Likewise.
1938         (_Safe_local_iterator_base::_M_detach()): Reset state only if needed.
1939         (_Safe_local_iterator_base::_M_detach_single()): Likewise.
1941 2018-06-06  Jonathan Wakely  <jwakely@redhat.com>
1943         * include/bits/shared_ptr_base.h (__shared_count): Remove redundant
1944         move of const value.
1946 2018-06-06  Jakub Jelinek  <jakub@redhat.com>
1948         PR c++/86068
1949         * include/bits/c++config: Check __cpp_transactional_memory >= 201500L
1950         rather than __cpp_transactional_memory >= 201505L.
1952 2018-06-06  Jonathan Wakely  <jwakely@redhat.com>
1954         PR libstdc++/86008
1955         * include/bits/quoted_string.h (_Quoted_string<basic_string_view, C>):
1956         Define new partial specialization.
1957         * include/std/iomanip (quoted(basic_string_view<C,T>, C, C)): Define
1958         new overload.
1959         (operator<<(basic_ostream<C,T>&, const _Quoted_string<S,C>&)): Use
1960         value not reference for iteration.
1961         * testsuite/27_io/manipulators/standard/char/quoted.cc: Adjust
1962         comment.
1963         * testsuite/27_io/manipulators/standard/char/quoted_sv.cc: New test.
1964         * testsuite/27_io/manipulators/standard/wchar_t/quoted.cc: Adjust
1965         comment.
1967 2018-06-05  Jonathan Wakely  <jwakely@redhat.com>
1969         * include/std/type_traits: Fix comment typos.
1971         * testsuite/27_io/filesystem/operations/read_symlink.cc: XFAIL for
1972         mingw* targets.
1973         * testsuite/27_io/filesystem/operations/symlink_status.cc: Likewise.
1974         * testsuite/experimental/filesystem/operations/read_symlink.cc:
1975         Likewise.
1977 2018-06-05  François Dumont  <fdumont@gcc.gnu.org>
1979         * include/bits/stl_tempbuf.h
1980         (_Temporary_buffer(_FwdIte, _FwdIte)): Delete, replaced by...
1981         (_Temporary_buffer(_FwdIte, size_type)): ...this, new.
1982         * include/ext/memory (temporary_buffer<>(_FwdIte, _FwdIte)): Adapt.
1983         * include/bits/stl_algo.h (__stable_partition): Adapt.
1984         (__inplace_merge): Adapt.
1985         (__stable_sort): Adapt.
1987 2018-06-04  Jonathan Wakely  <jwakely@redhat.com>
1989         PR libstdc++/85930
1990         * include/bits/shared_ptr_base.h [!__cpp_rtti]: Include <typeinfo>
1991         unconditionally. Remove redundant declaration.
1992         [!__cpp_rtti] (_Sp_make_shared_tag::_S_ti): Fix location of
1993         alignment-specifier.
1995         * include/bits/postypes.h (fpos): Define special members as defaulted.
1997         PR libstdc++/85930
1998         * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Align
1999         the static variable correctly.
2001 2018-05-24  Jonathan Wakely  <jwakely@redhat.com>
2003         PR libstdc++/78870 support std::filesystem on Windows
2004         * config.h.in: Regenerate.
2005         * configure: Regenerate.
2006         * configure.ac: Check for link, readlink and symlink.
2007         * include/bits/fs_path.h (path::operator/=(const path&)): Move
2008         definition out of class body.
2009         (path::is_absolute(), path::_M_append(path)): Likewise.
2010         (operator<<(basic_ostream, const path&)): Use std::quoted directly.
2011         (operator>>(basic_istream, path&)): Likewise.
2012         (u8path): Reorder definitions and fix Windows implementation.
2013         (path::is_absolute()): Define inline and fix for Windows.
2014         [!_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::operator/=(const path&)):
2015         Define POSIX version inline.
2016         (path::_M_append(path)): Define inline.
2017         * include/experimental/bits/fs_path.h (path::is_absolute()): Move
2018         definition out of class body.
2019         (operator<<(basic_ostream, const path&)): Fix type of delimiter and
2020         escape characters.
2021         (operator>>(basic_istream, path&)): Likewise.
2022         (path::is_absolute()): Define inline and fix for Windows.
2023         * src/filesystem/dir-common.h (__gnu_posix): New namespace.
2024         (__gnu_posix::char_type, __gnu_posix::DIR, __gnu_posix::dirent)
2025         (__gnu_posix::opendir, __gnu_posix::readdir, __gnu_posix::closedir):
2026         Define as adaptors for Windows functions/types or as
2027         using-declarations for POSIX functions/types.
2028         (_Dir_base, get_file_type): Qualify names to use declarations from
2029         __gnu_posix namespace.
2030         (_Dir_base::is_dor_or_dotdot): New helper functions.
2031         * src/filesystem/dir.cc (_Dir, recursive_directory_iterator): Qualify
2032         names to use declarations from __gnu_posix namespace.
2033         * src/filesystem/ops-common.h (__gnu_posix): New nested namespace.
2034         (__gnu_posix::open, __gnu_posix::close, __gnu_posix::stat_type)
2035         (__gnu_posix::stat, __gnu_posix::lstat, __gnu_posix::mode_t)
2036         (__gnu_posix::chmod, __gnu_posix::mkdir, __gnu_posix::getcwd)
2037         (__gnu_posix::chdir, __gnu_posix::utimbuf, __gnu_posix::utime)
2038         (__gnu_posix::rename, __gnu_posix::truncate, __gnu_posix::char_type):
2039         Define as adaptors for Windows functions/types or as
2040         using-declarations for POSIX functions/types.
2041         (stat_type, do_copy_file): Qualify names to use declarations from
2042         __gnu_posix namespace.
2043         (do_space): Declare new function.
2044         (make_file_type): Only use S_ISLNK if defined.
2045         * src/filesystem/ops.cc (char_ptr, filesystem::canonical): Use
2046         path::value_type not char.
2047         (filesystem::copy, create_dir, filesystem::create_directory): Qualify
2048         names to use declarations from __gnu_posix namespace.
2049         (filesystem::create_hard_link): Check HAVE_LINK autoconf macro and
2050         add implementation for Windows.
2051         (filesystem::create_symlink): Check HAVE_SYMLINK autoconf macro.
2052         (filesystem::current_path(error_code&)): Use __gnu_posix::getcwd.
2053         [!_PC_PATH_MAX]: Don't use pathconf.
2054         [PATH_MAX]: Use if defined.
2055         (filesystem::current_path(const path&, error_code&))
2056         (filesystem::equivalent, do_stat, filesystem::hard_link_count)
2057         (filesystem::last_write_time, filesystem::permissions): Use names
2058         from __gnu_posix.
2059         (filesystem::read_symlink): Check HAVE_READLINK autoconf macro.
2060         (filesystem::remove) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Add
2061         implementation for Windows.
2062         (filesystem::rename, filesystem::resize_file): Use names from
2063         __gnu_posix.
2064         (filesystem::space): Use do_space.
2065         [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Get absolute path to directory.
2066         (filesystem::status, filesystem::symlink_status): Use names from
2067         __gnu_posix.
2068         (filesystem::temp_directory_path): Add implementation for Windows.
2069         * src/filesystem/path.cc (dot): Define constant.
2070         (path::replace_extension): Use dot.
2071         (path::_M_find_extension): Likewise. Use path::string_type not
2072         std::string.
2073         (path::_M_split_cmpts): Use dot.
2074         (filesystem_error::_M_get_what): Use u8string() not native().
2075         * src/filesystem/std-dir.cc (_Dir, recursive_directory_iterator):
2076         Qualify names to use declarations from __gnu_posix namespace.
2077         * src/filesystem/std-ops.cc (filesystem::absolute(const path&)): Use
2078         correct error_code.
2079         (filesystem::absolute(const path&, error_code&)): Add implementation
2080         for Windows.
2081         (char_ptr, filesystem::canonical): Use path::value_type not char.
2082         (do_copy_file): Use names from __gnu_posix.
2083         [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Do not use fchmod, fchmodat or
2084         sendfile.
2085         (filesystem::copy, create_dir, filesystem::create_directory): Qualify
2086         names to use declarations from __gnu_posix namespace.
2087         (filesystem::create_hard_link): Check HAVE_LINK autoconf macro and
2088         add implementation for Windows.
2089         (filesystem::create_symlink): Check HAVE_SYMLINK autoconf macro.
2090         (filesystem::current_path(error_code&)): Use __gnu_posix::getcwd.
2091         [!_PC_PATH_MAX]: Don't use pathconf.
2092         [PATH_MAX]: Use if defined.
2093         (filesystem::current_path(const path&, error_code&))
2094         (filesystem::equivalent, do_stat, filesystem::hard_link_count)
2095         (filesystem::last_write_time, filesystem::permissions): Use names
2096         from __gnu_posix.
2097         (filesystem::read_symlink): Check HAVE_READLINK autoconf macro.
2098         (filesystem::remove) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Add
2099         implementation for Windows.
2100         (filesystem::rename, filesystem::resize_file): Use names from
2101         __gnu_posix.
2102         (do_space): Define.
2103         (filesystem::space): Use do_space.
2104         (filesystem::status, filesystem::symlink_status): Use names from
2105         __gnu_posix.
2106         (filesystem::temp_directory_path): Add implementation for Windows.
2107         * src/filesystem/std-path.cc
2108         [_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::operator/=(const path&)):
2109         Define for Windows.
2110         (dot): Define constant.
2111         (path::replace_extension, is_dot): Use dot.
2112         (path::lexically_normal): Check _M_type instead of calling
2113         non-existent function.
2114         (path::_M_find_extension): Use dot. Use path::string_type not
2115         std::string.
2116         (path::_M_split_cmpts): Use dot.
2117         (filesystem_error::_M_get_what): Use u8string() not native().
2118         * testsuite/27_io/filesystem/iterators/directory_iterator.cc: Do not
2119         use symlinks.
2120         * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
2121         Likewise.
2122         * testsuite/27_io/filesystem/operations/absolute.cc: Use
2123         __gnu_test::root_path() instead of "/" and add Windows-specific tests.
2124         * testsuite/27_io/filesystem/operations/canonical.cc: Use
2125         path::string() to get narrow string, not path::native().
2126         * testsuite/27_io/filesystem/operations/copy.cc: Construct fstreams
2127         with std::filesystem::path not std::basic_string.
2128         * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
2129         * testsuite/27_io/filesystem/operations/exists.cc: Use
2130         __gnu_test::root_path() instead of "/".
2131         * testsuite/27_io/filesystem/operations/is_empty.cc: Construct
2132         fstreams with std::filesystem::path not std::basic_string.
2133         * testsuite/27_io/filesystem/operations/last_write_time.cc: Use
2134         path::string() to get narrow string.
2135         * testsuite/27_io/filesystem/operations/space.cc: Check results for
2136         errors, expect sensible values otherwise.
2137         * testsuite/27_io/filesystem/operations/temp_directory_path.cc: Add
2138         helpers for adjusting the environment on Windows.
2139         * testsuite/27_io/filesystem/path/append/path.cc: Test
2140         Windows-specific behaviour.
2141         * testsuite/27_io/filesystem/path/construct/format.cc: Fix creation
2142         of path::string_type objects.
2143         * testsuite/27_io/filesystem/path/construct/locale.cc: Compare native
2144         string to wide string on Windows.
2145         * testsuite/27_io/filesystem/path/decompose/root_directory.cc: Allow
2146         for backslash as root-directory.
2147         * testsuite/27_io/filesystem/path/decompose/stem.cc: Use
2148         path::string() to get narrow string.
2149         * testsuite/27_io/filesystem/path/itr/traversal.cc: Test Windows-style
2150         paths.
2151         * testsuite/27_io/filesystem/path/native/string.cc: Use string_type
2152         not std::string.
2153         * testsuite/27_io/filesystem/path/query/is_absolute.cc: Adjust for
2154         different definintion of absolute paths on Windows.
2155         * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
2156         Do not use symlinks.
2157         * testsuite/experimental/filesystem/operations/absolute.cc: Test
2158         Windows behaviour.
2159         * testsuite/experimental/filesystem/operations/copy.cc: Construct
2160         fstreams with NTCTS not std::basic_string.
2161         * testsuite/experimental/filesystem/operations/copy_file.cc: Likewise.
2162         * testsuite/experimental/filesystem/operations/exists.cc: Use
2163         __gnu_test::root_path() instead of "/".
2164         * testsuite/experimental/filesystem/operations/is_empty.cc: Construct
2165         fstreams with NTCTS not std::basic_string.
2166         * testsuite/experimental/filesystem/operations/last_write_time.cc:
2167         Use path::string() to get narrow string.
2168         * testsuite/experimental/filesystem/operations/space.cc: Use
2169         __gnu_test::root_path() instead of "/".
2170         * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2171         Add helpers for adjusting the environment on Windows.
2172         * testsuite/experimental/filesystem/path/append/path.cc: Use
2173         path::string() to get narrow strings for comparisons.
2174         * testsuite/experimental/filesystem/path/concat/path.cc: Likewise.
2175         * testsuite/experimental/filesystem/path/decompose/root_directory.cc:
2176         Likewise.
2177         * testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
2178         * testsuite/experimental/filesystem/path/native/string.cc: Use
2179         string_type not std::string.
2180         * testsuite/experimental/filesystem/path/query/is_absolute.cc:
2181         Adjust for different definintion of absolute paths on Windows.
2182         * testsuite/util/testsuite_fs.h (__gnu_test::root_path()): New
2183         function.
2184         (__gnu_test::scoped_file): Construct fstreams with NTCTS not
2185         std::basic_string.
2187 2018-05-31  Jonathan Wakely  <jwakely@redhat.com>
2189         PR libstdc++/85951
2190         * include/std/type_traits [_GLIBCXX_USE_C99_STDINT_TR1]: Do not define
2191         uint_least16_t and uint_least32_t.
2192         (__make_unsigned<wchar_t>): Define unconditionally.
2193         (__make_unsigned_selector<_Tp, true, false>): Remove intermediate
2194         typedefs.
2195         (__make_unsigned_selector_base): New type to provide helper templates.
2196         (__make_unsigned_selector<_Tp, false, true>): Reimplement using
2197         __make_unsigned_selector_base helpers.
2198         (__make_unsigned<char16_t>, __make_unsigned<char32_t>): Define.
2199         (__make_signed_selector<_Tp, true, false>): Remove intermediate
2200         typedefs.
2201         (__make_signed<wchar_t>, __make_signed<char16_t>)
2202         (__make_signed<char32_t>)): Define unconditionally.
2203         * testsuite/20_util/make_signed/requirements/typedefs-3.cc: Check
2204         wchar_t, char16_t and char32_t are transformed correctly.
2205         * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
2206         dg-error lineno.
2207         * testsuite/20_util/make_unsigned/requirements/typedefs-3.cc: Check
2208         wchar_t, char16_t and char32_t are transformed correctly.
2209         * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Adjust
2210         dg-error lineno.
2212 2018-05-29  Jonathan Wakely  <jwakely@redhat.com>
2214         * include/std/variant (__erased_dtor): Qualify call to __get.
2216 2018-05-27  François Dumont  <fdumont@gcc.gnu.org>
2218         * include/bits/stl_tree.h (_Rb_tree_impl(_Node_allocator&&)): New.
2219         (_Rb_tree(const allocator_type&)): Use latter.
2220         * include/bits/stl_map.h (map(const allocator_type&)): Likewise.
2221         (map(initializer_list<value_type>, const allocator_type&)): Likewise.
2222         (map(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
2223         * include/bits/stl_multimap.h
2224         (multimap(const allocator_type&)): Likewise.
2225         (multimap(initializer_list<value_type>, const allocator_type&)):
2226         Likewise.
2227         (multimap(_InputIterator, _InputIterator, const allocator_type&)):
2228         Likewise.
2229         * include/bits/stl_set.h (set(const allocator_type&)): Likewise.
2230         (set(initializer_list<value_type>, const allocator_type&)): Likewise.
2231         (set(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
2232         * include/bits/stl_multiset.h
2233         (multiset(const allocator_type&)): Likewise.
2234         (multiset(initializer_list<value_type>, const allocator_type&)):
2235         Likewise.
2236         (multiset(_InputIterator, _InputIterator, const allocator_type&)):
2237         Likewise.
2239 2018-05-25  François Dumont  <fdumont@gcc.gnu.org>
2241         PR libstdc++/85768
2242         * src/c++11/debug.cc: Remove backtrace usage.
2244 2018-05-24  Maya Rashish  <coypu@sdf.org>
2246         PR target/85904
2247         * crossconfig.m4: Test for aligned_alloc on netbsd.
2248         * configure: Regenerate.
2250 2018-05-24  Jonathan Wakely  <jwakely@redhat.com>
2252         PR libstdc++/69769
2253         PR libstdc++/85886
2254         * include/bits/atomic_base.h (__atomic_base::value_type)
2255         (__atomic_base::difference_type): Add new typedefs.
2256         * include/std/atomic (atomic<bool>::value_type, atomic<T>::value_type)
2257         (atomic<T*>::value_type, atomic<T*>::difference_type): Likewise.
2258         (atomic<T*>::operator++, atomic<T*>::operator--)
2259         (atomic<T*>::operator+=, atomic<T*>::operator-=)
2260         (atomic<T*>::fetch_add, atomic<T*>::fetch_sub): Add static assertion
2261         to enforce C++17 requirement on pointer arithmetic.
2262         (__atomic_val_t, __atomic_diff_t): New alias templates.
2263         (atomic_init, atomic_store_explicit, atomic_exchange_explicit)
2264         (atomic_compare_exchange_weak_explicit)
2265         (atomic_compare_exchange_strong_explicit, atomic_store)
2266         (atomic_exchange, atomic_compare_exchange_weak)
2267         (atomic_compare_exchange_strong): Use __atomic_val_t to make
2268         scalar parameters be non-deduced contexts.
2269         (atomic_fetch_add_explicit, atomic_fetch_sub_explicit)
2270         (atomic_fetch_add, atomic_fetch_sub): Change first parameter to be
2271         atomic instead of __atomic_base, and use __atomic_diff_t for scalar
2272         parameters.
2273         (atomic_fetch_and_explicit, atomic_fetch_or_explicit)
2274         (atomic_fetch_xor_explicit, atomic_fetch_and, atomic_fetch_or)
2275         (atomic_fetch_xor): Use __atomic_val_t for scalar parameters.
2276         (atomic_fetch_add_explicit, atomic_fetch_sub_explicit)
2277         (atomic_fetch_add, atomic_fetch_sub): Remove overloads for atomic
2278         address types.
2279         * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
2280         * testsuite/29_atomics/atomic/69769.cc: New test.
2281         * testsuite/29_atomics/atomic/nonmembers.cc: New test.
2282         * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
2283         Disable test for C++17 and later.
2284         * testsuite/29_atomics/atomic/requirements/typedefs.cc: New test.
2285         * testsuite/29_atomics/atomic_integral/nonmembers.cc: New test.
2286         * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc: New
2287         test.
2289 2018-05-23  Jonathan Wakely  <jwakely@redhat.com>
2291         * include/bits/fs_path.h (path::__is_encoded_char): Change from class
2292         template to alias template.
2293         (path::__value_type_is_char): Use remove_const_t.
2294         (path:_S_string_from_iter): New helper function.
2295         (path::_S_convert(InputIter, __null_terminated))
2296         (path::_S_convert_loc(InputIter, __null_terminated, const locale&)):
2297         Use _S_string_from_iter.
2298         (path::string<_CharT, _Allocator>(const _Allocator&)): Allow sharing
2299         rep for COW strings.
2300         * include/experimental/bits/fs_path.h (path::__is_encoded_char):
2301         Change from class template to alias template.
2302         (path::__value_type_is_char): Use remove_const.
2303         (path:_S_string_from_iter): New helper function.
2304         (path::_S_convert(InputIter, __null_terminated))
2305         (path::_S_convert_loc(InputIter, __null_terminated, const locale&)):
2306         Use _S_string_from_iter.
2307         * testsuite/27_io/filesystem/path/append/source.cc: Test appending
2308         wide strings.
2309         * testsuite/27_io/filesystem/path/concat/strings.cc: Check for exact
2310         string equality, not path equivalence.
2311         * testsuite/27_io/filesystem/path/construct/format.cc: Check
2312         construction from std::string and std::wstring and input iterators.
2313         * testsuite/27_io/filesystem/path/construct/locale.cc: Check
2314         construction from iterators.
2315         * testsuite/experimental/filesystem/path/concat/strings.cc: Check for
2316         exact string equality, not path equivalence.
2317         * testsuite/experimental/filesystem/path/construct/locale.cc: Check
2318         construction from iterators.
2320         * include/bits/fs_path.h (path::_M_type): Change default member
2321         initializer to _Filename.
2322         (path::begin): Create past-the-end iterator for empty path.
2323         * src/filesystem/std-path.cc (path::remove_filename()): Remove
2324         debugging check.
2325         (path::has_relative_path()): Return false for empty filenames.
2326         (path::_M_split_cmpts): Set _M_type to _Filename for empty paths.
2327         Fix offset of empty final component.
2328         * testsuite/27_io/filesystem/path/itr/components.cc: New.
2329         * testsuite/27_io/filesystem/path/itr/traversal.cc: Add new inputs.
2331 2018-05-21  Jonathan Wakely  <jwakely@redhat.com>
2333         Add support for opening file streams from wide character strings.
2334         * config/io/basic_file_stdio.cc [_GLIBCXX_HAVE__WFOPEN]
2335         (__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
2336         Define new overload.
2337         * config/io/basic_file_stdio.h [_GLIBCXX_HAVE__WFOPEN]
2338         (__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
2339         Declare new overload.
2340         * configure.ac: Check for _wfopen.
2341         * crossconfig.m4: Likewise.
2342         * configure: Regenerate.
2343         * config.h.in: Regenerate.
2344         * include/bits/fstream.tcc [_GLIBCXX_HAVE__WFOPEN]
2345         (basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
2346         Define new overload.
2347         * include/std/fstream [_GLIBCXX_HAVE__WFOPEN]
2348         (basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
2349         Declare new overload.
2350         [_GLIBCXX_HAVE__WFOPEN]
2351         (basic_ifstream<C,T>::basic_ifstream(const wchar_t*, openmode))
2352         (basic_ifstream<C,T>::basic_open(const wchar_t*, openmode))
2353         (basic_ofstream<C,T>::basic_ifstream(const wchar_t*, openmode))
2354         (basic_ofstream<C,T>::basic_open(const wchar_t*, openmode))
2355         (basic_fstream<C,T>::basic_ifstream(const wchar_t*, openmode))
2356         (basic_fstream<C,T>::basic_open(const wchar_t*, openmode)): Define
2357         new overloads.
2358         * testsuite/27_io/basic_filebuf/open/wchar_t/1.cc: New.
2359         * testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc: New.
2360         * testsuite/27_io/basic_ifstream/open/wchar_t/1.cc: New.
2361         * testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc: New.
2362         * testsuite/27_io/basic_ofstream/open/wchar_t/1.cc: New.
2363         * testsuite/27_io/basic_fstream/cons/wchar_t/1.cc: New.
2364         * testsuite/27_io/basic_fstream/open/wchar_t/1.cc: New.
2366 2018-05-21  François Dumont  <fdumont@gcc.gnu.org>
2368         PR libstdc++/85845
2369         * include/bits/stl_tree.h
2370         (_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): Fix noexcept
2371         qualification.
2373 2018-05-21  Jonathan Wakely  <jwakely@redhat.com>
2375         * src/filesystem/std-ops.cc (absolute): Report an error for empty
2376         paths.
2377         (weakly_canonical(const path&)): Do not call canonical on empty path.
2378         (weakly_canonical(const path&, error_code&)): Likewise.
2379         * testsuite/27_io/filesystem/operations/absolute.cc: Check for errors.
2381         PR libstdc++/85818
2382         * testsuite/experimental/filesystem/path/preferred_separator.cc: Add
2383         dg-require-filesystem-ts.
2385         PR libstdc++/85843
2386         * src/c++11/cow-stdexcept.cc (logic_error, runtime_error): Explicitly
2387         initialize base class to avoid warnings.
2389 2018-05-19  Jonathan Wakely  <jwakely@redhat.com>
2391         * src/c++11/codecvt.cc (__codecvt_utf8_base<wchar_t>::do_in)
2392         [__SIZEOF_WCHAR_T__==2 && __BYTE_ORDER__!=__ORDER_BIG_ENDIAN__]: Set
2393         little_endian element in bitmask.
2394         * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: Run all tests.
2395         * testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc: New.
2397 2018-05-18  François Dumont  <fdumont@gcc.gnu.org>
2399         * include/bits/stl_tree.h
2400         (_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): New.
2401         (_Rb_tree(_Rb_tree&&, _Node_allocator&&, true_type)): New, use latter.
2402         (_Rb_tree(_Rb_tree&&, _Node_allocator&&, false_type)): New.
2403         (_Rb_tree(_Rb_tree&&, _Node_allocator&&)): Adapt, use latters.
2404         * include/debug/map.h
2405         (map(map&&, const_allocator_type&)): Add noexcept qualitication.
2406         * include/debug/multimap.h
2407         (multimap(multimap&&, const_allocator_type&)): Likewise.
2408         * include/debug/set.h
2409         (set(set&&, const_allocator_type&)): Likewise.
2410         * include/debug/multiset.h
2411         (multiset(multiset&&, const_allocator_type&)): Likewise.
2412         * testsuite/23_containers/map/cons/noexcept_default_construct.cc:
2413         Add checks.
2414         * testsuite/23_containers/map/cons/noexcept_move_construct.cc:
2415         Add checks.
2416         * testsuite/23_containers/multimap/cons/noexcept_default_construct.cc:
2417         Add checks.
2418         * testsuite/23_containers/multimap/cons/noexcept_move_construct.cc:
2419         Add checks.
2420         * testsuite/23_containers/multiset/cons/noexcept_default_construct.cc:
2421         Add checks.
2422         * testsuite/23_containers/multiset/cons/noexcept_move_construct.cc:
2423         Add checks.
2424         * testsuite/23_containers/set/cons/noexcept_default_construct.cc:
2425         Add checks.
2426         * testsuite/23_containers/set/cons/noexcept_move_construct.cc:
2427         Add checks.
2429 2018-05-18  Jason Merrill  <jason@redhat.com>
2431         * include/bits/stl_deque.h (_Deque_iterator): Constrain constructor
2432         for conversion to const_iterator.  Add defaulted copy ops.
2433         * libsupc++/new (bad_alloc): Add defaulted copy ops.
2434         * libsupc++/exception.h (exception): Add defaulted copy ops.
2435         * include/std/system_error (system_error): Add defaulted copy ops.
2436         * include/std/stdexcept (domain_error, invalid_argument)
2437         (length_error, out_of_range, range_error, overflow_error)
2438         (underflow_error): Add defaulted copy ops.
2439         * include/bits/stl_iterator.h (reverse_iterator): Add defaulted
2440         copy assignment.
2441         * include/bits/allocator.h (allocator): Add defaulted copy assignment.
2442         * include/ext/throw_allocator.h (condition_base): Add defaulted
2443         default and copy ctor and copy assignment.
2445 2018-05-18  Jonathan Wakely  <jwakely@redhat.com>
2447         PR libstdc++/85098
2448         * include/bits/regex.h [__cplusplus < 201703L] (basic_regex::icase)
2449         (basic_regex::nosubs, basic_regex::optimize, basic_regex::collate)
2450         (basic_regex::ECMAScript, basic_regex::basic, basic_regex::extended)
2451         (basic_regex::awk, basic_regex::grep, basic_regex::egrep): Add
2452         definitions.
2453         * include/bits/regex_automaton.h (_NFA::_M_insert_state): Adjust
2454         whitespace.
2455         * include/bits/regex_compiler.tcc (__INSERT_REGEX_MATCHER): Add
2456         braces around body of do-while.
2457         * testsuite/28_regex/basic_regex/85098.cc: New
2459 2018-05-17  Jonathan Wakely  <jwakely@redhat.com>
2461         PR libstdc++/85818
2462         * src/filesystem/path.cc (path::preferred_separator): Add used
2463         attribute.
2464         * testsuite/experimental/filesystem/path/preferred_separator.cc: New.
2466         PR libstdc++/85812
2467         * libsupc++/cxxabi_init_exception.h (__cxa_free_exception): Declare.
2468         * libsupc++/exception_ptr.h (make_exception_ptr) [__cpp_exceptions]:
2469         Refactor to separate non-throwing and throwing implementations.
2470         [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]: Deallocate the memory
2471         if constructing the object throws.
2473 2018-05-15  Jonathan Wakely  <jwakely@redhat.com>
2475         PR libstdc++/85749
2476         * include/bits/random.h (__detail::__is_seed_seq): New SFINAE helper.
2477         (linear_congruential_engine, mersenne_twister_engine)
2478         (subtract_with_carry_engine, discard_block_engine)
2479         (independent_bits_engine, shuffle_order_engine): Use __is_seed_seq to
2480         constrain function templates taking seed sequences.
2481         * include/bits/random.tcc (linear_congruential_engine::seed(_Sseq&))
2482         (mersenne_twister_engine::seed(_Sseq&))
2483         (subtract_with_carry_engine::seed(_Sseq&)): Change return types to
2484         match declarations.
2485         * include/ext/random (simd_fast_mersenne_twister_engine): Use
2486         __is_seed_seq to constrain function templates taking seed sequences.
2487         * include/ext/random.tcc (simd_fast_mersenne_twister_engine::seed):
2488         Change return type to match declaration.
2489         * testsuite/26_numerics/random/discard_block_engine/cons/seed_seq2.cc:
2490         New.
2491         * testsuite/26_numerics/random/independent_bits_engine/cons/
2492         seed_seq2.cc: New.
2493         * testsuite/26_numerics/random/linear_congruential_engine/cons/
2494         seed_seq2.cc: New.
2495         * testsuite/26_numerics/random/mersenne_twister_engine/cons/
2496         seed_seq2.cc: New.
2497         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lineno.
2498         * testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq2.cc:
2499         New.
2500         * testsuite/26_numerics/random/subtract_with_carry_engine/cons/
2501         seed_seq2.cc: New.
2502         * testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/
2503         seed_seq2.cc: New.
2505         PR libstdc++/83891
2506         * include/bits/fs_path.h (path::is_absolute()): Use same definition
2507         for all operating systems.
2508         * include/experimental/bits/fs_path.h (path::is_absolute()): Likewise.
2509         * testsuite/27_io/filesystem/path/query/is_absolute.cc: New.
2510         * testsuite/27_io/filesystem/path/query/is_relative.cc: Fix comment.
2511         * testsuite/experimental/filesystem/path/query/is_absolute.cc: New.
2513         * testsuite/27_io/filesystem/path/decompose/extension.cc: Remove
2514         unused <vector> header.
2515         * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
2516         * testsuite/27_io/filesystem/path/query/has_extension.cc: Likewise.
2517         * testsuite/27_io/filesystem/path/query/has_filename.cc: Likewise.
2518         * testsuite/27_io/filesystem/path/query/has_parent_path.cc: Likewise.
2519         * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
2520         Likewise.
2521         * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
2522         Likewise.
2523         * testsuite/27_io/filesystem/path/query/has_root_name.cc: Likewise.
2524         * testsuite/27_io/filesystem/path/query/has_root_path.cc: Likewise.
2525         * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
2526         * testsuite/27_io/filesystem/path/query/is_relative.cc: Likewise.
2527         * testsuite/experimental/filesystem/path/decompose/extension.cc:
2528         Likewise.
2529         * testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
2530         * testsuite/experimental/filesystem/path/query/has_extension.cc:
2531         Likewise.
2532         * testsuite/experimental/filesystem/path/query/has_filename.cc:
2533         Likewise.
2534         * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
2535         Likewise.
2536         * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
2537         Likewise.
2538         * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
2539         Likewise.
2540         * testsuite/experimental/filesystem/path/query/has_root_name.cc:
2541         Likewise.
2542         * testsuite/experimental/filesystem/path/query/has_root_path.cc:
2543         Likewise.
2544         * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
2545         * testsuite/experimental/filesystem/path/query/is_relative.cc:
2546         Likewise.
2548         PR libstdc++/84159
2549         * include/bits/fs_path.h (path::operator/=, path::append): Construct
2550         temporary path before calling _M_append.
2551         (path::_M_append): Change parameter to path and implement C++17
2552         semantics.
2553         * testsuite/27_io/filesystem/path/append/path.cc: Add helper function
2554         and more examples from the standard.
2555         * testsuite/27_io/filesystem/path/append/source.cc: New.
2556         * testsuite/27_io/filesystem/path/decompose/filename.cc: Add comment.
2557         * testsuite/27_io/filesystem/path/nonmember/append.cc: New.
2559         * include/std/variant (__gen_vtable_impl::__visit_invoke): Qualify
2560         __invoke to prevent ADL.
2562 2018-05-14  Jonathan Wakely  <jwakely@redhat.com>
2564         PR libstdc++/81256
2565         * include/bits/fstream.tcc (basic_filebuf::close): Do not swallow
2566         exceptions from _M_terminate_output().
2567         * include/std/fstream (basic_filebuf::~basic_filebuf): Swallow any
2568         exceptions from close().
2569         * testsuite/27_io/basic_filebuf/close/81256.cc: New.
2571         * include/bits/valarray_array.h (__valarray_get_memory): Remove.
2572         (__valarray_get_storage): Call operator new directly. Remove ignored
2573         top-level restrict qualifier and add malloc attribute instead.
2574         (_Array<_Tp>::_Array(size_t)): Remove unused constructor.
2576         PR libstdc++/67554
2577         * include/bits/valarray_array.h (_Array_copy_ctor<_Tp, true>)
2578         (_Array_copier<_Tp, true>): Do not pass null pointers to memcpy.
2580         PR libstdc++/82966
2581         * include/bits/node_handle.h (_Node_handle_common::_M_swap): Use value
2582         instead of type.
2583         * testsuite/23_containers/set/modifiers/node_swap.cc: New.
2585 2018-05-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
2587         PR libstdc++/80165
2588         * testsuite/20_util/variant/80165.cc: New.
2590 2018-05-10  Jonathan Wakely  <jwakely@redhat.com>
2592         * doc/xml/faq.xml: Link to C++17 status. Add note to outdated answer.
2593         * doc/xml/manual/debug_mode.xml: Add array and forward_list to list
2594         of C++11 containers with Debug Mode support.
2595         * doc/xml/manual/using.xml: Document Dual ABI for ios_base::failure.
2596         * doc/html/*: Regenerate.
2598 2018-05-10  Jason Merrill  <jason@redhat.com>
2600         * include/bits/regex_compiler.h (_S_cache_size): Change from
2601         function to variable.
2603 2018-05-10  Edward Smith-Rowland  <3dw4rd@verizon.net>
2605         PR libstdc++/83140 - assoc_legendre returns negated value when m is odd
2606         * include/tr1/legendre_function.tcc (__assoc_legendre_p): Add __phase
2607         argument defaulted to +1.  Doxy comments on same.
2608         * testsuite/special_functions/02_assoc_legendre/
2609         check_value.cc: Regen.
2610         * testsuite/tr1/5_numerical_facilities/special_functions/
2611         02_assoc_legendre/check_value.cc: Regen.
2613 2018-05-10  Jonathan Wakely  <jwakely@redhat.com>
2615         PR libstdc++/85729
2616         * include/bits/c++config.h (__replacement_assert): Add linkage
2617         specification.
2618         * include/bits/std_abs.h: Add comment to closing brace of block.
2619         * include/c_global/cstddef: Add linkage specification.
2620         * include/c_global/cstring: Likewise.
2621         * include/c_global/cwchar: Likewise.
2623 2018-05-09  François Dumont  <fdumont@gcc.gnu.org>
2625         * include/debug/safe_iterator.h (_Safe_iterator<>::_M_constant()):
2626         Rename in...
2627         (_Safe_iterator<>::_S_constant()): ...that.
2628         * include/debug/safe_local_iterator.h
2629         (_Safe_local_iterator<>::_M_constant()): Rename in...
2630         (_Safe_local_iterator<>::_S_constant()): ...that.
2631         * include/debug/formatter.h: Remove bits/cpp_type_traits.h include.
2632         (_Iterator_state::__rbegin): New.
2633         (_Iterator_state::__rmiddle): New.
2634         (_Iterator_state::__rend): New.
2635         (_Parameter::_Parameter(const _Safe_iterator<>&, const char*,
2636         _Is_iterator)): Use _Safe_iterator<>::_S_constant. Grab normal underlying
2637         iterator type.
2638         (_Parameter::_Parameter(const _Safe_local_iterator<>&, const char*,
2639         _Is_iterator)): Likewise.
2640         (_Parameter::_S_reverse_state(_Iterator_state)): New.
2641         (_Parameter(__gnu_cxx::__normal_iterator<> const&, const char*,
2642         _Is_iterator)): New.
2643         (_Parameter(std::reverse_iterator<> const&, const char*,
2644         _Is_iterator)): New.
2645         (_Parameter(std::reverse_iterator<_Safe_iterator<>> const&,
2646         const char*, _Is_iterator)): New.
2647         (_Parameter(std::move_iterator<> const&, const char*, _Is_iterator):
2648         New.
2649         (_Parameter(std::move_iterator<_Safe_iterator<>> const&, const char*,
2650         _Is_iterator)): New.
2651         * testsuite/24_iterators/move_iterator/debug_neg.cc: New.
2652         * testsuite/24_iterators/normal_iterator/debug_neg.cc: New.
2653         * testsuite/24_iterators/reverse_iterator/debug_neg.cc: New.
2655 2018-05-09  Jonathan Wakely  <jwakely@redhat.com>
2657         * include/bits/std_function.h (_Base_manager::_M_get_pointer):
2658         Use constexpr if in C++17 mode.
2659         (_Base_manager::_M_clone(_Any_data&, const _Any_data&, true_type)):
2660         Copy from const object.
2661         * testsuite/20_util/function/cons/non_copyconstructible.cc: New.
2663 2018-05-08  François Dumont  <fdumont@gcc.gnu.org>
2665         * src/c++11/debug.cc [_GLIBCXX_HAVE_EXECINFO_H]: Include execinfo.h.
2666         [_GLIBCXX_HAVE_EXECINFO_H](_Error_formatter::_M_error): Render
2667         backtrace.
2669         * include/debug/macros.h (__glibcxx_check_valid_range_at): New.
2670         * include/debug/functions.h (__check_valid_range): Use latter.
2671         * include/debug/macros.h (__glibcxx_check_valid_constructor_range): New,
2672         use latter.
2673         * include/debug/deque
2674         (deque::deque<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
2675         * include/debug/forward_list
2676         (forward_list::forward_list<_Iter>(_Iter, _Iter, const _Alloc&)):
2677         Likewise.
2678         * include/debug/list
2679         (list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
2680         * include/debug/list
2681         (list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
2682         * include/debug/map.h
2683         (map::map<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
2684         (map::map<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
2685         Likewise.
2686         * include/debug/multimap.h
2687         (multimap::multimap<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
2688         (multimap::multimap<_Iter>(_Iter, _Iter, const _Compare&,
2689         const _Alloc&)): Likewise.
2690         * include/debug/set.h
2691         (set::set<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
2692         (set::set<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
2693         Likewise.
2694         * include/debug/multiset.h
2695         (multiset::multiset<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
2696         (multiset::multiset<_Iter>(_Iter, _Iter, const _Compare&,
2697         const _Alloc&)): Likewise.
2698         * include/debug/string
2699         (basic_string::basic_string<_Iter>(_Iter, _Iter, const _Alloc&)):
2700         Likewise.
2701         * include/debug/unordered_map
2702         (unordered_map::unordered_map<_Iter>(_Iter, _Iter, const _Alloc&)):
2703         Likewise.
2704         (unordered_multimap::unordered_multimap<_Iter>(_Iter, _Iter,
2705         const _Alloc&)): Likewise.
2706         * include/debug/unordered_set
2707         (unordered_set::unordered_set<_Iter>(_Iter, _Iter, const _Alloc&)):
2708         Likewise.
2709         (unordered_multiset::unordered_multiset<_Iter>(_Iter, _Iter,
2710         const _Alloc&)): Likewise.
2711         * include/debug/vector
2712         (vector::vector<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
2714         * include/debug/formatter.h (_Error_formatter::_M_function): New.
2715         (_Error_formatter(const char*, unsigned int)): Adapt.
2716         (_Error_formatter::_M_at): Rename in...
2717         (_Error_formatter::_S_at): ...that and adapt.
2718         * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): New.
2719         (_GLIBCXX_DEBUG_VERIFY_AT, _GLIBCXX_DEBUG_VERIFY): Adapt.
2720         * src/c++11/debug.cc (_Error_formatter::_M_error): Render _M_function
2721         when available.
2723 2018-05-08  Jonathan Wakely  <jwakely@redhat.com>
2725         * include/bits/regex_automaton.h (_NFA_base::_M_paren_stack, _NFA):
2726         Use normal std::vector even in Debug Mode.
2728         PR libstdc++/85672
2729         * include/Makefile.am [!ENABLE_FLOAT128]: Change c++config.h entry
2730         to #undef _GLIBCXX_USE_FLOAT128 instead of defining it to zero.
2731         * include/Makefile.in: Regenerate.
2732         * include/bits/c++config (_GLIBCXX_USE_FLOAT128): Move definition
2733         within conditional block.
2735 2018-05-07  Jonathan Wakely  <jwakely@redhat.com>
2737         * doc/xml/manual/using.xml (table.cmd_options): Document that the
2738         C++17 Filesystem implementation also needs -lstdc++fs.
2740         PR libstdc++/85671
2741         * include/bits/fs_path.h (operator/): Permit copy elision.
2742         * include/experimental/bits/fs_path.h (operator/): Likewise.
2744 2018-05-07  Edward Smith-Rowland  <3dw4rd@verizon.net>
2746         Moar PR libstdc++/80506
2747         * include/bits/random.tcc (gamma_distribution::__generate_impl()):
2748         Fix magic number used in loop condition.
2750 2018-05-04  Jonathan Wakely  <jwakely@redhat.com>
2752         PR libstdc++/85642 fix is_nothrow_default_constructible<optional<T>>
2753         * include/std/optional (_Optional_payload): Add noexcept to default
2754         constructor. Re-indent.
2755         (_Optional_payload<_Tp, true, true, true>): Likewise. Add noexcept to
2756         constructor for copying disengaged payloads.
2757         (_Optional_payload<_Tp, true, false, true>): Likewise.
2758         (_Optional_payload<_Tp, true, true, false>): Likewise.
2759         (_Optional_payload<_Tp, true, false, false>): Likewise.
2760         * testsuite/20_util/optional/cons/85642.cc: New.
2761         * testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error lines.
2763 2018-05-03  Jonathan Wakely  <jwakely@redhat.com>
2765         PR libstdc++/82644
2766         * include/tr1/cmath [__STRICT_ANSI__] (hypergf, hypergl, hyperg): Use
2767         inline definitions instead of using-declarations.
2768         [__STRICT_ANSI__] (conf_hypergf, conf_hypergl, conf_hyperg): Likewise.
2769         * testsuite/tr1/5_numerical_facilities/special_functions/
2770         07_conf_hyperg/compile_cxx17.cc: New.
2771         * testsuite/tr1/5_numerical_facilities/special_functions/
2772         17_hyperg/compile_cxx17.cc: New.
2774         PR libstdc++/84769
2775         * include/std/variant (visit): Qualify std::get call.
2777         PR libstdc++/85632 use uintmax_t for arithmetic
2778         * src/filesystem/ops.cc (experimental::filesystem::space): Perform
2779         arithmetic in result type.
2780         * src/filesystem/std-ops.cc (filesystem::space): Likewise.
2781         * testsuite/27_io/filesystem/operations/space.cc: Check total capacity
2782         is greater than free space.
2783         * testsuite/experimental/filesystem/operations/space.cc: New.
2785         * testsuite/20_util/remove_cvref/requirements/alias_decl.cc: New.
2786         * testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc:
2787         New.
2788         * testsuite/20_util/remove_cvref/value.cc: New.
2789         * testsuite/20_util/remove_cvref/value_ext.cc: New.
2791         PR libstdc++/84087 LWG DR 2268 basic_string default arguments
2792         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI=1]
2793         (append(const basic_string&, size_type, size_type)
2794         (assign(const basic_string&, size_type, size_type)
2795         (insert(size_type, const basic_string&, size_type, size_type)
2796         (replace(size_type,size_type,const basic_string&,size_type,size_type)
2797         (compare(size_type,size_type,constbasic_string&,size_type,size_type)):
2798         Add default arguments (LWG 2268).
2799         [_GLIBCXX_USE_CXX11_ABI=0]
2800         (append(const basic_string&, size_type, size_type)
2801         (assign(const basic_string&, size_type, size_type)
2802         (insert(size_type, const basic_string&, size_type, size_type)
2803         (replace(size_type,size_type,const basic_string&,size_type,size_type)
2804         (compare(size_type,size_type,constbasic_string&,size_type,size_type)):
2805         Likewise.
2806         * testsuite/21_strings/basic_string/dr2268.cc: New test.
2808         PR libstdc++/84535
2809         * include/std/thread (thread::__not_same): New SFINAE helper.
2810         (thread::thread(_Callable&&, _Args&&...)): Add SFINAE constraint that
2811         first argument is not a std::thread. Add static assertion to check
2812         INVOKE expression is valid.
2813         (thread::thread(thread&), thread::thread(const thread&&)): Remove.
2814         (thread::_Invoke::_M_invoke, thread::_Invoke::operator()): Use
2815         __invoke_result for return types and remove exception specifications.
2816         * testsuite/30_threads/thread/cons/84535.cc: New.
2818         * include/std/future (__async_result_of): Use __invoke_result instead
2819         of result_of.
2821         * include/std/any (any_cast): Use __remove_cvref_t.
2822         * include/std/tuple (__make_tuple): Likewise.
2823         * include/std/type_traits (__remove_cvref_t): Define.
2824         (__result_of_memobj, __result_of_memfun): Use __remove_cvref_t.
2825         [__cplusplus > 201703L] (remove_cvref, remove_cvref_t): Define.
2826         * include/std/variant (__erased_hash): Use __remove_cvref_t.
2828 2018-05-02  François Dumont  <fdumont@gcc.gnu.org>
2830         * include/bits/deque.tcc (deque<>::_M_assign_aux): Cast to void to
2831         ensure overloaded comma not used.
2832         * include/bits/list.tcc (list<>::_M_assign_dispatch): Likewise.
2833         * include/bits/vector.tcc (vector<>::_M_assign_aux): Likewise.
2834         * include/bits/stl_bvector.h (vector<bool>::_M_assign_aux): Likewise.
2835         * testsuite/23_containers/deque/modifiers/assign/1.cc: New.
2836         * testsuite/23_containers/list/modifiers/assign/1.cc: New.
2837         * testsuite/23_containers/vector/bool/modifiers/assign/1.cc: New.
2838         * testsuite/23_containers/vector/modifiers/assign/1.cc: New.
2840 2018-05-02  Jonathan Wakely  <jwakely@redhat.com>
2842         PR libstdc++/68197
2843         * include/bits/ios_base.h (ios_base::iword, ios_base::pword): Cast
2844         indices to unsigned.
2845         * src/c++11/ios.cc (ios_base::_M_grow_words): Treat negative indices
2846         as failure. Refactor error handling.
2847         * testsuite/27_io/ios_base/storage/68197.cc: New.
2849         PR libstdc++/57997
2850         PR libstdc++/83860
2851         * include/bits/gslice_array.h (gslice_array): Define default
2852         constructor as deleted, as per C++11 standard.
2853         * include/bits/mask_array.h (mask_array): Likewise.
2854         * include/bits/slice_array.h (slice_array): Likewise.
2855         * include/bits/valarray_after.h (_GBase, _GClos, _IBase, _IClos): Move
2856         to namespace __detail.
2857         (_GBase::_M_expr, _IBase::_M_expr): Use _ValArrayRef for type of data
2858         members.
2859         * include/bits/valarray_before.h (_ValArrayRef): New helper for type
2860         of data members in closure objects.
2861         (_FunBase, _ValFunClos, _RefFunClos, _UnBase, _UnClos, _BinBase)
2862         (_BinBase2, _BinBase1, _BinClos, _SBase, _SClos): Move to namespace
2863         __detail.
2864         (_FunBase::_M_expr, _UnBase::_M_expr, _BinBase::_M_expr1)
2865         (_BinBase::_M_expr2, _BinBase2::_M_expr1, _BinBase1::_M_expr2)
2866         (_SBase::_M_expr): Use _ValArrayRef for type of data members.
2867         * include/std/valarray (_UnClos, _BinClos, _SClos, _GClos, _IClos)
2868         (_ValFunClos, _RefFunClos): Move to namespace __detail and add
2869         using-declarations to namespace std.
2870         * testsuite/26_numerics/valarray/83860.cc: New.
2872         * testsuite/backward/strstream_move.cc: Remove duplicate function
2873         call.
2875         PR libstdc++/69608
2876         * include/backward/strstream (strstreambuf): Define move constructor
2877         and move assignment operator.
2878         (istrstream, ostrstream, strstream): Likewise.
2879         * testsuite/backward/strstream_move.cc: New.
2881 2018-05-01  Tulio Magno Quites Machado Filho  <tuliom@linux.vnet.ibm.com>
2883         PR libstdc++/84654
2884         * acinclude.m4: Set ENABLE_FLOAT128 instead of _GLIBCXX_USE_FLOAT128.
2885         * config.h.in: Remove references to _GLIBCXX_USE_FLOAT128.
2886         * configure: Regenerate.
2887         * include/Makefile.am: Replace the value of _GLIBCXX_USE_FLOAT128
2888         based on ENABLE_FLOAT128.
2889         * include/Makefile.in: Regenerate.
2890         * include/bits/c++config: Define _GLIBCXX_USE_FLOAT128.
2891         [!defined(__FLOAT128__) && !defined(__SIZEOF_FLOAT128__)]: Undefine
2892         _GLIBCXX_USE_FLOAT128.
2894 2018-04-24  H.J. Lu  <hongjiu.lu@intel.com>
2896         * configure: Regenerated.
2898 2018-04-19  Jakub Jelinek  <jakub@redhat.com>
2900         * configure: Regenerated.
2902 2018-04-18  Jonathan Wakely  <jwakely@redhat.com>
2903             Jakub Jelinek  <jakub@redhat.com>
2905         PR libstdc++/85442
2906         * src/c++11/Makefile.am: Don't generate debuginfo again for
2907         cxx11-ios_failure-lt.s and cxx11-ios_failure.s files.
2908         * src/c++11/Makefile.in: Regenerate.
2910 2018-04-18  Jonathan Wakely  <jwakely@redhat.com>
2912         PR libstdc++/84442
2913         * testsuite/30_threads/thread/cons/terminate.cc
2914         [!_GLIBCXX_USE_C99_STDLIB] : Use _exit or std::exit instead of _Exit.
2916 2018-04-18  David Malcolm  <dmalcolm@redhat.com>
2918         PR jit/85384
2919         * configure: Regenerate.
2921 2018-04-16  Jonathan Wakely  <jwakely@redhat.com>
2923         * testsuite/experimental/filesystem/file_status/1.cc: Add
2924         -DUSE_FILESYSTEM_TS to dg-options.
2925         * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
2926         Likewise.
2927         * testsuite/experimental/filesystem/iterators/pop.cc: Likewise.
2928         * testsuite/experimental/filesystem/iterators/
2929         recursive_directory_iterator.cc: Likewise.
2930         * testsuite/experimental/filesystem/operations/absolute.cc: Likewise.
2931         * testsuite/experimental/filesystem/operations/canonical.cc: Likewise.
2932         * testsuite/experimental/filesystem/operations/copy.cc: Likewise.
2933         * testsuite/experimental/filesystem/operations/copy_file.cc: Likewise.
2934         * testsuite/experimental/filesystem/operations/create_directories.cc:
2935         Likewise.
2936         * testsuite/experimental/filesystem/operations/create_directory.cc:
2937         Likewise.
2938         * testsuite/experimental/filesystem/operations/create_symlink.cc:
2939         Likewise.
2940         * testsuite/experimental/filesystem/operations/current_path.cc:
2941         Likewise.
2942         * testsuite/experimental/filesystem/operations/equivalent.cc: Likewise.
2943         * testsuite/experimental/filesystem/operations/exists.cc: Likewise.
2944         * testsuite/experimental/filesystem/operations/file_size.cc: Likewise.
2945         * testsuite/experimental/filesystem/operations/is_empty.cc: Likewise.
2946         * testsuite/experimental/filesystem/operations/last_write_time.cc:
2947         Likewise.
2948         * testsuite/experimental/filesystem/operations/permissions.cc:
2949         Likewise.
2950         * testsuite/experimental/filesystem/operations/read_symlink.cc:
2951         Likewise.
2952         * testsuite/experimental/filesystem/operations/remove.cc: Likewise.
2953         * testsuite/experimental/filesystem/operations/remove_all.cc: Likewise.
2954         * testsuite/experimental/filesystem/operations/status.cc: Likewise.
2955         * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2956         Likewise.
2957         * testsuite/experimental/filesystem/path/append/path.cc: Likewise.
2958         * testsuite/experimental/filesystem/path/assign/assign.cc: Likewise.
2959         * testsuite/experimental/filesystem/path/assign/copy.cc: Likewise.
2960         * testsuite/experimental/filesystem/path/compare/compare.cc: Likewise.
2961         * testsuite/experimental/filesystem/path/compare/path.cc: Likewise.
2962         * testsuite/experimental/filesystem/path/compare/strings.cc: Likewise.
2963         * testsuite/experimental/filesystem/path/concat/path.cc: Likewise.
2964         * testsuite/experimental/filesystem/path/concat/strings.cc: Likewise.
2965         * testsuite/experimental/filesystem/path/construct/copy.cc: Likewise.
2966         * testsuite/experimental/filesystem/path/construct/default.cc:
2967         Likewise.
2968         * testsuite/experimental/filesystem/path/construct/locale.cc: Likewise.
2969         * testsuite/experimental/filesystem/path/construct/range.cc: Likewise.
2970         * testsuite/experimental/filesystem/path/construct/string_view.cc:
2971         Likewise.
2972         * testsuite/experimental/filesystem/path/decompose/extension.cc:
2973         Likewise.
2974         * testsuite/experimental/filesystem/path/decompose/filename.cc:
2975         Likewise.
2976         * testsuite/experimental/filesystem/path/decompose/parent_path.cc:
2977         Likewise.
2978         * testsuite/experimental/filesystem/path/decompose/relative_path.cc:
2979         Likewise.
2980         * testsuite/experimental/filesystem/path/decompose/root_directory.cc:
2981         Likewise.
2982         * testsuite/experimental/filesystem/path/decompose/root_name.cc:
2983         Likewise.
2984         * testsuite/experimental/filesystem/path/decompose/root_path.cc:
2985         Likewise.
2986         * testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
2987         * testsuite/experimental/filesystem/path/generic/generic_string.cc:
2988         Likewise.
2989         * testsuite/experimental/filesystem/path/itr/traversal.cc: Likewise.
2990         * testsuite/experimental/filesystem/path/modifiers/clear.cc: Likewise.
2991         * testsuite/experimental/filesystem/path/modifiers/make_preferred.cc:
2992         Likewise.
2993         * testsuite/experimental/filesystem/path/modifiers/remove_filename.cc:
2994         Likewise.
2995         * testsuite/experimental/filesystem/path/modifiers/replace_extension.cc:
2996         Likewise.
2997         * testsuite/experimental/filesystem/path/modifiers/replace_filename.cc:
2998         Likewise.
2999         * testsuite/experimental/filesystem/path/modifiers/swap.cc: Likewise.
3000         * testsuite/experimental/filesystem/path/native/string.cc: Likewise.
3001         * testsuite/experimental/filesystem/path/nonmember/hash_value.cc:
3002         Likewise.
3003         * testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
3004         * testsuite/experimental/filesystem/path/query/has_extension.cc:
3005         Likewise.
3006         * testsuite/experimental/filesystem/path/query/has_filename.cc:
3007         Likewise.
3008         * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
3009         Likewise.
3010         * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
3011         Likewise.
3012         * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
3013         Likewise.
3014         * testsuite/experimental/filesystem/path/query/has_root_name.cc:
3015         Likewise.
3016         * testsuite/experimental/filesystem/path/query/has_root_path.cc:
3017         Likewise.
3018         * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
3019         * testsuite/experimental/filesystem/path/query/is_relative.cc:
3020         Likewise.
3022 2018-04-13  Jonathan Wakely  <jwakely@redhat.com>
3024         * src/c++11/Makefile.am: Fix sed command.
3025         * src/c++11/Makefile.in: Regenerate.
3027         * src/c++11/Makefile.am: Rewrite sed rule to be less fragile and to
3028         handle mangled names starting with double underscores on darwin.
3029         * src/c++11/Makefile.in: Regenerate.
3031 2018-04-12  Jonathan Wakely  <jwakely@redhat.com>
3033         * src/c++11/Makefile.am: Fix comment.
3034         * src/c++11/Makefile.in: Regenerate.
3035         * src/c++11/cxx11-ios_failure.cc: Fix comment.
3036         * src/c++98/ios_failure.cc: Likewise.
3038         * src/c++11/ios.cc: Remove redundant macro definition.
3040 2018-04-11  Jonathan Wakely  <jwakely@redhat.com>
3042         * doc/xml/manual/abi.xml: Document header locations in recent
3043         releases.
3044         * doc/xml/manual/evolution.xml: Add API changes since GCC 5.
3045         * doc/xml/manual/spine.xml: Update copyright years.
3046         * doc/xml/manual/strings.xml: Adjust tolower example to avoid
3047         undefined behaviour.
3048         * doc/xml/manual/test.xml: Update outdated notes on VERIFY in tests.
3049         * doc/html/*: Regenerate.
3051 2018-04-10  Jonathan Wakely  <jwakely@redhat.com>
3053         * doc/xml/faq.xml: Update links to archived copy of SGI STL docs.
3054         * doc/xml/manual/backwards_compatibility.xml: Likewise.
3055         * doc/xml/manual/containers.xml: Likewise.
3056         * doc/xml/manual/debug_mode.xml: Likewise.
3057         * doc/xml/manual/extensions.xml: Likewise.
3058         * doc/xml/manual/policy_data_structures_biblio.xml: Likewise.
3059         * doc/xml/manual/using.xml: Likewise.
3060         * doc/xml/manual/utilities.xml: Likewise.
3062         PR libstdc++/85222
3063         * src/c++11/Makefile.am [ENABLE_DUAL_ABI]: Add special rules for
3064         cxx11-ios_failure.cc to rewrite type info for __ios_failure.
3065         * src/c++11/Makefile.in: Regenerate.
3066         * src/c++11/cxx11-ios_failure.cc (__ios_failure, __iosfail_type_info):
3067         New types.
3068         [_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
3069         * src/c++11/ios.cc (__throw_ios_failure): Remove definition.
3070         * src/c++98/ios_failure.cc (__construct_ios_failure)
3071         (__destroy_ios_failure, is_ios_failure_handler): New functions.
3072         [!_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
3073         * testsuite/27_io/ios_base/failure/dual_abi.cc: New.
3074         * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Revert changes to
3075         handler types, to always catch std::ios_base::failure.
3076         * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
3077         * testsuite/27_io/basic_istream/extractors_arithmetic/char/
3078         exceptions_failbit.cc: Likewise.
3079         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
3080         exceptions_failbit.cc: Likewise.
3081         * testsuite/27_io/basic_istream/extractors_other/char/
3082         exceptions_null.cc: Likewise.
3083         * testsuite/27_io/basic_istream/extractors_other/wchar_t/
3084         exceptions_null.cc: Likewise.
3085         * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
3086         * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
3087         * testsuite/27_io/basic_ostream/inserters_other/char/
3088         exceptions_null.cc: Likewise.
3089         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
3090         exceptions_null.cc: Likewise.
3091         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
3093 2018-04-05  Jonathan Wakely  <jwakely@redhat.com>
3095         * include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Qualify
3096         __get calls to avoid ADL and avoid ambiguity due to Clang bug.
3098 2018-04-03  Jonathan Wakely  <jwakely@redhat.com>
3100         PR libstdc++/85183
3101         * include/std/variant (_Move_assign_base::operator=): Fix incorrect
3102         value categories.
3103         * testsuite/20_util/variant/85183.cc: New.
3105 2018-03-26  Jonathan Wakely  <jwakely@redhat.com>
3107         * include/std/variant (__get): Qualify calls to avoid ADL.
3108         (__select_index): Adjust whitespace.
3109         (variant): Add using-declaration to workaround Clang bug.
3111 2018-03-22  Jonathan Wakely  <jwakely@redhat.com>
3113         PR libstdc++/85040
3114         * include/bits/stl_function.h (greater::__not_overloaded)
3115         (less::__not_overloaded, greater_equal::__not_overloaded)
3116         (less_equal::__not_overloaded): Fix ambiguous specializations.
3117         * testsuite/20_util/function_objects/comparisons_pointer.cc: Add
3118         tests for type with overloaded operators.
3120 2018-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3122         PR libstdc++/77691
3123         * testsuite/experimental/memory_resource/resource_adaptor.cc:
3124         xfail execution on 32-bit Solaris/x86.
3126 2018-03-21  Jonathan Wakely  <jwakely@redhat.com>
3128         * testsuite/20_util/function_objects/comparisons_pointer.cc: Use
3129         VERIFY instead of assert.
3130         * testsuite/20_util/hash/84998.cc: New test.
3131         * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: New
3132         copy of test adjusted for Debug Mode.
3133         * testsuite/23_containers/vector/cons/destructible_neg.cc: Do not run
3134         test in Debug Mode.
3136 2018-03-20  François Dumont  <fdumont@gcc.gnu.org>
3138         PR libstdc++/84998
3139         * include/bits/stl_bvector.h: Fix std::hash friend declaration.
3140         * include/std/bitset: Likewise.
3141         * include/bits/stl_map.h (std::map<>): Fix _Rb_tree_merge_helper friend
3142         declaration.
3143         * include/bits/stl_multimap.h (std::multimap<>): Likewise.
3144         * include/bits/stl_multiset.h (std::multiset<>): Likewise.
3145         * include/bits/stl_set.h (std::set<>): Likewise.
3146         * include/bits/unordered_map.h (std::unordered_map<>): Fix
3147         _Hash_merge_helper friend declaration.
3148         (std::unordered_multimap<>): Likewise.
3149         * include/bits/unordered_set.h (std::unordered_set<>): Likewise.
3150         (std::unordered_multiset<>): Likewise.
3152 2018-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
3154         * doc/xml/api.xml: www.fsf.org has moved to https. Also omit
3155         trailing slash for domain level link.
3156         * doc/xml/faq.xml: Ditto.
3157         * doc/xml/manual/appendix_free.xml (software): Ditto.
3158         * doc/xml/manual/intro.xml: Ditto.
3159         * doc/xml/manual/spine.xml: Ditto.
3160         * doc/xml/spine.xml: Ditto.
3162 2018-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
3164         * doc/xml/manual/documentation_hacking.xml: Adjust link to
3165         docbook.org.
3167 2018-03-17  Jonathan Wakely  <jwakely@redhat.com>
3169         * testsuite/20_util/function_objects/comparisons_pointer.cc: Adjust
3170         to compile as C++98.
3172 2018-03-14  Jonathan Wakely  <jwakely@redhat.com>
3174         PR libstdc++/78420
3175         * include/bits/stl_function.h (greater<_Tp*>, less<_Tp*>)
3176         (greater_equal<_Tp*>, less_equal<_Tp>*): Add partial specializations
3177         to ensure total order for pointers.
3178         (greater<void>, less<void>, greater_equal<void>, less_equal<void>):
3179         Add operator() overloads for pointer arguments and make generic
3180         overloads dispatch to new _S_cmp functions when comparisons would
3181         use built-in operators for pointers.
3182         * testsuite/20_util/function_objects/comparisons_pointer.cc: New.
3184 2018-03-12  Jonathan Wakely  <jwakely@redhat.com>
3186         PR libstdc++/84773
3187         PR libstdc++/83662
3188         * crossconfig.m4: Check for aligned_alloc etc. on freebsd and mingw32.
3189         * configure: Regenerate.
3190         * include/c_global/cstdlib [_GLIBCXX_HAVE_ALIGNED_ALLOC]
3191         (aligned_alloc): Add using-declaration.
3192         * testsuite/18_support/aligned_alloc/aligned_alloc.cc: New test.
3194 2018-03-09  François Dumont  <fdumont@gcc.gnu.org>
3196         * python/libstdcxx/v6/printers.py (build_libstdcxx_dictionary):
3197         Fix std::_Fwd_list_iterator and std::_Fwd_list_const_iterator printers
3198         registration.
3200 2018-03-09  Jonathan Wakely  <jwakely@redhat.com>
3202         PR libstdc++/84769
3203         * include/std/variant (get<_Tp, _Types...>, get_if<_Tp, _Types...>):
3204         Qualify calls to get<_Np, Types...> and get_if<_Np, _Types...>.
3206         src/filesystem/ops.cc (create_dir): Pass error_code to is_directory.
3207         src/filesystem/std-ops.cc (create_dir): Likewise.
3209 2018-03-08  François Dumont  <fdumont@gcc.gnu.org>
3211         * python/libstdcxx/v6/printers.py (NodeIteratorPrinter): New.
3212         (StdListIteratorPrinter): Inherit from latter.
3213         (StdFwdListIteratorPrinter): New, inherit from latter.
3214         (StdDebugIteratorPrinter.to_string): Use non-debug iterator printer
3215         when iterator has no associated container.
3216         (build_libstdcxx_dictionary): Add __gnu_cxx::_Fwd_list_iterator and
3217         __gnu_cxx::_Fwd_list_const_iterator printers. Remove __norm namespace
3218         registrations.
3219         * testsuite/libstdc++-prettyprinters/debug.cc: Adapt.
3220         * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Adapt.
3222 2018-03-06  Ville Voutilainen  <ville.voutilainen@gmail.com>
3224         PR libstdc++/84601
3225         * include/std/optional (_Optional_payload): Split into multiple
3226         specializations that can handle different cases of trivial or
3227         non-trivial assignment operators.
3228         * testsuite/20_util/optional/84601.cc: New.
3229         * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
3231 2018-03-02  Jonathan Wakely  <jwakely@redhat.com>
3233         PR libstdc++/84671
3234         * include/bits/parse_numbers.h (_Number_help): Add partial
3235         specialization to handle digit separators. Adjust partial
3236         specialization for recursion temrination to require _Pow == 1ULL.
3237         * testsuite/20_util/duration/literals/84671.cc: New
3239 2018-02-27  Ville Voutilainen  <ville.voutilainen@gmail.com>
3241         Implement the missing bits of LWG 2769
3242         * include/std/any (any_cast(const any&)): Add static_assert.
3243         (any_cast(any&)): Likewise.
3244         (any_cast(any&&)): Likewise, and remove the handling
3245         for copyable-but-not-movable type.
3246         * testsuite/20_util/any/misc/any_cast.cc: Adjust.
3247         * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise, and
3248         add new tests.
3250 2018-02-23  Jonathan Wakely  <jwakely@redhat.com>
3252         PR libstdc++/84532
3253         * include/std/thread (thread::__make_invoker): Construct tuple
3254         directly instead of using make_tuple.
3255         * testsuite/30_threads/async/84532.cc: New.
3256         * testsuite/30_threads/thread/84532.cc: New.
3258 2018-02-20  François Dumont  <fdumont@gcc.gnu.org>
3260         * include/ext/aligned_buffer.h [_GLIBCXX_INLINE_VERSION]
3261         (template<> __aligned_buffer): Define as __aligned_membuf alias.
3263 2018-02-19  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
3265         PR target/84148
3266         * configure: Regenerate.
3268 2018-02-15  Jonathan Wakely  <jwakely@redhat.com>
3270         PR libstdc++/81797
3271         * configure.ac (INCLUDE_DIR_NOTPARALLEL): Define.
3272         * configure: Regenerate.
3273         * include/Makefile.am (INCLUDE_DIR_NOTPARALLEL): Add .NOTPARALLEL when
3274         defined.
3275         * include/Makefile.in: Regenerate.
3277 2018-01-29  Jonathan Wakely  <jwakely@redhat.com>
3279         PR libstdc++/83833
3280         * testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
3281         Add -ffloat-store to options for m68k and ia32.
3283         * doc/xml/faq.xml: Update copyright years.
3284         * doc/html/*: Regenerate.
3286         PR libstdc++/83658
3287         * include/std/any (any::__do_emplace): Only set _M_manager after
3288         constructing the contained object.
3289         * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust dg-error line.
3290         * testsuite/20_util/any/modifiers/83658.cc: New test.
3292 2018-01-25  Jonathan Wakely  <jwakely@redhat.com>
3294         PR libstdc++/81076
3295         * include/c_global/cstddef (__byte_operand): Define primary template.
3296         * testsuite/18_support/byte/81076.cc: New test.
3298 2018-01-19  Christophe Lyon  <christophe.lyon@linaro.org>
3300         * testsuite/ext/special_functions/airy_ai/check_nan.cc: Fix
3301         dg-options and dg-add-options order.
3302         * testsuite/ext/special_functions/airy_bi/check_nan.cc: Likewise.
3303         * testsuite/ext/special_functions/conf_hyperg/check_nan.cc:
3304         Likewise.
3305         * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
3306         * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
3307         Likewise.
3308         * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
3309         Likewise.
3310         * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
3311         * testsuite/special_functions/04_comp_ellint_1/check_nan.cc:
3312         Likewise.
3313         * testsuite/special_functions/05_comp_ellint_2/check_nan.cc:
3314         Likewise.
3315         * testsuite/special_functions/06_comp_ellint_3/check_nan.cc:
3316         Likewise.
3317         * testsuite/special_functions/06_comp_ellint_3/pr66689.cc:
3318         Likewise.
3319         * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc:
3320         Likewise.
3321         * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc:
3322         Likewise.
3323         * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc:
3324         Likewise.
3325         * testsuite/special_functions/10_cyl_neumann/check_nan.cc:
3326         Likewise.
3327         * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
3328         * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
3329         * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
3330         * testsuite/special_functions/13_ellint_3/pr66689.cc: Likewise.
3331         * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
3332         * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
3333         * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
3334         * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
3335         * testsuite/special_functions/18_riemann_zeta/check_nan.cc:
3336         Likewise.
3337         * testsuite/special_functions/19_sph_bessel/check_nan.cc:
3338         Likewise.
3339         * testsuite/special_functions/20_sph_legendre/check_nan.cc:
3340         Likewise.
3341         * testsuite/special_functions/21_sph_neumann/check_nan.cc:
3342         Likewise.
3344 2018-01-18  Uros Bizjak  <ubizjak@gmail.com>
3346         * configure.ac (AC_CHECK_HEADERS): Add linux/types.h.  Conditionally
3347         include linux/types.h when checking linux/random.h header.
3348         * config.h.in: Regenerate.
3349         * configure: Ditto.
3350         * src/c++11/random.cc: Conditionally include linux/types.h.
3352 2018-01-16  Eric Botcazou  <ebotcazou@adacore.com>
3354         * testsuite/17_intro/names.cc: Undefine 'y' on SPARC/Linux.
3356 2018-01-16  Jonathan Wakely  <jwakely@redhat.com>
3358         PR libstdc++/83834
3359         * config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace std::c[a-g]* wildcard
3360         pattern with exact match for std::cerr.
3362 2018-01-15  Jonathan Wakely  <jwakely@redhat.com>
3364         PR libstdc++/83833
3365         * include/bits/random.h (chi_squared_distribution::param): Update
3366         gamma distribution parameter.
3367         * testsuite/26_numerics/random/chi_squared_distribution/83833.cc: New
3368         test.
3370         PR libstdc++/83830
3371         * include/std/type_traits (has_unique_object_representations_v): Add
3372         variable template.
3373         * testsuite/20_util/has_unique_object_representations/value.cc: Check
3374         variable template.
3376 2018-01-15  Ville Voutilainen  <ville.voutilainen@gmail.com>
3378         Make optional conditionally
3379         trivially_{copy,move}_{constructible,assignable}
3380         * include/std/optional (_Optional_payload): Fix the comment in
3381         the class head and turn into a primary and one specialization.
3382         (_Optional_payload::_M_engaged): Strike the NSDMI.
3383         (_Optional_payload<_Tp, false>::operator=(const _Optional_payload&)):
3384         New.
3385         (_Optional_payload<_Tp, false>::operator=(_Optional_payload&&)):
3386         Likewise.
3387         (_Optional_payload<_Tp, false>::_M_get): Likewise.
3388         (_Optional_payload<_Tp, false>::_M_reset): Likewise.
3389         (_Optional_base_impl): Likewise.
3390         (_Optional_base): Turn into a primary and three specializations.
3391         (optional(nullopt)): Change the base init.
3392         * testsuite/20_util/optional/assignment/8.cc: New.
3393         * testsuite/20_util/optional/cons/trivial.cc: Likewise.
3394         * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
3396 2018-01-15  Jonathan Wakely  <jwakely@redhat.com>
3398         PR libstdc++/80276
3399         * python/libstdcxx/v6/printers.py (strip_inline_namespaces): New.
3400         (get_template_arg_list): New.
3401         (StdVariantPrinter._template_args): Remove, use get_template_arg_list
3402         instead.
3403         (TemplateTypePrinter): Rewrite to work with gdb.Type objects instead
3404         of strings and regular expressions.
3405         (add_one_template_type_printer): Adapt to new TemplateTypePrinter.
3406         (FilteringTypePrinter): Add docstring. Match using startswith. Use
3407         strip_inline_namespaces instead of strip_versioned_namespace.
3408         (add_one_type_printer): Prepend namespace to match argument.
3409         (register_type_printers): Add type printers for char16_t and char32_t
3410         string types and for types using cxx11 ABI. Update calls to
3411         add_one_template_type_printer to provide default argument dicts.
3412         * testsuite/libstdc++-prettyprinters/80276.cc: New test.
3413         * testsuite/libstdc++-prettyprinters/whatis.cc: Remove tests for
3414         basic_string<unsigned char> and basic_string<signed char>.
3415         * testsuite/libstdc++-prettyprinters/whatis2.cc: Duplicate whatis.cc
3416         to test local variables, without overriding _GLIBCXX_USE_CXX11_ABI.
3418 2018-01-14  Andreas Schwab  <schwab@linux-m68k.org>
3420         PR libstdc++/81092
3421         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
3423 2018-01-13  Tim Shen  <timshen@google.com>
3425         PR libstdc++/83601
3426         * include/bits/regex.tcc (regex_replace): Fix escaping in sed.
3427         * testsuite/28_regex/algorithms/regex_replace/char/pr83601.cc: Tests.
3428         * testsuite/28_regex/algorithms/regex_replace/wchar_t/pr83601.cc: Tests.
3430 2018-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3432         PR libstdc++/64054
3433         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc:
3434         Remove dg-xfail-run-if.
3436 2018-01-10  François Dumont  <fdumont@gcc.gnu.org>
3438         * include/bits/forward_list.h
3439         (_Fwd_list_node_base(_Fwd_list_node_base&&)): New.
3440         (_Fwd_list_node_base& operator=(_Fwd_list_node_base&&)): New.
3441         (_Fwd_list_node_base(const _Fwd_list_node_base&)): Explicit delete.
3442         (_Fwd_list_node_base& operator=(const _Fwd_list_node_base&)): Likewise.
3443         (_Fwd_list_impl()): Add noexcept qualification.
3444         (_Fwd_list_impl(const _Node_alloc_type&)): Delete.
3445         (_Fwd_list_impl(_Fwd_list_impl&&)): New, default.
3446         (_Fwd_list_impl(_Fwd_list_impl&&, _Node_alloc_type&&)): New.
3447         (_Fwd_list_base()): Default.
3448         (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&, true_type)): New.
3449         (_Fwd_list_base(_Fwd_list_base&&)): Default.
3450         (forward_list<>()): Default.
3451         (forward_list<>(forward_list&&)): Default.
3452         (forward_list(forward_list&&, _Node_alloc_type&&, false_type)): New.
3453         (forward_list(forward_list&&, _Node_alloc_type&&, true_type)): New.
3454         (forward_list(forward_list&&, const _Alloc&)): Adapt to use latters.
3455         * include/bits/forward_list.tcc
3456         (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&)): Adapt to use
3457         _M_impl._M_head move assignment.
3458         (forward_list<>::merge(forward_list<>&&, _Comp)): Likewise.
3459         * testsuite/23_containers/forward_list/allocator/default_init.cc: New.
3461 2018-01-09  Jonathan Wakely  <jwakely@redhat.com>
3463         PR libstdc++/80276
3464         * python/libstdcxx/v6/printers.py (SharedPointerPrinter)
3465         (UniquePointerPrinter): Print correct template argument, not type of
3466         the pointer.
3467         (TemplateTypePrinter._recognizer.recognize): Handle failure to lookup
3468         a type.
3469         * testsuite/libstdc++-prettyprinters/cxx11.cc: Test unique_ptr of
3470         array type.
3471         * testsuite/libstdc++-prettyprinters/cxx17.cc: Test shared_ptr and
3472         weak_ptr of array types.
3474 2018-01-09  François Dumont  <fdumont@gcc.gnu.org>
3476         PR libstdc++/83709
3477         * include/bits/hashtable_policy.h
3478         (__distance_fwd(_Iterator, _Iterator, input_iterator_tag)): Return 1 if
3479         __first != __last.
3480         (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, true_type)): New.
3481         (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, false_type)):
3482         Add false_type parameter.
3483         (_Insert_base::insert): Adapt.
3484         * include/bits/hashtable.h (_Hashtable::operator=(initializzr_list<>)):
3485         Adapt.
3486         (_Hashtable::_M_insert(_Arg&&, const _NodeGen&, true_type, size_t)):
3487          Add __n_elt parameter, defaulted to 1.
3488         (_Hashtable::_M_insert_unique_node): Likewise. Use it to call rehash
3489         policy _M_need_rehash.
3490         (_Hashtable::_M_merge_unique): Pass target number of elements to add to
3491         produce only 1 rehash if necessary.
3492         * testsuite/23_containers/unordered_map/insert/83709.cc: New.
3493         * testsuite/23_containers/unordered_set/insert/83709.cc: New.
3495 2018-01-09  Juraj Oršulić  <juraj.orsulic@fer.hr>
3496             Jonathan Wakely  <jwakely@redhat.com>
3498         PR libstdc++/59253 (partial)
3499         * python/libstdcxx/v6/printers.py (SmartPtrIterator): Common iterator
3500         type for pointer stored by shared_ptr, weak_ptr and unique_ptr.
3501         (SharedPointerPrinter, UniquePointerPrinter): Treat stored values as
3502         children.
3503         * testsuite/libstdc++-prettyprinters/cxx11.cc: Update expected output
3504         of unique_ptr printer.
3505         * testsuite/libstdc++-prettyprinters/shared_ptr.cc: Update expected
3506         output of shared_ptr printer.
3508 2018-01-05  Jonathan Wakely  <jwakely@redhat.com>
3510         PR libstdc++/83626
3511         * src/filesystem/ops.cc (remove(const path&, error_code&)): Remove
3512         unnecessary symlink_status call.
3513         (remove_all(const path&, error_code&)): Use filesystem::remove.
3514         * src/filesystem/std-ops.cc: Likewise.
3516         PR libstdc++/83279
3517         * src/filesystem/std-ops.cc  (do_copy_file): Use non-null offset with
3518         sendfile.
3520         PR libstdc++/83626
3521         * src/filesystem/ops.cc (remove(const path&, error_code&)): Do not
3522         report an error for ENOENT.
3523         (remove_all(const path&)): Fix type of result variable.
3524         (remove_all(const path&, error_code&)): Use non-throwing increment
3525         for directory iterator. Call POSIX remove directly to avoid redundant
3526         calls to symlink_status. Do not report errors for ENOENT.
3527         * src/filesystem/std-ops.cc: Likewise.
3528         * testsuite/27_io/filesystem/operations/remove_all.cc: Test throwing
3529         overload.
3530         * testsuite/experimental/filesystem/operations/remove_all.cc:
3531         Likewise.
3533 2018-01-04  Jonathan Wakely  <jwakely@redhat.com>
3535         PR libstdc++/83626
3536         * src/filesystem/ops.cc (remove(const path&, error_code&))): Remove
3537         redundant call to ec.clear().
3538         (remove_all(const path&, error_code&))): Do not return an error for
3539         non-existent paths.
3540         * src/filesystem/std-ops.cc: Likewise.
3541         * testsuite/27_io/filesystem/operations/remove.cc: New test.
3542         * testsuite/27_io/filesystem/operations/remove_all.cc: Fix expected
3543         results for non-existent paths.
3544         * testsuite/experimental/filesystem/operations/remove.cc: New test.
3545         * testsuite/experimental/filesystem/operations/remove_all.cc: Fix
3546         expected results for non-existent paths.
3548         * include/bits/fs_ops.h (exists(const path&, error_code&))): Only
3549         check status_known once.
3550         * include/experimental/bits/fs_ops.h: Likewise.
3552         PR libstdc++/83607
3553         * include/std/functional (__is_byte_like): New trait.
3554         (__is_std_equal_to): Remove.
3555         (__boyer_moore_base_t): Use __is_byte_like instead of
3556         __is_std_equal_to.
3557         * include/experimental/functional (__is_std_equal_to): Remove.
3558         (__boyer_moore_base_t): Use __is_byte_like instead of
3559         __is_std_equal_to.
3560         * testsuite/20_util/function_objects/83607.cc: New test.
3562 2018-01-03  Ville Voutilainen  <ville.voutilainen@gmail.com>
3564         Protect optional's deduction guide with the feature macro
3565         * include/std/optional: Use the feature macro.
3567 2018-01-03  Jakub Jelinek  <jakub@redhat.com>
3569         Update copyright years.
3571 Copyright (C) 2018 Free Software Foundation, Inc.
3573 Copying and distribution of this file, with or without modification,
3574 are permitted in any medium without royalty provided the copyright
3575 notice and this notice are preserved.